Video Prompt Expander (Advanced)
When 'cinematic' isn't specific enough
- reference_image
- positive_prompt_1
- positive_prompt_2
- positive_prompt_3
- negative_prompt
- breakdown
- status
- vision_caption
The plain Video Prompt Expander is the on/off switch: give it an idea, pick a preset, get a prompt. This is the control room. The Advanced node from Eric's Prompt Enhancers pack hands you granular control over a video prompt - lighting source, lens, shot structure, color tone, even "Studio Ghibli style" - and, in the v1.8 redesign, something none of the pack's other nodes do: it can take an existing prompt and improve it rather than only writing from scratch.
It's the node you graduate to when the cinematic preset keeps producing prompts that all feel like the same movie.
The four operation modes
operation_mode is the headline feature, and it changes what the node does with your basic_prompt:
- expand_from_idea - the original behavior: turn a short concept into a full prompt.
- refine_existing - polish and improve a prompt you already wrote. This is the standout; nothing else in the pack does it.
- modify_style - keep the subject, change the aesthetic.
- add_details - take a decent prompt and enrich it.
So you're not locked into the expand-a-sentence workflow. If you hand-rolled a 200-word prompt that's 80% right, refine_existing is the difference between starting over and polishing.
How it works
Same local-LLM backend as the rest of the pack (LM Studio or Ollama via an OpenAI-compatible endpoint; no model ships with the node). What's different is the system prompt it assembles: the operation mode, your detail_level (concise / moderate / detailed / exhaustive - the tooltips on each are the author's own description, and "detailed" is the default for good reason), plus whichever of the ~25 aesthetic dropdowns you touched. creativity_mode is worth calling out because it's just temperature in a trench coat: conservative maps to 0.5, balanced 0.7, creative 0.85, highly_creative 1.0. And shot_structure (continuous paragraph vs. a 2/3/4-shot breakdown) is the pack's most underrated setting - a three-shot structure is what makes a Wan clip feel directed instead of generated.
The trap: leave the dropdowns alone
Fifty-plus settings is a lot of knobs, and they all default to auto - that default is correct. The fastest way to ruin this node is to set eight categories at once and turn the LLM into a box-ticker. The right order of operations: set operation_mode and detail_level, pick a preset, run it. Then add one or two specific choices - say, camera_movement set to "camera pushes in" and lighting_quality to "rim lighting" - and rerun. Tune the aesthetics in small increments or you'll never know which setting actually moved the result.
Image-to-video, when you need it
The optional reference_image input flips the node into image-to-video mode automatically. reference_mode gives you seven ways to apply the image - from recreate_exact (keep character, costume and setting) down to reimagine (loosely inspired). The vision pass needs a vision-capable backend: either a VL model loaded in LM Studio/Ollama, or the pack's local Qwen3-VL backend (which needs the optional transformers stack and downloads the model on first run). The resulting caption shows up in the vision_caption output so you can see what it actually "saw."
Outputs and install
positive_prompt_1/2/3 (with num_variations up to 3), negative_prompt, breakdown (a readable summary of every setting that went in), vision_caption, and status. Wire the positive into Wan 2.2 or LTX conditioning and you're off.
Install is the shared pack story: ComfyUI Manager → search "Local LLM Prompt Enhancer", or
cd ComfyUI/custom_nodes/
git clone https://github.com/EricRollei/Local_LLM_Prompt_Enhancer.git video_prompter
cd video_prompter
pip install -r requirements.txt
then restart. Core deps are just requests; the heavier transformers/accelerate/bitsandbytes install is only for the optional local vision backend. If you get empty output, check your LLM server is running and temperature isn't cranked - the usual suspects, same as the rest of the pack.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| basic_prompt | STRING | A cat playing piano in a cozy room | Enter your prompt. Supports emphasis (keyword:1.5) and alternations {opt1|opt2} |
| operation_mode | COMBO | expand_from_idea | expand_from_idea: Take a short concept and expand it fully refine_existing: Polish and improve an existing prompt modify_style: Change the style/aesthetic of existing prompt add_details: Add more descriptive details to existing prompt |
| preset | COMBO | cinematic | 7 options: custom, cinematic, surreal, action, stylized, noir, +1 |
| detail_level | COMBO | detailed | concise: Brief, essential details only moderate: Good balance of detail detailed: Rich, comprehensive description exhaustive: Maximum detail for cinematic quality |
| creativity_mode | COMBO | balanced | Conservative: Focused, predictable (temp 0.5) Balanced: Good variety (temp 0.7) Creative: More experimental (temp 0.85) Highly Creative: Maximum variety (temp 1.0) |
| reference_mode | COMBO | recreate_exact | recreate_exact: Use image as exact reference for character, costume, and setting subject_only: Keep character identity, ignore background and lighting style_only: Match aesthetic and mood, create new subject color_palette_only: Extract and apply color scheme only action_only: Use the pose/action, change everything else character_remix: Keep character, place in new scenario reimagine: Loosely inspired by image, creative reinterpretation |
| shot_structure | COMBO | 3_shot_structure | continuous_paragraph: Single flowing description (no shot breaks) 2_shot_structure: Two distinct shots (Opening + Final Reveal) 3_shot_structure: Three shots (Setup, Development, Finale) [Recommended] 4_shot_structure: Four shots (Intro, Build, Climax, Resolution) |
| light_source | COMBO | auto | Primary source of illumination in the scene |
| lighting_quality | COMBO | auto | Quality and style of lighting |
| time_of_day | COMBO | auto | 9 options: auto, none, sunrise time, dawn time, daylight, daytime, +3 |
| shot_size | COMBO | auto | 10 options: auto, none, extreme close-up shot, close-up shot, medium close-up shot, medium shot, +4 |
| composition | COMBO | auto | 9 options: auto, none, center composition, balanced composition, left-weighted composition, right-weighted composition, +3 |
| lens | COMBO | auto | 7 options: auto, none, wide-angle lens, medium lens, long-focus lens, telephoto lens, +1 |
| camera_angle | COMBO | auto | 12 options: auto, none, eye-level shot, high angle shot, low angle shot, dutch angle shot, +6 |
| camera_movement | COMBO | auto | How the camera moves through the scene (Wan 2.2 optimized) |
| color_tone | COMBO | auto | 8 options: auto, none, warm colors, cool colors, saturated colors, desaturated colors, +2 |
| art_style | COMBO | auto | Apply the distinctive style of famous artists or art movements |
| scene_detail | COMBO | auto | Level of detail and complexity in the scene composition |
| visual_style | COMBO | auto | 15 options: auto, none, photorealistic, cinematic, 3D cartoon style, 2D anime style, +9 |
| visual_effect | COMBO | auto | 11 options: auto, none, tilt-shift photography, time-lapse, slow motion, motion blur, +5 |
| character_emotion | COMBO | auto | 14 options: auto, none, angry, fearful, happy, sad, +8 |
| llm_backend | COMBO | lm_studio | lm_studio: Uses currently loaded model in LM Studio ollama: Uses currently loaded model in Ollama qwen3_vl: Auto-detects local Qwen3-VL model (no API server needed) |
| api_endpoint | STRING | http://localhost:1234/v1 | lm_studio/ollama: API endpoint URL qwen3_vl: Leave default, or specify custom model path like 'local:A:\path\to\model' |
| positive_keywords | STRING | — | |
| negative_keywords | STRING | — | |
| num_variations | INT | 11–3 | — |
| save_to_file | BOOLEAN | false | — |
| filename_base | STRING | video_prompt_advanced | — |
| reference_imageopt | IMAGE | Optional: Provide an image to analyze and incorporate into the prompt using Qwen3-VL |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| positive_prompt_1 | STRING | — |
| positive_prompt_2 | STRING | — |
| positive_prompt_3 | STRING | — |
| negative_prompt | STRING | — |
| breakdown | STRING | — |
| status | STRING | — |
| vision_caption | STRING | — |