πΈ OVERTLI Pollinations Text Enhancer
Pollinations prompt enhancement without a key
- image
- enhanced_text
The name is only half a lie. GZ_TextEnhancer does enhance text - it ships a rough idea to Pollinations' chat API and gets back a prompt ready for your sampler - but it doesn't call any API you have to set up. The free tier needs no key at all, which makes this the fastest "hello" node in the Overtli Studio Suite: type a rough idea, add the node, wire its enhanced_text output into your CLIP Text Encode's text input, and run. Everything else in your graph stays exactly where it is.
That drop-in placement is the point. If your checkpoint's encoder is itself a language model reading an instruction, having a second language model write that instruction is translation between two things that speak the same language - the pattern the community converged on as prompt enhancement went mainstream (prompt-engineering.md). You're not fighting your pipeline, you're bolting a writer onto the front of it.
How it works
Pollinations exposes an OpenAI-compatible chat endpoint, and this node speaks it. Your prompt plus the mode instructions you pick get assembled and sent to gen.pollinations.ai; the returned text comes back through an output sanitizer that strips chat scaffolding before it hits enhanced_text. Crucially for beginners: Pollinations' own models are also on their free tier, so the whole thing works with an empty api_key field. An optional IMAGE input exists because the default models are vision-capable - connect one and the node describes or rewrites based on what it sees, which is handy for img2img prompt seeding.
The three model choices (openai, openai-fast, openai-large) are the only ones this node exposes - the free-tier chat models, tagged [text] [vision] [free] in the dropdown. If you want the hundreds-of-models catalog, that's what GZ_AdvancedTextEnhancer is for.
The inputs that matter
prompt- your raw idea. Multiline, no weight syntax needed; treat it as a note to the writer.text_mode_enabled+text_mode- the presets are the value here. "Enhance" expands a short idea into a richer prompt; "Refine" tightens wording without changing intent; "Ultra Detailed Prompt" and the image/video/TTS families give you mode-specific output shapes. One group at a time, andOffmeans the raw prompt sails through mostly untouched.image- optional vision context.style_preset_1..3andadditional_styles- layer curated style text on top.additional_stylesis socket-first so it chains cleanly from the pack'sGZ_StyleStackNode.
temperature, max_tokens, seed and vision_enabled are all there, but the defaults are sane - leave them alone on your first pass.
Output and wiring
Single enhanced_text STRING output. Into a CLIP Text Encode, a text-to-video prompt slot, or anywhere else text flows. That's the whole job, and it's refreshingly contained.
Installing
Search "Overtli" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/OvertliDS/overtli-studio-suite
cd overtli-studio-suite
pip install -r requirements.txt
Restart ComfyUI afterward. Dependencies are just requests, Pillow and numpy - nothing heavy, and no model downloads, because the model isn't yours.
Where people get burned
Three things. First, this is a cloud call - Pollinations is a free hosted tier and it has the reliability of a free hosted tier (slow or down during spikes is a known complaint). If a run times out, raise GZ_POLLINATIONS_CHAT_TIMEOUT or retry. Second, free models censor; if your content gets refused at the source there is no workaround, because there are no local weights to edit. Third, mode presets add detail - that's the feature and the trap - so on "Enhance" expect the model to invent specifics you didn't ask for. Use "Refine" when you want your idea preserved, and reserve "Enhance" for when you genuinely want it expanded.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | β | |
| text_mode_enabled | BOOLEAN | false | β |
| text_mode | COMBO | Off | 15 options: Off, π Enhance, π Refine, π Creative Rewrite, π Detailed Visual, π Artistic Style, +9 |
| image_mode_enabled | BOOLEAN | false | β |
| image_mode | COMBO | Off | 25 options: Off, πΌοΈ Tags, πΌοΈ Simple Description, πΌοΈ Detailed Scene Description, πΌοΈ Ultra Detailed Description, πΌοΈ Portrait Photography, +19 |
| video_mode_enabled | BOOLEAN | false | β |
| video_mode | COMBO | Off | 12 options: Off, π₯ Cinematic Video Prompt, π₯ Loop Video Prompt, π₯ Action Sequence, π₯ Ambient/B-Roll, π₯ Product Showcase, +6 |
| tts_mode_enabled | BOOLEAN | false | β |
| tts_mode | COMBO | Off | 9 options: Off, π€ Voiceover Script, π€ Character Voice, π€ Audiobook Narration, π€ Podcast Intro, π€ Commercial Spot, +3 |
| model | COMBO | openai [text] [vision] [free] | 3 options: openai [text] [vision] [free], openai-fast [text] [vision] [free], openai-large [text] [vision] [free] |
| imageopt | IMAGE | β | |
| file_pathopt | STRING | β | |
| custom_instructionsopt | STRING | β | |
| style_preset_1opt | COMBO | Off | 492 options: Off, 3D / CGI / Stylized 3D :: 3D Cartoon [3d] [stylized], 3D / CGI / Stylized 3D :: 3D Render [3d] [cgi], 3D / CGI / Stylized 3D :: 3D Sculpt Turntable Style [3d] [sculpt], 3D / CGI / Stylized 3D :: CAD Product Render [3d] [industrial], 3D / CGI / Stylized 3D :: Clay Render / ZBrush Style [3d] [sculpt], +486 |
| style_preset_2opt | COMBO | Off | 492 options: Off, 3D / CGI / Stylized 3D :: 3D Cartoon [3d] [stylized], 3D / CGI / Stylized 3D :: 3D Render [3d] [cgi], 3D / CGI / Stylized 3D :: 3D Sculpt Turntable Style [3d] [sculpt], 3D / CGI / Stylized 3D :: CAD Product Render [3d] [industrial], 3D / CGI / Stylized 3D :: Clay Render / ZBrush Style [3d] [sculpt], +486 |
| style_preset_3opt | COMBO | Off | 492 options: Off, 3D / CGI / Stylized 3D :: 3D Cartoon [3d] [stylized], 3D / CGI / Stylized 3D :: 3D Render [3d] [cgi], 3D / CGI / Stylized 3D :: 3D Sculpt Turntable Style [3d] [sculpt], 3D / CGI / Stylized 3D :: CAD Product Render [3d] [industrial], 3D / CGI / Stylized 3D :: Clay Render / ZBrush Style [3d] [sculpt], +486 |
| additional_stylesopt | STRING | β | |
| temperatureopt | FLOAT | 0.70β2 | β |
| max_tokensopt | INT | 75064β16384 | β |
| seedopt | INT | -1-1β2147483647 | β |
| vision_enabledopt | BOOLEAN | true | β |
| batch_image_modeopt | COMBO | all_frames | 3 options: all_frames, first_middle_last, first_frame |
| max_batch_framesopt | INT | 00β512 | β |
| api_keyopt | STRING | β | |
| persist_api_keyopt | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| enhanced_text | STRING | β |