调 AI 绘图参数时,先固定模型、提示词、尺寸与随机种子,再分别比较采样步数和引导强度。否则一张图同时换了多个条件,就很难知道变化来自哪里。下面用 Diffusers 与 SD 1.5 生成四种配置,并保存参数记录,帮助你做可追溯的选择。
本文适合会运行 Python、希望了解参数影响的读者。依据 2026 年 10 月 1 日核对的 Diffusers 0.35.1 文档和源码编写,未下载模型生成图,没有测速度或画质。15/30 步与 4/7 引导强度是教学对照,不代表推荐排行榜。

两个参数分别控制什么
| 参数 | 作用 | 不应当作什么 |
|---|---|---|
| num_inference_steps | 采样过程的去噪步数,更多步通常增加计算 | 不等于画质必然按比例提升 |
| guidance_scale | 在本例 SD 1.5 中调整文本引导影响 | 不等于图生图的重绘强度,也不保证越高越符合全部条件 |
SD 管线源码说明步数与推理计算有关,引导值较高会强化提示词影响,也可能损害图像质量。不同模型和采样器的参数语义与适合范围可能不同,本页不把这组数值推广到 FLUX、SDXL 或其他管线。
固定种子时要重新创建 Generator
官方种子指南说明,Generator 对象包含会推进的随机状态。因此每次比较都重新用同一个种子创建 Generator;不要只在循环外 manual_seed 一次,然后把同一个对象反复传进去。
相同种子有助于控制实验条件,但不能保证跨硬件、PyTorch 版本或 Diffusers 版本的图像逐像素相同。保留完整配置与生成图片,才便于追溯;只记“种子 42”不够。
安装环境,运行四种配置
按 PyTorch 安装页配置与你系统和驱动匹配的 CUDA 版本。使用同一个 Python 环境执行检查,可用性必须为 True,再装依赖。本文的 float16 加 CPU offload 方案仍需 CUDA GPU,不提供纯 CPU 或固定显存运行保证。
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
python -m pip install diffusers==0.35.1 transformers==4.56.2 accelerate==1.10.1 safetensors pillow
保存下列代码为 compare_params.py,运行 python compare_params.py。先用一个主体简单的提示词,不在第一轮同时加入人群、密集文字和复杂动作。首次需下载底模;使用条件见 SD 1.5 模型卡。
from pathlib import Path
import json
import platform
import torch
import diffusers
from diffusers import AutoPipelineForText2Image
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipe = AutoPipelineForText2Image.from_pretrained(
model_id, torch_dtype=torch.float16,
variant="fp16", use_safetensors=True,
)
pipe.enable_model_cpu_offload()
prompt = "a white ceramic cup beside a green leaf, studio photograph, plain background"
out = Path("parameter_comparison")
out.mkdir(exist_ok=True)
records = []
for steps, guidance in ((15, 4.0), (30, 4.0), (15, 7.0), (30, 7.0)):
image = pipe(
prompt=prompt, height=512, width=512,
num_inference_steps=steps, guidance_scale=guidance,
generator=torch.Generator(device="cpu").manual_seed(42),
).images[0]
name = f"steps{steps}_cfg{guidance:.1f}.png"
image.save(out / name)
records.append({"output": name, "model": model_id, "prompt": prompt,
"seed": 42, "steps": steps, "guidance_scale": guidance,
"height": 512, "width": 512,
"scheduler": type(pipe.scheduler).__name__,
"diffusers": diffusers.__version__, "torch": torch.__version__,
"python": platform.python_version()})
(out / "settings.json").write_text(
json.dumps(records, ensure_ascii=False, indent=2), encoding="utf-8",
)
代码没有计时,因此不能据此声称某一档快了多少。四张图使用加载时的同一个采样器配置;如果以后更换采样器,要另建一组实验并记录,不能混进当前结论。
按配对比较,区分步数与引导效果
运行后检查 parameter_comparison 中四张 PNG 与 settings.json。比较 steps15_cfg4.0 与 steps30_cfg4.0,观察只增加步数的变化;比较 steps15_cfg4.0 与 steps15_cfg7.0,观察只增加引导的变化。再用另一组相同条件的配对核对,避免只挑最漂亮的一张。
| 看什么 | 本例检查方法 |
|---|---|
| 主体与数量 | 是一只杯子和一片叶子,还是多出了物体 |
| 结构 | 杯口闭合、杯身合理,叶片边缘没有断裂 |
| 提示词 | 杯子是否白色、叶子是否绿色、背景是否简洁 |
| 副作用 | 高引导是否出现过饱和、明显轮廓伪影或材质失真 |
若 30 步只比 15 步多了无意义细节,而关键结构没有更好,就没有理由仅因数值更大选择它。若 7.0 颜色更接近提示,却导致杯子轮廓变形,也不能把“更听话”当作唯一标准。
下一轮怎样验证选择
先选一个满足任务的候选配置,再保持所有参数不变,换一个新的固定种子重复四种配对;至少检查偏好是否只来自那一个随机样本。这仍是视觉实验,不是正式模型性能基准。要比较速度,应另做同设备、同版本、同输入条件的计时,并明确冷启动与权重加载是否计入。
文字、复杂手部和人物结构错误不一定能靠提高步数解决。先简化任务,检查模型能力和提示词;需要精确区域编辑时考虑局部重绘,需要沿用轮廓时考虑 ControlNet。不同任务使用相应控制方式,比把所有问题都归因于“步数不够”有效。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31966.html