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)
Параметры:
blocks : ModularPipelineBlocks, блоки, используемые в конвейере
Базовый класс для всех модульных конвейеров.
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)
Параметры:
pretrained_model_name_or_path (str или os.PathLike, необязательно) : Путь к конфигурации предобученного конвейера. Сначала будет предпринята попытка загрузить конфигурацию из modular_model_index.json, затем, для совместимости со стандартными немодульными репозиториями, будет использован model_index.json. Если pretrained_model_name_or_path не содержит конфигурации конвейера, она будет установлена в None при инициализации.
trust_remote_code (bool, optional) : Нужно ли доверять удалённому коду при загрузке конвейера. Значение должно быть установлено в True, если вы хотите создавать блоки конвейера на основе пользовательского кода из pretrained_model_name_or_path
components_manager (ComponentsManager, необязательно) : экземпляр ComponentsManager для управления несколькими компонентами в разных конвейерах и применения стратегий выгрузки.
collection (str, optional) --` Имя коллекции для организации компонентов в ComponentsManager.
workflow (str, optional) : Имя workflow, объявленного блоками pipeline. Если указано, блоки обрезаются до блоков выполнения этого workflow, поэтому pipeline ожидает — и load_components() загружает — только те компоненты, которые использует данный workflow.
Загрузите ModularPipeline из репозитория на Hugging Face Hub.
get_component_spec[[diffusers.ModularPipeline.get_component_spec]]
get_component_spec(name: str)
Возвращает:
- копию объекта ComponentSpec для указанного имени компонента
load_components[[diffusers.ModularPipeline.load_components]]
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
Параметры:
names : list of component names to load. If None, will load all components with default_creation_method == "from_pretrained". If provided as a list or string, will load only the specified components.
workflow : имя workflow, объявленного блоками pipeline. Если указано, загружаются только те компоненты, которые используются блоками выполнения этого workflow. Не может использоваться вместе с names.
- **kwargs : дополнительные аргументы, передаваемые в
from_pretrained(). Могут быть: - единым значением, применяемым ко всем загружаемым компонентам, например dtype=torch.bfloat16 - словарём, например dtype={"unet": torch.bfloat16, "default": torch.float32} - если переданы другие поля загрузки в kwargs, потенциально переопределяют ComponentSpec, напримерpretrained_model_name_or_path,variant,revisionи т. д. - если переданы другие поля загрузки в kwargs, потенциально переопределяют ComponentSpec, напримерpretrained_model_name_or_path,variant,revisionи т. д.
Загрузите выбранные компоненты из спецификаций.
register_components[[diffusers.ModularPipeline.register_components]]
register_components(**kwargs)
Параметры:
- **kwargs : Именованные аргументы, где ключи — это имена компонентов, а значения — объекты компонентов. Например, register_components(unet=unet_model, text_encoder=encoder_model)
Зарегистрируйте компоненты с соответствующими им спецификациями.
Этот метод отвечает за:
- Устанавливает объекты компонентов в качестве атрибутов загрузчика (например, self.unet = unet)
- Обновляет словарь конфигурации, который будет сохранён как
modular_model_index.jsonво времяsave_pretrained(только для компонентов from_pretrained) - Добавляет компоненты в менеджер компонентов, если он подключен (только для компонентов from_pretrained)
Этот метод вызывается, когда:
- Компоненты сначала инициализируются в init:
- компоненты from_pretrained не загружаются во время init, поэтому регистрируются как None;
- компоненты, отличные от from_pretrained, создаются во время init и регистрируются как сам объект
- Компоненты обновляются с помощью метода
update_components(): например, loader.update_components(unet=unet) или loader.update_components(guider=guider_spec) - (from_pretrained) Компоненты загружаются с помощью метода
load_components(): например, loader.load_components(names=["unet"]) или loader.load_components() для загрузки всех компонентов по умолчанию
Примечания:
- При регистрации None для компонента атрибуту присваивается значение None, но спецификации всё равно синхронизируются со словарём конфигурации, который сохраняется как
modular_model_index.jsonво время вызоваsave_pretrained - component_specs обновляются в соответствии с новым компонентом вне этого метода, например, в методе
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)
Параметры:
save_directory (str или os.PathLike) : Каталог для сохранения конвейера. Будет создан, если не существует.
safe_serialization (bool, необязательный, по умолчанию True) : Сохранять ли модель с помощью safetensors или традиционным способом PyTorch с использованием pickle.
variant (str, необязательный) : Если указано, веса сохраняются в формате pytorch_model.<variant>.bin.
max_shard_size (int или str, по умолчанию None) : Максимальный размер контрольной точки перед её разбиением на части. Каждая часть контрольной точки будет иметь размер, меньший этого значения. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, "5GB"). Если значение указано в виде целого числа, единицей измерения являются байты.
push_to_hub (bool, необязательный, по умолчанию False) : Нужно ли отправить пайплайн на Hugging Face model hub после его сохранения.
- **kwargs : Дополнительные именованные аргументы: -
overwrite_modular_index(bool, необязательный, по умолчаниюTrue): следует ли обновитьmodular_model_index.jsonтак, чтобы спецификация загрузки каждого сохраняемого компонента указывала на место назначения:repo_idпри отправке на Hub, в противном случаеsave_directory. Компоненты, которые не загружены, не сохраняются и всегда сохраняют свои записанные спецификации загрузки. ПередайтеFalse, чтобы также сохранить записанные спецификации компонентов, которые сохраняются (например, для индекса, который намеренно ссылается на другие репозитории); компоненты без идентификатора загрузки (например, пользовательские модели, добавленные с помощьюupdate_components) всё равно переписываются, поскольку у них нет записанного источника. -repo_id(str, необязательный): идентификатор репозитория, в который следует отправить конвейер. По умолчанию используется последний компонентsave_directory. -commit_message(str, необязательный): сообщение коммита для операции отправки на Hub. -private(bool, необязательный): следует ли сделать репозиторий приватным. -create_pr(bool, необязательный, по умолчаниюFalse): следует ли создать pull request вместо прямой отправки. -token(str, необязательный): токен Hugging Face для аутентификации.
Сохраните конвейер и все его компоненты в каталог, чтобы его можно было загрузить снова с помощью метода класса from_pretrained().
к[[diffusers.ModularPipeline.to]]
to(*args, **kwargs)
Параметры:
dtype (torch.dtype, необязательный) : Возвращает конвейер с указанным dtype
device (torch.Device, необязательный) : Возвращает конвейер с указанным device
silence_dtype_warnings (str, необязательный, по умолчанию False) : Указывает, следует ли пропускать предупреждения, если целевой dtype несовместим с целевым device.
Возвращает: DiffusionPipeline
Пайплайн преобразован в указанный dtype и/или dtype.
Выполняет преобразование dtype и/или device для Pipeline. Значения torch.dtype и torch.device выводятся из аргументов self.to(*args, **kwargs).
> Если у конвейера уже есть правильные torch.dtype и torch.device, он возвращается без изменений. В противном случае > возвращаемый конвейер является копией self с требуемыми torch.dtype и torch.device.
Способы вызова to:
to(dtype, silence_dtype_warnings=False) → DiffusionPipelineдля возврата пайплайна с указаннымdtypeto(device, silence_dtype_warnings=False) → DiffusionPipelineдля возврата пайплайна с указаннымdeviceto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipelineвозвращает пайплайн с указаннымиdeviceиdtype
unload_components[[diffusers.ModularPipeline.unload_components]]
unload_components(names: list[str] | str)
Параметры:
names : имя компонента или список имён компонентов для разгрузки.
Разгрузите выбранные компоненты, освободив их память.
Атрибут component возвращается к значению None, а если подключён ComponentsManager, компонент удаляется из него. Спецификация компонента не изменяется, поэтому компонент можно снова загрузить позже с помощью load_components().
update_components[[diffusers.ModularPipeline.update_components]]
update_components(**kwargs)
Параметры:
- **kwargs : Объекты компонентов или значения конфигурации для обновления: - Объекты компонентов: Модели, загруженные с помощью
AutoModel.from_pretrained()илиComponentSpec.load(), автоматически помечаются информацией о загрузке. Объекты ConfigMixin без весов (например, планировщики, гидеры) можно передавать напрямую. - Значения конфигурации: Простые значения для обновления настроек конфигурации (например,requires_safety_checker=False)
Обновите компоненты и значения конфигурации и спецификации после того, как конвейр будет создан.
Этот метод позволяет вам:
- Замените существующие компоненты новыми (например, обновите
self.unetилиself.text_encoder) - Обновление значений конфигурации (например, изменение флага
self.requires_safety_checker)
Помимо обновления компонентов и значений конфигурации в качестве атрибутов конвейера, метод также обновляет:
- соответствующие спецификации в
_component_specsи_config_specs - словарь
config, который будет сохранён какmodular_model_index.jsonпри вызовеsave_pretrained
Примеры:
# 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)
Примечания:
- Компоненты, загруженные с помощью
AutoModel.from_pretrained()илиComponentSpec.load(), будут Загруженные спецификации сохраняются для сериализации. Для пользовательских или локально загруженных компонентов без ссылок на Hub записи вmodular_model_index.jsonбудут автоматически обновлены во время вызоваsave_pretrained(). - Объекты ConfigMixin без весов (например, планировщики, направляющие) можно передавать напрямую.
Xet Storage Details
- Size:
- 19.2 kB
- Xet hash:
- fedc682448a55d7f47343666e1fffad4ab9f6925c3181a8a984f1584aa7c7aaa
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.