将 Hugging Face下载的 Diffusers 模型转换为 WebUI 可用格式

核心工具

使用 diffusers/scripts 目录中的转换脚本:

  • SDXL 模型convert_diffusers_to_original_sdxl.py
  • 标准 SD 模型convert_diffusers_to_original_stable_diffusion.py
完整步骤
  1. 安装依赖

    pip install torch diffusers transformers safetensors
    
  2. 下载模型

    git clone https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0
    
  3. 执行转换

    # SDXL 示例
    python diffusers/scripts/convert_diffusers_to_original_sdxl.py \
      --model_path "./stable-diffusion-xl-base-1.0" \
      --checkpoint_path "./sdxl_webui.safetensors" \
      --use_safetensors
    
  4. 部署到 WebUI
    将生成的 .safetensors 文件放入:

    stable-diffusion-webui/models/Stable-diffusion/
    
关键细节
  1. 文件夹结构要求

    /model_dir/
    ├── unet/                  # 必须小写
    ├── vae/
    ├── text_encoder/          # SDXL 需要 text_encoder_2
    └── model_index.json       # 必须存在
    
  2. 参数说明

    • --model_path:Diffusers 模型路径
    • --checkpoint_path:输出文件路径(扩展名必须为 .safetensors)
    • --use_safetensors:输出安全格式
    • --half:FP16 精度(可选,减小文件体积)
  3. 文件验证

    # 检查关键权重是否存在
    python -c "from safetensors import safe_open; 
    f=safe_open('model.safetensors','pt'); 
    assert 'model.diffusion_model.input_blocks.0.0.weight' in f.keys()"
    
错误处理
  • 文件未找到:检查路径是否为纯英文
  • CUDA OOM:移除 --half 参数
  • 键名错误:确认模型类型与脚本匹配(SDXL 用 SDXL 脚本)
其他脚本说明

目录包含 50+ 专用转换脚本:

  • 视频生成:convert_i2vgen_to_diffusers.py
  • 音乐生成:convert_music_spectrogram_to_diffusers.py
  • ControlNet:convert_original_controlnet_to_diffusers.py

转换耗时参考:SDXL 模型约 3-5 分钟(RTX 3090)

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐