SillyDream Prompt Reverse
通过任意 OpenAI 兼容网关把图像反推为详细提示词,并支持对已有文本进行扩写。
ComfyUI-SillyDream-PromptReverse — 图像反推 / 文本扩写
通过任意 OpenAI 兼容的 HTTP API(New-API / One-API / ModelScope 等网关)把 ComfyUI 中的图像反推为详细提示词,或对已有文本进行扩写。
包含两个节点:
- 图像反推 (Image Prompt Reverse) — 把图像反推为详细提示词(需选支持读图的视觉模型)
- 文本扩写 (Text Expand) — 对输入文本进行扩写,使其更加详细
如果感兴趣也可以试试注册我的官网:https://wish.sillydream.top
安装
方式一:ComfyUI-Manager(推荐)
Manager → Install via Git URL,填入:
https://github.com/qianchi7/ComfyUI-SillyDream-PromptReverse.git
装完点 Manager 里的 Restart(不要只点 Reload)。以后作者更新代码,在 Manager 里点该节点的 Update 按钮即可(本质是 git pull)。
方式二:手动 clone
cd ComfyUI/custom_nodes
git clone https://github.com/qianchi7/ComfyUI-SillyDream-PromptReverse.git
pip install requests Pillow numpy
重启 ComfyUI 后,在节点搜索框里搜 图像反推 / 文本扩写(分类 Image/Prompt)。
示例工作流
装好后顶部菜单 工作流 → 浏览模板 (Browse Templates),选 Image-Prompt-Reverse 即可加载,无需手动拖 json。工作流会随 git pull 一起更新。
(example_workflows/ 目录里的 json 也可以直接拖进网页界面。)
节点参数
| 参数 | 说明 |
|------|------|
| api_url | 你自己的 OpenAI 兼容网关地址,只需填 http://IP:端口,节点会自动补全 /v1(默认预填的是作者本人的演示网关,建议替换成你自己的) |
| model_name | 目标模型名称,须与你所用网关中配置的模型名一致(图像反推需选支持读图的视觉模型) |
| api_key | 你自己网关对应的 API Key,留空表示不发送 Authorization 头 |
| language | 仅图像反推节点:输出中文还是英文提示词 |
| system_prompt / user_prompt | 仅图像反推节点:系统提示词与用户指令,需自行填写 |
| top_p / temperature / seed / max_tokens | 生成参数,含义与 OpenAI Chat Completions 接口一致 |
附带的小工具
prompt_playground.html 是配套的独立网页调试工具,不依赖 ComfyUI,用浏览器双击打开即可。
可以填网关地址 / Key / 模型名,贴或拖一张图进去直接试反推,也可以不带图当纯文本扩写用;
支持 Ctrl+V 粘贴图片、一键复制结果,设置会记在本机浏览器里。
本地直接打开网页时,如果网关没有放开 CORS 会请求失败,这属于网关配置问题,不是工具本身的问题。
故障排除
❌ 装好了但搜不到节点
- 必须重启 ComfyUI(不是刷新网页),custom_nodes 只在启动时扫描一次
- 看终端日志有没有
Traceback/ImportError/ModuleNotFoundError,多半是缺依赖 - 便携版装依赖要用
python_embeded\python.exe -m pip install requests Pillow numpy
❌ 无法连接到服务器 / Connection error
- 确认
api_url能从本机浏览器/curl 正常访问 - 确认服务器端口未被防火墙拦截
❌ HTTP 4xx / 5xx
- 401/403:检查
api_key是否正确、该 Key 是否有权限访问所填模型 - 404:检查
model_name是否与网关中配置的名称完全一致 - 429:请求过于频繁,稍后重试
- 502/503:上游模型服务或网关本身异常
❌ 未获取到有效结果 / 响应不是 JSON
- 多为网关地址填错(把请求转到了网页而非 API 接口),错误信息里会附带实际请求的完整 URL,可用浏览器/curl 直接访问该地址核对
协议
实现说明
本仓库自 2.0.0 起为完全独立实现,代码由本人从功能需求重新编写,不含任何第三方代码。