Stable Diffusion.cpp 高性能本地生图与视频生成
本文基于 2026 年 4 月最新资料整理,涵盖 SD、Z-Image、FLUX 及 Wan 视频模型的全栈部署与实战。stable-diffusion.cpp(简称 sd.cpp)是基于 ggml的纯 C/C++ 推理引擎。它彻底摆脱了 Python 和 PyTorch 的臃肿依赖,通过底层优化实现了极低的内存占用(最低 4GB VRAM)和极快的推理速度,支持 CUDA、Vulkan、Metal 等多种后端,是低配置设备运行 AI 绘画的首选方案。
一、环境部署与编译
1. 获取预编译版本(推荐新手)
官方 GitHub Releases 页面提供了 Windows (.exe)、Linux 和 macOS 的预编译二进制文件,开箱即用。
1
2
# 前往 Releases 下载对应平台的 sd-cli 或 sd-server
# 例如 Windows: sd-cli.exe, Linux: sd-cli
2. 源码编译(自定义加速后端)
如需开启 CUDA、OpenBLAS 或 Vulkan 加速,需从源码编译。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 克隆代码(务必递归子模块)
git clone --recursive https://github.com/leejet/stable-diffusion.cpp.git
cd stable-diffusion.cpp
# 2. 创建构建目录
mkdir build && cd build
# 3. CMake 配置(根据硬件选择)
# 基础 CPU 版本
cmake ..
# CUDA 加速(NVIDIA GPU)
cmake .. -DGGML_USE_CUBLAS=ON
# Vulkan 加速(AMD/Intel/跨平台)
cmake .. -DGGML_USE_VULKAN=ON
# 4. 编译
cmake --build . --config Release
编译后产物位于 ./bin/Release/目录下。
检查PNG/JPEG格式文件的元数据信息
元数据模式可以在不加载任何模型的情况下,检查PNG/JPEG格式文件的元数据信息。
1
2
3
4
./bin/sd-cli -M metadata --image ./output.png
./bin/sd-cli -M metadata --image ./output.jpg --metadata-format json
./bin/sd-cli -M metadata --image ./output.png --metadata-raw
./bin/sd-cli -M metadata --image ./output.png --metadata-all
二、模型准备(GGUF / Safetensors)
safetensors 版 官方原版、高精度、完整权重 适合 ComfyUI、Diffusers、PyTorch 等主流 AI 绘图框架 GGUF 版 量化压缩版、轻量版 适合 llama.cpp、stable-diffusion.cpp、GGUF 专用插件 等轻量推理环境 download weights(.ckpt or .safetensors or .gguf). For example Stable Diffusion v1.5 from https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5
1
curl -L -O https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
Generate an image with just one command
1
./bin/sd-cli -m ../models/v1-5-pruned-emaonly.safetensors -p "a lovely cat"
For detailed command-line arguments, check out cli doc .
qwen_image
qwen_image.md https://hf-mirror.com/QuantStack https://hf-mirror.com/QuantStack/Qwen-Image-GGUF https://hf-mirror.com/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors https://hf-mirror.com/unsloth/Qwen2.5-VL-7B-Instruct-GGUF?show_file_info=Qwen2.5-VL-7B-Instruct-Q4_K_M.gguf
文生图
1
./ sd - cli . exe -- diffusion - model ./ models / qwen - image - 2512 - Q4_K_M . gguf -- vae ./ models / qwen_image_vae . safetensors -- llm ./ models / Qwen2 . 5 - VL - 7 B - Instruct - Q4_K_M . gguf - p '一个穿着"17you"标志的T恤的中国美女正拿着黑色的马克笔面相镜头微笑。她身后的玻璃板上手写体写着 “一、Qwen-Image的技术路线: 探索视觉生成基础模型的极限,开创理解与生成一体化的未来。二、Qwen-Image的模型特色:1、复杂文字渲染。支持中英渲染、自动布局; 2、精准图像编辑。支持文字编辑、物体增减、风格变换。三、Qwen-Image的未来愿景:赋能专业内容创作、助力生成式AI发展。”' -- cfg - scale 2.5 -- sampling - method euler - v -- offload - to - cpu - H 1024 - W 1024 -- diffusion - fa -- flow - shift 3 - o "./test3.png"
FLUX.1/FLUX.2
FLUX.1/FLUX.2 https://hf-mirror.com/black-forest-labs https://hf-mirror.com/leejet https://modelscope.cn/models/black-forest-labs/FLUX.2-dev/files?version=master 文生图
1
./ sd - cli . exe -- diffusion - model "./models/flux-2-klein-4b-Q4_0.gguf" -- llm "./models/Qwen3-4B-Q4_K_M.gguf" -- vae "./models/FLUX.2-dev-ae.safetensors" -- offload - to - cpu -- vae - tiling -- vae - on - cpu - p "a lovely dog" - W 512 - H 512 -- steps 4 -- cfg - scale 1.0 -- sampling - method euler - o "./test.png" -- diffusion - fa - v
生图优秀,速度快,中文标题失败
Z-Image-Turbo
z-image https://hf-mirror.com/jayn7/Z-Image-Turbo-GGUF https://hf-mirror.com/unsloth/Qwen3-4B-GGUF vae VAE(变分自编码器) 是 Stable Diffusion 和 FLUX 模型中的 “画质解码器” 。
作用 :模型在推理时生成的是“潜空间噪声”,VAE 负责将这些抽象的噪声数据解码成你能看懂的 RGB 高清图片。没有 VAE,你只能得到一堆乱码数据。文件识别 :在 black-forest-labs/FLUX.1-schnell仓库中,对应的 VAE 文件名通常是 ae.safetensors (约 335MB)来源 下载地址(直接点击或复制到下载工具) 备注 **HF Mirror (推荐)** https://hf-mirror.com/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors国内速度最快的镜像站 ModelScope https://modelscope.cn/models/AI-ModelScope/FLUX.1-schnell/files需进入页面手动查找 ae.safetensors下载
z-image 文生图(CLI)
z-image
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
./ sd - cli . exe -- diffusion - model "./models/z_image_turbo-Q4_K_M.gguf" -- llm "./models/Qwen3-4B-Q4_K_M.gguf" -- vae "./models/ae.safetensors" -- offload - to - cpu -- vae - tiling -- vae - on - cpu - p "a lovely cat" - W 512 - H 512 -- steps 9 -- cfg - scale 1.0 -- sampling - method euler - o "./test.png" -- diffusion - fa
./ sd - cli . exe -- diffusion - model "./models/z_image_turbo-Q4_K_M.gguf" -- llm "./models/Qwen3-4B-Q4_K_M.gguf" -- vae "./models/ae.safetensors" - p "a lovely cat" - o "./test3.png" -- cfg - scale 1.0 - v -- offload - to - cpu -- diffusion - fa - H 1024 - W 512 -- steps 9
# 启用CPU卸载与分块解码
./ sd - cli . exe - M img_gen `
-- diffusion - model "./models/z_image_turbo-Q5_K_M.gguf" `
-- llm "./models/Qwen3-4B-Q5_K_M.gguf" `
-- vae "./models/ae.safetensors" `
-- offload - to - cpu ` # 关键:将部分权重卸载到系统内存
-- vae - tiling ` # 关键:启用VAE分块解码,避免大显存峰值
-- vae - on - cpu ` # 关键:强制VAE在CPU上运行
- p "A simple test" `
- W 512 - H 512 -- steps 9 -- cfg - scale 0.0 ` # 先降低分辨率测试
-- sampling - method euler `
- o "./test.png"
# 纯 CPU 模式
./ sd - cli . exe - M img_gen `
-- diffusion - model "./models/z_image_turbo-Q3_K.gguf" ` # 必须用最低量化
-- llm "./models/Qwen3-4B-Q3_K.gguf" `
-- vae "./models/ae.safetensors" `
- b cpu ` # 关键:强制使用CPU后端
- t 4 ` # 设置CPU线程数(根据你的CPU核心数调整)
- p "A simple test" `
- W 512 - H 512 -- steps 9 -- cfg - scale 0.0 `
-- sampling - method euler `
- o "./test.png"
# 改用Q4
./ sd - cli . exe - M img_gen `
-- diffusion - model "./models/z_image_turbo-Q4_K_M.gguf" `
-- llm "./models/Qwen3-4B-Q4_K_M.gguf" ` # LLM也需对应降级
-- vae "./models/ae.safetensors" `
- p "A simple test" `
- W 512 - H 512 -- steps 9 -- cfg - scale 0.0 ` # 先试512x512
-- sampling - method euler `
- o "./test.png"
参数解析 :cli/README
-M / --mode:run mode, one of [img_gen, vid_gen, upscale, convert, metadata], default: img_gen-m / --model:指定主模型路径。-p:提示词(Prompt)。-W / -H:宽高(Z-Image 支持非 64 倍数分辨率)。--steps:采样步数(Z-Image 仅需 4-8 步)。--cfg-scale:提示词相关性(Z-Image 推荐 1.0-1.5)。--sampling-method:可选的采样方式,包括[euler、euler_a、heun、dpm2、dpm_2s_a、dpm_2m、dpm_2mv2、ipndm、ipndm_v、lcm、ddim_trailing、tcd、res_multistep、res_2s]等。默认情况下,对于Flux/SD3/Wan场景,使用euler采样方法;其他情况下则使用euler_a采样方法。--diffusion-fa : - **只在画图核心开 FA,-v, --verbose : 显示详细信息四、进阶应用:视频生成(Wan 2.2)
sd.cpp已支持最新的 Wan 2.1/2.2 视频生成模型Wan 2.1/2.2
五、WebUI 图形界面部署
部署 sd-server
官方sd-server支持前端页面 服务启动后,访问,默认端口 1234 : http://127.0.0.1:1234/ 即可使用图形界面。
七、生态整合:MCP 服务
stable-diffusion.cpp可被封装为 **MCP (Model Context Protocol)** 服务,供 Claude Desktop、OpenClaw 或 OpenCode IDE 调用。
服务化启动
sd-server
1
2
3
4
5
6
7
Svr Options:
-l, --listen-ip <string> server listen ip (default: 127.0.0.1)
--serve-html-path <string> path to HTML file to serve at root (optional)
--listen-port <int> server listen port (default: 1234)
-v, --verbose print extra info
--color colors the logging tags according to level
-h, --help show this help message and exit
1
./ sd - server . exe -- listen - port 8081 -- diffusion - model "./models/flux-2-klein-4b-Q4_0.gguf" -- llm "./models/Qwen3-4B-Q4_K_M.gguf" -- vae "./models/FLUX.2-dev-ae.safetensors" -- offload - to - cpu -- vae - tiling -- vae - on - cpu -- diffusion - fa - v
http://127.0.0.1:8081/
智能体调用
1
2
3
4
5
6
7
8
9
# 智能体调用,可以查看server终端进度,根据配置需要时间可能很长
curl -X POST "http://127.0.0.1:8081/sdapi/v1/txt2img" `
-H "Content-Type: application/json" `
-d '{"prompt": "一只可爱的小猫","n":1, "width": 768, "height": 1024, "steps": 6,"cfg_scale":5,"clip_skip":0,"seed":1521052,"denoising_strength":0.6,"negative_prompt":"","init_images":[],"inpainting_mask_invert":null,"inpainting_fill":null}' `
--output "./testa.png"
# win11
Invoke-RestMethod -Uri "http://127.0.0.1:8081/sdapi/v1/txt2img" -Method Post -Body '{"prompt":"高清封面"}' -ContentType "application/json" -OutFile "./outputs/我的图片.png"
IDE 集成(OpenCode/OpenClaw)
在 IDE 的 MCP 配置文件中添加:
1
2
3
4
5
6
7
8
9
{
"mcpServers": {
"sd-cpp": {
"command": "/absolute/path/to/sd-cli",
"args": ["-m", "/path/to/model.gguf", "--server"],
"env": {"GGML_USE_CUBLAS": "1"}
}
}
}
重启 IDE 后,AI 助手即可直接调用本地 sd.cpp进行图像生成。stable-diffusion.cpp凭借其极致的性能和轻量级特性,已成为本地 AI 视觉生成的标杆项目。无论是传统的 SD1.5、高效的 Z-Image,还是前沿的 Wan 视频模型,它都能在消费级硬件上提供流畅的体验。建议开发者关注其 GGUF 量化生态,以获得最佳的效率提升。
项目地址和资源