Z-Image-Turbo 文生图:8 步、16GB 显存的国产快马
Z-Image(造相)是阿里通义实验室的 6B 文生图模型,本页主角 Z-Image-Turbo 是它的蒸馏版:官方教程给出的定位是 8 步采样出图、塞得进 16GB 显存的消费级设备,在企业级 H800 GPU 上推理延迟低于 1 秒。这一页带你把官方 Z-Image-Turbo 工作流从头跑通,再看 int8 量化版和 Fun Union ControlNet 两条扩展路线。
顺带一提:v0.41.0 起 ComfyUI 内置的默认文生图工作流就基于 Z-Image-Turbo——你在第一次生图里已经和它打过照面了。
学完你能做什么
- 从官方模板库加载 Z-Image-Turbo 文生图工作流,补齐三个模型文件,跑通 8 步出图
- 说得出 Z-Image 三兄弟(Turbo / Base / Edit)的分工,知道普通用户为什么选 Turbo
- 记住 Z-Image-Turbo 工作流的推荐参数:8 步、cfg 1、res_multistep + simple、1024×1024
- 硬盘吃紧时换装官方 int8 量化版,两个权重文件省约 8GB
- 用 Fun Union ControlNet 让出图跟着线稿、深度、姿态走,且知道它的文件放哪个目录
你现在的困境
- 想本地跑新模型,一看 FLUX.1 全量版约 23GB、Qwen-Image 20B,硬盘和显存双双告急
- 下载了 Z-Image-Turbo 模板,节点一片红色警告,三个模型文件不知道去哪下、放哪里
- 拿 SD1.5 的老经验调参:步数拉满、cfg 拉到 8、猛写负向提示词,出来的图反而更糟
什么时候用这一招
当你需要:
- 在 16GB 显存的消费级显卡上快速出写实风格的图
- 图里要写中英文文字——招牌、海报、封面标题
- 反复抽卡迭代:8 步的采样速度让「再跑一次」不心疼
而且不想:
- 下 20GB 级别的大权重、等 20 步以上的采样
- 只靠提示词碰运气,完全控制不了构图(第 6 步的 ControlNet 正好解决这个)
🎒 开始前的准备
- 跑通了第一次生图:会加载工作流、写提示词、按
Ctrl+Enter运行 - 模型目录规则心里有数:
diffusion_models、text_encoders、vae各放什么(忘了回看模型放哪里) - 显存 16GB 上下(官方对 Turbo 的定位);硬盘预留约 19GB 给三个模型文件
- 网络能连 Hugging Face;连不稳就走 ModelScope 国内源(第 2 步给地址)
- 一杯水 ☕——本课最大的等待就是下模型
核心思路
Z-Image 是个「国产全家桶」。 阿里通义实验室的 6B 文生图模型,架构是 S3-DiT(Scalable Single-Stream DiT,可扩展单流扩散 Transformer):文本、视觉语义、图像 VAE 三类 token 在序列层面拼成一条输入流,官方说法是这样「参数效率最大化」。文本编码器也是自家货——Qwen3 4B(qwen_3_4b.safetensors),所以它对中文提示词友好,官方亮点里明写「中英双语文字渲染准确」。
三兄弟分工(本页主角是 Turbo):
| 变体 | 定位 | 适合谁 |
|---|---|---|
| Z-Image-Turbo | 蒸馏版:8 步出图,16GB 显存可跑 | 普通用户日常出图 |
| Z-Image-Base | 非蒸馏基座:响应负向提示词、生成多样性高,面向微调 | 想训 LoRA / 微调的开发者 |
| Z-Image-Edit | 修图变体:指令式编辑 | 官方文档仅提及,暂无 ComfyUI 官方教程与模板 |
为什么 8 步就够? 蒸馏把「多步去噪」的能力压进「少步推理」,代价是模型不再靠正负提示词对比来引导——所以官方模板 cfg 固定为 1,负向条件直接用 ConditioningZeroOut 节点置零。8 步不是偷工减料,是 Turbo 类模型的设计。
工作流骨架(比 SD1.5 单 checkpoint 多了两个 loader 和一个调度补丁):
UNETLoader(扩散模型)──→ ModelSamplingAuraFlow(shift 3)──→ KSampler ──→ VAEDecode ──→ SaveImage
CLIPLoader(文本编码器)──→ CLIPTextEncode(你的提示词)──→ KSampler(positive)
└──→ ConditioningZeroOut ──→ KSampler(negative,置零)
VAELoader(VAE)────────────────────────────────────────→ VAEDecode
EmptySD3LatentImage(1024×1024 空画布)────────────────→ KSampler跟我做
第 1 步:加载官方 Z-Image-Turbo 文生图工作流
为什么:官方模板库里有配好参数和模型链接的现成工作流,比从零连线快得多。
操作:三种方式任选。
方式 A:模板库一键加载(推荐)
左侧栏 Templates 打开模板库,搜 Z-Image-Turbo,选「Z-Image-Turbo: 文生图」(模板名 image_z_image_turbo,官方模板库统计使用 1.4 万+ 次)。模板库的完整玩法见模板库。
方式 B:直接用内置默认工作流
v0.41.0 起 ComfyUI 内置的默认文生图工作流就基于 Z-Image-Turbo,全新安装的当前版本启动时会自动加载它,可以直接跟练——内置版和官方模板的采样参数一致(8 步、cfg 1)。
方式 C:下载 JSON 手动打开
官方模板文件:image_z_image_turbo.json,下载后用菜单 Workflows → Open 打开。
你应该看到:画布上是一个名为 Text to Image (Z-Image-Turbo) 的子图节点,提示词、宽高、seed、步数这些常用参数直接暴露在节点表面,旁边还有一张写满模型下载链接的便签(MarkdownNote)。子图的用法官方有专门文档:docs.comfy.org/interface/features/subgraph。
- 画布上加载了 Z-Image-Turbo 工作流(模板版或内置默认版)
第 2 步:下载三件套模型并放进对应目录
为什么:Z-Image-Turbo 不打包成单个 checkpoint,三件套分开装;放错子目录,loader 的下拉列表里就找不到文件。
操作:官方教程给的三个文件都在 Hugging Face 仓库 Comfy-Org/z_image_turbo:
| 文件 | 大小 | 放进哪个子目录 | 下载 |
|---|---|---|---|
z_image_turbo_bf16.safetensors | 11.46 GB | models/diffusion_models/ | Hugging Face |
qwen_3_4b.safetensors | 7.49 GB | models/text_encoders/ | Hugging Face |
ae.safetensors | 319.8 MB | models/vae/ | Hugging Face |
💡 国内下载走 ModelScope
同一仓库在魔搭有镜像:Comfy-Org/z_image_turbo,下载 split_files 下相同路径的三个文件即可,对国内网络更友好。
放好后画布上按 r 刷新,三个 loader 的下拉列表里分别选中对应文件。哪个文件进哪格不确定,回看模型放哪里的对照表。
你应该看到:红色缺失警告全部消失,三个 loader 节点都显示正确的文件名。
- 三个模型文件都在正确子目录里,loader 都选中了文件
第 3 步:读懂 Z-Image-Turbo 工作流的节点与参数
为什么:会调参的前提,是知道每个节点干什么、默认参数为什么是它。
操作:进子图内部(或对着内置默认工作流),逐节点对照这张表:
| 节点 | 干什么 | 模板里的关键参数 |
|---|---|---|
| UNETLoader | 装扩散模型本体(6B) | z_image_turbo_bf16.safetensors |
| CLIPLoader | 装文本编码器 | qwen_3_4b.safetensors,类型 lumina2 |
| VAELoader | 装 VAE | ae.safetensors |
| ModelSamplingAuraFlow | 噪声调度补丁,shift 控制噪声分布 | shift = 3 |
| CLIPTextEncode | 把提示词编码成条件 | 接 KSampler 的 positive |
| ConditioningZeroOut | 把负向条件置零 | Turbo 模型 cfg=1,不需要负向提示词 |
| EmptySD3LatentImage | 造空画布 | 1024×1024、批次 1 |
| KSampler | 去噪采样 | 8 步、cfg 1、res_multistep、simple、denoise 1.0 |
| VAEDecode | 潜空间解码成像素 | — |
| SaveImage | 预览并保存 | 前缀 z-image-turbo,文件落 ComfyUI/output/ |
CLIPLoader 的类型保持模板默认 lumina2——Z-Image 系列的官方工作流都这么配。
你应该看到:从左到右你能说出每个节点的职责,KSampler 参数与上表一致。
- 我能说出三件套分别由哪个 loader 装、KSampler 的关键参数是什么
第 4 步:写提示词,跑出你的第一张 8 步图
为什么:Z-Image-Turbo 的卖点是「快 + 中英双语」,提示词直接写画面就行。
操作:
- 在子图的 prompt(或 CLIPTextEncode 的 text)里写提示词。官方模板自带的示例:
Latina female with thick wavy hair, harbor boats and pastel houses behind. Breezy seaside light, warm tones, cinematic close-up.- 中文直接写也行——官方说明它支持中英文提示词。同一个画面的中文写法:
海港边的拉丁裔女性,浓密卷发,身后是渔船和糖果色小房子,海风侧光,暖色调,电影感特写- 它擅长把图里的中英文字写对——需要画面里出现文字时,把文字内容描述进提示词即可
- 尺寸默认 1024×1024,想换比例就改子图的 width / height
- 点 Run 或按
Ctrl+Enter
你应该看到:进度条只走 8 步,很快就出图;SaveImage 节点显示结果,文件名带 z-image-turbo 前缀。
- SaveImage 里出现了第一张 Z-Image-Turbo 生成的图
第 5 步:硬盘吃紧?换 int8 量化版
为什么:bf16 全量版两个大权重合计约 18.9GB;官方另发了 int8 量化版,扩散模型 11.46GB → 5.78GB,文本编码器换 fp8 版 7.49GB → 5.25GB,合计省约 8GB。
操作:模板库搜 Z-Image-Turbo Int8,加载「Z-Image-Turbo Int8: 文生图」(image_z_image_turbo_int8)。只需换两个文件,VAE 不变:
| 文件 | 大小 | 放进哪个子目录 | 下载 |
|---|---|---|---|
z_image_turbo_int8_convrot.safetensors | 5.78 GB | models/diffusion_models/ | Hugging Face |
qwen_3_4b_fp8_mixed.safetensors | 5.25 GB | models/text_encoders/ | Hugging Face |
ae.safetensors(不用换) | 319.8 MB | models/vae/ | 沿用第 2 步下载的 |
采样参数与 bf16 版完全一致(8 步、cfg 1、res_multistep / simple),提示词、尺寸用法照旧。
⚠️ 跑不起来先更新 ComfyUI
int8 模板的官方说明:请先把 ComfyUI 更新到最新——nightly 支持的模型,Desktop / Cloud 要等 stable 版本跟进才有。
你应该看到:UNETLoader 选中 z_image_turbo_int8_convrot.safetensors 后,同样 8 步出图。
- int8 版跑通,出图正常
第 6 步:加 Fun Union ControlNet 控制构图
为什么:文生图只能抽卡;ControlNet 让模型照着线稿、深度图、姿态出图,构图你说了算。Z-Image 的官方 ControlNet 是 alibaba-pai 的 Fun Union ControlNet——一个文件支持 Canny、HED、Depth、Pose、MLSD 五种控制。
操作:
- 模板库搜
Z-Image-Turbo,加载「Z-Image-Turbo 控制生图」(image_z_image_turbo_fun_union_controlnet) - 额外下载 ControlNet 权重 Z-Image-Turbo-Fun-Controlnet-Union.safetensors(2.89 GB),放进
models/model_patches/——注意不是controlnet目录,它是模型补丁,由 ModelPatchLoader 加载 - LoadImage 换成你自己的图(官方示例图 image_z_image_turbo_fun_union_controlnet_input_image.png 也可下载来试)
- 点 Run
模板默认演示 Canny 线稿控制:输入图先过 Canny 预处理(阈值 0.1 / 0.32),线稿图和 ControlNet 补丁一起注入模型(模板里的控制节点是 QwenImageDiffsynthControlnet,strength 默认 1),采样仍是 8 步、cfg 1;出图尺寸自动跟随你上传的图。
官方说明模板只演示了 Canny——想试 HED、Depth、Pose、MLSD,把预处理节点换成对应预处理器即可。ControlNet 的系统玩法见ControlNet 入门。
💡 输入图太大先缩一边
模板便签提醒:输入图超过 2500px 时,选中画布上的 ImageScaleToMaxDimension 节点按 Ctrl-B 启用(默认旁路),它会用 lanczos 把最长边缩到 1024。
你应该看到:出图的构图轮廓与输入图的线稿一致,画面内容则跟随提示词。
- ControlNet 版出图,构图跟着输入图走
检查点 ✅
- Z-Image-Turbo 文生图跑通:模板加载 → 三件套归位 → 8 步出图
- 我知道 8 步 + cfg 1、负向条件置零是蒸馏模型的设计,不是工作流坏了
- int8 版换装成功,知道它省的是权重体积和硬盘
- Fun Union ControlNet 文件放在
models/model_patches/,构图控制生效 - 知道 Z-Image 三兄弟的分工,选型不再纠结
踩坑提醒
❌ 猛写负向提示词,图却没变化
原因:Turbo 蒸馏模型 cfg=1,采样不做正负条件对比,负向提示词不起作用;官方模板干脆用 ConditioningZeroOut 把负向条件置零。正确做法:把精力全放在正向提示词的画面描述上。用内置默认工作流、界面上有负向提示词框的,同样别指望它。
❌ 照搬 SD1.5 参数:步数拉到 20、cfg 拉到 8
原因:蒸馏模型的步数与 cfg 跟着训练方式走,8 步 + cfg 1 就是官方模板配置,乱调反而崩。正确做法:参数保持模板默认,先改提示词和 seed;各参数的含义回看第一次生图的 KSampler 全参数表。
❌ ControlNet 文件放进 models/controlnet/,节点里找不到
原因:Fun Union ControlNet 是模型补丁(model patch),不走传统 ControlNet 的加载路数。正确做法:放进 models/model_patches/,由模板里的 ModelPatchLoader 加载。
❌ int8 工作流报错或加载失败
原因:int8 权重较新,旧版 ComfyUI 不认。官方模板说明 nightly 支持的模型要先更新,Desktop / Cloud 跟随 stable 发布。正确做法:先更新 ComfyUI 再试;还不行就按模型加载失败排查。
进阶技巧(可选)
🔧 一键放大到 2K:模板库还有「图像放大: Z-Image-Turbo 2K」(utility_z_image_turbo_2k_upscaler.app):RealESRGAN_x4plus 先做保守放大,Z-Image-Turbo 再用低 denoise 重采样补细节,模板默认 denoise 0.33(0.15–0.25 更贴近原图,0.25–0.35 细节更多;超过 0.35 要配详细的画面描述,否则容易出伪影)。完整玩法见商品图高清放大。
🔧 想微调?用 Z-Image-Base:非蒸馏基座响应负向提示词、生成多样性更高,官方定位是给社区微调和定制开发。模板库有「Z-Image:文生图」「Z-Image Int8: 文生图」两个模板,扩散模型文件是 z_image_bf16.safetensors,文本编码器和 VAE 与 Turbo 通用(官方下载页指向同一批文件)。
🔧 模板库搜 Z-Image 还有组合流水线:比如先用 Grok 生成、再用 Z-Image 放大加纹理的多模型模板,搜 Z-Image 能翻到不少现成组合。
本课小结
✅ Z-Image-Turbo 工作流跑通了:模板加载 → 三件套归位 → 8 步出图;当前版本 ComfyUI 的内置默认工作流也是它。
✅ 参数记住了:8 步、cfg 1、res_multistep + simple、1024×1024、shift 3;负向条件置零是蒸馏模型的设计。
✅ 两条扩展路线:int8 量化版省约 8GB 权重;Fun Union ControlNet(放 model_patches/)让构图可控。
✅ 选型清楚了:日常出图用 Turbo,微调用 Base,修图等 Z-Image-Edit 的官方教程。
关键配置回顾:
| 配置 | 推荐值 | 说明 |
|---|---|---|
| 扩散模型 | z_image_turbo_bf16.safetensors(int8 版 z_image_turbo_int8_convrot.safetensors) | 放 models/diffusion_models/ |
| 文本编码器 | qwen_3_4b.safetensors(int8 配套 qwen_3_4b_fp8_mixed.safetensors) | 放 models/text_encoders/,CLIPLoader 类型 lumina2 |
| VAE | ae.safetensors | 放 models/vae/,两版通用 |
| KSampler | 8 步、cfg 1、res_multistep、simple、denoise 1.0 | 别照搬 SD1.5 的 20 步 + cfg 8 |
| 画布 | EmptySD3LatentImage 1024×1024 | 换比例改 width / height |
| 噪声调度 | ModelSamplingAuraFlow shift 3 | 跟模板走 |
| ControlNet | Z-Image-Turbo-Fun-Controlnet-Union.safetensors | 放 models/model_patches/,支持 Canny / HED / Depth / Pose / MLSD |
下一课预告
Z-Image-Turbo 胜在快,但要在图里写大段中文文字,还得看下一课的 Qwen-Image——阿里 Qwen 团队的 20B 文生图模型,中英文字渲染是它的招牌。下一课:Qwen-Image 文生图。
你会学到:
- Qwen-Image 20B 基座与蒸馏版 15 步、Lightning LoRA 8 步的加速路线
- 在图里写中文文字(海报、标语)的玩法
- Qwen-Image-2512 摄影升级版与 ModelScope 下载
- 它和 Z-Image-Turbo 怎么分工