快速结论:这个报错通常出现在 Kohya_ss 里用 BLIP 给训练集图片打标(captioning)时,只要 num_beams 大于 1 就会在 BLIP beam search 阶段崩掉,优先排查 transformers 版本以及 BLIP 与 beam search 的兼容性。部分用户在同一阶段还遇到 ModuleNotFoundError: No module named 'tqdm',需要一并确认虚拟环境依赖是否装全。
适用环境:Issue 中已确认的环境包括:Kohya_ss v21.8.2 / v21.8.3 / v21.8.5,Windows,Python venv,Torch 2.0.1+cu118,CUDA 11.8,cuDNN 8700;显卡涉及 NVIDIA GeForce GTX 1660 Ti(6GB)和 RTX 3080 Ti Laptop(16GB)。其他 Python 与 transformers 具体版本 Issue 未给出明确数字。
最快修复方案:把 requirements.txt 中的 transformers==x.x.x 改为 transformers==4.25.1,然后重新执行依赖安装。有用户通过重新运行 kohya_ss GUI 目录下的 setup.bat 完成安装并验证 num_beams > 1 可用;也有用户执行 pip install -r requirements.txt 后修复成功。
注意事项:降级 transformers 属于 Issue 中被多位用户验证有效的方案,但并非官方根因修复,可能影响其他依赖该库的功能;如果同时缺少 tqdm,仅降级 transformers 不一定能解决 ModuleNotFoundError: No module named 'tqdm',需先确认虚拟环境依赖完整。把 beams 设为 1 只是临时绕过,会生成非常简单的 caption,不能替代修复。
问题场景
用户在 Kohya_ss 的 GUI 中使用 BLIP captioning 给训练图片目录自动打标,触发路径为 finetune/make_captions.py。命令行参数里带有 --beam_search 且 --num_beams 大于 1 时,程序在加载完 BLIP 模型、开始逐批处理图片后崩溃。Issue 正文中的截图显示崩溃发生在 make_captions.py 的 run_batch(b_imgs) 调用处。另有用户在执行到 captioning 阶段时遇到 ModuleNotFoundError: No module named 'tqdm'。
报错原文
A matching Triton is not available, some optimizations will not be enabled.
Error caught was: No module named 'triton'
BLIP loaded
0%| | 0/58 [00:07<?, ?it/s]
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\Data\kohya\kohya_ss-21.8.3\finetune\make_captions.py:200 in <module> │
│ ❱ 200 │ main(args) │
│ D:\Data\kohya\kohya_ss-21.8.3\finetune\make_captions.py:144 in main │
│ ❱ 144 │ │ │ │ run_batch(b_imgs) │
Traceback (most recent call last):
File "E:\sd\kohya_ss\finetune\make_captions.py", line 10, in <module>
from tqdm import tqdm
ModuleNotFoundError: No module named 'tqdm'
原因分析
Issue 中有用户指出该问题很可能与 salesforce/BLIP #165 相关,推测是 BLIP 的 beam search 与较新版本 transformers 之间存在兼容性问题。表现上,num_beams 大于 1 时必崩,设为 1 可以绕过,说明问题集中在 beam search 路径,而不是模型加载或图片读取本身。降级 transformers 后可恢复正常,进一步支持该推断。
另外,ModuleNotFoundError: No module named 'tqdm' 是另一类依赖缺失问题,通常出现在虚拟环境依赖未安装完整,或编辑 requirements.txt 后没有重新安装依赖的情况下。
环境排查
- 确认 Kohya_ss 版本:Issue 覆盖 v21.8.2、v21.8.3、v21.8.5,较新的 21.8.5 仍有用户复现。
- 确认是否使用虚拟环境,以及
venv中是否安装tqdm。 - 确认
transformers当前版本,以及requirements.txt中锁定的版本。 - 确认 Torch、CUDA:Issue 中为 Torch 2.0.1+cu118、CUDA 11.8、cuDNN 8700。
- 确认 BLIP captioning 参数中
--num_beams是否大于 1;大于 1 属于触发条件。 - 确认 GPU 显存是否足够,Issue 中出现 6GB 与 16GB 两种显卡。
解决步骤
- 先做快速验证:把 BLIP captioning 的 beam 数量设为 1,确认报错是否消失。这只能作为临时绕过,issue 中反馈生成的 caption 会非常简单。
- 打开 Kohya_ss 的
requirements.txt,找到transformers==x.x.x这一行。 - 把版本改为
transformers==4.25.1。 - 重新安装依赖。Issue 中验证过的两种方式:其一是在 kohya_ss GUI 目录下重新运行
setup.bat;其二是执行pip install -r requirements.txt。 - 如果过程中出现
ModuleNotFoundError: No module named 'tqdm',确认当前虚拟环境里已安装tqdm,再重新执行 captioning。 - 重新启动 kohya_ss GUI,再次运行 BLIP captioning,并把
num_beams设回大于 1 的测试值。
验证方法
在 num_beams 大于 1 的情况下重新对同一图片目录执行 BLIP captioning,若能正常完成、不再出现 BLIP beam search traceback,并且生成的 .txt caption 内容合理,即说明该问题已解决。Issue 中有用户在降级 transformers 后确认 beam 数大于 1 可正常工作。
参考来源
bmaltais/kohya_ss #1236
salesforce/BLIP #165
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


