Anima Prompt Studio Regional
Put different prompts inside different masks
- metadata_prompt
- metadata_negative_prompt
- width
- height
- regional_prompt_data
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 asEASYUSE_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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| regional_fields | STRING | [{"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_config | STRING | {"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_bucket | STRING | 1024 | Internal selected latent resolution bucket. |
| resolution_size | STRING | 1024 * 1024 (1:1) | Internal selected latent resolution, formatted as width * height (ratio). |
| resolution_custom_width | INT | 102432–8192 | Internal custom latent width. Values are snapped to multiples of 32. |
| resolution_custom_height | INT | 102432–8192 | Internal custom latent height. Values are snapped to multiples of 32. |
| wildcard_mode | COMBO | 일반 | General expands deterministically; Sequential uses seed % option_count. Seed control independently decides the next seed. |
| wildcard_seed | INT | 00–18446744073709550000 | Wildcard 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_generate | COMBO | fixed | After an accepted queue: keep the seed fixed, randomize it, or increment it by one. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| metadata_prompt | STRING | Metadata positive prompt with global and mask-scoped prompt fields included. |
| metadata_negative_prompt | STRING | Metadata negative prompt with metadata filters applied. |
| width | INT | Selected latent width used by the mask editor canvas. |
| height | INT | Selected latent height used by the mask editor canvas. |
| regional_prompt_data | EASYUSE_ANIMA_REGIONAL_PROMPT_DATA | Bundled regional prompt, mask, and model-patch data for Anima Regional Conditioning. |