Nodes/ComfyUI-Bernini-PromptEnhancer/Qwen3.5 Prompt Enhancer (GGUF)
ComfyUI Node

Qwen3.5 Prompt Enhancer (GGUF)

The Same Trick, a Smaller, More Tuned Brain

By djdzzzz·Created about a month ago·Updated 18 days ago· 2
Qwen3.5 Prompt Enhancer (GGUF)
  • source_video
  • reference_video
  • reference_image_0
  • reference_image_1
  • reference_image_2
  • enhanced_prompt
  • structured_plan
  • source_video
  • reference_video
  • reference_image_0
  • reference_image_1
  • reference_image_2
model
mmproj
task_typev2v
variantnone
prompt
temperature0.60
repeat_penalty1.15
seed0
n_ctx8192
n_gpu_layers-1
max_tokens4096
video_frames3
image_max_side512
smart_framesfalse
thinking_modefalse

Same pack, same UI, different brain. If you've seen the Bernini MLLM node from djdzzzz's ComfyUI-Bernini-PromptEnhancer, you already know how this one behaves - 13 task types, video/image references, subprocess inference, zero VRAM left behind. The difference is what's doing the thinking: instead of the 7B Qwen2.5-VL that runs the Bernini semantic planner, this node loads Qwen3.5-4B from the Yusiko/qwen3.5-prompter repo, a smaller model that was fine-tuned specifically for prompt engineering and stays multimodal.

That makes it the node to reach for when your job is mostly text - t2v and t2i where there's no footage to edit, just a rough idea that needs to become a camera-ready prompt. The 4B is lighter than the 7B Bernini model: it fits in less VRAM and reloads faster every run, which is worth real time when you know the node reloads the GGUF from disk on each execution. If you're primarily editing existing video with references, the Bernini node is the closer match; this one is the snappier text-and-image worker.

How it works

The mechanism is shared with the whole pack: the node spawns a separate Python process (worker/qwen35_worker.py), which loads the GGUF through llama-cpp-python and talks JSON lines over stdin/stdout. Run finishes → process killed → VRAM fully released. That's the design that keeps a 4B model from squatting on your card while your renderer needs it.

The one genuinely new control is thinking_mode (off by default). Flip it on and Qwen reasons before it writes - you get a chain-of-thought trace instead of a straight answer. It costs time and output tokens, and for most prompt-enhancement jobs the direct answer is what you want. Turn it on when you're staring at a confusing result and want to see the model's reasoning, then turn it back off.

Inputs and outputs

The inputs are the Bernini node's list - model, mmproj, the 13 task_type values, variant (cinematic/anime/realistic/director/etc.), template_mode (structured vs official), temperature, seed, n_ctx, n_gpu_layers, max_tokens, smart_frames, video_frames, image_max_side - plus thinking_mode. Optional inputs are source_video, reference_video, and reference_image_0/1/2.

Outputs are identical to the Bernini node's:

  • enhanced_prompt (STRING) - the finished prompt, wired into whatever sampler or video model you're prompting.
  • structured_plan (STRING) - the planning trace from the five-section RULES template.
  • source_video, reference_video, reference_image_0/1/2 - passthroughs, unchanged.

One note on model selection: you need a multimodal GGUF with a matching mmproj for the image/video inputs to do anything. The dropdowns scan ComfyUI/models/clip/ at startup, so restart ComfyUI after dropping files in, or your new model simply won't be listed.

Install

If you already installed the pack for the Bernini node, you're done - this node is already in your node list; you only need to download the Qwen3.5 GGUF into ComfyUI/models/clip/ and restart. Otherwise:

cd ComfyUI/custom_nodes
git clone https://github.com/djdzzzz/ComfyUI-Bernini-PromptEnhancer.git
cd ComfyUI-Bernini-PromptEnhancer
pip install -r requirements.txt

requirements.txt is just llama-cpp-python, torch, numpy and Pillow - the model itself is the download that matters. And it's on the ComfyUI registry, so ComfyUI Manager can install the whole pack by name.

Common issues

The usual pack gotchas apply: model not in the dropdown → restart ComfyUI; OOM → lower n_gpu_layers, n_ctx or image_max_side; slow first run per session → that's the reload-on-every-execution design, normal. With thinking_mode on you'll also hit noticeably longer waits and bigger outputs - it's a debugging tool here, not a quality guarantee. And keep the honest expectation: a 4B prompt enhancer is a convenience that gets you from "rough idea" to "usable prompt," not a replacement for knowing how to prompt your target model. Use it to draft, then take the wheel.

CategoryBernini

Inputs (20)

NameTypeDefaultDescription
modelCOMBO1 options: <no .gguf>
mmprojCOMBO1 options: <none>
task_typeCOMBOv2v13 options: t2v, t2i, v2v, mv2v, i2i, i2v, +7
variantCOMBOnone10 options: none, motion (r2v), storyboard (v2v), edit (v2v), cinematic (t2v), anime (t2v), +4
promptSTRING
temperatureFLOAT0.600–2
repeat_penaltyFLOAT1.151–2
seedINT00–2147483647
n_ctxINT81922048–32768
n_gpu_layersINT-1-1–200
max_tokensINT4096128–16384
video_framesINT31–16
image_max_sideINT5120–4096
smart_framesBOOLEANfalse
thinking_modeBOOLEANfalse
source_videooptIMAGE
reference_videooptIMAGE
reference_image_0optIMAGE
reference_image_1optIMAGE
reference_image_2optIMAGE

Outputs (7)

NameTypeDescription
enhanced_promptSTRING
structured_planSTRING
source_videoIMAGE
reference_videoIMAGE
reference_image_0IMAGE
reference_image_1IMAGE
reference_image_2IMAGE