魔搭ModelScope社区 04月09日 18:06
4G显存部署Flux,2分钟Wan2.1-14B视频生成,DiffSynth-Engine推理引擎开源!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

魔搭社区发布DiffSynth-Engine推理引擎,旨在提升扩散模型在工业界的应用效率。该引擎支持低显存设备部署和多卡并行推理,优化了代码结构,提升了推理性能和平台兼容性。通过提供模型量化和张量并行等技术,DiffSynth-Engine降低了硬件门槛,加速了如FLUX和Wan2.1等模型的推理速度,为用户提供了更便捷的部署体验。

💡 DiffSynth-Engine 具备清晰的代码结构,便于开发者理解和扩展,且无需依赖任何第三方库。

💾 该引擎兼容多种模型格式,支持FP8、INT8等多级别模型量化,并提供高效的卸载策略,以适应有限的GPU内存环境。

🚀 DiffSynth-Engine 优化了推理流程,支持张量并行计算,从而在不同硬件环境下均能实现快速生成,显著提升性能表现。

💻 引擎全面支持 Windows、macOS 和 Linux 系统,确保跨平台操作的一致性。例如,在A100 GPU上,通过多卡并行推理,Wan 2.1模型的推理速度可提升3.14倍。

2025-03-24 20:15 浙江

魔搭社区开源了DiffSynth-Engine推理引擎,支持低显存设备部署和多卡并行推理,显著提升模型推理效率,助力扩散模型在工业界的高效应用。

01


背景



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


了解更多详情,请访问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, FluxModelConfigfrom 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, FluxModelConfigfrom 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


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

        bf16

        q8_0

        q6_k

        q4_k_s

        q4_1












        05


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



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


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

          from diffsynth_engine.pipelines import WanVideoPipeline, WanModelConfigfrom diffsynth_engine.utils.download import fetch_modelfrom 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)

          生成视频样例:


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

            from diffsynth_engine.pipelines import WanVideoPipeline, WanModelConfigfrom diffsynth_engine.utils.download import fetch_modelfrom 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~




            👇点击关注ModelScope公众号获取

            更多技术信息~



            阅读原文

            跳转微信打开

            Fish AI Reader

            Fish AI Reader

            AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

            FishAI

            FishAI

            鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

            联系邮箱 441953276@qq.com

            相关标签

            DiffSynth-Engine 扩散模型 推理引擎 模型优化 开源
            相关文章