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
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
Base model
circlestone-labs/Anima