Buckets:
Pipeline
ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
Tham số:
blocks : ModularPipelineBlocks, các khối được sử dụng trong pipeline
Lớp cơ sở cho tất cả các pipeline Modular.
from_pretrained[[diffusers.ModularPipeline.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)
Tham số:
pretrained_model_name_or_path (str hoặc os.PathLike, tùy chọn) : Đường dẫn đến cấu hình pipeline được huấn luyện trước. Hệ thống sẽ cố gắng tải cấu hình từ modular_model_index.json trước, sau đó chuyển sang model_index.json để đảm bảo tương thích với các kho lưu trữ chuẩn không modular. Nếu pretrained_model_name_or_path không chứa bất kỳ cấu hình pipeline nào, giá trị này sẽ được đặt thành None trong quá trình khởi tạo.
trust_remote_code (bool, optional) : Có tin tưởng mã từ xa khi tải pipeline hay không, cần đặt thành True nếu bạn muốn tạo các khối pipeline dựa trên mã tùy chỉnh trong pretrained_model_name_or_path
components_manager (ComponentsManager, tùy chọn) : Instance của ComponentsManager để quản lý nhiều component xuyên suốt các pipeline khác nhau và áp dụng các chiến lược offloading.
collection (str, tùy chọn) -- Tên bộ sưu tập để tổ chức các thành phần trong ComponentsManager.
workflow (str, optional) : Tên của một workflow được khai báo bởi các khối pipeline. Nếu được cung cấp, các khối sẽ được cắt giảm xuống các khối thực thi của workflow đó, do đó pipeline chỉ mong đợi — và load_components() chỉ tải — các thành phần mà workflow đó sử dụng.
Tải một ModularPipeline từ kho lưu trữ trên huggingface hub.
get_component_spec[[diffusers.ModularPipeline.get_component_spec]]
get_component_spec(name: str)
Trả về:
- một bản sao của đối tượng ComponentSpec cho tên thành phần được chỉ định
load_components[[diffusers.ModularPipeline.load_components]]
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
Tham số:
names : danh sách tên các thành phần cần tải. Nếu là None, sẽ tải tất cả các thành phần có default_creation_method == "from_pretrained". Nếu được cung cấp dưới dạng danh sách hoặc chuỗi, sẽ chỉ tải các thành phần được chỉ định.
workflow : tên của một workflow được khai báo bởi các khối pipeline. Nếu được cung cấp, chỉ các thành phần mà các khối thực thi của workflow đó sử dụng sẽ được tải. Không thể kết hợp với names.
- **kwargs : các kwargs bổ sung để truyền vào
from_pretrained(). Có thể là: - một giá trị duy nhất được áp dụng cho tất cả các thành phần cần tải, ví dụ dtype=torch.bfloat16 - một dict, ví dụ dtype={"unet": torch.bfloat16, "default": torch.float32} - nếu có thể ghi đè ComponentSpec nếu được truyền một trường tải khác trong kwargs, ví dụpretrained_model_name_or_path,variant,revision, v.v. - nếu có thể ghi đè ComponentSpec nếu được truyền một trường tải khác trong kwargs, ví dụpretrained_model_name_or_path,variant,revision, v.v.
Tải các thành phần đã chọn từ các thông số kỹ thuật.
register_components[[diffusers.ModularPipeline.register_components]]
register_components(**kwargs)
Tham số:
- **kwargs : Các đối số dạng từ khóa, trong đó các khóa là tên thành phần và các giá trị là các đối tượng thành phần. Ví dụ: register_components(unet=unet_model, text_encoder=encoder_model)
Đăng ký các thành phần cùng với thông số kỹ thuật tương ứng của chúng.
Phương thức này chịu trách nhiệm cho:
- Đặt các đối tượng thành phần làm thuộc tính trên loader (ví dụ: self.unet = unet)
- Cập nhật dict cấu hình, sẽ được lưu dưới dạng
modular_model_index.jsontrong quá trìnhsave_pretrained(chỉ dành cho các thành phần from_pretrained) - Thêm các thành phần vào trình quản lý thành phần nếu có một trình quản lý được gắn kết (chỉ dành cho các thành phần từ from_pretrained)
Phương thức này được gọi khi:
- Các thành phần được khởi tạo lần đầu trong init:
- các thành phần from_pretrained không được nạp trong init nên chúng được đăng ký là None;
- Các thành phần không có từ_pretrained được tạo trong quá trình init và được đăng ký dưới dạng chính đối tượng đó
- Các thành phần được cập nhật bằng phương thức
update_components(): ví dụ loader.update_components(unet=unet) hoặc loader.update_components(guider=guider_spec) - (from_pretrained) Các thành phần được nạp bằng phương thức
load_components(): ví dụ loader.load_components(names=["unet"]) hoặc loader.load_components() để nạp tất cả các thành phần mặc định
Ghi chú:
- Khi đăng ký None cho một thành phần, thuộc tính sẽ được đặt thành None nhưng vẫn đồng bộ hóa các thông số với từ điển cấu hình, vốn sẽ được lưu dưới dạng
modular_model_index.jsontrong quá trìnhsave_pretrained - component_specs được cập nhật để khớp với component mới bên ngoài phương thức này, ví dụ trong phương thức
update_components()
save_pretrained[[diffusers.ModularPipeline.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)
Tham số:
save_directory (str hoặc os.PathLike) : Thư mục để lưu pipeline. Sẽ được tạo nếu chưa tồn tại.
safe_serialization (bool, tùy chọn, mặc định là True) : Có lưu mô hình bằng safetensors hay theo cách truyền thống của PyTorch với pickle hay không.
variant (str, tùy chọn) : Nếu được chỉ định, trọng số sẽ được lưu ở định dạng pytorch_model.<variant>.bin.
max_shard_size (int hoặc str, mặc định là None) : Kích thước tối đa của một checkpoint trước khi được chia nhỏ. Các checkpoint sau khi chia nhỏ sẽ có kích thước nhỏ hơn giá trị này. Nếu biểu diễn dưới dạng chuỗi, cần là các chữ số theo sau bởi một đơn vị (ví dụ "5GB"). Nếu biểu diễn dưới dạng số nguyên, đơn vị là byte.
push_to_hub (bool, tùy chọn, mặc định là False) : Có đẩy pipeline lên Hugging Face model hub sau khi lưu nó hay không.
- **kwargs : Các đối số từ khóa bổ sung: -
overwrite_modular_index(bool, tùy chọn, mặc định làTrue): Có cập nhậtmodular_model_index.jsonđể thông số nạp của từng thành phần được lưu trỏ đến đích:repo_idkhi đẩy lên Hub, nếu không thì làsave_directory. Các thành phần không được nạp sẽ không được lưu và luôn giữ nguyên thông số nạp đã ghi nhận. TruyềnFalseđể cũng giữ nguyên thông số đã ghi nhận của các thành phần đang được lưu (ví dụ: cho một chỉ mục cố ý tham chiếu các kho lưu trữ khác); các thành phần không có id nạp (chẳng hạn như các mô hình tùy chỉnh được thêm bằngupdate_components) vẫn sẽ được viết lại vì chúng không có nguồn đã ghi nhận. -repo_id(str, tùy chọn): ID kho lưu trữ để đẩy pipeline đến. Mặc định là thành phần cuối củasave_directory. -commit_message(str, tùy chọn): Thông báo commit cho thao tác đẩy lên hub. -private(bool, tùy chọn): Kho lưu trữ có nên ở chế độ riêng tư không. -create_pr(bool, tùy chọn, mặc định làFalse): Có tạo pull request thay vì đẩy trực tiếp không. -token(str, tùy chọn): Token Hugging Face để sử dụng cho xác thực.
Lưu pipeline và tất cả các thành phần của nó vào một thư mục để có thể tải lại bằng phương thức lớp from_pretrained().
đến[[diffusers.ModularPipeline.to]]
to(*args, **kwargs)
Tham số:
dtype (torch.dtype, tùy chọn) : Trả về một pipeline với dtype được chỉ định
device (torch.Device, tùy chọn) : Trả về một pipeline với device được chỉ định
silence_dtype_warnings (str, tùy chọn, mặc định là False) : Có nên bỏ qua các cảnh báo nếu dtype đích không tương thích với device đích hay không.
Trả về: DiffusionPipeline
Pipeline đã được chuyển đổi sang dtype và/hoặc dtype được chỉ định.
Thực hiện chuyển đổi dtype và/hoặc device của Pipeline. Một torch.dtype và torch.device được suy ra từ các đối số của self.to(*args, **kwargs).
> Nếu pipeline đã có torch.dtype và torch.device đúng, thì nó sẽ được trả về nguyên vẹn. Ngược lại, > pipeline được trả về là bản sao của self với torch.dtype và torch.device mong muốn.
Dưới đây là các cách để gọi to:
to(dtype, silence_dtype_warnings=False) → DiffusionPipelineđể trả về một pipeline vớidtypeđược chỉ địnhto(device, silence_dtype_warnings=False) → DiffusionPipelineđể trả về một pipeline vớideviceđược chỉ địnhto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipelineđể trả về một pipeline vớidevicevàdtypeđược chỉ định
unload_components[[diffusers.ModularPipeline.unload_components]]
unload_components(names: list[str] | str)
Tham số:
names : tên thành phần hoặc danh sách tên thành phần cần unmount.
Gỡ các thành phần đã chọn, giải phóng bộ nhớ của chúng.
Thuộc tính component được đặt lại về None và, nếu có gắn một ComponentsManager, component sẽ bị gỡ khỏi nó. Spec của component không bị thay đổi, do đó component có thể được tải lại sau đó bằng load_components().
update_components[[diffusers.ModularPipeline.update_components]]
update_components(**kwargs)
Tham số:
- **kwargs : Các đối tượng thành phần hoặc giá trị cấu hình cần cập nhật: - Đối tượng thành phần: Các mô hình được nạp bằng
AutoModel.from_pretrained()hoặcComponentSpec.load()sẽ được gắn thẻ thông tin nạp tự động. Các đối tượng ConfigMixin không có trọng số (ví dụ: scheduler, guider) có thể được truyền trực tiếp. - Giá trị cấu hình: Các giá trị đơn giản để cập nhật cài đặt cấu hình (ví dụ:requires_safety_checker=False)
Cập nhật các thành phần và giá trị cấu hình cũng như thông số kỹ thuật sau khi pipeline đã được khởi tạo.
Phương pháp này cho phép bạn:
- Thay thế các thành phần hiện có bằng những thành phần mới (ví dụ: cập nhật
self.unethoặcself.text_encoder) - Cập nhật các giá trị cấu hình (ví dụ: thay đổi cờ
self.requires_safety_checker)
Ngoài việc cập nhật các thành phần và giá trị cấu hình dưới dạng thuộc tính của pipeline, phương thức này cũng cập nhật:
- các thông số tương ứng trong
_component_specsvà_config_specs - từ điển
config, sẽ được lưu dưới dạngmodular_model_index.jsontrong quá trìnhsave_pretrained
Ví dụ:
# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)
# Update configuration values
pipeline.update_components(requires_safety_checker=False)
Ghi chú:
- Các thành phần được nạp bằng
AutoModel.from_pretrained()hoặcComponentSpec.load()sẽ có loading specs được giữ lại để phục vụ cho việc serialization. Các thành phần tùy chỉnh hoặc được tải cục bộ mà không có tham chiếu đến Hub sẽ có các mục trongmodular_model_index.jsoncủa chúng được cập nhật tự động trong quá trìnhsave_pretrained(). - Các đối tượng ConfigMixin không có trọng số (ví dụ: scheduler, guider) có thể được truyền trực tiếp.
Xet Storage Details
- Size:
- 15.6 kB
- Xet hash:
- e040d87ffef0381a8afd5d26d29d9604dfee5bd3198b00b736e7b66b14463a13
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.