SillyDream GPT-Image-2 Generator
通过任意 OpenAI 兼容网关调用 GPT-Image-2 文生图/图生图,支持最多16张参考图、分辨率与比例互斥校验、502 全量诊断。
ComfyUI-SillyDream-GPT-Image-2 — GPT-Image-2 文生图 / 图生图
通过任意 OpenAI 兼容的云端网关(New-API / One-API 等中转)调用 GPT-Image-2 完成文生图 / 图生图(最多 16 张参考图),内置分辨率与比例的互斥校验、502 全量诊断、非敏感配置自动持久化。
如果感兴趣也可以试试注册我的官网:https://wish.sillydream.top
特性
- 文生图 + 图生图:最多 16 张参考图,支持
/v1/images/generations、/v1/images/edits、/v1/responses三种接口,也可设为auto自动选择 - 分辨率/比例互斥:内置权威尺寸表(见下),非法的「比例 × 分辨率」组合会在发请求前直接拦截,避免浪费一次可能 5-15 分钟又 502 的请求;配套的前端脚本让下拉框直接只列出合法档位
- 不做内部重试:网络异常/5xx 不自动重试(重试等于重复扣费),失败会抛出带完整诊断信息(server / cf-ray / x-request-id / body)的报错,方便判断故障出在 Cloudflare / nginx / 中转网关 / OpenAI 官方哪一层
- 兼容非标准返回格式:除了标准
data[].b64_json/data[].url,也能从部分中转网关「伪装成聊天回复」的文本中兜底抠出 Markdown 图床链接或裸图片 URL - 非敏感配置持久化:
base_url/ 默认模型 / 默认分辨率等会自动记住,api_key永远不落盘
安装
方式一:ComfyUI-Manager(推荐)
Manager → Install via Git URL,填入:
https://github.com/qianchi7/ComfyUI-SillyDream-GPT-Image-2.git
装完点 Manager 里的 Restart(不要只点 Reload)。以后作者更新代码,在 Manager 里点该节点的 Update 按钮即可(本质是 git pull)。
方式二:手动 clone
cd ComfyUI/custom_nodes
git clone https://github.com/qianchi7/ComfyUI-SillyDream-GPT-Image-2.git
pip install requests Pillow numpy
重启 ComfyUI 后,在节点搜索框里搜 GPT Image 2 Generator(分类 GPT Image 2)。
示例工作流
装好后顶部菜单 工作流 → 浏览模板 (Browse Templates),可选:
GPT-Image-2— 完整工作流GPT-Image-2-Text2Img— 最简纯文生图GPT-Image-2-Reference— 最简带参考图
无需手动拖 json,工作流会随 git pull 一起更新。(example_workflows/ 目录里的 json 也可以直接拖进网页界面。)
权威尺寸表(分辨率 / 比例互斥规则)
| 比例 | 1K | 2K | 4K | |---|---|---|---| | 1:1 | 1024x1024 | 2048x2048 | — | | 3:2 | 1536x1024 | 2048x1360 | 3520x2352 | | 2:3 | 1024x1536 | 1360x2048 | 2352x3520 | | 16:9 | — | 2048x1152 | 3840x2160 | | 9:16 | — | 1152x2048 | 2160x3840 | | 4:3 | — | 2048x1536 | 3312x2480 | | 3:4 | — | 1536x2048 | 2480x3312 | | 21:9 | — | 2688x1152 | 3840x1648 | | 1:3 | — | 1024x3072 | 1280x3840 | | 3:1 | — | — | 3840x1280 |
「—」表示该比例在该分辨率档下没有合法尺寸(互斥):例如 1:1 选不出 4K,16:9 选不出 1K,3:1 只能选 4K。这些尺寸经过实测,是不易触发 502 的固定档位;节点只发 model/prompt/size/n/quality(/seed) 等 GPT-Image-2 认可的字段,不发 enhance_prompt/negative_prompt/style_preset 等不支持的参数。
节点参数
| 参数 | 说明 |
|------|------|
| api_key | 你自己网关对应的 API Key |
| base_url | 你自己的 OpenAI 兼容网关地址,只需填 http://IP:端口(默认预填的是作者本人的演示网关,建议替换成你自己的) |
| model | 模型名称,需与你所用网关中配置的模型名一致 |
| resolution / aspect_ratio | 分辨率档位与宽高比,二者互斥(见上表);均为 auto 时交给上游自选,aspect_ratio=auto 时会从 image_1 推断比例 |
| quality | auto / low / medium / high |
| n | 生成数量,1~10 |
| seed | 随机种子,-1 为自动随机 |
| response_format | auto 时会显式请求 b64_json(避免依赖下载图床图片),也可强制选 url |
| edit_mode | generate(纯生成)/ reference(参考图生图)/ outpaint(扩图),仅用于本地选择接口 |
| timeout / infinite_timeout | 请求总超时;4K/High 常需 5-15 分钟,建议保持较长超时或开启无限超时 |
| api_endpoint | auto 会根据是否有参考图自动选择 /v1/images/generations 或 /v1/images/edits,也可强制指定,包括 /v1/responses |
| image_1~image_16 | 最多 16 张参考图输入 |
配置文件位置(自动写入,不含 API Key)
- Windows:
%APPDATA%\gpt_image_2\config.json - Linux/macOS:
~/.config/gpt_image_2/config.json - 回退:
<节点目录>/.gpt_image_2_config.json
保存字段:base_url、default_model、default_size、default_quality、default_endpoint、default_output_format、disable_proxy。不保存 api_key,每次都要在节点里重新填写。
故障排除
❌ 装好了但搜不到节点
- 必须重启 ComfyUI(不是刷新网页),custom_nodes 只在启动时扫描一次
- 看终端日志有没有
Traceback/ImportError/ModuleNotFoundError,多半是缺依赖 - 便携版装依赖要用
python_embeded\python.exe -m pip install requests Pillow numpy
节点失败时会抛出带完整上下文的报错(HTTP 状态码、server/cf-ray/x-request-id/响应体等),可据此判断故障出在哪一层:
- Cloudflare(
cf-ray头):多为中转反代问题 - nginx(
server: nginx/x.y.z):自建反代问题,检查proxy_read_timeout是否够长(建议 ≥1800s,因为 4K/High 生成常需 5-15 分钟) - new-api / one-api(
server: Go):上游中继问题,检查对应渠道是否存活、token 是否有效 - OpenAI 官方(
server: OpenAI):真实上游返回的错误
❌ 无法连接到服务器 / Connection error
- 确认
base_url能从本机浏览器/curl 正常访问
❌ HTTP 502/503
- 把
resolution从 4K 降到 2K,quality从 high 降到 medium 先验证链路 - 如果是自建反代/中转网关,检查其读超时配置
❌ HTTP 400
- 提示
Unknown parameter时节点会自动去掉该字段重试一次;若持续失败,检查model名称是否与网关配置一致
❌ 接口未返回任何图像
- 节点已兼容「图片链接被伪装成聊天文本」的返回格式,若仍失败,把报错里附带的完整响应体拿去核对网关实际返回结构