A quantized version of Anima Turbo 1.1 in GGUF format
Q6_K or Q8_O is recommended
Q4_K_M and Q5_K_M is still usable but worse
Q2_K and Q3_K_M is very bad
Description
FAQ
Comments (7)
Got a workflow for this?? I cant git it to work in Forge of Comfy UI
хорошо что есть нейросети которые ты можешь расcпросить (^^)
@lentor Asking Ai is not helpful in getting it to work I have qwen_3_06b_base and qwen_image_vae Anima and Qwent 2.1 works anything that's GGUF give me this error "The size of tensor a (1024) must match the size of tensor b (840) at non-singleton dimension 0' " am i missing something?
@ruiizunawa540 I personally run the model using stable-diffision.cpp, and unfortunately I can't test it on ComfyUI
Also uses --tensor-type-rules "adaln_modulation=q8_0,final_layer=q8_0,x_embedder=q8_0,t_embedder=q8_0,blocks\.(0|1|26|27)\.=q6_K,blocks\.[0-9]+\.(self_attn|cross_attn)=q6_K,blocks\.[0-9]+\.mlp=q5_K" rules for converting
@ruiizunawa540 Had the exact same error and worked out what's going on — sharing in case it helps.
The loader: when you pick a model in ComfyUI/Forge, a small bit of code opens the file and copies the weights into their slots in the network; for GGUF it also unpacks the compressed weights. It's an ordinary Python file — you can open it in Notepad and read it.
The problem is a few specific layers. Anima has a small adapter (llm_adapter) whose tiny 1-D normalization weights are sensitive. In normal quantized GGUF files those are left uncompressed, in F16/F32. This file was converted for stable-diffusion.cpp, and there they were compressed too, with block (K-)quants (Q3_K/Q4_K/Q5_K/Q6_K/Q8_0). The loader unpacks 1-D tensors only when they are BF16; for these compressed norms it doesn't, so it ends up using the byte length instead of the element count. For Q6_K, 1024 elements = 4x210 = 840 bytes — that's the "840" in your error: it compares 1024 (what it should be) with 840 (what it actually read).
It's a one-line fix. Find this line in the loader:
tensor.tensor_type == gguf.GGMLQuantizationType.BF16
(usually inside if len(shape) <= 1 and ...:) and change the condition to:
tensor.tensor_type not in {gguf.GGMLQuantizationType.F32, gguf.GGMLQuantizationType.F16}
The point: the loader will then unpack any 1-D tensor, not only BF16, so the norms are read correctly. Nothing else changes — the big weights stay compressed, so size and speed are the same.
The file lives in different places depending on the build: Forge / Forge Neo — webui/backend/utils.py, function load_torch_file; newer ComfyUI — comfy/utils.py; older ComfyUI with the ComfyUI-GGUF node — custom_nodes/ComfyUI-GGUF/loader.py (the code there looks a bit different).
A few easy-to-miss things: keep the indentation identical (spaces — otherwise Python complains), the line may be on a different number so search by the text, back up the file before editing, and restart the app afterward.
If you'd rather skip all that, just grab a GGUF already converted for ComfyUI: https://huggingface.co/vanes430/Anima-Turbo-V1.1-GGUF (Q6_K or Q8_0), or the official model: https://huggingface.co/circlestone-labs/Anima.
@lentor I made this because official GGUFs have pretty unusable quality at lower quants. Thanks for sharing!
