Nodes/comfyui-scene-generator/🧭 Scene Context Picker
ComfyUI Node

🧭 Scene Context Picker

The Picker is the Scene Generator's co-pilot

By elliefox-aiΒ·Created 3 months agoΒ·Updated 9 days agoΒ· 2
🧭 Scene Context Picker
    • context_text
    • scene_type_suggestion
    • resolved_setting
    • resolved_tone
    • seed_used
    β—„genre🎲 randomβ–Ί
    β—„genre2noneβ–Ί
    β—„tone🎲 randomβ–Ί
    β—„setting🎲 randomβ–Ί
    β—„seed42β–Ί
    β—„posefalseβ–Ί
    β—„positioningfalseβ–Ί
    β—„expressionfalseβ–Ί
    β—„character_1β€”β–Ί
    β—„character_2β€”β–Ί
    β—„character_3β€”β–Ί
    β—„character_4β€”β–Ί

    🧭 Scene Context Picker is the node you run before you prompt. It procedurally resolves a narrative context - which setting, which situation, which tone, which atmosphere flourish - and hands it to you as structured text plus a suggestion for how to frame the shot. No LLM in sight, no API key, no model weights to download: it's pure template sampling from the JSON that ships in the pack.

    Think of it as the recommendation layer. The Scene Generator in the same pack is a structured multi-character prompt engine with spatial layout; the Picker is its upstream companion. Wire context_text into the Generator's theme input, feed scene_type_suggestion to its scene_type, and let one seed drive both nodes. That one-seed coupling is the trick - the whole deterministic design exists so your story stays coherent across rolls instead of fighting itself.

    How it works

    Same machinery as the Composer sibling, simpler surface. Your genre filters the eligible settings; genre2 adds a union mashup so settings matching either genre roll. The node picks a setting, then a situation from that setting's pool, then pulls a tone modifier and an environment-aware atmosphere flourish ("beneath driving rain and storm-lit skies" for a storm scene, not a clear-sky line). The assembled context_text is subject + situation + tone modifier + atmosphere, comma-joined. scene_type_suggestion is the situation's composition bias - face_off, gathering, at_work, and the like - which is exactly what the Generator's layout engine wants to know.

    The inputs and outputs that matter

    You set genre, genre2, tone, setting, and seed. Note the setting list here is venue-level (cruise_ship, harbor_tavern, pirate_ship) - the two-tier archetype filtering ("on a nautical vessel" gating venues by facet tags) is a Composer feature, not a Picker one. If you want that, use the Composer. The Picker's five outputs are the payoff:

    • context_text - the prose context, ready to wire into the Generator's theme.
    • scene_type_suggestion - the composition bias, feeds the Generator's scene_type.
    • resolved_setting and resolved_tone - the actual values that got rolled, handy for logging or for checking "why did this come out as a tavern?" when the dice landed.
    • seed_used - the seed that produced everything, so a sampler can share the roll.

    That's the real difference from the Composer: no render_prompt, no composition axis - but you get the resolved values and the scene-type suggestion, which is exactly what pairing it with the Generator needs.

    Install

    It's the same pack as the Composer, so one install covers both:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/elliefox-ai/comfyui-scene-generator.git ComfyUI-EllieFoxAI-scene-gen
    

    Restart ComfyUI, look under SceneGen. ComfyUI Manager search for "comfyui-scene-generator" works too. No requirements.txt, no model downloads - the README's claim of zero extra Python dependencies checks out against the shipped code.

    Where people get burned

    This pack barely registers in the community yet - a corpus search for "scene generator" in r/comfyui returns single-digit mentions, mostly unrelated. You're an early adopter, so keep the README open. Two things to remember: if a downloaded workflow references the Picker and also wants Outpaint Controller or PromptPeek, those nodes moved to sibling repos (comfyui-elliefoxai-canvas, comfyui-elliefoxai-diagnostics), not here. And the prose it emits is natural language for text-conditioned models - if your checkpoint is tag-trained (Illustrious, Pony), don't be shocked when it underperforms; this is built for the structured-prompt / LLM-encoder school of prompting. Wire seed_used into the Generator's seed so the context and the composition stay on the same page.

    CategorySceneGen

    Inputs (12)

    NameTypeDefaultDescription
    genreCOMBO🎲 random8 options: 🎲 random, historical, modern, sci_fi, fantasy, western, +2
    genre2COMBOnoneOptional second genre. Union with genre β€” settings matching EITHER are eligible (mashup).
    toneCOMBO🎲 random11 options: 🎲 random, violent, charming, satirical, eerie, mundane, +5
    settingCOMBO🎲 randomForce a specific setting, or let Genre(s) filter randomly.
    seedINT420–4294967295β€”
    poseBOOLEANfalseAppend a posture phrase to each staged character (static stance register). The Scene Character Roller has the same toggle β€” if both fire, doubled cues are yours.
    positioningBOOLEANfalseStage the cast with placement templates β€” lateral/relational phrases per cast size ('on the near side of the frame, …'). Off (default) = no placement language; the renderer arranges.
    expressionBOOLEANfalseAppend a facial-expression phrase to each staged character ('brow knotted, lips a thin line'). Pairs with pose; if both fire, the cues compound.
    character_1optSTRINGWire a character description ('a fisher in a yellow slicker'). Default staging adds no placement β€” enable the positioning toggle for template staging. Soft cap: 4; beyond that, extras are ignored.
    character_2optSTRINGAdditional character. Leave unwired to drop.
    character_3optSTRINGAdditional character. Leave unwired to drop.
    character_4optSTRINGAdditional character. Leave unwired to drop.

    Outputs (5)

    NameTypeDescription
    context_textSTRINGβ€”
    scene_type_suggestionSTRINGβ€”
    resolved_settingSTRINGβ€”
    resolved_toneSTRINGβ€”
    seed_usedINTβ€”