Anima Prompt Studio Advanced v2
The prompt editor that speaks one clean socket
- EASYUSE_ANIMA_PROMPT_DATA
The original Anima Prompt Studio Advanced spat out a wall of ten string outputs - positive, negative, mod-guidance quality tags, metadata, width, height, two booleans. It worked, but every downstream node had to accept that exact shape. Prompt Studio Advanced v2 is the pack's response to its own success: same editor, one output socket. It emits a single EASYUSE_ANIMA_PROMPT_DATA dict, and the whole new AiO flow is built around it.
What it is
This is the editor you'll actually live in. It keeps the reorderable positive/negative field groups from the Advanced node - quality, artist, trigger, general, and a NAIA field - plus resolution buckets, wildcard control, Mod Guidance routing, and artist-mix settings, all driven from popups so the node body stays small. The change is downstream: instead of ten sockets, one dict socket that downstream nodes read by key.
That dict is the pack's lingua franca now. It stores your prompt fields, the resolved width/height, wildcard-expanded text, Mod Guidance flags, and the artist-mix configuration under named keys. It also carries the old ten values under a compatibility key and mirrors every required v2 input under parameters, so nothing breaks when fields get added later - downstream nodes are told to read keys, not output-slot order.
The inputs that matter
Most of the required inputs are internal JSON payloads you shouldn't hand-edit (advanced_fields, resolution_bucket, wildcard_seed, and friends). The ones with real meaning:
use_naia- the front-end turns this into the "Fill from NAIA" button on the NAIA field, pulling a fresh random prompt from your local NAIA endpoint.consume_naia_on_queue- one-shot mode. A successful NAIA fill is saved with the request flag off, so a loaded workflow reuses the stored prompt instead of pinging NAIA again. Leave it on.use_anima_mod_guidanceanduse_negative_anima_mod_guidance- route quality fields out of the main prompt and into the Mod Guidance path (which the AiO Generator applies as a model patch via ComfyUI-Spectrum-KSampler).artist_mix_mode- when it's notoff, artist-field text is pulled out of the base prompt and handed to Prompt Data Conditioning to build mixed conditioning branches.
The output is one socket: EASYUSE_ANIMA_PROMPT_DATA. Connect it to Easy Use Anima Input, and you're done - the whole pipeline reads from the dict.
A detail people miss
Wildcards expand at queue time, and if a wildcard in a v2 positive field resolves to a <lora:name:weight> tag, that tag becomes structured LoRA data inside the prompt dict. A connected AiO Generator then applies it automatically after your explicit LoRA stack. Same for A1111/LoraManager-style tags - v2 recognizes them, keeps them structured, and the generator applies them. That's the "prompt embeds its own LoRAs" trick done properly.
Install and gotchas
It's in the pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/n0va39/ComfyUI-EasyUseAnima
cd ComfyUI-EasyUseAnima && pip install -r requirements.txt
then restart ComfyUI (Manager: search "ComfyUI EasyUse Anima").
Gotchas: the hidden JSON inputs are workflow-schema compatibility - edit them by hand and you'll likely corrupt a workflow. If you open an old workflow that expects the ten string outputs, don't panic: the v1 Advanced node still exists, and the EASYUSE_ANIMA_PROMPT_DATA node (the unpacker) turns a v2 dict back into the old outputs if you need to bridge legacy wiring. If nothing shows up in the NAIA field, that's the NAIA service or the global settings (localhost by default), not this node.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| use_naia | BOOLEAN | false | Internal request flag. The front-end exposes this as the NAIA Prompt field's 'Fill from NAIA' button, which fills that field with a fresh NAIA random prompt. |
| consume_naia_on_queue | BOOLEAN | true | Internal one-shot mode. Successful NAIA fills are saved with the request flag off so loaded workflows reuse the stored prompt. |
| use_anima_mod_guidance | BOOLEAN | false | true: positive output excludes quality fields and sends them through the mod guidance quality output. |
| 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. |
| pin_trigger_tags_to_front | BOOLEAN | false | Legacy internal flag. Trigger field Pin buttons control trigger placement. |
| advanced_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},{"id":"positive_artist","pane":"positive","type":"artist","label":"Artist Tags","text":"","height":72,"enabled":true},{"id":"positive_trigger","pane":"positive","type":"trigger","label":"Trigger Words","text":"","height":72,"enabled":true,"pin":true},{"id":"positive_general","pane":"positive","type":"general","label":"General Tags","text":"","height":150,"enabled":true},{"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},{"id":"negative_general","pane":"negative","type":"general","label":"General Tags","text":"","height":120,"enabled":true}] | Internal JSON payload for Advanced Prompt Studio fields. |
| use_negative_anima_mod_guidance | BOOLEAN | false | true: negative output excludes negative quality fields and sends them through the negative Mod Guidance output. |
| 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 Advanced 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. |
| artist_mix_mode | COMBO | off | off: Cost: 1 positive branch. Keeps artist-field text inline in the positive prompt. prompt: Cost: 1 positive branch. Keeps artist-field text inline in the positive prompt. average: Cost: 1 positive branch. Weighted average of artist conditionings; fastest stable mix. delta_rms: Cost: 1 positive branch. Mixes artist deltas from the base prompt and restores RMS style energy; usually stronger than average. hybrid: Cost: top_k + 1 positive branches. Keeps strongest artists as exact branches and compresses the tail with delta_rms; recommended balance. clustered: Cost: about cluster_count plus dominant artists. Groups similar artist deltas and compresses each cluster; useful for many artists. exact: Cost: N positive branches. Most faithful artist-specific model output mix. composite_exact: Cost: N + 1 positive branches. Adds one composite prompt branch plus exact artist branches. late_exact: Cost: base + N late exact branches. Applies exact mixing only after start. average_late_exact: Cost: 1 average branch plus N late exact branches. Fast early mix, exact late refinement. scheduled_average: Cost: scheduled average branches. Changes artist weights across timestep ranges. |
| artist_mix_start_percent | FLOAT | 0.500–1 | Start percent used by late/scheduled artist mix modes. |
| artist_mix_strength_scale | FLOAT | 1.000–5 | Strength multiplier used by exact artist mix modes. |
| artist_mix_style_gain | FLOAT | 1.350–3 | Style delta gain used by delta_rms, hybrid tail, and clustered compressed branches. |
| artist_mix_rms_scale_cap | FLOAT | 2.001–5 | Maximum RMS energy restore scale for delta_rms compressed artist branches. |
| artist_mix_exact_top_k | INT | 40–64 | Hybrid mode keeps this many strongest artists as exact positive branches. |
| artist_mix_cluster_count | INT | 41–32 | Clustered mode compresses non-dominant artists into this many positive branches. |
| artist_mix_dominant_isolation | BOOLEAN | true | Clustered mode keeps artists above the dominant threshold as exact branches. |
| artist_mix_dominant_threshold | FLOAT | 0.250–1 | Clustered dominant isolation threshold based on normalized artist weight. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| EASYUSE_ANIMA_PROMPT_DATA | EASYUSE_ANIMA_PROMPT_DATA | Structured prompt data dict for downstream EasyUse Anima nodes. |