π OVERTLI Copilot Text Enhancer
Your Copilot subscription, pressed into service as a prompt writer
- image
- copilot_response
Here's the pitch, and it's a good one: you already pay for GitHub Copilot, so why pay again (or hit rate limits on a free tier) for prompt enhancement? GZ_CopilotAgent routes your ComfyUI text jobs through the GitHub Copilot CLI - the same subscription you use for coding - and hands the rewritten prompt back as a string. The Overtli README calls it "local CLI-based text enhancement," which is honest: the models are cloud, but the transport is a CLI process on your machine, and if you're already signed into the GitHub CLI the whole thing is supposed to "just work."
How it works
Under the hood the node shells out to the Copilot CLI as a subprocess, feeding it your prompt and reading back the response. "It will open a copilot-cli terminal silently by default for communication," per the README - a background process, not a window popping up on you. Auth is the clever bit: the node detects your existing gh session and reuses it, so there's no separate API key to mint. The prerequisites are real, though: an active Copilot subscription and the GitHub CLI installed and authenticated.
Vision is handled by writing Comfy IMAGE tensors to temporary local files and referencing them with Copilot CLI's @path attachment syntax, so vision-capable models actually receive the image bytes. The model dropdown (default gpt-5.3-codex) lists the Copilot model roster. There's background handling for auth recovery and vision-cache retries so stale image attempts don't silently block new ones.
Inputs worth knowing
prompt- your raw idea.text_mode_enabled/text_modeplus image/video/TTS mode groups - the standard suite presets.image- optional vision context;vision_enabledtoggles it, andbatch_image_mode/max_batch_framescontrol how a video-frame batch gets sampled (all frames, first/middle/last, or just the first).copilot_executable- only needed if the CLI isn't on your PATH or you want a specific binary.GZ_COPILOT_EXECUTABLEdoes the same job as an env var.allow_all_pathsandallow_all_tools- both defaultfalse, and you should think of them as the node's blast-radius controls. The CLI can read files and run tools; leaving these off keeps it scoped. Flipping them on is "I trust this completely," not "slightly more convenience."silent(default true) - hides the CLI chatter.timeout_seconds(default 60) andmax_output_tokens(default 1000).
Output
copilot_response, a STRING. There's an output_format toggle between text and json if you want a structured envelope. Feed the text into a CLIP Text Encode or any prompt slot.
Install and the failure modes
Pack install is the same as the others (search "Overtli" in Manager, or clone and pip install -r requirements.txt, restart). The README's troubleshooting section is unusually specific about this node's failure modes, so lean on it: check the Copilot CLI is installed and reachable, that the executable path is right if you set one manually, that your gh auth session is still valid, and that no environment token overrides are fighting the auto-detected session.
Two honest caveats. First, this whole route is a wrapper around a coding agent - the models are great at following a structured instruction, which is exactly the enhancement job, but your prompts are going through GitHub's service with all the content filtering that implies. If you're enhancing anything a hosted filter would refuse, the pack's local GZ_LLMTextEnhancer is the sibling you want instead. Second, a subprocess + auth-recovery + temp-image-file chain is more moving parts than a plain HTTP call; when it misbehaves, the failures tend to be environmental (auth, PATH, timeout) rather than prompt-quality problems, and the timeout_seconds dial is where you start.
Inputs (27)
| 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 | gpt-5.3-codex | 17 options: gpt-5.3-codex, gpt-4o, gpt-5.4, gpt-5.4-mini, gpt-5.2-codex, gpt-5.2, +11 |
| imageopt | IMAGE | β | |
| file_pathopt | STRING | β | |
| copilot_executableopt | 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 | β | |
| 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 | β |
| allow_all_pathsopt | BOOLEAN | false | β |
| allow_all_toolsopt | BOOLEAN | false | β |
| silentopt | BOOLEAN | true | β |
| output_formatopt | COMBO | text | 2 options: text, json |
| timeout_secondsopt | INT | 605β1200 | β |
| max_output_tokensopt | INT | 100064β32768 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| copilot_response | STRING | β |