Universal Studio Prompt Director (Master Encyclopedic Hub)
Casting, Scene, Video, and Negative in a Hub
- char1_casting_prompt
- char2_casting_prompt
- multi_ref_scene_prompt
- ltx_video_prompt
- negative_prompt
The UniversalStudioPromptDirector is the pack's "master hub" - the node that chains four of the other five together so a whole character-scene workflow hangs off one box. In one node it casts two characters, writes a multi-reference scene prompt, writes an LTX video prompt with dialogue and SFX, and produces a negative prompt. Five strings out, ready to wire into your image and video pipelines: char1_casting_prompt, char2_casting_prompt, multi_ref_scene_prompt, ltx_video_prompt, negative_prompt.
If you're a beginner this is the most approachable entry point in the pack, because it comes pre-loaded with a working scene. The defaults are Maya (3D Pixar young woman, bob hair, beige tee) and Mariam (26-year-old Egyptian woman in a pastel pink hijab, photoreal) having a heated coffee-shop argument that escalates to a slap. It's a fully coherent prompt set out of the box - load the two reference images, drop the outputs into your Klein and LTX workflows, and you have a test render before you've changed anything.
How it works
Each of the two character presets (character_1_preset, character_2_preset) expands into a full casting-style description - the photoreal ones read like an actor's brief, with skin texture, eye color, lens and lighting baked in. That's genuinely useful for the character-consistency problem: the same casting prompt reused across shots keeps a face far more stable than ad-libbing a description every time. scene_location_preset and scene_drama_climax (argument climax, verbal confrontation, casual conversation, tearful reconciliation) feed the scene and video prompts. The negative_prompt_preset reuses the same guard set as the Flux builder.
The honest caveat: ltx_video_prompt is opinionated in a way that will surprise you the first time. It's hard-wired around the argument/slap scenario - Maya slaps Mariam, Mariam recoils clutching her cheek - regardless of which drama preset you pick. You customize it through the Dialogue_Script_English and Custom_Director_Notes boxes, not through a choreography dropdown. That's fine when the scene fits; just don't expect it to write a random beach sunset from the dropdowns alone. The character name overrides (character_1_name, character_2_name) and per-character prompt overrides give you the escape hatch.
What you'd reach for it for
For a storyboard pipeline - several shots of the same two characters in one scene - this node is a nice single point of truth. The multi_ref_scene_prompt output uses the standard image-slot language ("the character in image 1… wearing outfits from image 3 and 4"), so it pairs with the MultiRef_StoryPromptComposer's world, and you still load the reference images yourself. Pair it with the pack's StudioResolutionMaster for consistent canvas, and you've got a coherent starter workflow in three nodes.
Install
The whole pack is pure Python with zero dependencies:
cd ComfyUI/custom_nodes
git clone https://github.com/nexusfinancial-dev/ComfyUI-StudioPromptDirector.git
Or search "ComfyUI-StudioPromptDirector" in ComfyUI Manager and restart. It appears under StudioPromptDirector.
Gotchas
The outputs are only as flexible as the overrides - if the canned video scene fights you, write the Custom_Director_Notes box instead of fighting the dropdowns. Wire char1_casting_prompt / char2_casting_prompt into your Klein text encoder (or into a character-LoRA workflow if you have one), multi_ref_scene_prompt into the multi-ref prompt input, and ltx_video_prompt into the LTX text encoder. And remember the hub is a composer, not a renderer: no model loads here, no images appear - it just writes the words that make the rest of your graph work.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| character_1_preset | COMBO | Maya: 3D Pixar Animated Young Woman, Bob Hair, Beige Tee | 5 options: Maya: 3D Pixar Animated Young Woman, Bob Hair, Beige Tee, Elena: Hyperrealistic Italian Model, 24yo, Silk Dress, Sarah: 28yo American Blonde, Casual Denim, Photoreal, Custom 3D Stylized Character, Custom Photorealistic Character |
| character_2_preset | COMBO | Mariam: 26yo Egyptian Woman, Pastel Pink Hijab, Photoreal | 5 options: Mariam: 26yo Egyptian Woman, Pastel Pink Hijab, Photoreal, Elena: Hyperrealistic Italian Model, 24yo, Silk Dress, Sarah: 28yo American Blonde, Casual Denim, Photoreal, Custom Photorealistic Character, Custom 3D Stylized Character |
| scene_location_preset | COMBO | Modern Luxury Cafe (Exposed Brick, Oak Tables, Warm Edison Lamps) | 4 options: Modern Luxury Cafe (Exposed Brick, Oak Tables, Warm Edison Lamps), Cinematic City Street at Night with Neon Bokeh, Minimalist White Studio Interior, Cozy Rainy Day Coffee Shop |
| scene_drama_climax | COMBO | The Argument Climax Slap (First to Last Frame) | 4 options: The Argument Climax Slap (First to Last Frame), Tense Heated Verbal Confrontation, Casual Friendly Coffee Conversation, Emotional Tearful Reconciliation |
| negative_prompt_preset | COMBO | Standard Photography & General Quality Guard | 5 options: Standard Photography & General Quality Guard, Master Anatomy & Anti-Deformation Guard, 3D CGI Clean Guard, Photoreal Preserver, None / Empty Negative Prompt |
| character_1_nameopt | STRING | Maya | — |
| character_2_nameopt | STRING | Mariam | — |
| 🏷️_Char1_Custom_Prompt_Overrideopt | STRING | — | |
| 🏷️_Char2_Custom_Prompt_Overrideopt | STRING | — | |
| 🏷️_Dialogue_Script_Englishopt | STRING | Maya: "I told you never to say that again!" [slaps Mariam] Mariam: [gasps] "How could you?!" | — |
| 🏷️_Custom_Director_Notesopt | STRING | 35mm anamorphic film, volumetric warm lighting, high emotional tension | — |
| 🏷️_Custom_Negative_Promptopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| char1_casting_prompt | STRING | — |
| char2_casting_prompt | STRING | — |
| multi_ref_scene_prompt | STRING | — |
| ltx_video_prompt | STRING | — |
| negative_prompt | STRING | — |