Zhenzhen GeminiTextOnly
Text, Images, and Video In — Words Out
- image
- video
- response
Not every Comfly node generates pixels. This one generates words - and it's quietly one of the more useful nodes in the pack, because it's the reason you can make your workflows self-editing. It's a Gemini text model wrapped as a node, with the extra trick that it can look at an image or a video you feed it and answer in text.
Think of the jobs this unlocks: auto-rewrite a weak prompt into something stronger, take a screenshot or a generated frame and ask "what's actually wrong with this composition?", have it caption an image for tagging, or chain it in front of a text-to-image node so every run starts with a model-generated prompt instead of your one tired sentence. That last one is where people actually get mileage.
The "TextOnly" name is the honest contract: text in (plus optional visual context), text out. No image generation here - that's the other Gemini nodes' job.
How it works
Your prompt - plus any image or video input you attach - gets sent to the Gemini model through the Comfly proxy, and the node returns the model's reply as a plain string. If you wire an image or video in, the model sees it as part of the conversation (this is the multimodal stuff Gemini is known for); if you don't, it's just a chat call.
The inputs that matter
- model - this one's a free STRING, default
gemini-2.5-pro, so you can type whatever Gemini model the proxy currently carries. That's a feature: you're not locked to a dropdown, just check the proxy's model list if you want the newest. - prompt - your instruction. For prompt-rewriting duty, something like "Rewrite this into a detailed English image prompt: {draft}" works well.
- image / video - optional visual context. Drop a frame or clip in when you want the model to describe or critique something.
- temperature -
0–2, default1. Lower it (say0.2–0.5) when you want deterministic rewrites, not creative drift. - top_p - default
0.95. Leave it alone unless you're chasing reproducibility. - max_tokens - default
4096, up to8192. Fine as-is for most jobs. - seed - there's one, for what it's worth with an LLM; setting it helps lock down variation.
The single output is response (STRING), which wires into any text input of any other node - prompt boxes included.
Install
Manager → Comfyui_Comfly, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly
Restart. Standard requirements.txt fare (aiohttp, requests, Pillow, numpy) plus the torch/transformers already in your env - nothing to download, no models to weigh. Key from ai.comfly.chat in Comflyapi.json or the node's api_key.
Where people get burned
This is a paid LLM call hiding in your graph - if you put it in a loop that runs 200 times for a batch, that's 200 billed calls. Also, "TextOnly" means it cannot draw; people hook it up expecting an image and get a string. And like all Gemini-API access, it's a third-party proxy: keep the prompts you send it cloud-safe. The model field being free-form cuts both ways - type a model the proxy doesn't carry and you'll get an error string in response rather than a helpful popup.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | STRING | gemini-2.5-pro | — |
| imageopt | IMAGE | — | |
| videoopt | VIDEO | — | |
| api_keyopt | STRING | — | |
| temperatureopt | FLOAT | 1.000–2 | — |
| top_popt | FLOAT | 0.950–1 | — |
| max_tokensopt | INT | 40961–8192 | — |
| seedopt | INT | 00–2147483647 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| response | STRING | — |