ComfyUI Node

Prompt Weaver

The Anima prompt form that actually checks your tags

By naukri7707·Created 5 months ago·Updated 5 months ago· 0
Prompt Weaver
    • text
    • report
    quality_tagsmasterpiece, best quality, score_9, score_8, year 2025, newest, absurdres
    safetysafe
    character_count1girl
    image_compositionsolo focus
    characteroriginal
    series
    artist
    general_tags
    description
    regular_tagsfalse
    verify_groupcharacter_count, image_composition, general_tags

    Anima's one trick is that it takes Danbooru tags and natural language in the same prompt. What people gloss over is that the tag half still has rules. The model card prescribes a fixed order - quality/meta/year/safety first, then character count, character, series, artist, general tags - and if you generate in volume, you will eventually drop absurdres into the wrong slot and not notice until the style drifts. PromptWeaver is a form for exactly that order. You fill slots, it assembles the string, and it runs your tags against a Danbooru-derived word list to catch what doesn't belong.

    It ships in ComfyUI-AnimaPromptWeaver, a small Anima-focused pack that's basically one author's workflow habits turned into nodes. It's young - no adoption signal yet, README in Traditional Chinese, no dependencies to speak of. Don't read young as risky: this node is pure string handling, no models, no API, nothing that can blow up a workflow.

    How it works

    Under the hood it's string assembly plus CSV lookups. The pack ships three tag databases in tags/ - character_count.csv, image_composition.csv, and general.csv - and PromptWeaver normalizes each tag you enter (underscores to spaces, lowercased) and checks it by substring match: a tag is valid if any contiguous chunk of it appears in the database. That's deliberately loose. The README's own example is white glove, which passes because glove is in the list.

    Two things fall out of that check, and the distinction matters:

    • Rejected tags aren't in the database at all. They only get removed from the output if their group is listed in verify_group; otherwise they stay put and the report marks them (Ignore).
    • Misplaced tags pass a different group's database - you typed solo focus into the character count slot. Report only, never filtered.

    The outputs are two strings: text, which wires into a CLIP Text Encode, and report, a markdown rundown you can read with any text-display node.

    The inputs that matter

    • quality_tags - default masterpiece, best quality, score_9, score_8, year 2025, newest, absurdres. This is the one you should override. The Anima community's whole argument is that score_8/score_9 narrow the output distribution and can steer it toward the furry side; the model card itself recommends score_7. You get a handy form, but the opinionated defaults are worth changing.
    • safety - the Danbooru rating: safe / sensitive / nsfw / explicit.
    • character_count, image_composition, general_tags - the three groups that get validated, and the default verify_group.
    • artist - gets an @ prefix automatically (Anima's artist-tag style), wrapped in parentheses if it contains a colon.
    • regular_tags - swaps every _ for a space in the output.
    • description - natural-language prose, appended after the tag block with a blank line. That's the nice Anima-specific touch: tags and sentences in one prompt, in the right order.

    Install

    cd path/to/ComfyUI/custom_nodes
    git clone https://github.com/naukri7707/ComfyUI-AnimaPromptWeaver.git anima_prompt_weaver
    

    Restart ComfyUI and the node appears under the AnimaPromptWeaver category. Or grab it from ComfyUI Manager - search the pack title. No models to download, no extra dependencies: it's stdlib CSV parsing plus torch, which ComfyUI already ships.

    Where people get burned

    The validation is a suggestion, not a referee. Because it matches substrings, any tag containing one known word sails through even if the rest is junk. And the databases are small - character_count.csv has about two dozen rows. A typo inside a real word gets flagged, which is useful; a tag that's perfectly legit but newer than the CSV gets flagged too, which is not. The README tells you to extend the CSVs yourself, and that's the intended workflow: hit a false rejection, add the line, restart. If a database file goes missing, that group quietly stops validating - you'll see the notice in the console, not in the UI. And yes, the report's third section header is spelled "Regulared Tags"; you're looking at raw, unpolished output, so know what you're reading.

    If your Anima prompting is all natural language, skip this node - it's for the tag-heavy workflow where the fixed order actually matters. If you live in tags, it's the difference between hand-maintaining a template and having the form check itself.

    CategoryAnimaPromptWeaver

    Inputs (11)

    NameTypeDefaultDescription
    quality_tagsSTRINGmasterpiece, best quality, score_9, score_8, year 2025, newest, absurdres
    safetyCOMBOsafe4 options: safe, sensitive, nsfw, explicit
    character_countSTRING1girl
    image_compositionSTRINGsolo focus
    characterSTRINGoriginal
    seriesSTRING
    artistSTRING
    general_tagsSTRING
    descriptionSTRING
    regular_tagsBOOLEANfalse
    verify_groupSTRINGcharacter_count, image_composition, general_tags

    Outputs (2)

    NameTypeDescription
    textSTRING
    reportSTRING