Buckets:

mishig's picture
|
download
raw
19.2 kB

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)

Зарегистрируйте компоненты с соответствующими им спецификациями.

Этот метод отвечает за:

  1. Устанавливает объекты компонентов в качестве атрибутов загрузчика (например, self.unet = unet)
  2. Обновляет словарь конфигурации, который будет сохранён как modular_model_index.json во время save_pretrained (только для компонентов from_pretrained)
  3. Добавляет компоненты в менеджер компонентов, если он подключен (только для компонентов 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 для возврата пайплайна с указанным dtype
  • to(device, silence_dtype_warnings=False) → DiffusionPipeline для возврата пайплайна с указанным device
  • to(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)

Обновите компоненты и значения конфигурации и спецификации после того, как конвейр будет создан.

Этот метод позволяет вам:

  1. Замените существующие компоненты новыми (например, обновите self.unet или self.text_encoder)
  2. Обновление значений конфигурации (например, изменение флага 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.