Stable Diffusion 相关调试通常分为几类:
可能原因
调试方法
# 观察 loss 曲线
tensorboard --logdir logs/建议
调试方式
torch.cuda.memory_summary()解决手段
gradient_checkpointingxformersresolution(如 512→384)mixed_precision="fp16"排查顺序
调试技巧
常见错误:
CUDA out of memoryshape mismatchKeyError: 'lora'调试建议
import traceback
try:
pipe(prompt)
except Exception as e:
traceback.print_exc()| 问题 | 可能原因 | 解决 |
|---|---|---|
| 模糊 | steps 太少 | 20–30 steps |
| 色偏 | CFG 太高 | 降低 7→5 |
| 结构乱 | prompt 太长 | 精简 |
| 人脸崩 | 没用 face restore | 加 CodeFormer |
常用组合:
如果你是改 UNet / Attention:
torch.autograd.detect_anomaly()with torch.autograd.detect_anomaly():
loss.backward()nvidia-smitorch.profilerdiffusers 官方 example 脚本prompt = "a cat"
image = pipe(prompt, num_inference_steps=25, guidance_scale=7).images[0]
image.save("debug.png")如果你愿意,可以告诉我:
我可以直接帮你定位到代码级问题。