Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /vi /modular_diffusers /modular_diffusers_states.md
mishig's picture
|
download
raw
4.54 kB
# Trạng thái
Các Block dựa vào các cấu trúc dữ liệu [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) và [BlockState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) để truyền thông và chia sẻ dữ liệu.
| Trạng thái | Mô tả |
|-------|-------------|
| [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) | Duy trì toàn bộ dữ liệu cần thiết cho việc thực thi của một pipeline và cho phép các khối đọc và cập nhật dữ liệu của nó. |
| [BlockState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) | Cho phép mỗi khối thực hiện phép tính của nó với dữ liệu cần thiết từ `inputs`|
Hướng dẫn này giải thích cách các trạng thái hoạt động và cách chúng kết nối các khối.
## PipelineState
[PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) là một bộ chứa trạng thái toàn cục cho tất cả các khối. Nó duy trì trạng thái thời gian chạy đầy đủ của pipeline và cung cấp một cách có cấu trúc để các khối đọc và ghi vào dữ liệu dùng chung.
[PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) lưu trữ tất cả dữ liệu trong một dict `values`, đây là một trạng thái **mutable** chứa các giá trị đầu vào do người dùng cung cấp và các giá trị đầu ra trung gian được tạo ra bởi các block. Nếu một block sửa đổi một `input`, thay đổi đó sẽ được phản ánh trong dict `values` sau khi gọi `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/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) là một góc nhìn cục bộ về các biến liên quan mà một khối riêng lẻ cần từ [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) để thực hiện các phép tính của nó.
Truy cập trực tiếp các biến này dưới dạng thuộc tính như `block_state.image`.
```py
BlockState(
image: <PIL.Image.Image image mode=RGB size=512x512 at 0x7F3ECC494640>
)
```
Khi phương thức `__call__` của một block được thực thi, nó lấy `BlockState` bằng `self.get_block_state(state)`, thực hiện các thao tác của nó, và cập nhật [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) bằng `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
```
## Tương tác trạng thái
Tương tác giữa [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) và [BlockState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.BlockState) được xác định bởi `inputs` và `intermediate_outputs` của một block.
- `inputs`, một khối có thể sửa đổi một đầu vào - chẳng hạn như `block_state.image` - và thay đổi này có thể được lan truyền toàn cục đến [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) bằng cách gọi `set_block_state`.
- `intermediate_outputs` là một biến mới được tạo bởi một khối. Nó được thêm vào dict `values` của [PipelineState](/docs/diffusers/v0.43.0/vi/api/modular_diffusers/pipeline_states#diffusers.modular_pipelines.PipelineState) và có sẵn cho các khối tiếp theo hoặc được người dùng truy cập như một đầu ra cuối cùng từ pipeline.

Xet Storage Details

Size:
4.54 kB
·
Xet hash:
aa0b70afc0c61a3ce88042c6b32eb78a0bcdda3746a496a808d8c9c2517b9098

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