Nodes/comfyui-fvmtools/JB · Location Block
ComfyUI Node

JB · Location Block

A location generator with atmosphere and palette, output as JSON — the scene block

By ping1979ping·Created 5 months ago·Updated about a month ago· 0
JB · Location Block
    • location_json
    • location_string
    • palette_summary
    location_set
    seed0
    enable_backgroundtrue
    enable_midgroundfalse
    enable_architecture_detailfalse
    enable_propsfalse
    enable_foreground_elementtrue
    enable_time_of_daytrue
    enable_weathertrue
    color_moodeveryday_muted
    output_formatloose_keys
    overrides
    color_tone
    num_colors5
    harmony_typeauto
    palette_stylegeneral
    vibrancy0.50
    contrast0.50
    warmth0.50

    Location is the half of a scene prompt that everyone forgets to build. You spend twenty minutes on the character and then write "city street" and hope. JB · Location Block is the fix: one node that generates a full scene - location, background/midground/foreground layers, time of day, weather, even an atmosphere-driving color palette - and outputs it as resolved JSON ready to merge into your character document via a JB · Stitcher.

    It's the second "one-shot combo" block in the JB suite (Outfit Block being the first), and like its sibling it merges what used to be separate generator + combiner nodes into one. The location_lists/ data it draws from is the same folder the standalone SMP location generator used, and there are 245 location sets in the dropdown - from indoor/activities/axe_throwing_bar to indoor/archery_range, climbing gyms, karaoke rooms, and hundreds more, organized indoor/outdoor by activity. The Edit List modal edits the source files in place, next-run apply, no restart.

    The structure you get

    The generated location JSON is layered, which is the whole point of building it in a node rather than a flat sentence. The toggles control which layers exist:

    • enable_background (on by default) - the setting: what the space is, its scale, its mood.
    • enable_midground - the fill between setting and subject.
    • enable_architecture_detail - structural specifics (materials, fixtures, signage).
    • enable_props - the objects that make a place feel used.
    • enable_foreground_element (on) - a near-camera element for depth.
    • enable_time_of_day (on) and enable_weather (on) - lighting and atmosphere.

    Each layer is authored as its own sub-block, so a regional prompt can target location.background or location.props independently via JB · Extractor. That granularity is what makes the block feel like more than a fancy randomizer - you're building a scene you can dissect.

    The color section (num_colors, harmony_type, palette_style, vibrancy, contrast, warmth, and the optional color_tone warm/cool/neutral override) drives an atmosphere palette that the location text references - "golden-hour amber light" rather than generic "warm lighting."

    Outputs and install

    Outputs: location_json (structured, colors resolved), location_string (flat form), and palette_summary (what the atmosphere palette resolved to). Installation is the usual pack clone with no extra deps:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ping1979ping/comfyui-FVMtools
    

    Restart ComfyUI; it's under FVM Tools/JB.

    The honest note

    This node is a catalog generator, and like any catalog it's only as good as its entries. The 245 sets are heavily weighted toward indoor activity venues - if you want a generic forest or an empty desert, you may find yourself scrolling past a lot of bowling alleys and pottery studios first, or editing a set to fit. That's the Edit List modal's job, and it's the reason the node lets you into the source files at all. Also remember: a location block produces JSON for structured-prompt models - if your encoder only reads flat text, use location_string and skip the structure.

    CategoryFVM Tools/JB

    Inputs (19)

    NameTypeDefaultDescription
    location_setCOMBO140 options: indoor/everyday_de/bathroom_mirror, indoor/everyday_de/kitchen_cooking, indoor/everyday_de/living_room_sofa, indoor/everyday_de/supermarket_aisle_de, indoor/everyday_us/dentist_waiting_room, indoor/everyday_us/family_living_room_tv, +134
    seedINT00–18446744073709550000
    enable_backgroundBOOLEANtrue
    enable_midgroundBOOLEANfalse
    enable_architecture_detailBOOLEANfalse
    enable_propsBOOLEANfalse
    enable_foreground_elementBOOLEANtrue
    enable_time_of_dayBOOLEANtrue
    enable_weatherBOOLEANtrue
    color_moodCOMBOeveryday_mutedPicks the colour scheme with one setting instead of six sliders. auto: Keep the classic harmony engine and the six sliders. Unchanged behaviour for existing workflows. everyday_muted: What people actually wear: mostly neutrals with a few desaturated colours. Best default for casual sets. neutral_basics: White, grey, navy, beige, black only — plain basics, nothing that draws attention. one_accent: Neutral outfit plus exactly one saturated piece (the top). denim_casual: Denim bottoms and jacket with neutral tops and shoes. warm_earth: Cream, camel, rust, olive — warm and earthy. cool_muted: Grey, navy, slate, sage — cool and restrained. monochrome: One base colour in several shades. bold: Saturated and high contrast — designed, not everyday. pastel: Soft, light, low contrast. The six classic sliders (num_colors, harmony_type, palette_style, vibrancy, contrast, warmth) stay available as optional inputs and are used when the mood is 'auto' — or to override single values.
    output_formatCOMBOloose_keysnatural: plain prose, no keys and no metadata — use this for Krea 2 / Qwen text encoders. loose_keys / pretty_json / compact_json: structured, for Ideogram 4 style JSON prompting.
    overridesoptSTRINGPer-element overrides plus palette colour forcing. One directive per line — use the Edit Overrides button for a guided editor. Element lines (elements: background, midground, architecture_detail, props, foreground_element, time_of_day, weather): background: red brick wall with ivy force the phrase verbatim (may contain #tokens#) props: exclude drop the element even if enabled weather: auto explicit default (same as omitting) A forced element is active even when its enable toggle is off. Palette line — force the colours behind the roles instead of the mood/harmony pick: palette: ambient_light=dim tungsten evening, shadow_tone=inky shadows, primary=navy Roles: primary, secondary, accent, neutral, metallic, tertiary, ambient_light, shadow_tone. Unlisted roles keep their generated value. Lines starting with # are comments.
    color_toneoptCOMBOOverrides the tone derived from the palette.
    num_colorsoptINT52–8How many colours the scene draws from.
    harmony_typeoptCOMBOautoHarmony engine only (color_mood = auto).
    palette_styleoptCOMBOgeneralHarmony engine only (color_mood = auto).
    vibrancyoptFLOAT0.500–1Harmony engine only (color_mood = auto).
    contrastoptFLOAT0.500–1Harmony engine only (color_mood = auto).
    warmthoptFLOAT0.500–1Warm/cool bias for ambient light and shadow phrases. Applies in every mood.

    Outputs (3)

    NameTypeDescription
    location_jsonSTRING
    location_stringSTRING
    palette_summarySTRING