Nodes/Anima Adapter Loader/Anima Adapter Loader
ComfyUI Node

Anima Adapter Loader

Hydra, Chimera, and ReFT

By sorryhyun·Created 3 months ago·Updated 5 days ago· 0
Anima Adapter Loader
  • model
  • MODEL
adapter
strength_lora1.00
strength_reft1.00

Ever downloaded an Anima LoRA that just… does nothing when you apply it with the stock Load LoRA node? That's usually not a broken download. It's the file being something Load LoRA physically cannot read. Anima's trainer (the anima_lora repo) hasn't been emitting only plain LoRAs for a while - checkpoints can hold HydraLoRA (several expert up-heads behind a learned router), ChimeraHydra (two expert pools, content + frequency), ReFT residual edits, or any combination of those in one safetensors. A stock loader looks for lora_down/lora_up, finds the expert layout instead, and silently skips everything. AnimaAdapterLoader exists to sniff the file's header and route each component to the path it was trained for.

How it works

The node reads the safetensors header and keys, then dispatches per component type:

  • Plain LoRA → ComfyUI's standard add_patches weight-patch path, exactly like any other LoRA.
  • HydraLoRA (*_moe.safetensors) → a forward_hook on every adapted Linear that replays the trained router: rank-R lora_down projection, RMS-pool over the sequence, optionally concatenate sinusoidal σ features (or the latent's frequency-energy indicator when the checkpoint declares FEI routing), softmax, then blend the per-expert lora_up heads by the gate.
  • ChimeraHydra (*_chimera.safetensors) → experts split into a per-Linear content pool and a frequency pool gated once per step by a network-level FreqRouter on FEI + σ.
  • ReFT → per-block hooks that add Rᵀ·(ΔW·h + b) to each DiT block's output.

Everything is installed as hooks, never by overriding forward. That's a deliberate choice: overriding forward strands weights on CPU under ComfyUI's cast-weights path and breaks torch.compile tracing. Hooks keep forward untouched and revert cleanly when the model unpatch.

Inputs and outputs

Three inputs, and honestly you only tune two of them:

  • model - your Anima-family MODEL (this is a Cosmos-Predict2-based DiT loader; there's nothing useful to do with an SDXL checkpoint here).
  • adapter - the safetensors file, picked from a dropdown that lists everything in ComfyUI/models/loras. Drop the file there and it'll show up after refresh.
  • strength_lora and strength_reft - both default to 1 and range -2 to 2.

The two separate strengths are the best feature in this pack for actual debugging. Anima anatomy fixes often ship as "LoRA + ReFT" combos, and the sliders are how you find out which half is doing the work: set one to 0, keep the other, rerun. They're independent - zeroing strength_lora keeps ReFT active and vice versa. There's deliberately no per-expert slider, because live routing is data-driven; one strength for the whole delta is all that's meaningful.

Output is a single MODEL socket. Chain it into the next loader in the pack (adapter → soft tokens is a common pairing) or straight into your sampler.

Install

Via ComfyUI Manager (search "Anima Adapter Loader") or the usual clone:

cd ComfyUI/custom_nodes
git clone https://github.com/sorryhyun/ComfyUI-Anima_lora-Adapter

Restart ComfyUI. No extra pip dependencies - the router-compute kernels ship vendored under _vendor/, so the node works standalone without the anima_lora training repo.

Gotchas

  • Feed it a FeRA file (stacked_experts_global_fei) and it now raises a clear "use AnimaFeraLoader" error instead of the old cryptic skip-warning pair. Listen to it - that's a different node in this same pack.
  • Chimera checkpoints trained with crossattn content routing hard-error if your base model has no llm_adapter. That's your "wrong base model" signal.
  • If you're resurrecting an old workflow, know that the pack's AnimaPostfixLoader was retired (the training method was archived; soft tokens superseded it). Old graphs that reference it need that node dropped.
Categoryloaders

Inputs (4)

NameTypeDefaultDescription
modelMODEL
adapterCOMBOAnima adapter file. May contain any combination of LoRA, HydraLoRA (*_moe.safetensors), ChimeraHydra (*_chimera.safetensors — dual-pool content + frequency routing), and ReFT (residual-stream) weights.
strength_loraFLOAT1.00-2–2Strength for LoRA / Hydra weight patches.
strength_reftFLOAT1.00-2–2Strength for ReFT residual-stream edits.

Outputs (1)

NameTypeDescription
MODELMODEL