Buckets:

mishig's picture
|
download
raw
13.8 kB

Các khối Pipeline

ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks()

Nguồn

Lớp cơ sở cho tất cả các Khối Pipeline: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks

ModularPipelineBlocks cung cấp phương thức để tải và lưu trữ định nghĩa của các khối pipeline.

get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]

get_block_state(state: PipelineState)

Nguồn

Lấy tất cả các đầu vào và các giá trị trung gian trong một từ điển

get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Nguồn

Tham số:

  • **kwargs : Tên và giá trị của các đầu vào. Chỉ các đầu vào kích hoạt mới ảnh hưởng đến việc chọn khối.

Lấy khối (hoặc các khối) sẽ được thực thi dựa trên các đầu vào. Phải được triển khai bởi các lớp con hỗ trợ chọn khối có điều kiện.

get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]

get_workflow(workflow_name: str)

Nguồn

Tham số:

workflow_name : Tên của workflow cần truy xuất.

Lấy các khối thực thi cho một workflow cụ thể. Phải được triển khai bởi các lớp con định nghĩa _workflow_map.

init_pipeline[[diffusers.ModularPipelineBlocks.init_pipeline]]

init_pipeline(pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None)

Nguồn

tạo một ModularPipeline, tùy chọn chấp nhận pretrained_model_name_or_path để tải từ hub.

SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks()

Nguồn

Tham số:

block_classes : danh sách các lớp khối sẽ được sử dụng

block_names : danh sách các tiền tố cho mỗi khối

Một Pipeline Blocks kết hợp nhiều lớp pipeline block thành một. Khi được gọi, nó sẽ gọi từng block theo thứ tự.

Lớp này kế thừa từ ModularPipelineBlocks. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các khối pipeline (chẳng hạn như tải hoặc lưu, v.v.)

from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)

Nguồn

Tham số:

blocks_dict : Từ điển ánh xạ tên khối đến các lớp hoặc instance của khối

Trả về:

Một instance mới của SequentialPipelineBlocks

Tạo một instance của SequentialPipelineBlocks từ một từ điển các khối.

get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Nguồn

Tham số:

  • **kwargs : Tên và giá trị của các đầu vào. Chỉ các đầu vào kích hoạt mới ảnh hưởng đến việc chọn khối.

Trả về:

SequentialPipelineBlocks chỉ chứa các khối sẽ được thực thi

Lấy các khối sẽ được thực thi dựa trên các đầu vào được chỉ định.

Khi quá trình duyệt đi qua các khối tuần tự, các đầu ra trung gian từ các khối đã được giải quyết sẽ được thêm vào các đầu vào đang hoạt động. Điều này có nghĩa là các khối điều kiện phụ thuộc vào các giá trị trung gian (ví dụ: "chạy img2img nếu image_latents có mặt") sẽ được giải quyết chính xác, miễn là điều kiện dựa trên sự hiện diện hay vắng mặt (None hoặc không phải None), chứ không phải dựa trên giá trị thực tế.

LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks()

Nguồn

Tham số:

block_classes : danh sách các lớp khối sẽ được sử dụng

block_names : danh sách các tiền tố cho mỗi khối

Pipeline blocks là các khối kết hợp nhiều lớp khối pipeline khác nhau vào một vòng lặp For. Khi được gọi, nó sẽ gọi từng khối theo thứ tự.

Lớp này kế thừa từ ModularPipelineBlocks. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các khối pipeline (chẳng hạn như tải hoặc lưu, v.v.)

from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any])

Nguồn

Tham số:

blocks_dict : Từ điển ánh xạ tên khối đến các instance của khối

Trả về:

Một instance mới của LoopSequentialPipelineBlocks

Tạo một instance của LoopSequentialPipelineBlocks từ một từ điển các blocks.

AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks()

Nguồn

Tham số:

block_classes : Danh sách các lớp khối sẽ được sử dụng. Phải có cùng độ dài với block_names và block_trigger_inputs.

block_names : Danh sách tên cho mỗi khối. Phải có cùng độ dài với block_classes và block_trigger_inputs.

block_trigger_inputs : Danh sách tên đầu vào, trong đó mỗi phần tử chỉ định đầu vào kích hoạt cho khối tương ứng. Sử dụng None để đánh dấu khối mặc định.

Một Pipeline Blocks tự động chọn khối để chạy dựa trên sự hiện diện của các đầu vào kích hoạt.

Đây là một phiên bản chuyên dụng của ConditionalPipelineBlocks trong đó:

  • Mỗi khối có một đầu vào kích hoạt tương ứng (lớp ánh xạ 1:1)
  • Việc chọn khối là tự động: khối đầu tiên có đầu vào kích hoạt sẽ được chọn
  • block_trigger_inputs phải có cùng độ dài với block_names và block_classes
  • Sử dụng None trong block_trigger_inputs để chỉ định khối mặc định, tức là khối sẽ được thực thi nếu không có đầu vào kích hoạt nào

Ví dụ:

    class MyAutoBlock(AutoPipelineBlocks):
        block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock]
        block_names = ["inpaint", "img2img", "text2img"]
        block_trigger_inputs = ["mask_image", "image", None]  # text2img is the default

Với định nghĩa này:

  • Miễn là mask_image được cung cấp, khối "inpaint" sẽ được thực thi (bất kể image có được cung cấp hay không)
  • Nếu mask_image không được cung cấp nhưng image được cung cấp, khối "img2img" sẽ chạy
  • Ngược lại, khối "text2img" sẽ được thực thi (mặc định, kích hoạt là None)

select_block[[diffusers.AutoPipelineBlocks.select_block]]

select_block(**kwargs)

Nguồn

Chọn khối dựa trên đầu vào kích hoạt nào có mặt (không phải None).

ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks()

Nguồn

Tham số:

block_classes : Danh sách các lớp khối sẽ được sử dụng. Phải có cùng độ dài với block_names.

block_names : Danh sách tên cho mỗi khối. Phải có cùng độ dài với block_classes.

block_trigger_inputs : Danh sách tên đầu vào mà select_block() sử dụng để xác định khối nào cần chạy. Đối với ConditionalPipelineBlocks, danh sách này không cần tương ứng với block_names và block_classes. Đối với AutoPipelineBlocks, danh sách này phải có cùng độ dài với block_names và block_classes, trong đó mỗi phần tử chỉ định đầu vào kích hoạt cho khối tương ứng.

default_block_name : Tên của khối mặc định để chạy khi không có đầu vào kích hoạt nào khớp. Nếu là None, khối này có thể bị bỏ qua hoàn toàn khi không có đầu vào kích hoạt nào được cung cấp.

Một Pipeline Blocks chọn có điều kiện một block để chạy dựa trên các đầu vào. Các lớp con phải triển khai phương thức select_block để định nghĩa logic chọn block. Hiện tại, chúng tôi chỉ hỗ trợ logic chọn dựa trên sự hiện diện hoặc vắng mặt của các đầu vào (tức là chúng có phải là None hay không)

Lớp này kế thừa từ ModularPipelineBlocks. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các khối pipeline (chẳng hạn như tải hoặc lưu, v.v.)

get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Nguồn

Tham số:

  • **kwargs : Tên và giá trị của các đầu vào. Chỉ các đầu vào kích hoạt mới ảnh hưởng đến việc chọn khối.

Trả về: - ModularPipelineBlocks

Một khối lá hoặc SequentialPipelineBlocks đã được giải quyết

  • None: Nếu khối này bị bỏ qua (không có bộ kích hoạt nào khớp và không có giá trị mặc định)

Lấy khối (các khối) sẽ được thực thi dựa trên các đầu vào.

Giải quyết đệ quy các ConditionalPipelineBlocks lồng nhau cho đến khi đạt được một trong các điều kiện sau:

  • Một khối lá (không có sub_blocks hay LoopSequentialPipelineBlocks) → trả về một ModularPipelineBlocks đơn
  • Một SequentialPipelineBlocks → chuyển tiếp đến get_execution_blocks() của nó, hàm này trả về một SequentialPipelineBlocks chứa các khối thực thi đã được phân giải

select_block[[diffusers.ConditionalPipelineBlocks.select_block]]

select_block(**kwargs)

Nguồn

Tham số:

  • **kwargs : Tên và giá trị của các đầu vào kích hoạt từ trạng thái.

Trả về: str | None

Tên của khối cần chạy, hoặc None để sử dụng mặc định/bỏ qua.

Chọn khối để chạy dựa trên các đầu vào kích hoạt. Các lớp con phải triển khai phương thức này để định nghĩa logic cho việc chọn khối.

Lưu ý: Khi các đầu vào kích hoạt bao gồm các đầu ra trung gian từ các khối trước đó, logic chọn lọc chỉ nên phụ thuộc vào sự hiện diện hay vắng mặt của đầu vào (tức là có phải là None hay không), chứ không phải giá trị thực tế của nó. Điều này là do get_execution_blocks() giải quyết các điều kiện một cách tĩnh bằng cách lan truyền tên của các đầu ra trung gian mà không kèm theo giá trị thời gian chạy của chúng.

Xet Storage Details

Size:
13.8 kB
·
Xet hash:
9efa69007e2920b6b8a023b1852678c0f94b981e8a1eb084ff4d34b6a7a267c3

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