4G显存部署Flux,2分钟Wan2.1-14B视频生成,DiffSynth-Engine引擎开源!

简介: 魔搭社区的开源项目 DiffSynth-Studio 自推出以来,凭借其前沿的技术探索和卓越的创新能力,持续受到开源社区的高度关注与广泛好评。截至目前,该项目已在 GitHub 上斩获超过 8,000 颗星,成为备受瞩目的开源项目之一。作为以技术探索为核心理念的实践平台,DiffSynth-Studio 基于扩散模型(Diffusion Model),在图像生成和视频生成领域孵化出了一系列富有创意且实用的技术成果,其中包括 ExVideo、ArtAug、EliGen 等代表性模块。

01.背景

魔搭社区的开源项目 DiffSynth-Studio 自推出以来,凭借其前沿的技术探索和卓越的创新能力,持续受到开源社区的高度关注与广泛好评。截至目前,该项目已在 GitHub 上斩获超过 8,000 颗星,成为备受瞩目的开源项目之一。作为以技术探索为核心理念的实践平台,DiffSynth-Studio 基于扩散模型(Diffusion Model),在图像生成和视频生成领域孵化出了一系列富有创意且实用的技术成果,其中包括 ExVideo、ArtAug、EliGen 等代表性模块。

了解更多详情,请访问DiffSynth-Studio 项目链接:https://github.com/modelscope/DiffSynth-Studio

然而,激进的技术创新在一定程度上限制了框架在产品化部署中的表现,尤其是在计算效率等方面尚未达到最优。此外快速的创新迭代,要求我们在接口的稳定性和通用型等方面难免要做一些取舍,而这些取舍在生产化系统中,可能不一定都是最好的选择。为了解决这些问题,我们今天正式推出 DiffSynth-Engine ,并对整个开源项目进行了全面的工程化改造。通过这些优化,用户能够更便捷地完成模型推理与部署工作。

DiffSynth-Engine 项目链接:

https://github.com/modelscope/DiffSynth-Engine

02.DiffSynth-Engine

DiffSynth-Engine 具备以下突出特点:

  • 清晰可读的代码 :完全重新设计并实现了扩散采样器和调度器等核心模块,无需依赖任何第三方库,代码结构简洁直观,便于开发者理解和扩展。
  • 广泛的模型支持 :兼容多种格式的基础模型(Base Model)和 LoRA 模型,能够灵活适配各类使用场景,满足用户多样化的需求。
  • 灵活的内存管理 :提供多级别模型量化支持(如 FP8、INT8)以及高效的卸载策略,帮助用户在有限的 GPU 内存条件下依然能够流畅运行大型模型。
  • 高性能推理 :优化了推理流程,支持张量并行计算,从而在不同硬件环境下均能实现快速生成,显著提升性能表现。
  • 卓越的平台兼容性 :全面支持 Windows、macOS(包括 Apple Silicon)和 Linux 系统,确保跨平台操作的一致性和流畅体验,为用户提供无缝的使用感受。

03.安装

DiffSynth-Engine 可以直接通过 pip3 安装:

pip3 install diffsynth-engine

04.使用案例1:FLUX 的低显存设备优化

FLUX 是目前最受欢迎的开源图像生成模型,但它高昂的计算资源需求让很多技术爱好者望而却步,我们在 DiffSynth-Engine 中提供了细粒度的显存优化和量化支持,让更多用户能够体验到 AIGC 模型的乐趣。

例如,在 bfloat16 精度下,FLUX 模型需要 23GB 显存才能进行推理

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="an astronaut on a horse, on the moon, black and white leica 1 9 7 0's photography, grainy, contrasty",
  width=1024,
  height=1024,
  num_inference_steps=30,
  seed=42,
)
image.save("flux_txt2img.png")

生成图片样例:

修改参数 offload_mode="sequential_cpu_offload" 后,只需要 4GB 显存即可推理,但推理时间有一定的延长。

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="sequential_cpu_offload").eval()
image = pipe(
  prompt="an astronaut on a horse, on the moon, black and white leica 1 9 7 0's photography, grainy, contrasty",
  width=1024,
  height=1024,
  num_inference_steps=30,
  seed=42,
)
image.save("flux_txt2img.png")

DiffSynth-Engine 还支持多种量化精度,在 A100 GPU 上的测试结果详见下表:

DiT dtype

T5 dtype

Compute dtype

Offload Mode

Max GPU memory

Average SSIM

E2E time (s)

DiT time(s)

bf16

bf16

bf16

cpu_offload

22.79 GB

1.0000

16.1

14.3

q8_0

q8_0

bf16

cpu_offload

12.49 GB

0.9654

23.1

16.9

q6_k

q6_k

bf16

cpu_offload

9.82 GB

0.9265

30.9

25.4

q4_k_s

q4_k_s

bf16

cpu_offload

7.02 GB

0.8736

26.5

22.3

q4_1

q4_k_s

bf16

cpu_offload

7.66 GB

0.8907

25.1

21.1

bf16

bf16

bf16

sequential_cpu_offload

3.52 GB

1.0000

91.0

87.8

q8_0

q8_0

bf16

sequential_cpu_offload

3.52 GB

0.9654

55.4

53.6

q6_k

q6_k

bf16

sequential_cpu_offload

3.52 GB

0.9265

56.9

55.2

q4_k_s

q4_k_s

bf16

sequential_cpu_offload

3.52 GB

0.8736

47.8

46.2

q4_1

q4_k_s

bf16

sequential_cpu_offload

3.52 GB

0.8907

46.5

44.9

不同的量化精度会对生成图片的效果造成不同程度的影响,以下是一些生成图片样例对比:

05.使用案例2:Wan2.1 的多卡并行推理

Wan2.1 是目前效果最好的视频生成模型之一,不同于图像生成,视频生成模型需要的计算量是更加庞大的。DiffSynth-Engine 为 Wan2.1 模型提供了张量并行推理支持,为模型在工业界的产品化部署提供便利。

当使用单卡进行推理时,在 A100 GPU 上,需要 358 秒才能生成一段分辨率为848x480,时长为2秒的视频。

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="纪实摄影风格画面,一只活泼的小狗在绿茵茵的草地上迅速奔跑。小狗毛色棕黄,两只耳朵立起,神情专注而欢快。阳光洒在它身上,使得毛发看上去格外柔软而闪亮。背景是一片开阔的草地,偶尔点缀着几朵野花,远处隐约可见蓝天和几片白云。透视感鲜明,捕捉小狗奔跑时的动感和四周草地的生机。中景侧面移动视角。",
    negative_prompt="色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",
    num_frames=41,
    width=848,
    height=480,
    seed=42,
)
save_video(video, "wan_t2v.mp4", fps=15)

生成视频样例:

https://live.csdn.net/v/470609

通过增加参数 parallelism=4和use_cfg_parallel=True,即可开启张量并行,在 4 张A100 GPU 上,实现 3.14 倍的加速,同时保证生成的视频内容不变。

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, parallelism=4, use_cfg_parallel=True)
video = pipe(
    prompt="纪实摄影风格画面,一只活泼的小狗在绿茵茵的草地上迅速奔跑。小狗毛色棕黄,两只耳朵立起,神情专注而欢快。阳光洒在它身上,使得毛发看上去格外柔软而闪亮。背景是一片开阔的草地,偶尔点缀着几朵野花,远处隐约可见蓝天和几片白云。透视感鲜明,捕捉小狗奔跑时的动感和四周草地的生机。中景侧面移动视角。",
    negative_prompt="色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",
    num_frames=41,
    width=848,
    height=480,
    seed=42,
)
save_video(video, "wan_t2v_tp.mp4", fps=15)

在不同数量的 GPU 上,DiffSynth-Engine 实现的加速效果如下表所示:

parallelism

use_cfg_parallel

耗时 (s)

加速比

1

358

1.0 x

2

True

181

1.97x

4

True

114

3.14x

目前 Wan 2.1 模型的多卡推理仍在持续优化中,敬请期待后续的更新。

06.未来展望

魔搭社区将为开源项目 DiffSynth-Studio 和 DiffSynth-Engine 提供长期的维护与支持。其中,DiffSynth-Studio 会继续专注于学术研究,致力于探索扩散模型的前沿能力与创新潜力,在第一时间为开发者提供上手模型的工具链支持;而 DiffSynth-Engine 则更面向工业应用,基于DiffSynth-Studio 项目中的技术积累,在为扩散模型的高效部署训练等场景,提供强有力的支持。让我们共同期待未来开源社区中模型生态的繁荣发展,携手推动技术进步与行业变革!

欢迎点击链接,跳转GitHub为项目点star~

https://github.com/modelscope/DiffSynth-Studio

目录
相关文章
|
并行计算 TensorFlow 调度
推荐场景GPU优化的探索与实践:CUDA Graph与多流并行的比较与分析
RTP 系统(即 Rank Service),是一个面向搜索和推荐的 ranking 需求,支持多种模型的在线 inference 服务,是阿里智能引擎团队沉淀多年的技术产品。今年,团队在推荐场景的GPU性能优化上又做了新尝试——在RTP上集成了Multi Stream,改变了TensorFlow的单流机制,让多流的执行并行,作为增加GPU并行度的另一种选择。本文详细介绍与比较了CUDA Graph与多流并行这两个方案,以及团队的实践成果与心得。
|
9月前
|
编解码 物联网 测试技术
FLUX.2-Klein 4B/9B开源:亚秒级统一图像生成与编辑
Black Forest Labs开源FLUX.2 [klein]模型家族,兼具文生图、图像编辑与多参考生成能力,端到端推理低至0.5秒,4B版本仅需13GB显存,支持消费级GPU高效运行,量化后速度提升最高2.7倍,Apache 2.0许可商用友好。
5052 1
|
8月前
|
人工智能 监控 网络安全
不想上班?让“OpenClaw”替你干活!帮你24小时开工!附秒级部署OpenClaw教程
每天清晨被闹钟叫醒,拖着疲惫的身躯奔赴工位,面对堆积如山的邮件、枯燥重复的报表、永无止境的信息整理,是不是无数次在心里默念“不想上班”?我们厌倦的从来不是工作本身,而是那些机械、琐碎、毫无创造性的重复劳动——明明几分钟就能说清的需求,却要花几小时手动执行;明明可以自动完成的流程,却要日复一日浪费时间精力。
2340 9
|
8月前
|
机器学习/深度学习 人工智能 算法
首个2步LoRA!2步实现Qwen-Image-2512高质量图片生成
阿里智能引擎推出Qwen-Image-2512-Turbo,将扩散模型压缩至仅2步生成,提速40倍——5秒内输出4张2K图,效果媲美原模型。融合Reverse-KL蒸馏、热启动与对抗学习,显著提升细节与真实性。已开源,支持ModelScope、呜哩AI及ComfyUI。
1950 0
|
11月前
|
人工智能 物联网 测试技术
Qwen-Image-Edit:全能图像编辑,驱动内容创作提质增效
通义千问团队开源Qwen-Image-Edit,基于20B模型,支持语义与外观双重编辑、精准中英文文字修改,具备SOTA图像编辑能力,可用于IP创作、风格迁移、文字修复等。
7294 6
|
编解码 人工智能 算法
DiffSynth:共建 Diffusion 开源生态
DiffSynth 是一个致力于共建 Diffusion 开源生态的项目,由段忠杰分享。该项目通过 Diffusion 技术回顾、模型生态互联与统一、视频生成技术等多方面探讨了如何构建强大的开源模型生态系统。DiffSynth-Studio 支持多种开源模型,优化计算性能,提供图像和视频生成等功能,并特别加强了对中文的支持。项目还引入了 ControlNet、loRA 等生态模型,实现风格转换和内容修改。未来将聚焦于视频时代的到来,推动视频生成技术的发展。
1582 0
|
人工智能 编解码 数据可视化
原生支持QwenImage!FlowBench 正式开启公测!本地 + 云端双模生图,AI创作更自由
FlowBench 是由 ModelScope x Muse 团队打造的一站式 AI 工作流创作平台,现已开启全面公测。该平台以工作流为核心,支持本地与云端资源协同运行,面向开发者、设计师及 AI 创作者提供高效、稳定、易用的可视化创作体验。FlowBench 原生支持 QwenImage 图像生成模型,最低仅需 8GB 显存即可实现本地生图,并支持多 LoRA 融合、多图批量生成等强大功能。用户可在 Mac 和 Windows 系统下载使用,同时享受云端与本地自由切换带来的灵活体验。公测期间,FlowBench 团队将持续优化功能,推出更多创新特性,助力用户开启高效 AI 创作之旅。
1881 11

热门文章

最新文章