DiffSynth-Engine: движок с открытым исходным кодом для развертывания FLUX, Wan 2.1

Общее введение

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

DiffSynth-Engine:低现存部署FLUX、Wan2.1的开源引擎

 

Список функций

  • Поддерживает эффективную генерацию изображений и видео, обеспечивая широкий спектр потребностей - от статичных картинок до динамичного контента.
  • Обеспечьте понятный и читаемый код, не полагаясь на сторонние библиотеки, что облегчает разработчикам модификацию и расширение.
  • Совместимость с различными базовыми моделями (например, FLUX, Wan2.1) и моделями LoRA для адаптации к различным сценариям.
  • Встроенное гибкое управление памятью, поддержка FP8, INT8 и других режимов квантования, возможность работы на устройствах с малым объемом графической памяти.
  • Оптимизация скорости вывода и поддержка тензорных параллельных вычислений для ускорения решения масштабных генеративных задач.
  • Обеспечивает кроссплатформенную поддержку и совместим с Windows, macOS (включая Apple Silicon) и Linux.
  • Поддерживает преобразование текста в изображение, текста в видео, стилизацию видео и многие другие функции.

 

Использование помощи

Процесс установки

Установка DiffSynth-Engine проста и может быть выполнена в несколько шагов.

  1. Установка основных пакетов
    Установите его с помощью pip3, введя в терминале следующую команду:
pip3 install diffsynth-engine

Убедитесь, что версия Python - 3.8 или выше. Рекомендуется использовать виртуальное окружение, чтобы избежать конфликтов зависимостей.

  1. Загрузить файлы модели
    В проект не включены файлы моделей, которые необходимо загружать вручную или с помощью кода. Например, получение FLUX Модели:
from diffsynth_engine import fetch_model
model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")

После загрузки файлы модели обычно помещаются локально в указанную директорию для вызова скриптов.

  1. Проверка установки
    После завершения установки запустите простой тестовый сценарий, чтобы убедиться, что среда работает:

    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. Низкая оптимизация памяти

  • процедура
    В примере FLUX offload_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>.

 

сценарий применения

  1. личное творчество
    Пользователи могут создавать художественные изображения с помощью FLUX или короткие видеоролики с помощью Wan2.1, подходящие для размещения в социальных сетях.
  2. Промышленное развертывание
    Предприятия могут использовать параллельные мультикарточные вычисления для быстрого создания высококачественного видеоконтента для рекламы или кинопроизводства.
  3. Технические исследования
    Разработчики могут изменять код, тестировать различные модели и количественные стратегии, а также оптимизировать технологию искусственного интеллекта.
  4. Образование и обучение
    Студенты смогут научиться практическому применению моделирования диффузии и изучить принципы генерации искусственного интеллекта с помощью простой установки.

 

QA

  1. Что делать, если установка не удалась?
    Проверьте версию Python и сетевое подключение. Убедитесь, что pip обновлен (pip install --upgrade pip), или загрузите зависимости вручную.
  2. Какие модели поддерживаются?
    Поддерживает базовые модели, такие как FLUX, Wan2.1, и LoRA-совместимые модели с тонкой настройкой, охватывающие генерацию изображений и видео.
  3. Подойдет ли недорогой компьютер?
    Можно. Настройки offload_mode После настройки параметров квантования FLUX можно запускать с 4 ГБ оперативной памяти.
  4. Как настроить параллелизм нескольких карт?
    Добавляется при инициализации трубопровода parallelism убедитесь, что количество графических процессоров совпадает.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...