木木--GPT-Image-2
GPT Image inside ComfyUI, no GPU required — but it's an API node, so read this first
- 参考图片1
- 参考图片2
- 参考图片3
- 参考图片4
- 参考图片5
- 参考图片6
- 参考图片7
- 参考图片8
- 参考图片9
- 参考图片10
- 参考图片11
- 参考图片12
- 参考图片13
- 参考图片14
- 参考图片15
- 参考图片16
- 图片
Let's get the important part out of the way: this node does not run a model on your machine. MumuGPTImage2 (listed as "木木--GPT-Image-2") is an API wrapper. It takes your prompt, sends it to an OpenAI-compatible gpt-image-2 endpoint, and drops the returned image back into your graph as a plain IMAGE tensor - so on the canvas it looks exactly like a local sampler made it. No model download, no VRAM, no extra pip install. There's also a key, a per-call price, and a phone-home, because the model has no open weights. Reach for it when local isn't the answer, and not before.
How it works
The pack hits OpenAI's standard image API shape. Text-to-image goes to /v1/images/generations; image-to-image goes to /v1/images/edits. The 模式 (mode) dropdown lets you force either one or pick 自动, which chooses img2img whenever a reference image is connected and text2img otherwise - that's the sensible default for almost everyone.
The nice touch is how it handles size. The node UI splits composition from resolution - 画面比例 (aspect ratio) and 清晰度 (clarity, 1k/2k/4k) - then maps them to the concrete pixel size the API wants. 16:9 + 4k becomes 3840x2160; 1:1 + 2k becomes 2048x2048. Since some img2img backends ignore your requested size and just echo the reference image's proportions, the node center-crops and rescales the response back to your chosen dimensions before it hands you the tensor. So what you asked for is what you get, even if the backend was sloppy.
Two quirks are baked in by design: the img2img route rejects the n parameter and can drop long non-streaming requests, so edits always stream and always return exactly one image. 图片数量 (image count, 1–4) only really applies to text-to-image. And if your endpoint is an APIMart reseller (or the model name ends in -official), the node switches to that platform's async task protocol - submit, poll the task, download the result URL - instead of OpenAI's synchronous response. Local reference images get uploaded to /v1/uploads/images first, up to 16 of them.
The inputs you'll actually touch
Everything is in Chinese, which trips people up at first. The ones that matter:
提示词:- your prompt, multiline. This one's the whole ballgame.key:and接口地址- API key and endpoint URL. Default endpoint ishttps://aimumu.top, the author's own storefront. Both fields default fromconfig.json, so you only set them once.模式-自动/文生图/图生图. Leave it on自动.画面比例+清晰度- the aspect/size combo described above.输出格式-png,jpeg,webp, or不发送(don't send the format param and let the backend decide).参考图片1…参考图片16- optionalIMAGEinputs. Connect one and the node dynamically reveals the next, so you don't stare at 16 empty sockets.
There's one output: 图片, an IMAGE tensor ready to wire into a preview, save, or whatever else. It also saves copies to your output directory by default.
Installing it
Through ComfyUI Manager, search "mumu-gpt-image2" (or the display name) and install. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/mmuuai/mumu-gpt-image2
Then restart ComfyUI. There are no pip dependencies - the pyproject.toml list is empty; it runs on urllib plus Pillow/numpy/torch, which ComfyUI already ships. After install, copy the config example and fill in your key:
cp custom_nodes/mumu-gpt-image2/config.example.json custom_nodes/mumu-gpt-image2/config.json
The README literally says to copy the folder into custom_nodes/ComfyUI-Mumu-GPT-Image-2; a plain git clone works fine, and Manager's way is the least error-prone.
Where people get burned
- No key = instant error. The node refuses to run with an empty
key:- there's no free tier hiding in there. - The key IS the product. This is a reseller-endpoint pack from a single-author Chinese repo, and "one node, paste your key, it just phones home" is exactly the category that got weaponized once before (the ComfyUI_LLMVISION malware incident). Read the source if you're careful - it's a compact single file - and don't point it at an endpoint you don't trust. The
config.jsonis gitignored, which is good hygiene, but your key still transits someone's server on every call. - Costs add up and inputs leave the machine. Every generation is metered and your prompt plus reference images go to a backend you don't control, subject to its content filter. You can't abliterate a closed model; whatever the endpoint refuses, it refuses. For anything you want privacy or looseness on, stay local.
- Img2img is one-image-only. Don't set
图片数量to 4 expecting a batch of edits; the route dropsnand returns one image.
It's a clean, genuinely useful bridge for the one job local ComfyUI can't do: GPT Image's famous text rendering and style transfer inside an otherwise-local workflow. Just remember you're renting the model, not owning it.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| 模式 | COMBO | 自动 | 3 options: 自动, 文生图, 图生图 |
| 提示词: | STRING | 一张清爽的产品海报,白色背景,柔和影棚光,中文标题:木木 AI | — |
| 接口地址 | STRING | https://aimumu.top | — |
| key: | STRING | — | |
| 模型 | STRING | gpt-image-2 | — |
| 画面比例 | COMBO | 1:1 | 16 options: auto, 1:1, 3:2, 2:3, 4:3, 3:4, +10 |
| 质量 | COMBO | auto | 6 options: auto, low, medium, high, standard, hd |
| 输出格式 | COMBO | png | 4 options: png, jpeg, webp, 不发送 |
| 图片数量 | INT | 11–4 | — |
| 清晰度opt | COMBO | 1k | 4 options: 1k, 2k, 4k, 不发送 |
| 参考图片1opt | IMAGE | — | |
| 参考图片2opt | IMAGE | — | |
| 参考图片3opt | IMAGE | — | |
| 参考图片4opt | IMAGE | — | |
| 参考图片5opt | IMAGE | — | |
| 参考图片6opt | IMAGE | — | |
| 参考图片7opt | IMAGE | — | |
| 参考图片8opt | IMAGE | — | |
| 参考图片9opt | IMAGE | — | |
| 参考图片10opt | IMAGE | — | |
| 参考图片11opt | IMAGE | — | |
| 参考图片12opt | IMAGE | — | |
| 参考图片13opt | IMAGE | — | |
| 参考图片14opt | IMAGE | — | |
| 参考图片15opt | IMAGE | — | |
| 参考图片16opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 图片 | IMAGE | — |