π OVERTLI OpenAI-Compatible Studio
One key, any OpenAI-shaped API β the BYO-backend studio node
- image
- audio
- text
- image
- video
- audio
Somewhere between "cloud by default" and "bring your own GPU" there's a middle path: the API you already pay for. GZ_OpenAICompatibleTextEnhancer is the Overtli Studio Suite's BYO-backend node. Point it at any provider that speaks the OpenAI protocol - Groq, Together AI, LocalAI, a vLLM box, your work's internal gateway - paste a base URL and key, and it drives text enhancement, image generation, video, TTS, STT, and music through that single endpoint. The pack's README lists exactly this roster of engines: text, image_gen, video_gen, text_to_speech_gen, speech_to_text_gen, text_to_music_gen.
How it works
active_engine picks the modality, model is a plain text field you fill with whatever your provider calls the model (default gpt-4.1-mini), and prompt is your input. That's the entire required surface. The node builds an OpenAI-style request against api_base_url with api_key and dispatches to the right engine - for media engines it mirrors the behavior of the pack's dedicated Pollinations nodes, but aimed at your endpoint instead. The IMAGE input feeds vision-capable models, and the AUDIO input feeds the speech-to-text engine. require_api_key defaults to true, which is a deliberate guard: this route genuinely needs one, unlike the free Pollinations tier.
The inputs that matter
active_engine- which job. This is the field you'll flip most.api_base_url- your provider's OpenAI-compatible endpoint.persist_api_settings(default on) saves it plus the key so you only configure once;GZ_ProviderSettingscan hold them too.model- your provider's model id. If text works but the video engine 404s, the README's caution applies: modality support depends on what the provider and model actually expose, and the node can only validate, not grant, capability.text_modethroughttaudio_mode- the same curated preset dropdowns as the rest of the pack, now applied to your backend.style_preset_1..3andadditional_styles- style layering, chainable fromGZ_StyleStackNode.temperature,max_tokens,timeout_seconds- the usual dials.media_width/media_height,audio_voice,audio_speed,stt_response_format(srt/vtt included),stt_language- engine-specific knobs that only matter when that engine is active.
Outputs
Four sockets, mirroring the advanced router: text, image, video, audio. One run fills text plus whichever media output your engine produces; wire forward what you care about. A text engine leaves the media sockets empty, and that's fine.
Install and gotchas
Standard pack install - search "Overtli" in ComfyUI Manager, or clone and pip install -r requirements.txt, restart. The README's first troubleshooting entry is about this node: if the OpenAI-compatible route isn't in your node list at all, the pack didn't load cleanly - restart ComfyUI and check the console for import errors before assuming the node is broken.
Where people get burned: wrong base URL format. Some providers want https://api.groq.com/openai/v1 and others just the bare host - if calls 404 or throw auth errors at the path level, normalize the URL to include the /v1 your provider expects. And remember the content-policy reality of any hosted API: the filter belongs to the backend, not the node. There's no local patch for a refusal at your provider's end - if that matters for what you're making, the pack's GZ_LLMTextEnhancer route with your own LM Studio or Ollama is the sibling node designed for exactly that.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| active_engine | COMBO | text | 6 options: text, image_gen, video_gen, text_to_speech_gen, speech_to_text_gen, text_to_music_gen |
| prompt | STRING | β | |
| model | STRING | gpt-4.1-mini | β |
| text_modeopt | COMBO | Off | 15 options: Off, π Enhance, π Refine, π Creative Rewrite, π Detailed Visual, π Artistic Style, +9 |
| image_modeopt | COMBO | Off | 25 options: Off, πΌοΈ Tags, πΌοΈ Simple Description, πΌοΈ Detailed Scene Description, πΌοΈ Ultra Detailed Description, πΌοΈ Portrait Photography, +19 |
| video_modeopt | COMBO | Off | 12 options: Off, π₯ Cinematic Video Prompt, π₯ Loop Video Prompt, π₯ Action Sequence, π₯ Ambient/B-Roll, π₯ Product Showcase, +6 |
| tts_modeopt | COMBO | Off | 9 options: Off, π€ Voiceover Script, π€ Character Voice, π€ Audiobook Narration, π€ Podcast Intro, π€ Commercial Spot, +3 |
| stt_modeopt | COMBO | Off | 4 options: Off, π§Ύ Clean Transcript, π§Ύ Punctuation and Casing, π§Ύ Structured Notes |
| ttaudio_modeopt | COMBO | Off | 4 options: Off, π Audio Prompt Enhance, π Music Direction, π Ambience and Foley |
| imageopt | IMAGE | β | |
| file_pathopt | STRING | β | |
| audioopt | AUDIO | β | |
| 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 | β | |
| api_base_urlopt | STRING | β | |
| api_keyopt | STRING | β | |
| persist_api_settingsopt | BOOLEAN | true | β |
| temperatureopt | FLOAT | 0.70β2 | β |
| max_tokensopt | INT | 75064β32768 | β |
| timeout_secondsopt | INT | 1205β1200 | β |
| require_api_keyopt | BOOLEAN | true | β |
| max_image_dimensionopt | INT | 1280256β4096 | β |
| 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 | β |
| media_widthopt | INT | 1024128β4096 | β |
| media_heightopt | INT | 1024128β4096 | β |
| audio_voiceopt | STRING | nova | β |
| audio_speedopt | FLOAT | 1.000.25β4 | β |
| audio_response_formatopt | COMBO | mp3 | 6 options: mp3, wav, opus, aac, flac, pcm |
| stt_response_formatopt | COMBO | text | 5 options: json, text, srt, verbose_json, vtt |
| stt_languageopt | COMBO | auto | 14 options: auto, en, es, pt, fr, de, +8 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| text | STRING | β |
| image | IMAGE | β |
| video | VIDEO | β |
| audio | AUDIO | β |