- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- output
- model
- total_credits_used
The inverse of an image generator: DeepGen_I2T0 is a vision-language node that reads your images and writes text back. You feed it up to ten images plus an instruction, and a cloud VLM - Gemini 3 Pro, Claude Opus 4.6 / Sonnet 4.6, GPT-5.4, Gemini 3 Flash, Gemini 3.1 Flash Lite - looks at them and answers in a string you can wire anywhere in the graph.
Why you'd reach for it
Three jobs, in rough order of popularity. QC on a batch: generate four variations, send them all in, and ask "which of these best matches the prompt, and why?" - the model does the triage you'd otherwise do by eye. Captioning for re-use: ask for a detailed description of a render and feed the text back into an image or video generator as a prompt, which is the caption-to-seed workflow the KB's VLM section describes. Iterative editing direction: ask the model to critique a result and spit out a revised prompt, then feed that into an edit node. Because it takes up to ten images, it doubles as a mini batch-reviewer - a genuinely handy way to eyeball a whole grid without eyeballing a whole grid.
The inputs
image_1throughimage_10(IMAGE) - all optional; wire in one or all ten. Each is converted to a base64 PNG attachment on the request, and the pack traces source filenames so DeepGen's side can tell them apart.prompt- the instruction that defines the job. Be explicit about what you want back: a JSON structure, a comma-separated caption, a one-paragraph critique. "Describe this image" is fine but wastes the multi-image budget; "compare images 1–4 and pick the sharpest" is what this node is for.model- the VLM dropdown. Gemini 3 Flash / Flash Lite are the budget reviewers; Pro and Claude are the better writers.seed_value,config_json- standard pack fields.
The outputs
output(STRING) - the model's text. This is the payload; wire it to a prompt input, a display, or a text save.model(STRING) - which model answered, for logging.total_credits_used(FLOAT) - meter it withDeepGen_F2T0.
Note this node has no nb_results or output_prefix - it's a single text answer, not a batch generator.
Install
Same pack:
cd ComfyUI/custom_nodes
git clone https://github.com/deepiksdev/ComfyUI-DeepGen-API.git
cd ComfyUI-DeepGen-API
pip install -r requirements.txt
Restart, then set your DeepGen API key in Settings → "DeepGen API Key" (ComfyUI/user/deepgen/config.json).
Gotchas
The same output-hygiene warning as the LLM node: if you ask for a caption, the model may pad it with chat scaffolding, and none of that belongs in a downstream prompt. Ask for bare output. Also remember every call sends your images off-box and spends credits - the ten-image review is cheap per image but it all adds up. And if you spot the old name DeepGen_I2T ("⚠️ [Deprecated] Review Images") in a legacy workflow, that's this node's pre-rename spelling; use DeepGen_I2T0 for new work.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 6 options: Gemini 3 Pro Preview (gemini-3.1-pro), Claude Opus 4.6 (claude-opus-4-6), Claude Sonnet 4.6 (claude-sonnet-4-6), GPT-5.4 (gpt-5.4), Gemini 3 Flash (gemini-3-flash), Gemini 3.1 Flash Lite (gemini-3.1-flash-lite) | |
| prompt | STRING | — | |
| seed_value | INT | 1000 | — |
| config_json | STRING | — | |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| output | STRING | — |
| model | STRING | — |
| total_credits_used | FLOAT | — |