Nodes/ComfyUI-FLUX2-JSON/FLUX2 Scene Builder πŸ—οΈ
ComfyUI Node

FLUX2 Scene Builder πŸ—οΈ

FLUX2 Scene Builder is where good FLUX.2 prompts start

By MushroomFleetΒ·Created 9 months agoΒ·Updated 5 months agoΒ· 27
FLUX2 Scene Builder πŸ—οΈ
    • scene
    β—„scene_typeCustomβ–Ί
    β—„custom_descriptionβ–Ί
    β—„environment_detailsβ–Ί
    β—„time_of_dayβ–Ί
    β—„custom_time_of_dayβ–Ί
    β—„weatherβ–Ί
    β—„custom_weatherβ–Ί

    FLUX2_SceneBuilder is the "where is this happening" node. Before you describe the mug, the laptop, or the camera, you tell FLUX.2 what room you're in - and it's the natural first node in any ComfyUI-FLUX2-JSON workflow, because every subject you place afterward sits inside whatever environment this node establishes. It outputs one clean scene description string, which becomes the scene field at the top of your final JSON prompt.

    The mechanism is honest and simple: pick a scene type, it pulls the matching preset description, then appends time-of-day and weather as "lighting" and "conditions" clauses. So "Studio" + "Morning" + "Clear" becomes "Professional photography studio with seamless backdrop, morning lighting, clear conditions" - a full sentence, because FLUX.2's VLM encoder reads sentences far better than tag lists.

    The inputs that matter

    • scene_type (required) - ten presets plus Custom: Studio, Interior, Exterior, Product Stage, Workshop, Office, Kitchen, Living Room, Urban Street, Natural Landscape. The presets are decent starting points - "Product Stage" gives you a clean-surface minimal setup, "Studio" a seamless backdrop - but they're deliberately generic. You're expected to add on top.
    • custom_description (multiline) - used only when scene_type is Custom. If you pick Custom and leave this blank, the node quietly falls back to the string "General scene." No error, just an unhelpful prompt. Fill it in, or don't pick Custom.
    • environment_details (multiline) - free-text extra context, always appended. This is the field where you actually add flavor: "polished concrete floor, white walls, soft daylight through a large window."
    • time_of_day / custom_time_of_day - the dropdown (Morning, Afternoon, Evening, Night, Golden Hour, Blue Hour, plus Custom) becomes "golden hour lighting". Pick Custom and the free-text field takes over.
    • weather / custom_weather - Clear, Cloudy, Overcast, Rainy, Foggy, Snowy, or Custom, appended as "foggy conditions".

    The only output is scene (a plain STRING), which wires straight into FLUX2_PromptAssembler's scene input. Note it's a plain string, not a custom object type - if you ever want to preview it, any text display node will show it.

    Install

    Same one-time deal as the rest of the pack:

    • ComfyUI Manager: search "FLUX2 Prompt Builder" β†’ Install β†’ restart.
    • Manual:
    cd ComfyUI/custom_nodes
    git clone https://github.com/MushroomFleet/ComfyUI-FLUX2-JSON.git
    

    No models, no dependencies beyond Python's stdlib, pure string building. Under FLUX2_Prompt_Builder/Core.

    Where people get tripped up

    Two things. First, the Custom + blank description silent fallback - you think you wrote a custom scene, you get "General scene," and you spend a render wondering why. Second, remembering this node sets context, not subject: describing the location here and describing the subject in FLUX2_SubjectCreator are separate jobs, and the pack keeps them separate for a reason. Put the scene in the scene node. Your JSON prompt stays structured, the encoder stays unconfused, and the whole "concept bleed" problem that makes FLUX.2 multi-object prompts fall apart just stops happening.

    CategoryFLUX2_Prompt_Builder/Core

    Inputs (7)

    NameTypeDefaultDescription
    scene_typeCOMBOCustom11 options: Custom, Studio, Interior, Exterior, Product Stage, Workshop, +5
    custom_descriptionoptSTRINGβ€”
    environment_detailsoptSTRINGβ€”
    time_of_dayoptCOMBO8 options: , Morning, Afternoon, Evening, Night, Golden Hour, +2
    custom_time_of_dayoptSTRINGβ€”
    weatheroptCOMBO8 options: , Clear, Cloudy, Overcast, Rainy, Foggy, +2
    custom_weatheroptSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    sceneSTRINGβ€”