Nodes/kiko-flux2-prompt-builder/Kiko FLUX2 Prompt Builder
ComfyUI Node

Kiko FLUX2 Prompt Builder

Your FLUX 2 prompt is a photo brief β€” build it visually

By ComfyAssetsΒ·Created 9 months agoΒ·Updated 8 months agoΒ· 65
Kiko FLUX2 Prompt Builder
    • json_prompt
    • text_prompt
    • prompt_only
    β—„promptβ–Ί
    β—„presetcustomβ–Ί
    β—„styleβ–Ί
    β—„camera_angleβ–Ί
    β—„camera_shotβ–Ί
    β—„camera_lensβ–Ί
    β—„camera_apertureβ–Ί
    β—„camera_isoβ–Ί
    β—„camera_focusβ–Ί
    β—„camera_modelβ–Ί
    β—„lightingβ–Ί
    β—„color_paletteβ–Ί
    β—„color_moodβ–Ί
    β—„compositionβ–Ί
    β—„include_empty_fieldsfalseβ–Ί
    β—„numeric_lens_formattrueβ–Ί
    β—„builder_payloadβ–Ί

    If you've been writing FLUX 2 or Z-Image prompts as one long sentence, you're leaving the best part on the table. Both are LLM-encoded models - they want instructions with structure, not tag soup, and the community's single highest-leverage trick for photorealistic output is naming a physical camera: a Canon EOS 5D, a Hasselblad, an 85mm at f/1.8. Kiko FLUX2 Prompt Builder is a visual GUI that builds exactly that kind of structured, photography-brief-style prompt for you - camera settings, film stock, lighting, colors, composition - then hands you the JSON or the plain text.

    The name is a bit of a lie in the other direction: it doesn't call FLUX 2's API, needs no key, downloads no model. It's a front-end form bolted onto a string formatter, and it works with Z-Image and anything else that accepts structured prompts (the author verified z-image personally).

    How it works

    The node is two halves. The first is a custom web UI (the web/kikoPromptBuilder.js extension) that gives you the pretty part: preset dropdowns, a camera/film-stock database, lighting and mood pickers, and hex color swatches. That UI serializes everything into one builder_payload string, which the backend merges in order - defaults, then payload, then your explicit inputs, then preset defaults - and finally emits three strings. No CLIP calls, no API, nothing to download; all the camera and film-stock data ships as JSON files inside the pack.

    The inputs that matter

    You'll actually touch a fraction of these. prompt is the only required one and the only one you must fill in yourself - "Main scene description" is your hook. The two you'll set next:

    • preset - 21 one-click starting points: intimate, boudoir, fashion, landscape, astro, macro, culinary, cinematic, product, automotive, and more. custom keeps whatever manual fields you've typed, so a preset is a starting skeleton, not a reset.
    • The camera_* fields - angle, shot, lens, aperture, ISO, focus, and camera_model (the film stock / camera body line). This is the good stuff. If you type 85mm into the lens field, numeric_lens_format (on by default) turns it into a clean "lens-mm": 85 in the JSON; flip it off and it stays a string. include_empty_fields (off by default) drops empty keys so your JSON doesn't look like a half-filled form.

    Everything else - style, lighting, color_palette, color_mood, composition - fills the same kind of slot. The builder_payload field says "Managed by UI," so leave it alone.

    The three outputs

    json_prompt is the structured version, ready for FLUX 2's JSON prompt support or a Z-Image workflow. text_prompt is the same info flattened into prose - "Camera: eye level angle, medium close-up, 85mm lens, f/1.8. Shot on Canon EOS 5D Mark IV…" - which is what you feed a standard CLIP Text Encode node. prompt_only is just the scene description, for when the rest is noise. For a normal ComfyUI setup, wire text_prompt into your text encoder and don't overthink it.

    Install

    Easiest route: ComfyUI Manager β†’ search "Kiko FLUX2 Prompt Builder" β†’ Install, then restart. Or the old-fashioned way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ComfyAssets/kiko-flux2-prompt-builder.git
    # restart ComfyUI
    

    There's also a ZIP download option. No dependencies, no models, nothing to configure - requirements.txt is genuinely empty of anything beyond ComfyUI's built-ins.

    Where people get burned

    • Old ComfyUI versions choke on JSON in the CLIP node. Pasting json_prompt straight into a text encoder has only worked since ComfyUI gained the support - the author runs git pull origin/master and always stays on master. If pasting JSON silently fails, update ComfyUI first.
    • Camera models are flaky on FLUX 2 Dev. Community reports say lens and composition land fine on Dev, but naming specific bodies (Canon 1D, Hasselblad, Nikon D850) only really sticks in FLUX 2 Pro. If your film-stock line gets ignored, that's the model, not this node.
    • JSON isn't magic. One honest thread skeptic called it "Word++ all over again," and the reasonable middle ground is that the model parses it as a structured text block, not data - a well-written paragraph does the same work. What the node actually buys you is a repeatable form and consistent structure, which is a real win when you're batch-testing camera settings. Just don't expect the brackets to do the prompting for you.
    Category🫢 ComfyAssets/🧠 Prompts

    Inputs (17)

    NameTypeDefaultDescription
    promptSTRINGMain scene description
    presetoptCOMBOcustomLoad preset values; custom keeps your manual fields
    styleoptSTRINGβ€”
    camera_angleoptSTRINGβ€”
    camera_shotoptSTRINGβ€”
    camera_lensoptSTRINGβ€”
    camera_apertureoptSTRINGβ€”
    camera_isooptSTRINGβ€”
    camera_focusoptSTRINGβ€”
    camera_modeloptSTRINGβ€”
    lightingoptSTRINGβ€”
    color_paletteoptSTRINGβ€”
    color_moodoptSTRINGβ€”
    compositionoptSTRINGβ€”
    include_empty_fieldsoptBOOLEANfalseβ€”
    numeric_lens_formatoptBOOLEANtrueβ€”
    builder_payloadoptSTRINGβ€”

    Outputs (3)

    NameTypeDescription
    json_promptSTRINGβ€”
    text_promptSTRINGβ€”
    prompt_onlySTRINGβ€”