完整教程:3 条命令跑通 20+ 开源扩散模型,DiffSynth-Studio 推理与 LoRA 训练指南
【免费下载链接】DiffSynth-StudioEnjoy the magic of Diffusion models!项目地址: https://gitcode.com/GitHub_Trending/dif/DiffSynth-Studio
DiffSynth-Studio 是 ModelScope 团队维护的开源扩散模型引擎,支持文生图、文生视频、文生音乐模型的推理、LoRA 训练与全量微调。它内置显存管理与参数量化,8GB 级消费级显卡也能跑起大模型。下面用 3 条命令完成安装,再带你走完一次从推理到训练的完整流程。
能做什么
- 覆盖主流模型:支持 FLUX、Qwen-Image、Z-Image、Wan、LTX-2、MiniMax-H3、ACE-Step 等 20 多个模型架构,涵盖文生图、文生视频、文生音乐与图像质量评估
- 推理与训练同框架:几乎所有支持推理的模型都支持 LoRA 训练和全量微调,每个模型在 examples/ 下都配有现成的启动脚本和训练后验证脚本
- 低显存跑大模型:显存管理模块在磁盘、内存、显存间动态调度参数,文档中 Qwen-Image 的显存占用可从 56G 经 CPU Offload 降到 40G,再经 FP8 量化降到 21G
- 参数量化:统一
QuantizeConfig入口,支持 NF4、INT8 等精度,同时用于推理和 LoRA 训练 - 每套示例双版本:
model_inference/与model_inference_low_vram/各一份,高显存和低显存用户直接取用
快速上手
环境要求如下(依据 pyproject.toml 与 安装文档):
| 项目 | 要求 |
|---|---|
| Python | 3.10.1 及以上,自动安装 torch>=2.0.0、transformers 等依赖 |
| GPU | NVIDIA CUDA 显卡开箱即用;AMD ROCm、Apple Silicon、Ascend NPU 需按文档换 torch 版本或改 device 参数 |
| 显存 | 低显存示例版支持消费级显卡;LoRA 训练可叠加量化与 CPU Offload 进一步降显存 |
| 磁盘 | 建议预留 10GB 以上存放模型文件 |
最短可用命令链,共 3 条:
git clone https://gitcode.com/GitHub_Trending/dif/DiffSynth-Studio cd DiffSynth-Studio pip install -e .基础安装保持轻量,按需追加依赖组:pip install -e ".[quant]"启用量化,.[audio]支持音频模型,.[training]用于分布式训练,.[all]一次装齐。
功能全景
| 模块路径 | 功能说明 |
|---|---|
| diffsynth/models/ | 各扩散模型的架构定义:DiT、VAE、文本编码器、ControlNet 等 |
| diffsynth/pipelines/ | 推理管道,每个模型一个 Pipeline 类,from_pretrained一次性加载 |
| diffsynth/diffusion/ | 训练框架:loss、调度器、训练 runner 与模板机制 |
| diffsynth/core/vram/ | 显存管理,含层级磁盘 offload,同时释放内存与显存 |
| diffsynth/core/quant/ | 量化后端(bitsandbytes、torchao、comfy-kitchen)与统一配置 |
| examples/ | 20 余个模型的示例:推理、低显存推理、LoRA/全量训练、验证脚本 |
| docs/zh/ | 中文文档:模型详解、训练指南、显存管理与环境变量 |
实例
以 Z-Image-Turbo 为例走一个完整场景:低显存推理 → LoRA 训练 → 验证,3 步完成。
第 1 步:跑通文生图推理。参考 examples/z_image/model_inference/Z-Image-Turbo.py,模型首次运行会自动从 ModelScope 下载:
from diffsynth.pipelines.z_image import ZImagePipeline, ModelConfig import torch pipe = ZImagePipeline.from_pretrained(torch_dtype=torch.bfloat16, device="cuda", model_configs=[ModelConfig(model_id="Tongyi-MAI/Z-Image-Turbo", origin_file_pattern="transformer/*.safetensors"), ModelConfig(model_id="Tongyi-MAI/Z-Image-Turbo", origin_file_pattern="text_encoder/*.safetensors"), ModelConfig(model_id="Tongyi-MAI/Z-Image-Turbo", origin_file_pattern="vae/diffusion_pytorch_model.safetensors")], tokenizer_config=ModelConfig(model_id="Tongyi-MAI/Z-Image-Turbo", origin_file_pattern="tokenizer/")) image = pipe(prompt="Young Chinese woman in red Hanfu, night lights.", seed=42, rand_device="cuda") image.save("image.jpg")第 2 步:改为低显存模式。给每个ModelConfig展开下面这份配置即可,组件不用时自动挪回 CPU:
vram_config = {"offload_dtype": torch.bfloat16, "offload_device": "cpu", "onload_dtype": torch.bfloat16, "onload_device": "cpu", "preparing_dtype": torch.bfloat16, "preparing_device": "cuda", "computation_dtype": torch.bfloat16, "computation_device": "cuda"}第 3 步:用示例数据训练一个 LoRA。命令与 examples/z_image/model_training/lora/Z-Image-Turbo.sh 一致,省略号处为完整参数,跑完用同目录validate_lora/Z-Image-Turbo.py加载 LoRA 验证效果:
modelscope download --dataset DiffSynth-Studio/diffsynth_example_dataset --include "z_image/Z-Image-Turbo/*" --local_dir ./data/diffsynth_example_dataset accelerate launch examples/z_image/model_training/train.py \ --dataset_base_path data/diffsynth_example_dataset/z_image/Z-Image-Turbo \ --dataset_metadata_path data/diffsynth_example_dataset/z_image/Z-Image-Turbo/metadata.csv \ --model_id_with_origin_paths "Tongyi-MAI/Z-Image-Turbo:transformer/*.safetensors,Tongyi-MAI/Z-Image-Turbo:text_encoder/*.safetensors,Tongyi-MAI/Z-Image-Turbo:vae/diffusion_pytorch_model.safetensors" \ --lora_base_model dit --lora_rank 32 --num_epochs 5 \ --output_path ./models/train/Z-Image-Turbo_lora训练参数全表见 模型训练文档,任意train.py加-h也能查看。
避坑指南
| 现象 | 原因 | 解决 |
|---|---|---|
| 模型下载慢或失败 | 默认从 ModelScope 国内站下载,境外网络不稳定 | 按 环境变量文档 设置MODELSCOPE_ENDPOINT=https://modelscope.ai或DIFFSYNTH_DOWNLOAD_SOURCE="huggingface"换源 |
运行报ModuleNotFoundError: av或bitsandbytes | 基础安装只装必需依赖 | 按需pip install -e ".[audio,quant]"补装对应依赖组 |
| 低显存 GPU 报 CUDA OOM | 所有模型组件一次性驻留显存 | 改用model_inference_low_vram/示例版;Qwen-Image 实测可从 56G 降到 40G(CPU Offload)甚至 21G(FP8 量化),见 显存管理文档 |
| AMD/NPU 上 torch 版本冲突 | 基础安装默认拉 CUDA 版 torch | 先装对应设备的 torch 轮子,再pip install -e .;NPU 直接用pip install -e ".[npu]" |
| Apple Silicon 报 device 错误 | 示例代码默认"cuda" | 将代码中"cuda"全部改为"mps"或"cpu" |
进阶方向
- docs/zh/Training/Split_Training.md:拆分训练,把文本编码等前处理移出训练阶段,更快更省显存
- docs/zh/Pipeline_Usage/Quantization.md:量化全功能,含加载预量化权重与量化 + LoRA 训练
- docs/zh/Developer_Guide/Building_a_Pipeline.md:如何给新模型接入自己的 Pipeline
- examples/qwen_image/model_training/:最完整的训练示例集,含 ControlNet、蒸馏 LoRA 等特殊场景
DiffSynth-Studio 把扩散模型的推理、训练和低显存优化收敛在同一套代码里,示例脚本开箱即用。现在克隆仓库、跑通第 1 步的 Z-Image-Turbo,然后按 examples 目录训练你的第一个 LoRA。
【免费下载链接】DiffSynth-StudioEnjoy the magic of Diffusion models!项目地址: https://gitcode.com/GitHub_Trending/dif/DiffSynth-Studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考