Nodes/ComfyUI Anima Remap/Anima LoRA Tag Loader (Auto Remap)
ComfyUI Node

Anima LoRA Tag Loader (Auto Remap)

Put old Anima LoRAs on Anima-2.9B without the scribble-fest

By shin131002·Created 22 days ago·Updated 4 days ago· 6
Anima LoRA Tag Loader (Auto Remap)
  • model
  • clip
  • model
  • clip
  • text
  • remap_info
text
default_weight1.00
weight_multiplier1.00
auto_remaptrue
save_remappedfalse
extend_to_new_layersfalse
extend_strength0.50
manifest

If you've dropped a LoRA trained for the original Anima onto Anima-2.9B and got back something that looks like the model had a seizure, it wasn't your seed or your prompt. Anima-2.9B is the original Anima (28 blocks) with 12 extra blocks spliced in LLaMA-Pro-style, for 40 total. Apply a 28-block LoRA naively and every key after the first insertion point lines up against the wrong layer - the weights land somewhere they were never trained to be, and you get exactly the "scribble-level" output the pack's README warns about.

This node is the fix, and it's the flagship of the ComfyUI-Anima29B-Remap pack: a <lora:name:weight> tag loader in the style of LoRA Tag Power Loader, with automatic block-index remapping built in. You write your prompt with LoRA tags like you always do, and it figures out the 28-vs-40 situation itself.

How it works

The node scans the connected model's keys for net.blocks.N to count blocks (the separate llm_adapter.blocks structure is deliberately ignored - it's 6 blocks and wasn't part of the expansion). It does the same for the LoRA file, then decides:

  • Model has 40 blocks, LoRA has 28 → remap the LoRA's keys through the bundled expand_manifest.json (the official mapping from Gazingstars123/Anima-2.9B) and apply.
  • Model has 28 blocks → apply the LoRA untouched, no remap at all.
  • LoRA references more blocks than the model has → it errors out and stops, rather than silently applying a half-LoRA. There's no sane way to remap a 40-block LoRA down onto 28 blocks, and the author chose a loud failure over a quiet broken one.

Two key-name styles are recognized: dot-separated net.blocks.N. and kohya-style ..._blocks_N_.... Anything else won't be detected, and the LoRA is applied unmodified.

The inputs that matter

You mostly set two things: text (your prompt with <lora:name:weight> tags) and default_weight (what a tag uses when it omits the number). weight_multiplier scales every LoRA's weight uniformly, handy for A/B-testing a stack. clip is optional - tags can carry a separate clip weight.

The ones to be careful with:

  • save_remapped - leave it OFF while you're still tuning. When on, the first remap writes a <name>_29Bremap.safetensors next to your original LoRA, and that cached file takes priority forever after, no matter what settings you change. Experiment with it off, flip it on once you've settled, and delete the _29Bremap file if you want to change settings later. This is the single biggest footgun in the pack.
  • extend_to_new_layers / extend_strength - experimental, off by default. When on, it also approximates the LoRA's effect onto the 12 freshly-inserted layers. It's a best-effort projection, not a "correct" answer.
  • manifest - only one option ships (expand_manifest_preview_v1.json). If a future Anima-2.9B revision changes the block layout, you drop its manifest into the pack's mapping/ folder and pick it here.

Wiring it up

The three outputs: model and clip go straight to your sampler, and text comes out with the LoRA tags stripped - feed that to your CLIP Text Encode. The pattern is exactly the same as any tag-style LoRA loader:

<lora:my_old_anima_style:0.8>  →  applied at 0.8, tag removed from output text
<lora:name:0.9:0.7>            →  model weight 0.9, clip weight 0.7

Load the 2.9B checkpoint however you normally load Anima (UNETLoader for a diffusion_models file), and keep the Qwen-Image VAE from the base stack.

Install and gotchas

Install via ComfyUI Manager (search "Anima-2.9B Remap") or:

cd ComfyUI/custom_nodes
git clone https://github.com/shin131002/ComfyUI-Anima29B-Remap.git

Then restart ComfyUI. No extra Python dependencies - it uses ComfyUI's own comfy.sd - and no model downloads; the manifest is bundled. Two things the README wants you to know: this repo is no longer updated (development moved to ComfyUI-Anima-Remap, which adds 3.8B/52-block support), so don't install both - they register the same node IDs and conflict. And one honest limitation: 28-vs-40 detection is based on the highest block index a LoRA's keys touch, so a 2.9B LoRA that only trains early blocks can get misread as a 28-block LoRA and remapped when it shouldn't be. There's no override for that yet.

Finally, the license: remapping a LoRA makes it a "Derivative" of Anima, so your remapped file carries the CircleStone Labs non-commercial restriction - but images generated with it are yours to use commercially. The node code itself is MIT.

Categoryloaders/anima

Inputs (10)

NameTypeDefaultDescription
modelMODEL
textSTRING
default_weightFLOAT1.00-10–10
weight_multiplierFLOAT1.00-10–10
auto_remapBOOLEANtrue
save_remappedBOOLEANfalse
extend_to_new_layersBOOLEANfalse
extend_strengthFLOAT0.500–2
manifestCOMBO4 options: Auto (Recommended), expand_manifest_28_40.json, expand_manifest_28_52_composed.json, expand_manifest_40_52.json
clipoptCLIP

Outputs (4)

NameTypeDescription
modelMODEL
clipCLIP
textSTRING
remap_infoSTRING