Diffusers documentation
Переход из DiffusionPipeline
Начало работы
Вывод
Использование конвейеров диффузии
Адаптеры и персонализация
Оптимизация и масштабирование
Базовая производительность
Скорость и память
Распределённый вывод
Квантование
Ускорение для конкретного оборудования
Методы сообщества
Модульные Diffusers
ОбзорБыстрый стартПереход из DiffusionPipelineСостоянияModularPipelineBlocksSequentialPipelineBlocksLoopSequentialPipelineBlocksAutoPipelineBlocksModularPipelineГидыComponentsManagerАвтоматические шаблоны docstring и параметровСоздание пользовательских блоковИспользование пользовательских блоков с Mellon
Обучение и дообучение
Ресурсы
Внести вклад
API
Переход из DiffusionPipeline
Если вы знакомы с DiffusionPipeline и впервые работаете с ModularPipeline, обратите внимание на несколько отличий. Они перечислены ниже, чтобы вы знали о них, прежде чем переходить к быстрому старту.
- Loading is lazy and flexible. from_pretrained() builds the pipeline from the repository’s
modular_model_index.jsonwithout 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 withnames, or the set one workflow needs withworkflow. 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.