在 Mac 上本地部署文生图服务:Z-Image-Turbo 实践

本地 AI 生成的工作空间

最近尝试在本地部署一个 AI 图像生成服务,让整个流程可以离线完成。经过一番调研,最终选择了 Z-Image-Turbo 模型。

为什么选 Z-Image-Turbo?

主要有几个考量:

  1. 开源可商用:模型完全开源,不用担心授权问题
  2. 速度快:8 步推理就能出图,相比传统扩散模型动辄 20-50 步,效率高很多
  3. 量化支持好:有 GGUF 量化版本,Mac 也能跑

硬件要求

配置显存/内存需求推荐模型版本
高端 GPU (RTX 4090等)24GB+完整版 (~32GB)
中端 GPU8-16GBQ4_K_S 量化版 (~4.7GB)
Mac (M1/M2/M3)统一内存 16GB+Q4_K_S 量化版
纯 CPU32GB+ 内存Q2_K 量化版 (~2.6GB)

我的环境是 Mac mini (M2 Pro, 16GB 内存),所以选择了 Q4_K_S 量化版

部署步骤

1. 环境准备

pip install torch diffusers transformers accelerate gguf>=0.10.0

2. 加载模型

import torch
from diffusers import ZImagePipeline, ZImageTransformer2DModel, GGUFQuantizationConfig
from huggingface_hub import hf_hub_download

device = "mps" if torch.backends.mps.is_available() else "cpu"
dtype = torch.float16 if device == "mps" else torch.float32

# 下载量化模型
gguf_path = hf_hub_download(
    repo_id="jayn7/Z-Image-Turbo-GGUF",
    filename="z_image_turbo-Q4_K_S.gguf"
)

# 加载量化配置
quant_config = GGUFQuantizationConfig(compute_dtype=dtype)

transformer = ZImageTransformer2DModel.from_single_file(
    gguf_path,
    quantization_config=quant_config,
    torch_dtype=dtype,
)

# 构建 pipeline
pipe = ZImagePipeline.from_pretrained(
    "Tongyi-MAI/Z-Image-Turbo",
    transformer=transformer,
    torch_dtype=dtype,
)
pipe.to(device)

3. 生成图片

image = pipe(
    prompt="一只可爱的柴犬,富士山背景,樱花飘落",
    height=512,  # Mac 建议 512,1024 可能内存不足
    width=512,
    num_inference_steps=4,  # 步数越少越快,4步约60秒
    guidance_scale=0.0,     # 必须设为 0
    generator=torch.Generator(device=device).manual_seed(42),
).images[0]

image.save("output.png")

关键参数调优

参数说明推荐值
num_inference_steps推理步数4-8 步(速度优先选4,质量优先选8)
height/width图片尺寸512x512 (Mac), 1024x1024 (GPU)
guidance_scale引导系数必须设为 0(Turbo 模型特性)
seed随机种子固定种子可复现结果

性能实测

在我的 Mac mini 上:

[]