Nodes/world weaver/World Weaver Prompt (World Weaver)
ComfyUI Node

World Weaver Prompt (World Weaver)

The engine prompt that turns a scene idea into a shot list

By Creepybits·Created 10 months ago·Updated 2 months ago· 30
World Weaver Prompt (World Weaver)
    • combined_text
    user_text

    This is the node the whole pack is named after. World Weaver's pitch is that your character stays consistent because a written "DNA" description gets spliced into every prompt - but a character alone doesn't make a scene. World Weaver Prompt is the part that turns the scene into a picture: it's a fixed, opinionated system prompt that instructs an LLM to take your shot composition, character action, lead character, and scene keywords, and rewrite them into one cinematic, camera-aware prompt. Then the LLM (in the pack's Gemini node) does the actual composing.

    It's the working twin of the pack's Scene Director node, which ships broken due to a filename typo. World Weaver Prompt loads the same underlying prompt file - assets/prompts/Scene_Director.txt - but it gets the filename right. If you're trying to figure out which of the two to use, it's this one. Every workflow the pack ships (Flux, Qwen, Wan 2.2) routes through it.

    How it works

    The mechanism is refreshingly dumb in the best way. The node reads Scene_Director.txt at construction, then appends whatever you type in user_text with a blank line between them. One input, one output:

    • user_text - your scene description: the shot, the action, the location, the mood. Multiline.
    • Output: combined_text - the fixed scene-director system prompt followed by your text.

    What comes out is designed to be handed to an LLM, not directly to a text encoder. In the pack's workflows, combined_text flows into a Gemini node as the content to process (the scene director "directs" Gemini, Gemini writes the final prompt), then that result goes to the CLIP or T5 encoder. If you feed combined_text straight to a CLIPTextEncode, you're encoding a system prompt and an instruction together - which can work on LLM-encoded models like Flux, but isn't what it's built for.

    The prompt file itself is worth reading once. Its prime directive is that shot composition is law: if you say "medium shot," everything else yields to it. It demands the action become the character, and it has a genuinely useful anti-distorted-faces rule - when a scene includes crowds, background figures must be described as indistinct, bokeh-blurred set dressing so you don't generate a wall of mangled faces. That's the kind of detail that comes from actually running these workflows and fixing what breaks.

    Installing it

    Standard World Weaver install: ComfyUI Manager, search "world weaver", install, restart. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Creepybits/World_weaver
    

    Restart, let pip install the pack's requirements (google-genai, numpy, opencv-python, requests, sounddevice - no model downloads), and the node appears under Creepybits/World_weaver.

    Where people get burned

    The fixed prompt is loaded once, when the node is created. Edit Scene_Director.txt to tune the system prompt and you'll need to restart ComfyUI (or at least reload the workflow) before your change shows up.

    The bigger trap is expectation-setting. The output isn't a finished prompt - it's a prompt for a prompt: a director's brief that expects an LLM to execute it. Skip the LLM and you'll wonder why your "image" is a wall of prose. And remember the whole system is aimed at Flux-era prose prompting; if your base model wants booru tags, this node is speaking a different language than your encoder.

    Is it the answer to character consistency? No - the community consensus has largely moved to LoRAs and instruction-editing, and no prompt template fully pins a face. But as an organizing layer - a fixed, repeatable directive that keeps shot framing consistent across every image you make of a character - it's a solid, quietly clever piece of workflow plumbing. It's the node that makes the rest of the pack's system hang together.

    CategoryCreepybits/World_weaver

    Inputs (1)

    NameTypeDefaultDescription
    user_textSTRING

    Outputs (1)

    NameTypeDescription
    combined_textSTRING