CivArchive
    ← All articles
    Published October 30, 2026by _HaDeS_

    Behind the Curtain: Why I Built the HaDeS Anima Suite (18 Nodes for ComfyUI)

    196 views5 reactions0 comments on CivitAI5 collected
    comfyuiannouncementanima18 nodescustom nodes

    A few minutes ago I shared my visual merge workflow for Anima (https://civitai.com/models/3027324/anima-merge-workflow), but I wanted to take a moment to break down the full project properly.

    What started as an attempt to fix broken layer math when merging two checkpoints ended up snowballing into an 18-node ecosystem. Working with Anima in ComfyUI is great, but let's be honest: the architecture has plenty of quirks, traps, and half-supported formats that make everyday workflows frustrating.

    Here is what went wrong with the existing tooling, what I discovered under the hood, and how the HaDeS Anima Suite fixes it.

    1. The Mergers & The Golden Rule (llm_adapter_lr=0)

    Anima isn't SDXL or SD1.5. Between Qwen3-0.6B and the DiT layers sits the AnimaTextConditioner (llm_adapter.blocks.0..5), a 6-layer bridge mapping 1024-dim hidden states to 32128-dim token spaces.

    If you use generic block mergers or dirty LoRAs that touch those layers, you wreck text comprehension, trigger words, and artist styles.

    • Locked by Default: All HaDeS merge nodes (Model Block Merger, Predictive Model Merger, Predictive Multi-LoRa) lock llm_adapter to 0.0 by default.

    • Dynamic Depths: The nodes detect whether you are running Anima 2.0B (28 blocks), 2.9B (40 blocks), or 3.8B (52 blocks) and project them cleanly onto a standardized 34-band spectrum (0..27 DiT + 28.33 Bridge).

    • Predictive SVD & Spectral Alignment: Instead of guessing ratios blindly, the predictive mergers inspect per-block cosine similarity and Frobenius divergence to calculate optimal blending curves automatically.

    • Standalone LoRA Merger (QR-SVD): You can merge two LoRAs together directly into a clean .safetensors file on disk without loading any base model into VRAM. It runs a reduced QR factorization ($\Delta W = Q_U (R_U R_D^T) Q_D^T$) on a tiny $2r \times 2r$ core matrix in milliseconds.

    2. The 24-Rule Universal Diffusers Remapper

    One of the most annoying issues right now: ComfyUI's native loader doesn't automatically parse Diffusers-trained Anima LoRAs (transformer_blocks.X.attn1.to_q, etc.).

    I implemented a 24-rule deterministic key remapper in memory:

    • You can drop any LoRA from Diffusers, Kohya, OneTrainer, or Musubi right into your workflow.

    • You can even take a Diffusers LoRA and a Kohya LoRA, plug them into the Standalone LoRA Merger, and fuse them inside the exact same subspace.

    3. Pipeline Guards & That Annoying Corner Scribble

    If you've generated more than 10 images with Anima, you know the pain: ~20% of your outputs end up with a fake signature or watermark scribble in one of the corners. Putting signature, watermark in the negative prompt does nothing because the training dataset had uncaptioned signatures.

    • Corner Scribble Shield: A dedicated high-frequency detector that checks corner perimeters. If it finds thin, sharp strokes, it heals the area using edge-inward spatial continuation while protecting uniform film grain and texture ($\sigma = 0.03$). If a corner is clean, it leaves it 100% untouched. You can also output a mask for an inpainting pass.

    • NAG (Normalized Attention Guidance): Solves two huge prompt issues. First, it lets you use negative prompts on Anima-Turbo and Lightning at CFG = 1.0. Second, it puts an L1-norm ceiling on attention extrapolation (nag_tau), stopping that ugly contrast fry you get on Base/Aesthetic when pushing CFG.

    • 16-Channel Latent Guard: Hard-checks the connected VAE to stop you from accidentally plugging in the 64-channel Qwen-Image 2.1 VAE. It also automatically prevents the notorious 1280×1280 white-background bucket bias in Anima 2.9B.

    4. The KSampler Trilogy (Staircase Flow)

    Scaling DiT models directly from 1024×1024 to 2048×2048 in a single HiRes step usually results in duplicated limbs, melted fingers, or soft blurry lineart.

    • Dual-Pass & Triple-Pass Samplers: Implements a progressive staircase (1.0x $\to$ 1.35x $\to$ 1.75x–2.0x) snapped to a strict 32px macroblock grid.

    • Variance-Preserving Latent Bridge: Standard bicubic upscaling on 16-channel latents destroys per-channel variance, making low-denoise passes look washed out. The bridge restores per-channel $(\mu_c, \sigma_c)$ across all 16 channels so lines stay sharp.

    • Flow Shift 1.0: Properly deep-copies and sets Anima's Rectified Flow shift (multiplier = 1.0), preventing ComfyUI's standard SD3 shift handler from multiplying timesteps by 1000 and breaking the solver trajectory.

    5. Custom Spectral UI vs Vanilla ComfyUI

    The suite features custom visual widgets on the canvas: color-coded 34-block spectrum bars, dynamic badges, telemetry HUDs, and hover tooltips explaining the internal math.

    However, if you are a purist and prefer the classic, compact look of default ComfyUI, you don't have to keep the custom canvas:

    1. Per-node: Right-click the node $\to$ HaDeS Suite $\to$ Disable UX (Classic ComfyUI View).

    2. Global: Go to ComfyUI Settings (⚙) $\to$ scroll down to HaDeS Suite $\to$ toggle Force Classic ComfyUI Theme (Vanilla) ON. All 18 nodes will instantly revert to standard native ComfyUI input boxes.

    Getting Started

    The suite is verified and officially published:

    • ComfyUI Manager: Search for HaDeS Suite (ID: 4086) and install.

    • Registry CLI: comfy-cli node install hades-anima-suite

    • GitHub: [https://github.com/Devildonia/Comfyui-HaDeS-Anima-BlockMerger](https://github.com/Devildonia/HaDeS-Anima-Suite)

    I've also included four pre-configured example workflows inside the repo's examples/ folder covering Single-Pass, Dual-Pass HiRes, Triple-Pass Studio, and the Visual Merge Studio.

    Give it a spin, stress-test the math, and let me know if you run into any edge cases!

    HaDeS

    Archived from CivitAI · Updated October 30, 2026View source