GGUF

Inspired by n-Arno/Anima-P3-Turbo-AIO-Q4_K. v1.0 AIO built from circlestone-labs/Anima split files. Used by Luminia/Anima-2B-CPU.

Status

v1.0 AIO is ready but waiting for a v1.0-compatible Turbo LoRA. The existing Turbo LoRA (v0.1, trained on Preview 3) degrades quality and does not accelerate v1.0. Once a v1.0 Turbo LoRA is released, the AIO will be rebuilt and the Space updated.

The Space currently runs Preview 3 + Turbo (main branch). The v1.0 code is parked in the upcoming-v1.0 branch.

Files

File Model Size Status
Anima-base-v1.0-Turbo-AIO-Q4_K.gguf Base v1.0 + Turbo LoRA v0.1 1.71 GB Waiting for v1.0 Turbo LoRA

v1.0 AIO Build Script

Components from circlestone-labs/Anima:

  • DiT: split_files/diffusion_models/anima-base-v1.0.safetensors (3.99 GB, 685 tensors)
  • Text encoder: split_files/text_encoders/qwen_3_06b_base.safetensors (1.14 GB, 310 tensors)
  • VAE: split_files/vae/qwen_image_vae.safetensors (242 MB, 194 tensors)
  • Turbo LoRA: dummy9996/Anima-Turbo-LoRA (142 MB, 508 lora_A/lora_B pairs)

Step 1: Concat + merge LoRA

import torch
from safetensors.torch import load_file, save_file

sd_dit = load_file("anima-base-v1.0.safetensors")
sd_llm = load_file("qwen_3_06b_base.safetensors")
sd_vae = load_file("qwen_image_vae.safetensors")
sd_lora = load_file("anima-turbo-lora-v0.1.safetensors")

# Concat with sd.cpp-compatible prefixes
merged = {}
for k, v in sd_vae.items():
    merged[f"first_stage_model.{k}"] = v
for k, v in sd_llm.items():
    merged[f"text_encoders.llm.{k}"] = v
for k, v in sd_dit.items():
    merged[f"model.diffusion_model.{k}"] = v

# Merge Turbo LoRA (lora_A/lora_B with key remap: diffusion_model.* -> net.*)
applied = 0
for k in sd_lora:
    if ".lora_A." in k:
        b_key = k.replace(".lora_A.", ".lora_B.")
        base_key = k.replace(".lora_A.weight", ".weight").replace("diffusion_model.", "model.diffusion_model.net.".replace("net.net.", "net."))
        # Correct remap: diffusion_model.X -> model.diffusion_model.net.X
        base_key = k.replace(".lora_A.weight", ".weight")
        base_key = "model.diffusion_model." + base_key.replace("diffusion_model.", "")
        if b_key in sd_lora and base_key in merged:
            a = sd_lora[k].float()
            b = sd_lora[b_key].float()
            merged[base_key] = (merged[base_key].float() + b @ a).to(merged[base_key].dtype)
            applied += 1

print(f"Applied {applied}/508 LoRA pairs")
save_file(merged, "Anima-base-v1.0-Turbo-AIO.safetensors")

Step 2: Convert to GGUF Q4_K

sd-cli -M convert -m Anima-base-v1.0-Turbo-AIO.safetensors --type q4_K -o Anima-base-v1.0-Turbo-AIO-Q4_K.gguf

Step 3: Test

sd-cli -m Anima-base-v1.0-Turbo-AIO-Q4_K.gguf --vae-tiling --fa --offload-to-cpu --steps 8 --cfg-scale 1 -W 512 -H 512 --sampling-method er_sde --scheduler smoothstep --cache-mode spectrum -p "score_9, masterpiece, best quality, newest, 1girl"

Parameters

  • CFG 1
  • sampler: er_sde
  • scheduler: smoothstep (~beta)
  • steps: 8-16

License

Same as upstream circlestone-labs/Anima.

Downloads last month
40
GGUF
Model size
3B params
Architecture
Hardware compatibility
Log In to add your hardware
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for WeReCooking/Anima-v1.0-Turbo-AIO-Q4_K

Quantized
(19)
this model