Nodes/ComfyUI-ADIC/IdeaLab Image Generate
ComfyUI Node

IdeaLab Image Generate

Gemini image generation through an OpenAI-shaped door

By jinchanz·Created about a year ago·Updated a day ago· 5
IdeaLab Image Generate
  • image
  • IMAGE
prompt
image_urls
image_mime_typeimage/png
modelgemini-3-pro-image-preview
api_base
auth_token

Don't let the "IdeaLab" name throw you - what this node actually does is talk to a Gemini image model through an OpenAI-compatible /v1/chat/completions endpoint. Default model is gemini-3-pro-image-preview, which is the model behind Google's "Nano Banana Pro": native 4K output, real text rendering, and enough prompt adherence to make local models jealous. It's a ComfyUI comfy_api_nodes-style async node, so a prompt in, an IMAGE tensor out, no VRAM involved.

Mechanically it's a chat-completion call with multimodal content. Your prompt becomes a text content block; if you also connect an image (a whole batch works - each frame is base64'd into a data: URI) or fill image_urls (one per line), those become image_url blocks. The model sees everything at once, generates, and the node extracts the first image out of the response - it tolerates the image coming back as a URL, a data URI, or raw base64, so most gateways behave.

The input to get right before any other

api_base is required and has no default. The underlying client hard-fails with "api_base 不能为空" when it's blank, which is the first error you'll see. Set it to your gateway's base, e.g. https://host/api/openai, exactly as the tooltip says. This is the difference between "node errors instantly" and "node works."

The rest:

  • prompt - required. You must supply text or an image; the node rejects an empty content payload.
  • image - optional reference image(s), batch supported.
  • image_urls - optional remote images, one per line.
  • image_mime_type - encoding for the images you send, default image/png.
  • model - a plain string, so you can point it at a different Gemini image model than the default if your provider offers one.
  • auth_token - Bearer token. There's no hidden Comfy key fallback for this one; if your provider needs one, this is where it goes.

Output is a single IMAGE. In practice you can think of this as "Nano Banana inside ComfyUI," with all the usual caveats from the closed-model discussion: images come back watermarked with SynthID, and you're paying per generation on the API side.

Gotchas

Besides the mandatory api_base, the common failure is feeding a non-Gemini "chat completions" provider that returns plain text - the node will then tell you it got no image content. And there's no n or seed control here; it's one image per call, the model's choice of variation.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/jinchanz/ComfyUI-ADIC

Restart ComfyUI, or install via ComfyUI Manager ("ComfyUI-ADIC"). No models to download. The pack's README is in Chinese and only documents the translate nodes, so this one's behavior is best learned right here or in the source.

Categoryapi node/image/Gemini

Inputs (7)

NameTypeDefaultDescription
promptSTRING
imageoptIMAGE可选参考图,支持多张图片批量输入
image_urlsoptSTRING可选图片 URL,每行一个,0 个或多个
image_mime_typeoptSTRINGimage/png上传到 Gemini 的图片编码格式
modeloptSTRINGgemini-3-pro-image-preview可切换的 Gemini 模型名称
api_baseoptSTRINGAPI 基础地址,例如 https://host/api/openai
auth_tokenoptSTRINGBearer Token

Outputs (1)

NameTypeDescription
IMAGEIMAGE