17|在 Windows 11 下从零编译 stable-diffusion.cpp (CUDA 硬件加速版)
1. 前言
在大模型本地化的趋势下,stable-diffusion.cpp 凭借对 GGUF 格式的卓越支持,成为了低显存、高性能部署的首选。特别是配合阿里通义出品的 Z-Image-Turbo 模型,利用单流扩散 Transformer (DiT) 架构,在消费级显卡上即可实现亚秒级的绘图响应。本文将分享如何在最新的开发环境下,为 RTX 4070 Ti Super 打造专属的加速引擎。
2. 环境准备
在开始编译前,请确保系统已备齐以下“三件套”:
- 开发工具:Visual Studio 2022 或 2026 (需安装 C++ 桌面开发组件)。
- 计算加速:NVIDIA CUDA Toolkit (推荐 12.x 或 13.x)。
- 构建工具:CMake (需加入系统环境变量 PATH)。
3. 获取源码与依赖
由于项目依赖于底层张量库 ggml,克隆时必须包含子模块:
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
注:若之前已下载但缺少文件夹,请运行 git submodule update --init --recursive。
4. 关键:针对 4070 Ti Super 的编译配置
对于使用最新版 VS 2026 的开发者,最大的挑战在于 CUDA 尚未正式支持该编译器版本。我们需要通过特定的标志位跳过版本检查,并锁定 Ada Lovelace 架构的计算能力代码 89。
请在项目根目录创建 build 文件夹并进入,然后执行以下单行命令进行配置:
cmake .. -G "Visual Studio 18 2026" -A x64 -DSD_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=89 -DCMAKE_CUDA_FLAGS="-allow-unsupported-compiler"
参数解读:
-DSD_CUDA=ON:开启 NVIDIA 显卡加速。-DCMAKE_CUDA_ARCHITECTURES=89:专为 RTX 4070 Ti Super 硬件特性优化。-allow-unsupported-compiler:允许使用尚未被 CUDA 官方认证的新版 VS 编译器。
5. 执行编译
配置成功后(看到 Generating done),执行最后的构建指令,开启多核并行编译:
cmake --build . --config Release -- /m
编译完成后,核心程序 sd.exe 及其依赖的 .dll 文件将出现在 bin\Release 目录下。
6. 实战测试:运行 Z-Image-Turbo
本次部署成功的核心在于放弃了自动加载,转而手动指定三个关键组件。这种“分体式”加载不仅解决了架构识别问题,还通过量化大幅降低了显存压力。
组件清单
- 主模型 (Diffusion Model):
z-image-turbo-Q8_0.gguf - 来源:
unsloth/Z-Image-Turbo-GGUF -
特性: 采用 Q8_0 高精度量化,保留了模型在工业工程细节上的表现力,同时体积仅约 7GB。
- 文本编码器 (LLM):
Qwen3-4B-Instruct-2507-Q4_K_M.gguf - 来源:
unsloth/Qwen3-4B-Instruct-2507-GGUF -
关键点: 必须使用 Qwen 而非 T5。Z-Image 内部张量命名遵循 LLM 规范,只有使用 Qwen 才能对齐
text_encoders.llm路径,从而解锁强大的中英文指令理解力。 - 变分自编码器 (VAE):
ae-Q8_0.gguf - 来源:
gaianet/FLUX.1-Fill-dev-GGUF - 排雷: 解决了
invalid number of dimensions: 5 > 4报错。该版本是标准的图像级 VAE,能够精准还原潜空间中的工程细节。
在完成 C++ 源码编译并开启 CUDA 加速后,使用以下显式声明指令进行推理:
.\sd-cli.exe --diffusion-model z-image-turbo-Q8_0.gguf ^
--llm Qwen3-4B-Instruct-2507-Q4_K_M.gguf ^
--vae ae-Q8_0.gguf ^
-p "A professional photographic render of a high-tech gas storage facility, realistic, 8k" ^
--steps 8 --cfg-scale 1.0 --guidance 0.0 --sampling-method euler -o result.png
7. 性能表现:RTX 4070 Ti SUPER 实测
在 RTX 4070 Ti SUPER (16GB) 的加持下,这套 GGUF 分体式方案展现了极高的推理效率:
- 显存占用:总计消耗约 10.5 GB VRAM。16GB 显存应对该方案非常从容,无需开启 CPU Offload 即可保证原生显卡推理速度,同时为后台的工程软件留出了充足的空间。
- 生成速度:8 步采样仅需 2.01 秒,采样速率稳定在 4.05 it/s 左右。
- 端到端耗时:依靠高效的 GGUF 读取机制,从输入指令到模型完全加载仅需约 3.37 秒,总生成时间(包含 VAE 解码)在 2.38 秒 左右。
8. 结语
通过将来自 Unsloth 的 Qwen3 文本编码器与 Gaianet 的 ae-GGUF 结合,我们不仅解决了复杂的张量命名冲突,更在端侧实现了工业级的高性能绘图。这种“分体式”部署思路,为后续在低显存环境下运行更大规模的 DiT 模型提供了标准参考。