Nodes/Artha-Gemini/πŸ”± Gemini Vision
ComfyUI Node

πŸ”± Gemini Vision

Turn any image into a detailed caption your workflow can actually use

By CyrostarΒ·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸ”± Gemini Vision
  • image
  • system_instruction
  • response
β—„text_promptDescribe this image in detail.β–Ί
β—„api_keyβ–Ί
β—„modelgemini-2.5-flashβ–Ί
β—„max_tokens5000β–Ί
β—„temperature0.7β–Ί

Gemini Vision is the pack's "describe this picture" node, and it's the one you'll reach for when you've got an image you want to feed back into the generation loop. You plug in an image, it sends it to Gemini, and you get back a rich, structured text description - not a one-line caption, but a proper breakdown of composition, lighting, style, mood, and details. If you've ever looked at a reference image and wished it came with its own prompt, this is the node that writes it for you.

It sits in the Artha-Gemini pack (the πŸ”± Gemini nodes), a family of nodes that call Google's hosted Gemini API rather than running anything on your GPU. That means no model download, no VRAM hit - just an API key and a network call.

How it works

Mechanically it's simple: the node takes your image as a standard ComfyUI IMAGE tensor (straight from a Load Image node), converts it to a PIL image, and sends it to Gemini alongside your text_prompt. What makes the output good is the default system instruction - a bundled "vision agent" that tells the model to organize its answer into headers like Overall Description, Composition and Layout, Colors and Lighting, Style and Aesthetic, and Emotions and Mood.

That structured output is the point. A raw "describe this" call gives you a paragraph of prose; this gives you something you can actually mine for prompt material. After the call, the node strips * and # characters from the result, so the description doesn't come back full of markdown noise.

Inputs and outputs

  • image - the input tensor. One image per call.
  • text_prompt - defaults to Describe this image in detail., but this is your lever. Ask for specifics: "describe the lighting and the lens," "list every prop," "describe the character's face in detail."
  • system_instruction (optional) - a slot that accepts the ARTHAINSTRUCT type from the pack's Gemini Instruct node, so you can override the built-in agent with your own role/task prompt.

Shared API block: api_key, model, max_tokens, temperature, with gemini-2.5-flash as the sensible default. Output is a single response string - wire it into a text display, a prompt encoder, or another Gemini node like Prompter for enrichment.

Installing it

Install the pack via ComfyUI Manager (search Artha-Gemini) or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Cyrostar/ComfyUI-Artha-Gemini
cd ComfyUI-Artha-Gemini
pip install -r requirements.txt

Dependencies are light (google-genai, Pillow, numpy, torch, soundfile) - no weights to fetch. Restart, grab an API key from Google AI Studio, and you're set.

Where people get burned

The API key, as with every node in this pack. Don't paste it into the node's api_key field - it ends up plain text in the saved workflow JSON. Put it in the pack's api.json (gemini_api_key) or set GEMINI_API_KEY as an environment variable.

Two more things worth knowing. First, this is a paid API call; captioning batches of images costs real money, so don't hook a Vision node into a big batch loop without thinking about your bill. Second, if the call fails you'll get a response string that starts with Error: rather than a red error block - the actual message lands in the ComfyUI console. And keep in mind the output is a description, not a spec: it's remarkably good, but it's an LLM's reading of the image, so treat long technical details (exact camera gear, precise hex colors) with a little skepticism before you trust them in a prompt.

CategoryArtha/LLM/GEMINI

Inputs (7)

NameTypeDefaultDescription
imageIMAGEβ€”
text_promptSTRINGDescribe this image in detail.β€”
api_keySTRINGAPI key will be visible in plain text. Consider adding your api to the api.json located inside this custom node folder.
modelCOMBOgemini-2.5-flash5 options: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite
max_tokensINT50001–8192For Gemini models, a token is equivalent to about 4 characters. 100 tokens is equal to about 60-80 English words.
temperatureFLOAT0.70–2A temperature of 0 means only the most likely tokens are selected, and there's no randomness. Conversely, a high temperature injects a high degree of randomness into the tokens selected by the model, leading to more unexpected, surprising model responses.
system_instructionoptARTHAINSTRUCTβ€”

Outputs (1)

NameTypeDescription
responseSTRINGβ€”