DiffSynth-Engine: движок с открытым исходным кодом для развертывания FLUX, Wan 2.1
Общее введение
DiffSynth-Engine - это проект с открытым исходным кодом от ModelScope, размещенный на GitHub, который основан на технологии диффузионного моделирования и ориентирован на эффективную генерацию изображений и видео для разработчиков с целью развертывания моделей искусственного интеллекта в производственных средах. Проект развился из DiffSynth-Studio, после комплексной инженерной трансформации, оптимизации вычислительной эффективности и простоты развертывания. Он поддерживает множество моделей (например, FLUX, Wan2.1) и обеспечивает четкую структуру кода и гибкое управление памятью. По состоянию на март 2025 года проект постоянно обновляется и пользуется большим вниманием со стороны сообщества разработчиков с открытым исходным кодом, стремясь продвинуть практичность создания ИИ.

Список функций
- Поддерживает эффективную генерацию изображений и видео, обеспечивая широкий спектр потребностей - от статичных картинок до динамичного контента.
- Обеспечьте понятный и читаемый код, не полагаясь на сторонние библиотеки, что облегчает разработчикам модификацию и расширение.
- Совместимость с различными базовыми моделями (например, FLUX, Wan2.1) и моделями LoRA для адаптации к различным сценариям.
- Встроенное гибкое управление памятью, поддержка FP8, INT8 и других режимов квантования, возможность работы на устройствах с малым объемом графической памяти.
- Оптимизация скорости вывода и поддержка тензорных параллельных вычислений для ускорения решения масштабных генеративных задач.
- Обеспечивает кроссплатформенную поддержку и совместим с Windows, macOS (включая Apple Silicon) и Linux.
- Поддерживает преобразование текста в изображение, текста в видео, стилизацию видео и многие другие функции.
Использование помощи
Процесс установки
Установка DiffSynth-Engine проста и может быть выполнена в несколько шагов.
- Установка основных пакетов
Установите его с помощью pip3, введя в терминале следующую команду:
pip3 install diffsynth-engine
Убедитесь, что версия Python - 3.8 или выше. Рекомендуется использовать виртуальное окружение, чтобы избежать конфликтов зависимостей.
- Загрузить файлы модели
В проект не включены файлы моделей, которые необходимо загружать вручную или с помощью кода. Например, получение FLUX Модели:
from diffsynth_engine import fetch_model
model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")
После загрузки файлы модели обычно помещаются локально в указанную директорию для вызова скриптов.
- Проверка установки
После завершения установки запустите простой тестовый сценарий, чтобы убедиться, что среда работает:from diffsynth_engine import __version__ print(__version__)
Вывод номера версии означает, что установка прошла успешно.
Основные функции
1. Генерация изображений (на примере FLUX)
- процедура
Используйте следующий код для создания изображения:from diffsynth_engine.pipelines import FluxImagePipeline, FluxModelConfig from diffsynth_engine import fetch_model model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors") config = FluxModelConfig(dit_path=model_path) pipe = FluxImagePipeline.from_pretrained(config, offload_mode="cpu_offload").eval() image = pipe( prompt="月球上的宇航员骑马,黑白摄影风格,颗粒感强,对比度高", width=1024, height=1024, num_inference_steps=30, seed=42, ) image.save("flux_txt2img.png")
- Описание
По умолчанию требуется 23 ГБ видеопамяти. Если у вас недостаточно памяти, вы можете изменить значениеoffload_mode="sequential_cpu_offload"
Процесс квантования может быть запущен с использованием всего 4 ГБ оперативной памяти, но время генерации увеличивается (например, 91 секунда). Поддерживается многократная точность квантования (например, q8_0, q6_k), а требования к памяти могут быть снижены до 7-12 ГБ.
2. Генерация видео (на примере Wan 2.1)
- процедура
Используйте следующий код для создания видеоролика:from diffsynth_engine.pipelines import WanVideoPipeline, WanModelConfig from diffsynth_engine.utils.download import fetch_model from diffsynth_engine.utils.video import save_video config = WanModelConfig( model_path=fetch_model("muse/wan2.1-14b-bf16", path="dit.safetensors"), t5_path=fetch_model("muse/wan2.1-umt5", path="umt5.safetensors"), vae_path=fetch_model("muse/wan2.1-vae", path="vae.safetensors"), ) pipe = WanVideoPipeline.from_pretrained(config) video = pipe( prompt="小狗在草地上奔跑,阳光照耀,背景有野花和蓝天", num_frames=41, width=848, height=480, seed=42, ) save_video(video, "wan_t2v.mp4", fps=15)
- Описание
Для создания 2 секунд видео на одной карте требуется 358 секунд. Если использовать 4 графических процессора A100 и включить тензорный параллелизм (parallelism=4, use_cfg_parallel=True
),时间缩短至 114 秒,加速比达 3.14 倍。
3. Низкая оптимизация памяти
- процедура
В примере FLUXoffload_mode
превратиться вsequential_cpu_offload
::pipe = FluxImagePipeline.from_pretrained(config, offload_mode="sequential_cpu_offload").eval()
- Описание
Требования к графической памяти были снижены с 23 ГБ до 3,52 ГБ для средних устройств. Режимы квантования (например, q4_k_s) еще больше уравновешивают скорость и качество, генерируя немного уменьшенные, но все еще полезные результаты.
4. Параллельные рассуждения с несколькими картами
- процедура
В примере Wan2.1 добавьте параметр parallel:pipe = WanVideoPipeline.from_pretrained(config, parallelism=4, use_cfg_parallel=True)
- Описание
Поддержка параллельных вычислений на нескольких GPU. 2 GPU ускоряют работу в 1,97 раза, 4 GPU - в 3,14 раза для развертывания в промышленных масштабах.
предостережение
- требования к оборудованию: 8 ГБ видеопамяти рекомендуется для создания изображений, 24 ГБ - для создания видео или многокарточных конфигураций.
- путь модели: Чтобы обеспечить
fetch_model
Загруженный путь верен, в противном случае необходимо указать его вручную. - ссылка на документацию: Подробнее об использовании смотрите на официальной странице GitHub.
<https://github.com/modelscope/DiffSynth-Engine>
.
сценарий применения
- личное творчество
Пользователи могут создавать художественные изображения с помощью FLUX или короткие видеоролики с помощью Wan2.1, подходящие для размещения в социальных сетях. - Промышленное развертывание
Предприятия могут использовать параллельные мультикарточные вычисления для быстрого создания высококачественного видеоконтента для рекламы или кинопроизводства. - Технические исследования
Разработчики могут изменять код, тестировать различные модели и количественные стратегии, а также оптимизировать технологию искусственного интеллекта. - Образование и обучение
Студенты смогут научиться практическому применению моделирования диффузии и изучить принципы генерации искусственного интеллекта с помощью простой установки.
QA
- Что делать, если установка не удалась?
Проверьте версию Python и сетевое подключение. Убедитесь, что pip обновлен (pip install --upgrade pip
), или загрузите зависимости вручную. - Какие модели поддерживаются?
Поддерживает базовые модели, такие как FLUX, Wan2.1, и LoRA-совместимые модели с тонкой настройкой, охватывающие генерацию изображений и видео. - Подойдет ли недорогой компьютер?
Можно. Настройкиoffload_mode
После настройки параметров квантования FLUX можно запускать с 4 ГБ оперативной памяти. - Как настроить параллелизм нескольких карт?
Добавляется при инициализации трубопроводаparallelism
убедитесь, что количество графических процессоров совпадает.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...