Anima FeRA Loader
One gate, many experts, zero guesswork
- model
- MODEL
If your Anima adapter file came out of the trainer as *_moe.safetensors with ss_network_spec=stacked_experts_global_fei - or as the older author-faithful FeRA format - the stock Load LoRA node and even the pack's main AnimaAdapterLoader are the wrong tools. This is the one. AnimaFeraLoader is the pack's specialist for FeRA (Yin et al., arXiv:2511.17979), and it's a genuinely different routing philosophy from HydraLoRA.
How it works
Where HydraLoRA routes per Linear, each layer deciding its own expert blend from its own input, FeRA goes the opposite way: one global router reads the latent's Frequency-Energy Indicator (a measure of how much of the image's energy sits in low vs high frequency bands) once per denoising step, and emits a single (B, num_experts) gate that every adapted Linear reuses for that step. Each Linear still carries its own independent stack of low-rank experts (lora_down/lora_up), and adds the gated correction Σₖ wₖ · Uₖ @ Dₖ @ x on top of the frozen base.
That global-gate design is why there's exactly one strength knob and no per-layer fiddling - the router decides where the experts go, not you.
The node auto-detects which of two on-disk formats it's looking at, because the trainer changed shape mid-life:
- Author-faithful (
networks.methods.fera) - N-band FEI, keys underrouter.net.*, stacked-Parameter experts. - Plan2
stacked_experts_global_fei- fixed 2-band FEI, keys underglobal_router.net.*, per-expert splitlora_downs.{i}.weight/lora_ups.{i}.weight. This is the*_moe.safetensorsnaming.
Same inference semantics either way; the node just makes sure the FEI band ordering stays bit-correct per format.
Inputs and output
Three inputs, one of which is a dropdown:
model- an Anima-family MODEL (Cosmos-Predict2-based DiT).adapter- the FeRA checkpoint, picked from the file list inComfyUI/models/loras.strength- default 1, range -2 to 2. At 0 it short-circuits to the frozen base model - handy for an instant A/B of "what did this adapter actually change."
Output is a single MODEL socket, wired straight to the sampler or into another loader in the pack.
Install and the one real trap
Same install as the rest of the pack: ComfyUI Manager (search "Anima Adapter Loader") or
cd ComfyUI/custom_nodes
git clone https://github.com/sorryhyun/ComfyUI-Anima_lora-Adapter
then restart. No extra dependencies; router kernels are vendored.
The trap is the mutual exclusion: FeRA and HydraLoRA are different save formats and different routing schemes, and you load one, not both, at the inference layer. If you drop a FeRA file into AnimaAdapterLoader by mistake, it now raises a pointed error telling you to use this node instead of quietly skipping hundreds of prefixes. That's the pack being kind - trust the error and switch nodes.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| adapter | COMBO | FeRA checkpoint — either author-faithful (networks.methods.fera; router.net.* + lora_unet_*.lora_down/lora_up) or plan2 stacked_experts_global_fei (global_router.net.* + lora_unet_*.lora_downs.{i}.weight / .lora_ups.{i}.weight, typically named *_moe.safetensors). Both use an independent-A stacked-expert layout with a single network-level FEI router. | |
| strength | FLOAT | 1.00-2–2 | Scales the gated expert correction added to each adapted Linear (mirrors the training-side multiplier; 0 short-circuits to the frozen base). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |