Nodes/ComfyUI EasyUse Anima/Anima Prompt Studio Regional
ComfyUI Node

Anima Prompt Studio Regional

Put different prompts inside different masks

By n0va39·Created 3 months ago·Updated about 22 hours ago· 24
Anima Prompt Studio Regional
    • metadata_prompt
    • metadata_negative_prompt
    • width
    • height
    • regional_prompt_data
    regional_fields[{"id":"positive_quality","pane":"positive","type":"quality","label":"Quality Tags","text":"newest, masterpiece, best quality, score_8, score_7:, highres, absurdres, very aesthetic","height":72,"enabled":true,"mask_ids":[]},{"id":"positive_artist","pane":"positive","type":"artist","label":"Artist Tags","text":"","height":72,"enabled":true,"mask_ids":[]},{"id":"positive_trigger","pane":"positive","type":"trigger","label":"Trigger Words","text":"","height":72,"enabled":true,"pin":true,"mask_ids":[]},{"id":"positive_general","pane":"positive","type":"general","label":"General Tags","text":"","height":150,"enabled":true,"mask_ids":[]},{"id":"positive_trailing","pane":"positive","type":"general","label":"General Tags","text":"location, (A highly aesthetic Pixiv style illustration, clean composition, high-quality digital art, detailed background, sharp focus on facial expressions.:0.6)","height":72,"enabled":true,"mask_ids":[]},{"id":"negative_general","pane":"negative","type":"general","label":"General Tags","text":"","height":120,"enabled":true,"mask_ids":[]}]
    regional_config{"version":1,"canvas":{"width":1024,"height":1024,"aspect_ratio":"1:1","source":"resolution_fields"},"mask_authoring":{"render_space":"image_pixels","storage_space":"normalized_canvas","preview_enabled":true},"global_prompt":"","negative_prompt":"","next_mask_id":1,"masks":[],"regional_enabled":false,"mask_prompts":[],"assignments":[],"artist_mix":{},"conditioning_settings":{},"regional_settings":{}}
    resolution_bucket1024
    resolution_size1024 * 1024 (1:1)
    resolution_custom_width1024
    resolution_custom_height1024
    wildcard_mode일반
    wildcard_seed0
    wildcard_seed_after_generatefixed

    Anima is famous for multi-character prompts that actually hold together in natural language - "the girl on the left is reading, the boy on the right is cooking" just works. But natural language has its limits when you need spatial control: a specific character confined to a specific area of the canvas. Anima Prompt Studio Regional is the pack's regional prompting editor - it stores numbered masks and applies the selected positive prompt fields only inside those masks, then hands the whole thing to Anima Regional Conditioning to become KSampler-ready conditioning.

    What it is

    It's a Prompt Studio variant with a mask editor. You draw numbered masks on a canvas sized to the latent resolution, then assign prompt fields to each mask. The positive fields you check get scoped to their masks; everything else follows the normal field model. The internal regional_config JSON holds the canvas, mask authoring settings (masks are authored in image pixels and stored in normalized canvas space), and the regional_enabled flag.

    Like the other Advanced editors, the real controls live in popups: resolution buckets (512–1536 plus custom, snapped to 32-multiples), wildcard mode/seed, and the mask editor itself. The inputs you'd wire externally are none - this is an editing node, so its required inputs are the internal JSON payloads the front-end manages.

    The outputs

    • regional_prompt_data - the bundled regional prompt, mask, and model-patch data, typed as EASYUSE_ANIMA_REGIONAL_PROMPT_DATA. This is the one that matters; connect it to Anima Regional Conditioning.
    • metadata_prompt / metadata_negative_prompt - metadata text with global and mask-scoped prompt fields included.
    • width / height - the selected latent resolution, which the mask canvas uses.

    The workflow is a two-node pair: Studio Regional produces the data, Regional Conditioning turns it into conditioning. Without the second node, the first is just an editor.

    The wildcard angle

    Regional Studio carries the same wildcard machinery as the other editors - wildcard_mode (General vs Sequential), wildcard_seed, and wildcard_seed_after_generate - so mask-scoped fields can expand wildcards independently. General expands deterministically; Sequential uses seed % option_count. The seed note about JavaScript precision (values above ~9007199254740991 are best-effort in the browser) applies here too.

    Install and gotchas

    Pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/n0va39/ComfyUI-EasyUseAnima
    cd ComfyUI-EasyUseAnima && pip install -r requirements.txt
    

    Restart ComfyUI; Manager: "ComfyUI EasyUse Anima".

    The gotchas: regional conditioning adds conditioning branches - one per mask-scoped entry - and Anima is already slow, so many masks cost real time. And remember Anima's natural-language strengths: for a two-character scene where you just want the composition right, plain language often beats regional; reach for regional when you truly need zone-locked subjects. If masks don't show up at the resolution you expected, check that the canvas size matches the width/height - the mask editor is resolution-driven by design.

    CategoryEasyUse Anima/Prompt

    Inputs (9)

    NameTypeDefaultDescription
    regional_fieldsSTRING[{"id":"positive_quality","pane":"positive","type":"quality","label":"Quality Tags","text":"newest, masterpiece, best quality, score_8, score_7:, highres, absurdres, very aesthetic","height":72,"enabled":true,"mask_ids":[]},{"id":"positive_artist","pane":"positive","type":"artist","label":"Artist Tags","text":"","height":72,"enabled":true,"mask_ids":[]},{"id":"positive_trigger","pane":"positive","type":"trigger","label":"Trigger Words","text":"","height":72,"enabled":true,"pin":true,"mask_ids":[]},{"id":"positive_general","pane":"positive","type":"general","label":"General Tags","text":"","height":150,"enabled":true,"mask_ids":[]},{"id":"positive_trailing","pane":"positive","type":"general","label":"General Tags","text":"location, (A highly aesthetic Pixiv style illustration, clean composition, high-quality digital art, detailed background, sharp focus on facial expressions.:0.6)","height":72,"enabled":true,"mask_ids":[]},{"id":"negative_general","pane":"negative","type":"general","label":"General Tags","text":"","height":120,"enabled":true,"mask_ids":[]}]Internal JSON payload for Regional Prompt Studio fields.
    regional_configSTRING{"version":1,"canvas":{"width":1024,"height":1024,"aspect_ratio":"1:1","source":"resolution_fields"},"mask_authoring":{"render_space":"image_pixels","storage_space":"normalized_canvas","preview_enabled":true},"global_prompt":"","negative_prompt":"","next_mask_id":1,"masks":[],"regional_enabled":false,"mask_prompts":[],"assignments":[],"artist_mix":{},"conditioning_settings":{},"regional_settings":{}}Internal JSON payload for numbered masks and mask editor settings.
    resolution_bucketSTRING1024Internal selected latent resolution bucket.
    resolution_sizeSTRING1024 * 1024 (1:1)Internal selected latent resolution, formatted as width * height (ratio).
    resolution_custom_widthINT102432–8192Internal custom latent width. Values are snapped to multiples of 32.
    resolution_custom_heightINT102432–8192Internal custom latent height. Values are snapped to multiples of 32.
    wildcard_modeCOMBO일반General expands deterministically; Sequential uses seed % option_count. Seed control independently decides the next seed.
    wildcard_seedINT00–18446744073709550000Wildcard seed used by Regional Prompt Studio fields. Browser/public editing and next-seed range: 0..9007199254740991. The Python backend continues accepting uint64 values for legacy workflow validation, but values above the public maximum are best-effort in the browser because JavaScript may already have lost integer precision. Fixed does not intentionally advance a legacy value; increment, decrement, and randomize return the next seed to the public range.
    wildcard_seed_after_generateCOMBOfixedAfter an accepted queue: keep the seed fixed, randomize it, or increment it by one.

    Outputs (5)

    NameTypeDescription
    metadata_promptSTRINGMetadata positive prompt with global and mask-scoped prompt fields included.
    metadata_negative_promptSTRINGMetadata negative prompt with metadata filters applied.
    widthINTSelected latent width used by the mask editor canvas.
    heightINTSelected latent height used by the mask editor canvas.
    regional_prompt_dataEASYUSE_ANIMA_REGIONAL_PROMPT_DATABundled regional prompt, mask, and model-patch data for Anima Regional Conditioning.