Buckets:

hf-doc-build/doc / diffusers /main /tr /modular_diffusers /modular_diffusers_states.md
mishig's picture
|
download
raw
4.21 kB

Durumlar

Blocks, veri iletişimi ve paylaşımı için PipelineState ve BlockState veri yapılarına dayanır.

Durum Açıklama
PipelineState Bir hattın çalıştırılması için gereken genel verileri korur ve blokların bu verileri okumasına ve güncellemesine olanak tanır.
BlockState Her bloğun inputs içindeki gerekli verilerle kendi hesabını yapmasına olanak tanır

Bu kılavuz, durumların nasıl çalıştığını ve blokları nasıl bağladığını açıklar.

PipelineState

PipelineState, tüm bloklar için küresel bir durum kapsayıcısıdır. Hattın (pipeline) tam çalışma zamanı durumunu korur ve blokların paylaşılan verilerden okuması ile bunlara yazması için yapılandırılmış bir yol sağlar.

PipelineState, kullanıcı tarafından sağlanan giriş değerlerini ve bloklar tarafından üretilen ara çıktı değerlerini içeren değiştirilebilir bir durum olan values sözlüğünde tüm verileri saklar. Bir blok bir input değerini değiştirirse, bu değişiklik set_block_state çağrıldıktan sonra values sözlüğünde yansıtılır.

PipelineState(
  values={
    'prompt': 'a cat'
    'guidance_scale': 7.0
    'num_inference_steps': 25
    'prompt_embeds': Tensor(dtype=torch.float32, shape=torch.Size([1, 1, 1, 1]))
    'negative_prompt_embeds': None
  },
)

BlockState

BlockState, bir bloğun PipelineState içindeki ilgili değişkenlerin, kendi hesaplamalarını gerçekleştirmek için ihtiyaç duyduğu yerel görünümüdür.

Bu değişkenlere block_state.image gibi doğrudan öznitelik olarak erişin.

BlockState(
    image: <PIL.Image.Image image mode=RGB size=512x512 at 0x7F3ECC494640>
)

Bir bloğun __call__ metodu çalıştırıldığında, self.get_block_state(state) ile BlockState nesnesini alır, işlemlerini gerçekleştirir ve self.set_block_state(state, block_state) ile PipelineState nesnesini günceller.

def __call__(self, components, state):
    # retrieve BlockState
    block_state = self.get_block_state(state)

    # computation logic on inputs

    # update PipelineState
    self.set_block_state(state, block_state)
    return components, state

Etkileşim durumu

PipelineState ve BlockState etkileşimi, bir bloğun inputs ve intermediate_outputs değerleri tarafından tanımlanır.

  • inputs, bir blok bir girdiyi - örneğin block_state.image - değiştirebilir ve bu değişiklik, set_block_state çağrılarak PipelineState içinde küresel olarak yayılabilir.
  • intermediate_outputs, bir bloğun oluşturduğu yeni bir değişkendir. PipelineState'in values sözlüğüne eklenir ve sonraki bloklar için kullanılabilir veya kullanıcılar tarafından pipeline'ın nihai çıktısı olarak erişilebilir.

Xet Storage Details

Size:
4.21 kB
·
Xet hash:
7eed662d6d678f6f60620e299f73db620971721c5ff66d177a004c2e51dbcfa2

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.