Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /id /modular_diffusers /modular_diffusers_states.md
mishig's picture
|
download
raw
4.12 kB
# States
Blocks bergantung pada struktur data [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) dan [BlockState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) untuk berkomunikasi dan berbagi data.
| Status | Deskripsi |
|-------|-------------|
| [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) | Menjaga keseluruhan data yang diperlukan untuk eksekusi pipeline dan memungkinkan blok untuk membaca serta memperbarui datanya. |
| [BlockState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) | Memungkinkan setiap blok untuk melakukan komputasinya dengan data yang diperlukan dari `inputs`|
Panduan ini menjelaskan cara kerja state dan bagaimana state menghubungkan blok.
## PipelineState
[PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) adalah wadah status global untuk semua blok. Status ini mempertahankan status runtime lengkap dari pipeline dan menyediakan cara terstruktur bagi blok untuk membaca dan menulis ke data bersama.
[PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) menyimpan semua data dalam dict `values`, yaitu keadaan **mutable** yang berisi nilai input yang diberikan pengguna dan nilai output antara yang dihasilkan oleh blok. Jika sebuah blok memodifikasi `input`, perubahan tersebut akan tercermin dalam dict `values` setelah memanggil `set_block_state`.
```py
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](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) adalah tampilan lokal dari variabel-variabel relevan yang dibutuhkan oleh sebuah blok individu dari [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) untuk melakukan komputasinya.
Akses variabel-variabel ini secara langsung sebagai atribut seperti `block_state.image`.
```py
BlockState(
image: <PIL.Image.Image image mode=RGB size=512x512 at 0x7F3ECC494640>
)
```
Ketika metode `__call__` dari sebuah blok dieksekusi, blok tersebut mengambil `BlockState` dengan `self.get_block_state(state)`, melakukan operasinya, dan memperbarui [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) dengan `self.set_block_state(state, block_state)`.
```py
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
```
## Interaksi state
Interaksi antara [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) dan [BlockState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) didefinisikan oleh `inputs` dan `intermediate_outputs` dari sebuah blok.
- `inputs`, sebuah blok dapat memodifikasi input - seperti `block_state.image` - dan perubahan ini dapat disebarkan secara global ke [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) dengan memanggil `set_block_state`.
- `intermediate_outputs` adalah variabel baru yang dibuat oleh sebuah blok. Variabel ini ditambahkan ke dict `values` dari [PipelineState](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) dan tersedia untuk blok-blok berikutnya atau diakses oleh pengguna sebagai output akhir dari pipeline.

Xet Storage Details

Size:
4.12 kB
·
Xet hash:
ec7ad21ab2605eda5395495cc1714f4f3a842a3a0d653f47835e2967d83503d2

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