Nodes/ComfyUI Nox Prompter/Nox Prompt Builder
ComfyUI Node

Nox Prompt Builder

The formula-driven Wan 2.2 prompt assembler at the heart of the pack

By jamesk9526·Created 12 months ago·Updated 7 days ago· 0
Nox Prompt Builder
    • prompt
    • negative_prompt
    • aesthetic_notes
    • dynamic_notes
    • preset_status
    formulaAdvanced Formula
    subject_focusBattle-hardened warrior drenched in rain, wearing leather armor and fur
    scene_settingMuddy battlefield at night, lightning in the distance, flames flickering
    motion_arcCharges forward roaring, swings blade in a slow-motion crash zoom
    narrative_hookCamera locks onto her determined eyes as thunder cracks overhead
    model_emphasisCinematic aesthetic control, precise semantic adherence
    aesthetic_paletteDaylight rim lighting | Soft diffusion fill | Warm tone bounce | Balanced composition
    dynamic_paletteRunning motion arcs | Joyful expressions | Pan-right sweep | Crane follow
    style_paletteAnime cinematic tonality | Tilt-shift miniature effect
    keyword_styleauto
    quality_profileBalanced
    extra_descriptorsModel feature emphasis: complex & dynamic motion
    lighting_prompt
    lighting_summary
    lighting_technical_notes
    custom_keywords
    negative_prompt
    prompt_prefix
    prompt_suffix
    camera_prompt
    camera_summary
    camera_notes
    camera_directives
    prompt_filter_enabledtrue
    prompt_filter_profilebalanced
    preset_actionnone
    preset_name

    This is the node the whole pack is built around. Nox Prompt Builder is described in the README as a "formula-driven Wan 2.2 builder," and that's the honest pitch: it takes a subject, a scene, and a motion arc, then assembles them into a structured prompt using one of four formulas, with curated vocabulary for lighting, camera, color, motion, and style - plus inline overrides and seeded randomization. If you've been typing the same "cinematic, highly detailed" preamble into every prompt, this is the node that turns prompt writing into filling in a form.

    How it works

    The four formula options in constants.py define the assembly order: Basic is Subject + Scene + Motion; Advanced adds aesthetic controls and stylization; Story Spotlight focuses subject, environmental beat, camera language, and emotional tone; Trailer Teaser opens on the hook. The builder resolves your dropdowns (light source, light quality, time of day, shot size, lens, color tone, motion type, emotion, visual style, special effect) against the shared vocabulary dictionaries, then formats the result according to keyword_style.

    keyword_style is the control that matters for model fit: auto emits labeled clauses, inline flows as natural prose, compact produces dense strings - which is the Wan-style format the pack is tuned for. There's also randomize_missing: leave dropdowns at "None" and it fills them from its curated vocabularies using random_seed, which is genuinely great for idea batches where you want a loose family of variations. palette_overrides and custom_keywords let you inject output from Nox Prompt Palette Mixer, and lighting_prompt / camera_prompt (plus their summary and notes siblings) are pass-throughs for Nox Prompt Lighting Master and Nox Prompt Camera Master - that's the pack's whole "centralized lighting/camera control" story.

    Inputs and outputs that matter

    The required four are formula, subject_focus, scene_setting, and motion_arc. After that, set keyword_style, pick your aesthetic dropdowns, and enable randomize_missing with a seed if you want batch variation. Outputs: prompt (the goods - straight to positive conditioning), negative_prompt, aesthetic_notes and dynamic_notes (human-readable summaries, useful for review), and preset_status. Standard preset_action/preset_name save/load applies.

    Installing it

    Pack install, once. ComfyUI Manager: search "Nox Prompter", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jamesk9526/NoxPrompter-ComfyUI-CustomNode
    

    Restart and the NoxPrompter category appears. No requirements.txt, no model downloads - pure stdlib.

    Where people get burned

    The Wan 2.2 framing cuts both ways. The pack's compact style and block structure are exactly what an LLM-encoded video model wants, but a few habits leak in from SDXL days that do nothing on Wan: the default model_emphasis ("cinematic aesthetic control, precise semantic adherence") is flavor text that an LLM encoder mostly ignores, and any (word:1.3)-style weights you add elsewhere get silently discarded. If you're feeding this into an SDXL-lineage checkpoint instead, the compact style reads worse - that family wants tag-style prompting, and you'll want keyword_style on inline. Also note the README's python test_nodes.py verification step doesn't ship in the repo, and its old ComfyNoxPrompter URL is stale - use the clone command above.

    CategoryNoxPrompter/Builders

    Inputs (27)

    NameTypeDefaultDescription
    formulaCOMBOAdvanced Formula4 options: Basic Formula, Advanced Formula, Story Spotlight, Trailer Teaser
    subject_focusSTRINGBattle-hardened warrior drenched in rain, wearing leather armor and fur
    scene_settingSTRINGMuddy battlefield at night, lightning in the distance, flames flickering
    motion_arcSTRINGCharges forward roaring, swings blade in a slow-motion crash zoom
    narrative_hookoptSTRINGCamera locks onto her determined eyes as thunder cracks overhead
    model_emphasisoptSTRINGCinematic aesthetic control, precise semantic adherence
    aesthetic_paletteoptSTRINGDaylight rim lighting | Soft diffusion fill | Warm tone bounce | Balanced composition
    dynamic_paletteoptSTRINGRunning motion arcs | Joyful expressions | Pan-right sweep | Crane follow
    style_paletteoptSTRINGAnime cinematic tonality | Tilt-shift miniature effect
    keyword_styleoptCOMBOauto3 options: auto, inline, compact
    quality_profileoptCOMBOBalanced4 options: Balanced, Cinematic, Minimal, Narrative
    extra_descriptorsoptSTRINGModel feature emphasis: complex & dynamic motion
    lighting_promptoptSTRING
    lighting_summaryoptSTRING
    lighting_technical_notesoptSTRING
    custom_keywordsoptSTRING
    negative_promptoptSTRING
    prompt_prefixoptSTRING
    prompt_suffixoptSTRING
    camera_promptoptSTRING
    camera_summaryoptSTRING
    camera_notesoptSTRING
    camera_directivesoptSTRING
    prompt_filter_enabledoptBOOLEANtrue
    prompt_filter_profileoptCOMBObalanced4 options: balanced, cinematic, minimal, narrative
    preset_actionoptCOMBOnone4 options: none, save, load, list
    preset_nameoptSTRING

    Outputs (5)

    NameTypeDescription
    promptSTRING
    negative_promptSTRING
    aesthetic_notesSTRING
    dynamic_notesSTRING
    preset_statusSTRING