Diffusers documentation

Переход из DiffusionPipeline

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Переход из DiffusionPipeline

Если вы знакомы с DiffusionPipeline и впервые работаете с ModularPipeline, обратите внимание на несколько отличий. Они перечислены ниже, чтобы вы знали о них, прежде чем переходить к быстрому старту.

  • Loading is lazy and flexible. from_pretrained() builds the pipeline from the repository’s modular_model_index.json without loading any weights. load_components() then loads them, and it doesn’t have to be all at once: by default it loads everything, but you can load only the components you name with names, or the set one workflow needs with workflow. update_components() lets you reuse a component you already have, or one that differs from the repository’s spec. See Loading components and Updating components.
  • ModularPipeline читает другой индекс, modular_model_index.json, но также работает с репозиторием, в котором есть только model_index.json, если у модели есть модульный пайплайн. Обратное неверно: классы DiffusionPipeline и AutoPipeline не работают с репозиторием, в котором есть только modular_model_index.json.
  • Вызов возвращает состояние пайплайна, в котором также хранятся промежуточные значения (prompt_embeds, latents, …). Запросите нужные данные с помощью аргумента output: output="images" или output=["images", "latents"], либо прочитайте атрибут состояния, как показано в быстром старте. См. Состояния.
  • Classifier-free guidance поддерживается в компоненте guider, а не в аргументе вызова guidance_scale: pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0)). См. руководство по guiders.
  • Метод callback_on_step_end отсутствует; однако вы можете вставить блок в цикл денойзинга, чтобы использовать свои существующие функции обратного вызова. См. раздел Модульные конвейеры в руководстве по обратным вызовам.
  • Пайплайн представляет собой граф блоков, которые можно изменять (удалять, вставлять, заменять) перед сборкой с помощью init_pipeline(); pipe.blocks возвращает копию, поэтому сначала отредактируйте блоки. См. Создание новых рабочих процессов.
  • Разгрузка (offloading) обрабатывается ComponentsManager, который может обслуживать несколько конвейеров, разделяющих компоненты. См. руководство по ComponentsManager.
Update on GitHub