Nodes/radiance/Video Prompt Builder
ComfyUI Node

Video Prompt Builder

Stop retyping the same HDR words into every clip

By FXTD-Studios·Created 8 months ago·Updated about 18 hours ago· 246
Video Prompt Builder
    • positive_prompt
    • negative_prompt
    ◄subjecta person walking through a neon-lit cityscape►
    ◄peak_nits1000►
    ◄target_gamutBT.2020►
    ◄eotfPQ (ST.2084)►
    ◄camera_moveSlow push-in►
    ◄moodNeon / cyberpunk►
    ◄style_suffixphotorealistic, 8K, film grain, anamorphic lens►
    ◄suppress_artefactstrue►
    ◄print_promptfalse►

    Video models punish short prompts. LTX especially - it's the family the community keeps describing as finicky about prompt length and structure, and a four-word prompt gives it nothing to work with. So you end up writing the same scaffolding every time: subject, then lighting, then camera move, then a stack of look words, then a negative prompt you copied from a thread six months ago.

    Video Prompt Builder is that scaffolding as a node. It assembles a positive prompt in a fixed order - subject first, then mood words, then camera movement, then HDR descriptors, then your free-text style suffix - and hands back a negative prompt alongside it. Two string outputs, and you're done.

    What it genuinely does, and what it doesn't

    The order is the feature. Diffusion text encoders weight early tokens more heavily in practice, and the node's own tooltips are explicit about the layout: subject and action go first, mood tokens land right after the subject, camera words after those, HDR descriptors after that, style suffix last.

    The HDR part deserves a cold look, because the author is honest about it in the tooltip and you should be too: the gamut, transfer-function and nits descriptors are prompt text only. No pixel encoding, no colour transform, no metadata. Asking for "1000 nits HDR10" makes the model reach for a punchier, high-contrast look; it does not make your output an HDR master. If you want the actual HDR pipeline, that's SDR → HDR and the Write node's colour-space handling. This node is the aesthetic nudge.

    Same for the negative: suppress_artefacts on gives you a fixed list - watermark, subtitles, flickering, temporal inconsistency, jitter, duplicate frames, banding, distorted faces and friends. It's a decent default and it is fixed. Turn the toggle off and you get an empty negative prompt to write your own.

    Inputs worth setting

    • subject - the main subject and action, default a person walking through a neon-lit cityscape. Placed first. Be specific; this is the one field that does the real work.
    • peak_nits - 100 through 10000, default 1000. Pick 100 and the descriptor reads as SDR, which is what you want if you're not chasing an HDR-ish look.
    • target_gamut - BT.2020, P3-D65, P3-DCI, BT.709, ACEScg, ACES2065-1.
    • eotf - PQ (ST.2084), HLG (BT.2100), Linear, sRGB / BT.1886.
    • mood and camera_move - dropdowns of plain-English tokens (Golden hour, Blue hour / dusk, Neon / cyberpunk; Slow push-in, Drone aerial, Tracking shot, Locked off cinematic, …). Both have a None option that adds nothing, which is the right setting when your prompt is already crowded.
    • style_suffix - multiline free text, appended last. Default is photorealistic, 8K, film grain, anamorphic lens.
    • print_prompt - dumps both prompts to the console. Turn it on while you're dialling in a look; it's the only way to see what the keywords expanded to.

    Outputs are positive_prompt and negative_prompt, both STRING - straight into CLIP Text Encode (or into a Radiance T2V/I2V pipeline's prompt inputs).

    Install

    ComfyUI Manager → search Radiance → install → restart → refresh. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/fxtd-studios/radiance.git
    cd radiance
    python -m pip install -r requirements.txt
    

    Windows portable: use python_embeded\python.exe. No model download is involved here; it's string assembly.

    Where people get burned

    Treating it as a full prompt. It's a builder, not an encoser. You still need the text encoder that matches your model - T5-XXL for Wan, Gemma 3 for LTX 2.3 - and the wrong encoder won't care how nice your prompt is.

    The default style suffix fighting your intent. photorealistic, 8K pasted onto a stylised animation prompt is a footgun. Clear the field when you're not shooting for photoreal.

    Expecting the negative prompt to be yours. It's one fixed list. If your clip has a specific failure mode - say hands - you'll want suppress_artefacts off and your own text, because you can't append to the built-in list from this node.

    Running it as an output node and wondering why it executes. It is flagged as an output node in ComfyUI, so it runs even when nothing consumes it. Harmless, just don't build a debugging session around it.

    CategoryFXTD STUDIOS/Radiance/Video

    Inputs (9)

    NameTypeDefaultDescription
    subjectSTRINGa person walking through a neon-lit cityscapeMain subject and action. Placed first in the positive prompt.
    peak_nitsCOMBO1000Adds a peak-luminance descriptor (e.g. '1000 nits HDR10 ...') to the prompt. Prompt text only.
    target_gamutCOMBOBT.2020Adds a gamut descriptor to the prompt. Prompt text only.
    eotfCOMBOPQ (ST.2084)Adds a transfer-function descriptor to the prompt. Prompt text only.
    camera_moveoptCOMBOSlow push-inAdds camera-movement words after the mood words. None adds nothing.
    moodoptCOMBONeon / cyberpunkAdds lighting-mood words right after the subject. None adds nothing.
    style_suffixoptSTRINGphotorealistic, 8K, film grain, anamorphic lensFree text appended at the end of the positive prompt.
    suppress_artefactsoptBOOLEANtrueOn: negative_prompt is a fixed list of common video artefacts. Off: negative_prompt is empty.
    print_promptoptBOOLEANfalseAlso write both prompts to the ComfyUI console log.

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING—
    negative_promptSTRING—