本文记录了我在 ComfyUI 上尝试运行 Flux.1-dev 与 In-Context LoRA 时的调试经验。主要聚焦在 Workflow 调试、模型文件处理、以及关键的排错方法。
关键经验点
1. 发现 NaN → 黑图
这次调试过程中,最大的发现是:
- 中间 latent 输出含有 NaN 值,导致最终结果变成全黑图。
- 通过在 Workflow 中加入 Preview Any 节点,能够直接检查 latent 和中间张量,从而快速定位问题。
这一点非常关键:黑图不一定是显存不足或连接错误,也可能是 中间数值溢出。
2. 分片模型必须合并
Flux 的部分模型文件(例如 text_encoder_2)是以 分片 safetensors 的形式提供的,不能直接加载。
解决办法是合并为单一文件:
pip install safetensors
safetensors-cli merge \
models/clip/text_encoder_2/model-00001-of-00002.safetensors \
models/clip/text_encoder_2/model-00002-of-00002.safetensors \
models/clip/text_encoder_2/model.safetensors
合并后再加载,就能正常运行。
3. 调试方法的优先级
在整个过程中,逐步形成了一个排错优先级:
- 先看 latent:用 Preview Any 判断是否已经出现 NaN。
- 再看模型文件:确认路径、大小、以及是否合并。
- 最后调 Workflow:检查是否有不合理的参数或节点。
这样可以避免盲目地不断调整参数,而忽视了更根本的问题。
总结
这次调试的主要收获有两点:
- Preview Any 是最重要的调试工具,能直接揭示中间 latent 是否正常。
- 分片模型必须合并,否则会造成黑图或下拉列表为空。
整体感受是:黑图问题往往并不是“最后一步出错”,而是中间环节早就出现了异常。如果能及时发现 NaN,就能节省大量调试时间。