Skip to main content

anima-prompting

Prompting rules for the CircleStone Labs **Anima** anime / illustration model. Use when the user asks to generate / draw / render an anime / illustration / non-photoreal image on an Anima workflow. Anima uses score tags and an `@artist` prefix syntax; it is for anime / illustration, not photorealism.

Zur Installation springen

Quellinformationen

Repository
weikinhuang/dotfiles
Letzte Quellaktivität
23. Juni 2026 um 20:17
Erkannte Sprache von SKILL.md
Englisch
Sterne
21
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
anima-prompting
disable-model-invocation
true
description
Prompting rules for the CircleStone Labs **Anima** anime / illustration model. Use when the user asks to generate / draw / render an anime / illustration / non-photoreal image on an Anima workflow. Anima uses score tags and an `@artist` prefix syntax; it is for anime / illustration, not photorealism.
# Anima Prompting [Anima](https://huggingface.co/circlestone-labs/Anima) is a 2B anime / illustration text-to-image model (CircleStone Labs + Comfy Org), built on NVIDIA Cosmos with a qwen-text-encoder LLM adapter that has outsized influence on the generated image. Write the `prompt` and `negative` you pass to the `generate_image` tool per the rules below to drive Anima well on the first call. The score tags, `@artist` rule, and qwen-text-encoder behavior below are specific to Anima. Anima is trained on **Danbooru-style tags of the Gelbooru flavor, natural-language captions, and mixes of the two** (anime training data cuts off September 2025). All three work; pick whichever fits the request and always lead with quality + safety tags. Because of the qwen LLM text-encoder adapter, **natural language is a first-class input mode**, not a fallback - prose (or a quality-tag prefix followed by prose) often captures a scene's composition, spatial layout, and mood better than tags alone. The adapter is what makes detailed prompts pay off here far more than on a plain SDXL model - terse prompts waste the model's strongest feature. **Safe default when unsure:** use the `anima` workflow, begin the `prompt` with `masterpiece, best quality, score_7, safe,`, describe the subject in roughly 12-25 lowercase tags (or 2+ sentences of prose), and always pass the recommended `negative` from the [negative recipe](#negative-prompt-recipe). Short prompts make Anima bland or unsafe, so spend the detail. Everything below is how to do better than this default when the request calls for it. ## The `generate_image` call | Arg | For Anima | | ------------------ | ------------------------------------------------------------------------------------------------------- | | `prompt` | Required. The full positive prompt **including** the `masterpiece, best quality, score_7, safe` prefix. | | `negative` | Always pass one. Start from the recommended negative below. | | `workflow` | Use `anima` when that workflow is configured; omit only if it is the `defaultWorkflow`. | | `width` / `height` | 512-1536; default 1024x1024. Use portrait (e.g. 832x1216) for a single standing character. | | `steps` | 30-50. Leave the workflow default (30) unless quality is lacking. | | `cfg` | 4-5. Higher burns the image; do not push past ~5. | | `seed` | Omit for a fresh random image; pass a prior seed to reproduce or vary one. | You set the entire `prompt` string - it replaces the workflow's baked text, so the quality/safety prefix must be in your prompt every time. Do not pass `inputImage` (Anima here is text-to-image only). ## Positive prompt recipe 1. **Lead with the prefix:** `masterpiece, best quality, score_7, safe,` 2. **Then the subject**, as tags, natural language, or a mix. 3. **Lowercase tags, spaces not underscores** - the only underscored tags are score tags (`score_7`). Prefer the Gelbooru spelling when a tag differs between boorus. 4. **Be specific.** Anima's base style is plain; short prompts give bland or unexpected (sometimes unsafe) output. For natural language aim for >=2 sentences. For tag style aim for >=8 substantive tags after the prefix. The model card warns explicitly: "The model may generate undesired content, especially if the prompt is short or lacking details." 5. **Name then describe characters.** `Fern from Sousou no Frieren, with long purple hair and purple eyes, wearing a black coat...` - especially with multiple characters, describe each one's appearance or the model conflates them. 6. **Artists need `@`:** write `@artist name` (the `@` is mandatory; without it the style barely registers). You may put quality/artist tags at the start of a natural-language prompt too. An `@artist` tag also **locks a consistent style across seeds** - pin one when you want the same house look from image to image (verified: same `@artist` holds the style steady across different seeds). ### Tag order (tag-style prompts) ```text [quality / meta / year / safety] [1girl / 1boy / 1other] [character] [series] [@artist] [general tags] ``` Order only matters between sections; within a section tags are free-order. You do not need every relevant tag - the model was trained with tag dropout. ## Natural-language and mixed prompts Anima's qwen text-encoder adapter reads full sentences, not just tags, so natural language is a first-class way to prompt it - often the better one for scenes, spatial relationships, mood, and multi-element compositions where a tag list gets ambiguous. The model card ships a dedicated natural-language tips section; the rules that matter: - **Keep the quality / safety prefix.** Lead with `masterpiece, best quality, score_7, safe,` (or `.`) even in a prose prompt - the rating tag still carries safety - then write the description as prose. Quality and `@artist` tags are fine at the start of a natural-language prompt. - **Be descriptive: aim for >=2 sentences.** Pure natural language rewards detail; extremely short prose gives unexpected (sometimes unsafe) results. Spend the same detail budget as the tag recipe (~12-25 depictable items), just expressed as prose - appearance, wardrobe, setting, lighting, palette. - **Mix tags and prose freely, in any order.** A hybrid is common and effective: open with quality + character / series tags, then a sentence or two of prose for pose, framing, and scene. The tool takes one string; comma- or period-join the two halves. - **Name a character, then describe their appearance** (`Fern from Sousou no Frieren, with long purple hair and purple eyes, wearing a black coat...`). With multiple characters this is essential or the model conflates them. The one caution: do not bury a single character under a wall of scenery prose - keep scene description to a short clause and spend the detail on the character (see [Anti-patterns](#anti-patterns)). ## Expanding a terse user request When the user asks for something short like "draw a cat girl" or "make me a witch", do **not** pass that string through. Expand it before calling `generate_image`: 1. **Prefix:** add `masterpiece, best quality, score_7, safe,`. 2. **Subject count + type:** infer `1girl` / `1boy` / `1other`, plus `solo` if a single character. 3. **Character / series:** only if the user named one (`Frieren from Sousou no Frieren`); otherwise skip. 4. **Appearance:** invent 3-5 concrete details - hair color + length, eye color, outfit, distinctive accessory. Match the user's vibe; ask only if their wording is genuinely ambiguous about a load-bearing detail (e.g. "anime girl in a kimono - red or blue?"). 5. **Pose / framing:** 1-2 tags - `looking at viewer`, `standing`, `upper body`, `cowboy shot`. Pick ONE framing tag. 6. **Setting:** 2-4 tags or a clause - `sunlit library, tall window, dust motes`, or `simple background, white background` for a clean character shot. 7. **Lighting + palette:** 1-3 tags - `soft lighting`, `cinematic lighting`, `warm palette`, `muted colors`. 8. **Era (optional):** add `year 2025` or `newest` for a modern look; skip for timeless. 9. **Artist (optional):** only if the user named one - prepend `@` (e.g. `@some artist`). 10. **Negative:** always pass the recommended negative; add `extra fingers, text, watermark` for cleaner output. The goal is roughly 12-25 substantive items in the positive prompt. If the user wants to iterate, pass the prior `seed` back to vary by tweaking tags rather than restarting. ## When the user supplies tags directly If the user hands you a tag list (or a tag list mixed with wildcards) instead of a terse English request, switch modes: 1. **Preserve every user-supplied tag verbatim.** Do not paraphrase, deduplicate, reorder across sections, or "improve" their wording. 2. **Prepend the prefix if missing.** Add `masterpiece, best quality, score_7, safe,` only if the user did not already include quality / safety tags. 3. **Add spatial / positional words only.** Insert framing words like `in the center of the frame`, `foreground`, `background`, `in front of`, `surrounded by`, `on either side` to disambiguate where elements sit. Do not add weather, lighting, palette, or outfit details the user did not ask for. 4. **Preserve dynamic-prompt wildcards exactly.** `{A|B}`, `{A,|B,|C}`, `{1-3$$ A|B|C}`, and `{A,B}_noun` are wildcard-extension syntax (ComfyUI Impact-Pack, sd-dynamic-prompts) - they expand at generation time, not in your prompt. Pass them through unchanged: never rewrite `{standing|sitting}` as `"standing or sitting"`, never pick one branch, never delete a branch. 5. **Append a one-sentence natural-language clause** describing spatial relationships - Anima's qwen adapter benefits from prose, so a single closing sentence on top of the tag list usually improves coherence without adding embellishment. ```text prompt: masterpiece, best quality, score_7, safe, 1girl, {standing|sitting}, classroom, desk, {morning|evening}, a young female student positioned in the center of the classroom in front of the desk, with the {morning|evening} lighting implied by the scene negative: worst quality, low quality, score_1, score_2, score_3, artist name ``` Concatenate the tag list and the natural-language clause into one `prompt` string (comma- or period-joined) - the tool takes a single string, and Anima reads mixed input fine. ## Negative prompt recipe Start from the official recommendation and add situational terms: ```text worst quality, low quality, score_1, score_2, score_3, artist name ``` - Add `jpeg artifacts, blurry, lowres` to clean up artifacts. - Add the specific thing you don't want (e.g. `multiple views, text, watermark, extra fingers`). - **Do not put a rating word (`safe`, `sensitive`, `nsfw`, `explicit`) in the negative.** Safety is carried by the rating tag in the _positive_ prefix, not by negating it here, and putting `nsfw` in the negative actively fights the positive the moment the scene is `sensitive` or higher. Keep the negative rating-free; every example below does. (On a `safe` shot, on a workflow that does **not** auto-scrub the negative, you _may_ reinforce with `nsfw` here - but never above `safe`. When in doubt, leave it out and let the positive rating tag do the work.) ## Tag reference | Group | Values | | --------------- | ------------------------------------------------------------------------------------------------- | | Quality (human) | `masterpiece`, `best quality`, `good quality`, `normal quality`, `low quality`, `worst quality` | | Quality (Pony) | `score_9` ... `score_1` (use human, Pony, both, or neither - all work) | | Safety | `safe`, `sensitive`, `nsfw`, `explicit` | | Meta | `highres`, `absurdres`, `anime screenshot`, `official art`, `jpeg artifacts` | | Time | `year 2025` (specific) or period: `newest`, `recent`, `mid`, `early`, `old` | | Weighting | Parenthesis weighting; needs bigger numbers than SDXL: `(chibi:2)`, not `(chibi:1.2)`. See below. | **Weighting syntax.** Anima runs on ComfyUI, which weights with **parentheses only**: `(tag:1.4)` to strengthen, `(tag:0.6)` to weaken, bare `(tag)` for ~1.1x, and nesting (`((tag))` ~= 1.21x). Anima responds more weakly to a given weight than SDXL, so reach for bigger moves - `(chibi:2)`, not `(chibi:1.2)`. **Square brackets are not weighting on ComfyUI**: `[tag]` is parsed as `([tag]:1)`, i.e. the brackets become literal tokens at weight 1, not an A1111-style de-emphasis. To push something down, use a fractional parenthesis weight like `(background:0.6)`, never `[background]`. ## Generation settings | Setting | Value | | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Resolution | 512x512 to 1536x1536; 1024x1024 default. | | Steps | 30-50. | | CFG | 4-5. | | Sampler | `er_sde` is the neutral default; `euler_a` for softer lines; `dpmpp_2m_sde_gpu` for more variety. | | Scheduler | Workflow default (`simple`) is a good neutral pick. Valid options vary by install (commonly `simple`, `normal`, `karras`, `beta`, `kl_optimal`). NOTE: `beta57` is a custom-node scheduler and is NOT on a stock ComfyUI - do not assume it exists. | Sampler/scheduler live in the workflow file, not the tool args - mention a sampler only if asking the user to retune the workflow. ## Prompt enhancement (`enhance`) The `generate_image` tool has an opt-in **`enhance`** option that routes your prompt through a separate model before the render to rewrite it into Anima's native protocol - the score/safety-prefixed tag list this guide describes. - **It is opt-in.** Pass `enhance: true` on the call (or a workflow/config default turns it on). When off, your `prompt` is sent as-is. - **Use it when** the incoming prompt is thin (a few words) and you want a one-shot upgrade to a full tagged prompt. When you have already built a careful tagged prompt, leave `enhance` off - it only adds latency and risks drifting from your intent. - **Scene continuity.** Pass the `context` arg alongside `enhance` to hand the enhancer background to honour (character facts, ongoing scene, wardrobe) without depicting it literally. It is ignored when `enhance` is off. - **Negative.** The enhancer builds on whatever baseline `negative` you pass and returns a refined one - it should keep
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen