Nodes/ComfyUI Studio Prompt Director/Multi-Ref Storyboard Prompt Composer (Encyclopedic BFL / Calliope)
ComfyUI Node

Multi-Ref Storyboard Prompt Composer (Encyclopedic BFL / Calliope)

Tell It Which Image Does What

By nexusfinancial-dev·Created 24 days ago·Updated 24 days ago· 3
Multi-Ref Storyboard Prompt Composer (Encyclopedic BFL / Calliope)
    • multi_ref_prompt
    reference_use_caseCharacter & Costume Composite (2 Characters + 2 Costumes) [4-Refs]
    character_interaction_presetHeated Argument across Wooden Cafe Table with Furious Gestures
    location_atmosphere_presetWarm Ambient Light from Red Brick Cafe with Edison Lamps
    🏷️_Custom_Characters_Interaction_ActionCharacter 1 points finger furiously while Character 2 looks away with arms crossed
    🏷️_Custom_Atmosphere_and_Lighting
    🏷️_Custom_MultiRef_Prose_Override

    Multi-reference editing is the reason people put up with Flux 2 / Klein's size at all: one model, several reference images, one composition. Character from image 1, costume from image 3, location from image 5. The hard part isn't loading the images - it's writing the text that tells the model which reference is which. That's exactly the job this node exists for.

    It's the third node in the ComfyUI-StudioPromptDirector pack, and it's a text composer: pick a use case, pick an interaction and atmosphere, and it outputs one multi_ref_prompt string that names image slots explicitly. Everything is grounded in how the model is actually prompted - "The character in image 1 on the left and the character in image 2 on the right are wearing outfits from image 3 and image 4…" That slot-naming style matters, because the community's hard-won lesson with Klein editing is to describe the composition of files, not a scene you imagine. Identity drift is the model's classic failure mode, and prompts that treat the references as ingredients rather than vibes drift a lot less.

    The use cases

    reference_use_case is the only dropdown you really need to understand. Seven modes covering the standard BFL/Flux multi-ref situations:

    • Scene Compositing [5-Refs] - two characters, two costumes, one place
    • Character & Costume Composite [4-Refs] - the default
    • Character in Location [3-Refs]
    • Style & Material Transfer [2-Refs] - content image + style image
    • Object Replacement & Liquid Fill [2-Refs]
    • Logo & Branding Placement [2-Refs]
    • Single-to-Sheet 360 Turnaround [1-Ref] - four-view character sheet from one image

    Each mode has its own base template that maps images to roles, so you can't accidentally write a 5-ref prompt with 3 references loaded. The two other required dropdowns, character_interaction_preset (heated argument, comfort embrace, "Custom Action") and location_atmosphere_preset, get appended as descriptive clauses. There's a Custom_MultiRef_Prose_Override box that bypasses everything if you want to hand-write the whole thing, plus per-slot custom boxes for the interaction and the lighting.

    What it doesn't do

    Big one: this node only outputs text. It does not load, slot, or arrange your reference images - you still wire those into the model's reference inputs yourself, in the right order to match the "image 1… image 5" numbering. If you're using Klein's kv-fp8 checkpoint with the Flux KV node, that's your speed play for multi-ref work (roughly halves render time by caching reference key/values); the composer doesn't know or care, it just makes the prompt. Also, the "Calliope" in the display name is the author's branding - don't go hunting for a model called Calliope; the actual target is the BFL/Flux 2 multi-ref stack.

    Install

    The whole pack is pure Python with no dependencies:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nexusfinancial-dev/ComfyUI-StudioPromptDirector.git
    

    Or search "ComfyUI-StudioPromptDirector" in ComfyUI Manager and restart. Nodes appear under StudioPromptDirector.

    Gotchas

    Wire multi_ref_prompt into the prompt input of your Klein multi-ref workflow. If the model keeps drifting off the references, the community playbook is: keep the reference mapping explicit (this node does), maintain the faces and posture in the prompt ("Maintain the faces. Maintain the posture."), and don't crank CFG unless the distilled 8-step default is giving you anatomy trouble. And when a composite fails, check the reference order first - the most common mistake is loading images in a different sequence than the prompt says, and no prompt composer can fix that for you.

    CategoryStudioPromptDirector

    Inputs (6)

    NameTypeDefaultDescription
    reference_use_caseCOMBOCharacter & Costume Composite (2 Characters + 2 Costumes) [4-Refs]7 options: Scene Compositing (2 Characters + 2 Costumes + 1 Place) [5-Refs], Character & Costume Composite (2 Characters + 2 Costumes) [4-Refs], Character in Location Composite (1 Character + 1 Costume + 1 Place) [3-Refs], Style & Material Transfer (Content Image 1 + Style Image 2) [2-Refs], Object Replacement & Liquid Fill (Container Image 1 + Element Image 2) [2-Refs], Logo & Branding Placement (Surface Image 1 + Logo Image 2) [2-Refs], +1
    character_interaction_presetCOMBOHeated Argument across Wooden Cafe Table with Furious Gestures9 options: Heated Argument across Wooden Cafe Table with Furious Gestures, Climax Slap Reaction Shock (Hand on Flushed Cheek, Shocked Eyes), Standing Side-by-Side Posing Professionally for Camera, Walking Together Outdoors in Intense Secretive Conversation, Foreground Subject Focused with Background Subject Looking in Shock, Emotional Confrontation with Intense Piercing Eye Contact, +3
    location_atmosphere_presetCOMBOWarm Ambient Light from Red Brick Cafe with Edison Lamps6 options: Warm Ambient Light from Red Brick Cafe with Edison Lamps, Morning Sunlight Streaming through Floor-to-Ceiling Glass, Moody Neon City Bokeh with Blurred Rainy Background, Neutral Studio Cyclorama with Clean Commercial Lighting, Ancient Temple with Colossal Pillars and Dust Rays, Dramatic Chiaroscuro with Strips of Venetian Shadow
    🏷️_Custom_Characters_Interaction_ActionoptSTRINGCharacter 1 points finger furiously while Character 2 looks away with arms crossed
    🏷️_Custom_Atmosphere_and_LightingoptSTRING
    🏷️_Custom_MultiRef_Prose_OverrideoptSTRING

    Outputs (1)

    NameTypeDescription
    multi_ref_promptSTRING