Nodes/Anima Artist Mixer/Anima Artist Options (Advanced)
ComfyUI Node

Anima Artist Options (Advanced)

Stabilizers, VRAM controls, and norm locks for Anima mixing

By An1X3R·Created 4 months ago·Updated 24 days ago· 125
Anima Artist Options (Advanced)
    • advanced_options
    • anchor_seeds_used
    start_block0
    end_block-1
    start_percent0.000
    end_percent1.000
    normalize_weightstrue
    artist_ema_alpha0.00
    lowrank_k1
    artist_static_capturefalse
    static_capture_k6
    artist_anchor_qfalse
    anchor_seed_list
    anchor_seeds_count1
    anchor_user_blend0.00
    anchor_deep_layer_threshold-1
    stabilizer_end_percent1.00
    anchor_refresh_modeonce
    anchor_cache_points8
    layer_filter
    anchor_keyframe_modeuniform_sigma

    This is the basement. AnimaArtistOptions (Expert) is where the pack's real machinery lives: cross-seed style stabilizers, norm locking, VRAM limits, and the A/B switches the presets deliberately keep off by default. If AnimaArtistPreset is "pick a mode", this node is "build a mode from parts". Most people should not be here - the README's own advice is that SimpleOptions handles the common tweaks and this panel is for stabilizer A/B and debugging. But if your mixes keep flip-flopping between dominant artists across seeds, this is where the fix is.

    The layout basics

    start_block/end_block and start_percent/end_percent bound where (DiT blocks) and when (sampling progress) the patch applies. normalize_weights toggles relative-vs-absolute weights. layer_filter overrides the block range with a list like 0,3,5-10,-1.

    The stabilizers, light to heavy

    • match_base_norm (+ norm_lock_mode token/row, norm_lock_scope per_artist/mixed/both) - rescales the mixed artist attention output to the base's RMS energy. Stops one seed-specific artist spike from dominating. The "v26 norm-lock" path.
    • artist_ema_alpha (0–0.95) - temporal EMA smoothing across sampling steps. 0.3–0.5 is light; past 0.8 style starts lagging content.
    • lowrank_k - only matters with combine_mode=lowrank_avg. k=1 gives one consensus direction (most stable, most homogeneous); k≥N equals plain output_avg.
    • artist_static_capture + static_capture_k (default 6) + static_capture_mode - freezes artist attention after K warmup steps. Also a 30–50% speedup. Incompatible with concat_with_base (auto-ignored) and with EMA.
    • artist_anchor_q + anchor_seeds_count + anchor_user_blend + anchor_deep_layer_threshold + anchor_refresh_each_step - the heaviest stabilizer: artist attention uses a fixed-seed anchor hidden state as Q, decoupling style from your seed. Costs one extra forward on first generation, then caches. Mutually exclusive with static_capture (anchor wins).
    • stabilizer_end_percent - lets EMA/static/anchor stop early in sampling; try 0.4–0.6 when late-step samplers need dynamic motion.

    VRAM and safety

    max_batch_artists caps how many artists run per batched forward (0 = auto, adapting to free VRAM on GPU). low_vram_cache pushes the static/anchor caches into system RAM. compatibility_mode forces the tolerant concat path for regional-prompt setups. The experimental artist_q_reuse (reuse Q across artists) is off by default for a reason - it shifts same-seed renders and bypasses TeaCache-style patches.

    Outputs

    One output: advanced_options (ANIMA_OPTS) → AnimaArtistPresetApply.advanced_options or AnimaArtistCrossAttn.advanced_options.

    Install

    Manager → search "Anima Artist Mixer Forge", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/peter119lee/Anima-Artist-Mixer-Forge
    

    then restart. No extra deps; Anima files + Anima-compatible CLIP loader required. Don't run alongside the original Anima-Artist-Mixer.

    My take

    If I had to pick two things to try first here, it's match_base_norm with token/per_artist locking for seed-to-seed drift, then artist_ema_alpha around 0.4. artist_anchor_q is a sledgehammer - it stabilizes style hard but strokes can stop tracking the current image; that's what anchor_user_blend is for. And note the honest signal in the README: artist_static_capture used to be a default and got pulled back because multi-artist evidence showed it over-constrains style. When the authors demote their own stabilizer, listen.

    CategoryAnima/CrossAttn

    Inputs (19)

    NameTypeDefaultDescription
    start_blockINT00–63Start block (inclusive).
    end_blockINT-1-1–63End block (inclusive). -1 means last block.
    start_percentFLOAT0.0000–1Sampling progress start. 0.0 = start.
    end_percentFLOAT1.0000–1Sampling progress end. 1.0 = end.
    normalize_weightsBOOLEANtrueTrue: normalize artist weights to relative ratios. False: weights act as direct multipliers. Explicit ::weight syntax follows this option.
    artist_ema_alphaFLOAT0.000–0.95Cross-step EMA smoothing for artist outputs.
    lowrank_kINT11–32Rank for lowrank_avg.
    artist_static_captureBOOLEANfalseAverage the first K steps and freeze artist outputs.
    static_capture_kINT61–12Number of warmup steps for static capture.
    artist_anchor_qBOOLEANfalseUse selected anchor-seed hidden states as artist-attn Q.
    anchor_seed_listSTRINGOptional fixed anchor seeds, e.g. 12345,67890. When filled, anchor_seeds_count is ignored.
    anchor_seeds_countINT11–4Number of fresh random anchor seeds generated per execution.
    anchor_user_blendFLOAT0.000–1Blend user x into anchor Q. 0=pure anchor, 1=pure user.
    anchor_deep_layer_thresholdINT-1-1–64-1 = all layers use anchor. N = layers >= N use user x.
    stabilizer_end_percentFLOAT1.000–1When EMA/static/anchor stabilizers stop during sampling.
    anchor_refresh_modeCOMBOonce[Adapter Mixer only] once reuses one start-of-run Q snapshot. warm_cache warms a sigma-keyframed Q trajectory once and reuses it for later KSampler seeds in the same session.
    anchor_cache_pointsINT82–12[Adapter Mixer only] CPU keyframes retained by warm_cache. More points improve sigma matching but use more system RAM.
    layer_filteroptSTRINGOptional comma-separated block list/ranges, e.g. 0,3,5-10,-1.
    anchor_keyframe_modeoptCOMBOuniform_sigma[Adapter Mixer only] warm_cache keyframe selection. uniform_sigma keeps evenly spaced sigma frames. adaptive_q observes every warmup sigma and retains frames with the largest sampled Q-trajectory interpolation error; first warmup uses more CPU transfer.

    Outputs (2)

    NameTypeDescription
    advanced_optionsANIMA_OPTS
    anchor_seeds_usedSTRING