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.

インストールへ移動

ソース情報

リポジトリ
weikinhuang/dotfiles
ソースの最終更新活動
2026年6月23日 20:17
検出された SKILL.md の言語
英語
スター
21
フォーク
3

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る