ComfyUI Node

(AV) Scene

(AV) Scene turns an elevation drawing into a render run

By ArrowsVisuals·Created 4 months ago·Updated 3 months ago· 3
(AV) Scene
    • prompt
    • system_prompt
    • filename_tag
    • debug
    shot
    variation0
    seed42
    target_model
    style_override

    The (AV) Scene is the newest and most ambitious node in the pack - the one that turns the whole preset system into a batch production rig. Where the (AV) Matrix hands you one polished prompt, Scene gives you a project system: pick a shot like townhouses/front_marketing, bump a variation counter, and it deterministically builds a locked prompt from layered template, project, and entourage files. It's built for the exact workflow the pack is named for - a Revit elevation or SketchUp screenshot in, a photoreal high-end render out - but at scale, with every render reproducible from its own filename.

    How it works: four layers, one prompt

    Scene reads its data from ComfyUI/user/archviz_scenes/ (bundled examples auto-copy on first launch). Four layers, each holding text exactly once:

    • templates/ - typology rules for a building type (townhouse_row, villa, tower, mosque, interior_room...). These are the geometry-lock skeletons: "count the units in the drawing, your output must contain exactly that count," "recesses between volumes are open air, never new walls," "if the prompt and the drawing conflict, the drawing wins."
    • projects/ - one ~20-line file per project. Picks a template, fills {field:...} holes (drawing notes, material legend, identity), and defines shots: front_marketing: people_gulf_family, cars_luxury, vegetation_gulf.
    • pools/ - global entourage line sets (people, cars, vegetation). One line per option; an @guard: prefix auto-appends a constraint to every line, like "latest-generation, showroom-clean vehicles."
    • presets/ - the same library the Matrix uses, pulled in via {preset:category/name} references, with per-model overrides honored.

    The variation math is the neat part. variation and seed deterministically pick one line from each pool - an exhaustive, collision-free mixed-radix enumeration, shuffled by the seed via an affine bijection. Variations 0..N-1 cover every pool combination exactly once, and the same shot + variation + seed always reproduces the same prompt. That's why the filename_tag output encodes all three (something like townhouses_fro…_v003_s42): reproduce any render by typing its variation and seed back in.

    Inputs and outputs

    • shot - the project/shot dropdown, auto-discovered from your project files (the bundled examples give you 22 to start).
    • variation - increment to batch; every value is a unique entourage combo. It has control_after_generate, so it can auto-randomize each run.
    • seed - shuffles which combo maps to which variation.
    • target_model - the same six dialects as the Matrix. Templates can carry per-model sections like === CORE @flux2_pro ===; if a model has no variant, the default edit-dialect text is used and a warning is emitted rather than silently mangling geometry-lock language.
    • style_override (optional) - an extra fragment appended to the prompt.

    Outputs: prompt, system_prompt (for models that have a system field), filename_tag (naming plus the reproduction record), and debug (which pool lines won, sources, and any warnings - wire it to a text view when a render misbehaves). Output order mirrors the Nano Banana / Gemini node's input order, so connections run parallel without crossing.

    Install and setup

    Same pack as the rest:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/ArrowsVisuals/archviz-preset-system.git
    

    Restart ComfyUI. No dependencies, no model files. First launch copies the scene_data examples into ComfyUI/user/archviz_scenes/. A new project is: duplicate a project file, edit the fields, pick pools - no code. A new typology is one new template file.

    Common issues

    New project or pool files need a ComfyUI restart before they show up in the shot dropdown - adding them at runtime won't appear. If you're upgrading from a pre-5.2.4 build, the prompt and system_prompt outputs swapped order, so re-connect once. And remember Scene, like the whole pack, doesn't render: wire prompt and system_prompt into your Gemini Image / Nano Banana node or a local Flux 2 setup, and check debug when a render drifts from the drawing - it'll tell you exactly which pool line won and what fell back to default. People trying this elevation-to-render workflow on raw Nano Banana without a geometry-lock layer routinely hit misread details; the whole point of Scene's template language is to make the drawing win.

    CategoryArchViz

    Inputs (5)

    NameTypeDefaultDescription
    shotCOMBO22 options: apartments/front_marketing, apartments/front_submission, interior_living/living_daylight, mosque/approach, mosque/submission, perspective_villa/hero_marketing, +16
    variationINT00–999999
    seedINT420–2147483647
    target_modelCOMBO6 options: nano_banana_edit, nano_banana_generate, flux2_pro, flux2_dev_structured, gpt_image_2, ideogram4_json
    style_overrideoptSTRING

    Outputs (4)

    NameTypeDescription
    promptSTRING
    system_promptSTRING
    filename_tagSTRING
    debugSTRING