Nodes/Propmt Worker/Prompt Сonstructor
ComfyUI Node

Prompt Сonstructor

The style assembler that ties the pack together

By lenskikh·Created 2 years ago·Updated about a year ago· 16
Prompt Сonstructor
    • STRING
    scene
    photography_style
    Cinematography_Styles
    colors
    custom_list
    clothes
    body

    The heart of the pack. Prompt Сonstructor is the node that turns "I want something moody and cinematic" into actual comma-tags, and it's the hub the Clothes and Body nodes plug into.

    First, the spelling: that's a Cyrillic С in "Сonstructor", not a Latin C. It's one of the pack's little tripwires - the node won't show up when you search "Prompt Constructor" in some frontends. Look under the "Prompt Worker" category, or search "Constructor" and check for the odd-looking C. (The comfy.icu page slug literally lost the character, hence "Prompt-onstructor".)

    The inputs that matter

    Five style dropdowns plus two optional text feeds:

    • scene (8): atmospheric, suspenseful, horror, comedic, dramatic, romantic, party
    • photography_style (14): black and white, fashion photography, macro, night, high/low contrast…
    • Cinematography_Styles (19): film noir, dreamlike, dramatic shadows, jump cuts style…
    • colors (37): a full palette including "cool colors", "fluorescent colors", "champagne colors"
    • custom_list - a dropdown read from custom_list.json (see the trap below)
    • clothes and body (STRING, optional) - wire the outputs of Prompt Clothes and Prompt Body here

    How it works

    It joins the chosen style tags in a fixed order - cinematography first, then scene, photography, colors, then your clothes and body strings, then custom - separated by commas. Order matters in tag-based prompting: on SDXL-lineage models (Illustrious, Pony, WAI) earlier tags get stronger attention. So the fixed order is a deliberate editorial choice: mood and light first, wardrobe later.

    The custom_list trap

    This is the gotcha that bites people. The dropdown loads from nodes/lists_of_types/custom_list.json, and that file currently ships with just ["Off", "custom"]. So if you pick "custom" from the dropdown, the node appends the literal word "custom" to your prompt. There are no prebuilt custom options - the README says you're meant to open the JSON and add your own entries ("the user can modify it in the file custom_list.json"). Until you do, "custom" in your prompt does nothing useful. Keep "Off" first and no trailing comma in the array, or json.load fails and the node disappears at startup.

    Why reach for it

    If you build many workflows and want a consistent "tone" block without retyping it, this is the quickest way to get one. The scene/photography/cinema split also maps nicely onto the modern advice about prompt structure: a block of concrete photographic referents ("film noir", "high contrast", "dramatic shadows") does more on current models than a pile of vague quality tags. The dropdowns are read from editable JSON, so your "moody film noir" template can become your house style in one file.

    Install and wiring

    Same pack, same story - no dependencies, no models, no key:

    cd ComfyUI/custom_nodes
    git clone https://github.com/lenskikh/ComfyUI-Prompt-Worker
    

    Restart ComfyUI, or install via ComfyUI Manager (search "Prompt Worker" - the registry title is misspelled "Propmt Worker", so try both). Its STRING output feeds a Prompt Merger or the Prompt Worker cleaner, then on to encoding.

    CategoryPrompt Worker

    Inputs (7)

    NameTypeDefaultDescription
    sceneCOMBO8 options: Off, atmospheric scene, suspenseful scene, horror scene, comedic scene, dramatic scene, +2
    photography_styleCOMBO14 options: Off, abstract photography, artistic photography, black and white, documentary photography, fashion photography, +8
    Cinematography_StylesCOMBO19 options: Off, blockbuster style, dramatic shadows, dreamlike, dynamic shots, emotional, +13
    colorsCOMBO37 options: Off, amber colors, beige colors, bronze colors, burgundy colors, champagne colors, +31
    custom_listCOMBO2 options: Off, custom
    clothesoptSTRING
    bodyoptSTRING

    Outputs (1)

    NameTypeDescription
    STRINGSTRING