QwenVL Prompt Enhancer
Turn 'a cool knight' into a real prompt — with a tiny Qwen you already installed
- ENHANCED_OUTPUT
The QwenVL Prompt Enhancer is the pack's answer to the blank-page problem: type a rough idea, get back a structured, model-ready prompt, then feed it to your text encoder. Where the other nodes in this pack make the model see images, this one only writes - no image socket at all. And that's the whole point, because the job of "rewrite my idea into a good prompt" is a text-only job, and it runs best on a small, fast, obedient model rather than a big vision one.
The interesting default is that the node launches on Qwen3-0.6B - a 0.6-billion-parameter text model. That's a deliberate choice, and it's the right one: enhancing a prompt needs a model that follows a format and stops, not one that deliberates for a minute. The KB's own guidance on this - reasoning models leak their scratch-work into your prompt, and "the job selects for small and obedient, not large and clever" - is exactly the trade the default makes. You can still pick from the full model list (the drop-down mixes in the Qwen3-VL vision models plus a qwen3-4b-Z-Image-Engineer), but for plain enhancement the tiny default is usually the best speed-to-quality point on the menu.
How it works
You feed it prompt_text and pick an enhancement_style, and the node builds a system instruction from that style - 📝 Enhance, 📝 Refine, 📝 Creative Rewrite, 📝 Detailed Visual, 📝 Artistic Style, or 📝 Technical Specs - merges it with your text, and runs the model. There's also custom_system_prompt to write your own instruction entirely, which is the power move once you realize the style presets are just strings. If prompt_text is left blank the node still emits whatever the style instruction says, which is mostly useful for testing. Output is a single ENHANCED_OUTPUT string, and it's not an output node - wire it into your CLIP encoder, a Text Encode, or aistudynow_SaveText to use or save it.
The inputs that matter
- prompt_text - your rough idea. Multiline, so write a sentence, not a fragment.
- enhancement_style - the six jobs; "Detailed Visual" is the one most people actually want for image prompts.
- custom_system_prompt - replaces the style's instruction when filled; the secret to making this node yours.
- model_name / quantization - the size/VRAM trade. Default Qwen3-0.6B at FP16 is tiny; the VL models are only worth switching to if you want a bigger, slower model doing the writing - this node has no image socket, so they're here for text only.
Everything else is the pack's standard sampling row - temperature (0.7 default, so it's already in creative territory), top_p, repetition_penalty, max_tokens (256 default - short prompts, short answers), seed, keep_model_loaded.
Getting it
Same single-pack install as every node here - ComfyUI Manager, search "ComfyUI-QwenVL", or:
cd ComfyUI/custom_nodes
git clone https://github.com/aistudynow/ComfyUI-QwenVL
First run downloads the chosen model into models/LLM/Qwen-VL. The 0.6B is a couple hundred MB, so this is the cheapest node in the pack to try.
Where people get burned
Two failure modes define this job, and this node mostly dodges both. First is dirty output - the model wrapping your prompt in chat scaffolding like "Here is your enhanced prompt:" instead of just the prompt. If you see that, custom_system_prompt with a hard "output only the prompt, no preamble" instruction fixes it. Second is subject drift - the enhancer inventing details you never asked for ("a knight" becoming "a knight in a burning city at dusk, dramatic lighting"). That's the feature until it isn't; if your enhanced prompts keep going off the rails, chain narrower instructions or accept that a local enhancer removes the blank page, it doesn't write the movie. And don't forget the wiring: ENHANCED_OUTPUT goes nowhere on its own, so the "where's my text" moment is usually just a missing ShowText node. This is the node in the pack that lives upstream of the sampler - everything before it makes pixels, this one makes words, and it makes them for free.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | Qwen3-0.6B | Pick the Qwen-VL checkpoint. First run downloads weights into models/LLM/Qwen-VL, so leave disk space. |
| quantization | COMBO | None (FP16) | Precision vs VRAM. FP16 gives the best quality if memory allows; 8-bit suits 8–16 GB GPUs; 4-bit fits 6 GB or lower but is slower. |
| attention_mode | COMBO | auto | auto tries flash-attn v2 when installed and falls back to SDPA. Only override when debugging attention backends. |
| use_torch_compile | BOOLEAN | false | Enable torch.compile('reduce-overhead') on supported CUDA/Torch 2.1+ builds for extra throughput after the first compile. |
| device | COMBO | auto | Choose where to run the model: auto, cpu, mps, or cuda:x for multi-GPU systems. |
| prompt_text | STRING | Prompt text to enhance. Leave blank to just emit the preset instruction. | |
| enhancement_style | COMBO | 📝 Enhance | 6 options: 📝 Enhance, 📝 Refine, 📝 Creative Rewrite, 📝 Detailed Visual, 📝 Artistic Style, 📝 Technical Specs |
| custom_system_prompt | STRING | — | |
| max_tokens | INT | 25632–1024 | — |
| temperature | FLOAT | 0.700.1–1 | — |
| top_p | FLOAT | 0.900–1 | — |
| repetition_penalty | FLOAT | 1.100.5–2 | — |
| keep_model_loaded | BOOLEAN | true | — |
| seed | INT | 11–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ENHANCED_OUTPUT | STRING | — |