SMP · Location Generator (dict) (legacy)
245 seed-controlled scenes as structured data
- location_raw
- summary
Where do you set the scene in a ComfyUI prompt? If you're the type who hand-writes "sunlit mediterranean courtyard, warm ambient light, terracotta shadows" into every positive prompt, this node is that sentence turned into a structured dict. It's the SMP suite's location generator, and it emits a LOCATION_DICT_RAW: per-element records for background, midground, foreground, architecture detail, props, time of day, and weather, each carrying its own prompt_fragment and a region hint.
The "legacy" in its display name is the pack's own label - the JB suite replaced SMP for most use cases - but legacy here means "still fully supported," not "broken." If you're building reproducible character-and-scene workflows, the determinism is the point: same seed, same scene, every time.
How it works
The node wraps core.location_engine.generate_location_records from the pack's own source. Each element is gated by its own enable toggle, so you can generate just background plus time of day plus weather and skip props entirely. The deliberately interesting part: the prompt_fragments come out with #ambient_light# and #shadow_tone# tokens still embedded. That's not a bug - it's a two-node handshake. The Location Combiner resolves those tokens against your color palette, and the generator + combiner pair are meant to be wired together.
Inputs that matter
location_set- a dropdown of ~245 curated sets (likeindoor/activities/bowling_alley), scanned from the pack'slocation_lists/data.seed- the reproducibility dial. Same seed, same scene.- The
enable_*toggles - background and foreground element default on; midground, architecture detail, and props default off. color_tone-warm/cool/neutralbias for the atmosphere, or leave empty.
Most people set the scene, the seed, and the toggles, and never look back.
Outputs
location_raw- wire it straight into SMP · Location Combiner.summary- a human-readable string, handy in a ShowText node.
Install
No extra dependencies beyond the base pack. SMP runs on numpy and pydantic 2, both already in the ComfyUI venv:
cd ComfyUI/custom_nodes
git clone https://github.com/ping1979ping/comfyui-FVMtools
Restart ComfyUI and the SMP nodes appear under FVM Tools/SMP.
Common issues
If the location_set dropdown shows only a handful of entries, the location_lists scan failed to find its data and the node fell back to three hardcoded sets. Check the pack directory is intact and re-clone if needed. And remember this node emits tokens - if you connect its output straight to a text encoder expecting finished prose, you'll see #ambient_light# as literal text. The Combiner is not optional in this pipeline.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| location_set | COMBO | 140 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 | |
| seed | INT | 00–18446744073709550000 | — |
| enable_background | BOOLEAN | true | — |
| enable_midground | BOOLEAN | false | — |
| enable_architecture_detail | BOOLEAN | false | — |
| enable_props | BOOLEAN | false | — |
| enable_foreground_element | BOOLEAN | true | — |
| enable_time_of_day | BOOLEAN | true | — |
| enable_weather | BOOLEAN | true | — |
| color_tone | COMBO | 4 options: , warm, cool, neutral |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| location_raw | LOCATION_DICT_RAW | — |
| summary | STRING | — |