Nodes/SDXL Auto Prompter/APNext H3 Scene Brief (manual scene)
ComfyUI Node

APNext H3 Scene Brief (manual scene)

Stop fighting the AI writer — plan the scene yourself

By dagthomas·Created 3 years ago·Updated about 18 hours ago· 289
APNext H3 Scene Brief (manual scene)
    • briefs
    description
    scene_number0
    location
    cast
    pictures
    camera
    brief_in

    The H3 multi-scene writers in this pack - Music Video, Crossover, Scenes - are great at one thing and terrible at another. Great at turning a rough idea into spec-compliant MiniMax-H3 prompts with shots, timestamps, dialogue and wardrobe locks. Terrible at knowing that you specifically wanted scene 3 to happen on the rooftop, Lena only, one slow push-in. That gap is exactly what H3SceneBrief is for: one node, one scene you plan by hand, handed to the writer as a binding brief.

    And here's the part that should sell you on it: the node makes no LLM call, needs no API key, downloads no model. It's a text assembler. You type, it formats, the writer does the expensive thinking. The cost of being specific is exactly zero tokens on your side.

    How it works

    Each H3SceneBrief node builds one SCENE block - a plain-text plan with a description plus optional location, cast, pictures and camera fields. Chain several nodes through brief_in (same idea as how H3 Characters chain through cast_in) and wire the last node's briefs output into a writer's scene_briefs socket. The writer then treats each brief as the binding plan for that scene: it still writes the full production-ready H3 envelope - grammar, timestamps, wardrobe locks, lyric sync - but the content follows your brief. Scenes that have no brief stay the model's to invent. Nice division of labour.

    The inputs you actually touch:

    • description - the only required one. What happens in this scene, in your words: the action, the beat, the image you want. Keep it concrete; the writer stages exactly this, adapted to the scene's duration and energy.
    • scene_number - 0 (default) means unpinned: briefs fill scenes in chaining order, skipping any pinned ones. Set it to pin this brief to a specific scene (1 = first). This is how you say "whatever the model does elsewhere, scene 4 is this."
    • location - where it's set. Matches or extends the writer's location lock, so a place you name here stays consistent.
    • cast - who's on screen, comma-separated, using names from your cast (e.g. Lena, Sheldon). Empty = the writer decides.
    • pictures - which reference pictures matter here, e.g. 1 or Picture 2 = the rooftop, use as the location.
    • camera - an optional framing wish like one slow push-in, no cuts.

    Template variables ({character1}, {cast}) work inside every field, so a brief can refer to the character your H3 Characters node defined rather than you re-describing them.

    The single briefs output is a STRING, not a list - chaining happens through brief_in, not by multi-wiring. Get that backwards and your scenes just won't show up in the writer.

    Installing it

    This ships in the dagthomas/comfyui_dagthomas pack ("SDXL Auto Prompter"). Easiest via ComfyUI Manager - search "comfyui_dagthomas" and install. Manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/dagthomas/comfyui_dagthomas
    cd comfyui_dagthomas
    pip install -r requirements.txt
    

    Then restart ComfyUI. The pack's requirements cover the LLM SDKs (openai, anthropic, google-genai, httpx) that the writers use - none of them apply to this node itself, since it never calls anything.

    Gotchas

    The writer still reinterprets your brief through the model. It won't quote you verbatim - it stages your scene within the H3 format, and lyric sync/energy for music-video runs will bend your wording. If you leave description and every field empty, the node just passes the chained list through unchanged, so a blank brief silently adds nothing. And remember: briefs shape scenes, but the writer still needs a model behind it (Claude Code CLI, an API key, or an Ollama backend) - this node alone doesn't generate anything.

    Categorycomfyui_dagthomas/H3

    Inputs (7)

    NameTypeDefaultDescription
    descriptionSTRINGWhat happens in this scene, in your words - the action, the beat of the story, the image you want. The writer stages exactly this (adapted to the scene's duration, lyrics and energy).
    scene_numberoptINT00–99Pin this brief to a specific scene/piece number (1 = first). 0 = unpinned: unpinned briefs fill scenes in chaining order, skipping pinned ones.
    locationoptSTRINGWhere the scene is set (matches or extends the location lock).
    castoptSTRINGWho is on screen, comma separated, using the names from your cast (e.g. `Lena, Sheldon`). Empty = the writer decides.
    picturesoptSTRINGWhich reference pictures matter here, e.g. `1` or `Picture 2 = the rooftop, use as the location`.
    cameraoptSTRINGOptional camera / framing wish (e.g. `one slow push-in, no cuts`).
    brief_inoptSTRINGChain from another H3 Scene Brief to build a list of scenes.

    Outputs (1)

    NameTypeDescription
    briefsSTRING