Skip to content
,

Anima Reference Adapter v2: Consistent Anime Characters From One Image in ComfyUI

10โ€“15 minutes

Getting the same anime character into a new scene usually means training a LoRA, or hoping the model knows the character’s name. The Anima Reference Adapter v2 skips both. You give the Anima image model one reference picture and a prompt that describes only the scene, and the adapter keeps the character’s hair, eyes, outfit and accessories while the pose, background and framing follow your prompt. It works for original characters too, and two references side by side give you two characters in one image. This guide covers what changed in v2, how to install the ComfyUI node, where each model file goes, the best settings, two-character prompts and how fast it runs.

TL;DR

  • What it is: a rank-64 adapter for Anima base v1.0 that copies a character (and some of its style) from one reference image, with no character tags and no LoRA training.
  • Install: git clone https://github.com/ArcAnima/ComfyUI-Anima-Ref-Adapter.git into ComfyUI/custom_nodes/. The 183 MB adapter downloads itself into ComfyUI/models/loras/ on first run.
  • v2 is about 2x faster than the pilot: 65 to 67 s instead of 105 s per 832×1216 image on an RTX 3060 Ti.
  • Settings: er_sde or Euler, 30 steps, simple scheduler, cfg 4.5, ref_guidance 4.5 with APG.
  • Two characters: stitch two references side by side and say who is on the left and right.
  • Licence: node code Apache-2.0, weights CircleStone Non-Commercial. Development is paused for lack of funding.

What Is the Anima Reference Adapter?

Anima is an anime image model from CircleStone Labs that uses a small Qwen3 0.6B text encoder and the Qwen-Image VAE. It is popular because it is light enough for 8 GB cards and follows Danbooru-style tags well. Its weak spot, like most anime models, is consistency: unless a character is famous enough to have a tag, you cannot easily draw the same original character twice.

The Anima Reference Adapter, made by ElectronGirl and published under the ArcAnima name, fixes that. It is a LoRA that only switches on when you give it a reference image. The adapter reads who is drawn and much of how it is drawn, and leaves the rest to your prompt. You do not write the character’s name, artist tags or outfit tags. That is what makes it work for your own OCs.

The node is on GitHub, the weights are on Hugging Face, and the training code and experiment log are public in anima-ref-adapter-research. The developer notes that development is paused for lack of funding, so v2 is the current final version for now.

What Is New in v2

Pilot (v1) v2
File anima_ref_adapter_pilot_r32.safetensors (92 MB) anima_ref_adapter_v2_r64.safetensors (183 MB)
LoRA rank 32 64
Training data 3,600 images, 300 characters 15,600 images, 2,300 characters, 1,952 artist styles
Time per image (RTX 3060 Ti, 832×1216) 105 s 65 to 67 s
Nodes needed Loader, Ref Latent and Ref Guider One node: Anima Ref Adapter
Two characters No Yes

The speed gain comes from a new design. The pilot added the reference as a second latent frame and recomputed it at every step. v2 encodes the reference once per image and reuses it for every step and both CFG branches. On the developer’s RTX PRO 6000, one sampling step dropped from 0.58 s to 0.28 s, close to the 0.24 s of plain Anima.

Install the ComfyUI Node

You need a recent ComfyUI with Anima support (any build from the last few months). Then:

cd ComfyUI/custom_nodes
git clone https://github.com/ArcAnima/ComfyUI-Anima-Ref-Adapter.git

The pack now sits at ComfyUI/custom_nodes/ComfyUI-Anima-Ref-Adapter/. It has no extra Python requirements, and the workflow uses no other custom nodes. Restart ComfyUI.

To update later:

cd ComfyUI/custom_nodes/ComfyUI-Anima-Ref-Adapter
git pull

The repo ships three workflows in its workflows/ folder:

  • anima_ref_adapter.json: the standard Anima text-to-image graph plus the one adapter node. Start here.
  • anima_ref_adapter_two_characters.json: two references stitched side by side.
  • anima_ref_adapter_advanced.json: the separate loader, latent and guider nodes, needed for the pilot adapter and for options like ref_start.

Drag the JSON file onto the ComfyUI canvas to load it.

Model Files and Folder Paths

Anima base files

Download these from circlestone-labs/Anima, the same files you use for Anima itself:

  • ComfyUI/models/diffusion_models/anima-base-v1.0.safetensors
  • ComfyUI/models/text_encoders/qwen_3_06b_base.safetensors
  • ComfyUI/models/vae/qwen_image_vae.safetensors

The adapter

The first time you queue the workflow, the node downloads anima_ref_adapter_v2_r64.safetensors (183 MB) into ComfyUI/models/loras/. If your PC is offline or the download fails, get it by hand from Hugging Face and save it as:

ComfyUI/models/loras/anima_ref_adapter_v2_r64.safetensors

The pilot file, if you want to compare, goes in the same folder: ComfyUI/models/loras/anima_ref_adapter_pilot_r32.safetensors.

Your folder tree should look like this:

ComfyUI/
  custom_nodes/
    ComfyUI-Anima-Ref-Adapter/
  models/
    diffusion_models/anima-base-v1.0.safetensors
    text_encoders/qwen_3_06b_base.safetensors
    vae/qwen_image_vae.safetensors
    loras/anima_ref_adapter_v2_r64.safetensors

Your First Image, Step by Step

  1. Load workflows/anima_ref_adapter.json.
  2. Check the loaders point at the three Anima files above.
  3. In the Load Image node, pick your reference. A clear full-body or cowboy-shot picture of one character on a simple background works best.
  4. Write a prompt that describes only the scene, for example: masterpiece, best quality, score_7, safe, 1girl, solo, cowboy shot, sitting, cafe, holding cup, coffee, smile, looking at viewer, indoors, window, day
  5. Use the negative prompt from the Anima model card: worst quality, low quality, score_1, score_2, score_3, artist name, blurry, jpeg artifacts, chromatic aberration
  6. Set the size to 832×1216 for portrait and queue.

Adding it to your own workflow: place the Anima Ref Adapter node between the model (after any other LoRAs) and the sampler. Connect the VAE and the reference image to it. The output MODEL goes into KSampler or any other sampler.

Best Settings

Setting Value Notes
Base model Anima base v1.0 The adapter was trained on it. A turbo LoRA also works.
Sampler er_sde or euler Any sampler works.
Steps 30 Same as plain Anima.
Scheduler simple
cfg 4.5 Text guidance. Use 1 with a turbo LoRA.
ref_guidance 4.5 1 is cheaper and weaker. Higher gives more detail and style but more saturation.
correction apg Or rescale with phi 0.5.
ref_end 1.0 About 0.6 is faster with nearly the same image.
ref_megapixels 1.0 The reference is resized to this, keeping its aspect ratio.
Precision bf16 (fp16 on older cards)

Other LoRAs, such as style or detail LoRAs, go in front of the adapter node in the chain, never after it.

How to Write Prompts

The single most important rule: describe the scene, not the character. The adapter already knows what the character looks like from the reference. If you also add their hair colour, outfit or name, you fight the adapter and often get a mix.

A good prompt has three parts:

  1. Quality tags: masterpiece, best quality, score_7, safe
  2. Count tags: 1girl, solo or 1boy, solo
  3. Scene tags: framing, pose, action, place, light. For example full body, flying, from below, sky, clouds, sunlight, dynamic pose, outstretched arm

A few appearance tags are fine if something keeps going wrong, but keep them minimal. These prompts from the developer’s showcase are good templates:

  • full body, lying, on side, on bed, head rest, looking at viewer, smile, bedroom, indoors, night, lamp light
  • sitting, on floor, hugging own legs, sleepy, hangar, indoors, dim lighting
  • cowboy shot, beach, ocean, sunset, wind, hand on own hat, sun hat, smile, looking back

Unusual poses like lying down are harder. The developer picked the best of six seeds for that one, so expect to roll a few seeds for complex poses.

Two Characters in One Image

v2 can put two different characters into one scene. Load workflows/anima_ref_adapter_two_characters.json, or build it yourself:

  1. Load both references and join them side by side with the core Image Stitch node.
  2. In the prompt, replace solo with 2girls or 1boy, 1girl.
  3. Say who is on which side, with a few words each.
  4. Use a landscape size, such as 1216×832.

Example prompt:

masterpiece, best quality, score_7, safe, 2girls, the girl on the left is a policewoman with black hair over one eye, the girl on the right is a mecha girl with aqua hair and mechanical wings, standing side by side, peace sign, smile, city, street, day

This is the one case where a few appearance words help, because the model needs to know which reference is which.

Speed and How to Make It Faster

Anima Reference Adapter speedSeconds per 832×1216 image, RTX 3060 Ti 8 GB, one reference (developer’s test)No reference (base)33 sPilot adapter105 sv2 adapter66 sv2, ref_guidance 150 sv2 + SageAttention62 sv2 + turbo LoRA11 sSource: ArcAnima/ComfyUI-Anima-Ref-Adapter README. v2 measured at 65 to 67 s. Turbo: 10 steps, cfg 1.
Anima Reference Adapter v2 takes about 66 s per image on an RTX 3060 Ti versus 105 s for the pilot and 33 s with no reference; the turbo LoRA cuts it to 11 s.

The developer’s numbers on an RTX 3060 Ti 8 GB at 832×1216 with one reference:

Setup Time per image
Anima base, 30 steps, cfg 4.5, no reference 33 s
Pilot adapter, ref_guidance 4.5 105 s
v2 adapter, ref_guidance 4.5 65 to 67 s
v2, ref_guidance 1 (no extra model call) 50 s
v2 + SageAttention (KJNodes Patch Sage Attention) 62 s
v2 + EasyCache (core) 63 s
v2, ref_end 0.6 62 s
v2 + turbo LoRA, 10 steps, cfg 1, ref_guidance 1 11 s

SageAttention, EasyCache and ref_end 0.6 each save about 7% with nearly the same image. For SageAttention you need ComfyUI-KJNodes:

cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-KJNodes
pip install -r ComfyUI-KJNodes/requirements.txt

Plus the sageattention Python package in ComfyUI’s environment. Our gpu-unlock guide covers more speed tricks for RTX 30 and 40 cards.

The big win is a turbo LoRA. The developer tested anima-turbo-lora-v0.2 at strength 1, placed in front of the adapter, with 10 steps and cfg 1. That cuts the time to 11 s. The catch: it keeps the character but pulls the drawing toward its own look, so less of the reference style comes through.

Estimate for a 16 GB card like the RTX 5080: the RTX 5080 has roughly two and a half to three times the compute of an RTX 3060 Ti, and the whole Anima setup fits in its VRAM. Scaling the developer’s numbers, expect around 20 to 28 seconds per 832×1216 image with v2 at 30 steps, and around 4 to 5 seconds with the turbo LoRA. This is an estimate, not a measured result.

How It Works

You do not need this to use the adapter, but it explains its strengths and limits.

  • Asymmetric attention. The image being made (the target) can look at itself and at the reference. The reference looks only at itself and ignores the text. Because nothing about the reference changes during sampling, its keys and values are computed once and reused, which is why v2 is so much faster.
  • Offset RoPE. The reference sits at shifted position coordinates, past the edge of the target grid. The model reads it as “appearance” rather than as a picture to trace, so it does not copy the pose.
  • Rank-64 LoRA. It is active only when a reference is present and learns how to read it. Training pairs show the same character in different scenes, generated by Anima, with the name, artist and appearance tags removed from the target prompt.
  • Separate guidance. Text guidance (cfg) and reference guidance (ref_guidance) are separate, with adaptive projected guidance (APG) to stop over-saturation.

Limitations

  • Identity transfers better than style. Strongly painterly styles barely come through.
  • Small details get lost. Patterns, scars, earrings and unusual skin tones often disappear.
  • Colour drift. Large garments can change colour.
  • Ghost copies. The reference character sometimes reappears as an object in the scene, like a poster or doll.
  • Anima only. It was trained on Anima-generated images and inherits Anima’s biases. It does not work with other models.
  • Non-commercial weights. You cannot use the adapter’s outputs in commercial work under the CircleStone Non-Commercial License.

For tiny details like a specific earring or tattoo, a character LoRA still wins. If you want to train one, our LoRA training guide shows the process for another model.

Troubleshooting

  • The adapter node is missing: check the folder is ComfyUI/custom_nodes/ComfyUI-Anima-Ref-Adapter/ and restart ComfyUI fully.
  • Download fails on first run: download anima_ref_adapter_v2_r64.safetensors by hand into ComfyUI/models/loras/.
  • The character looks wrong or generic: remove appearance tags from the prompt, raise ref_guidance a little, and use a cleaner reference with the character large in frame.
  • Colours look burnt or oversaturated: lower ref_guidance toward 3, and keep correction on apg.
  • The pose copies the reference: describe the pose clearly in the prompt (for example full body, sitting, crossed legs) and try another seed.
  • Out of memory on 8 GB: lower ref_megapixels to 0.7, use fp16, and close other GPU apps.

FAQ

Do I need to train anything?

No. You give one reference image per image. There is no training step.

Does it work with Anima Turbo or other Anima finetunes?

A turbo LoRA on top of Anima base works and was tested. The full Anima-Turbo and Anima-Aesthetic models were not tested by the developer.

Can I use the outputs commercially?

No. The weights are a derivative of the CircleStone model and use the CircleStone Non-Commercial License. The node code is Apache-2.0.

Does it work for male characters?

Yes. Use 1boy, solo in the prompt. The pilot gallery includes male characters.

How much VRAM does it need?

The developer runs it on an 8 GB RTX 3060 Ti at 832×1216. Anima and the adapter are small, so 8 GB is enough.

Will there be a v3?

Not for now. Development is paused for lack of funding, and the planned separate character and style references are not released.

Final Thoughts

The Anima Reference Adapter v2 is the easiest way to keep an anime character consistent across scenes without training a LoRA. One node, one reference, a scene-only prompt, and the character carries over. It is now about twice as fast as the pilot, it handles two characters, and with a turbo LoRA it runs in seconds. Keep its limits in mind: style and tiny details transfer less well than identity, and the weights are non-commercial. For OC art, comics and fan scenes, it is well worth a try.

More AI image guides:

Sources