Nodes/ComfyUI-Bada-Utils/πŸ“ Visual Grid Regional Prompt (Legacy)
ComfyUI Node

πŸ“ Visual Grid Regional Prompt (Legacy)

The Legacy Node That Isn't Actually Legacy

By bada-yaΒ·Created a day agoΒ·Updated a day agoΒ· 0
πŸ“ Visual Grid Regional Prompt (Legacy)
    • prompt
    β—„prompt_textβ–Ί
    β—„formatNatural Spatial (Krea/MiniMax/Gemini/GPT)β–Ί
    β—„aspect_ratio16:9β–Ί
    β—„grid_cols6β–Ί
    β—„grid_rows3β–Ί
    β—„ui_languageEnglishβ–Ί
    β—„grid_data{}β–Ί
    β—„prefix_promptβ–Ί
    β—„suffix_promptβ–Ί

    Short version: VisualGridPromptNode and BadaRegionalPrompt are the same node. Not "similar," not "the old version of" - the same Python class, registered twice.

    You can see it in the pack's registry. nodes/__init__.py has both names pointing at one class:

    NODE_CLASS_MAPPINGS = {
        "BadaPresetHub": BadaPresetHub,
        "BadaRegionalPrompt": BadaRegionalPrompt,
        "VisualGridPromptNode": BadaRegionalPrompt,
        ...
    }
    

    and the module ends with the plain alias VisualGridPromptNode = BadaRegionalPrompt. Same INPUT_TYPES, same single prompt STRING output, same six output formats, same interactive grid. The frontend doesn't treat it as a second-class citizen either: web/visual_grid_prompt.js registers the whole canvas grid UI for BadaRegionalPrompt, VisualGridPromptNode and the even older VisualGridPrompt name in one condition. Drop the πŸ“ legacy node on your canvas and you get the full drag-to-partition grid, silhouette previews, the works.

    Why it exists

    Renames break workflows, and this ecosystem is built on people sharing workflow JSON and PNGs. A missing-node red box is one of the most annoying things you can hand someone, so packs keep the retired class name alive as an alias and label it "(Legacy)" in the menu. The pack's README claims this outright - old workflows built with VisualGridPromptNode or VisualGridPrompt load with zero missing node errors. In this case the claim holds up, because the alias is right there in the source.

    So if you googled this node name and got here with someone else's workflow open, install the pack and stop worrying. And if you're building something new, you can pick either entry; the menu will show you both under βš“ Bada Utils/Prompting, and the only difference is the display name.

    What it does, in one paragraph

    It's a spatial prompt builder, not a conditioning masker. You drag rectangles across a grid on the node, describe each one, and the node emits a single string formatted for a layout-aware target - natural language for Krea/MiniMax/Gemini/GPT-style models, BREAK syntax for A1111/ComfyUI encoders, structured tags, <area_1 bbox="..."> coordinates, a comma list, or raw JSON. The output is one prompt socket that goes into a text encoder. If your problem is two local characters bleeding attributes into each other, that's an attention-masking job and this isn't it; if your problem is "put the full-body turnaround on the left and the macro face top right, and give me the prompt," this is exactly it.

    Installing it

    Once, for the whole pack. ComfyUI Manager β†’ search ComfyUI-Bada-Utils β†’ Install β†’ restart β†’ Ctrl+F5, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bada-ya/ComfyUI-Bada-Utils.git
    

    The only dependencies are aiohttp and Pillow. No model downloads. Turn Nodes 2.0 off in ComfyUI's settings - the interactive grid is legacy-canvas JavaScript and the README says as much.

    The one real gotcha

    Because both names are separate registered types, anything that identifies nodes by type string sees two different nodes even though the class is identical. That matters for the same pack's Preset Hub: its matching passes compare the node's class or type string against the type recorded in the snapshot, so a preset saved against a BadaRegionalPrompt box will skip a VisualGridPromptNode box sitting right next to it. If a preset isn't hitting something you expected, check which of the two names you actually used before you go hunting for a bug.

    The other thing worth saying plainly: this pack has essentially no community footprint - no threads, no discussions, nothing in the corpus to read. The upside is that the alias story is verifiable in about four lines of Python, which is exactly how I checked the README's claim instead of trusting it.

    Category🌊 Bada Utils/Prompting

    Inputs (9)

    NameTypeDefaultDescription
    prompt_textSTRINGβ€”
    formatCOMBONatural Spatial (Krea/MiniMax/Gemini/GPT)6 options: Natural Spatial (Krea/MiniMax/Gemini/GPT), ComfyUI / SD Regional Prompt (BREAK Syntax), Structured Tags ([Area 1 | LEFT]), Coordinates Bounding Box (<area_1 bbox=...>), Comma-Separated List, Raw JSON
    aspect_ratioCOMBO16:98 options: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, +2
    grid_colsINT61–20β€”
    grid_rowsINT31–20β€”
    ui_languageCOMBOEnglish2 options: English, ν•œκ΅­μ–΄
    grid_dataoptSTRING{}β€”
    prefix_promptoptSTRINGβ€”
    suffix_promptoptSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    promptSTRINGβ€”