This is a set of extracted LoRAs for ANIMA made using SVD (with the provided script given AS-IS). There are Rank 64, Alpha 32 standard LoRA. Tested working using Forge Neo.
This is done for research purpose only, the original authors of the source models keep "ownership" of extracted LoRAs and can request deletion of those.
They don't replicate the exact source model of course, but provide a good approximation to avoid storing full models for experimentation.
All of those LoRA includes DiT block layers and LLM Adapter layers (if included, VAE and TE is ignored). Bias if existing, Time embedding and the Final layers are not included.
anima_lora_layers = [
"adaln_modulation_cross_attn.1.weight",
"adaln_modulation_cross_attn.2.weight",
"adaln_modulation_mlp.1.weight",
"adaln_modulation_mlp.2.weight",
"adaln_modulation_self_attn.1.weight",
"adaln_modulation_self_attn.2.weight",
"cross_attn.k_proj.weight",
"cross_attn.output_proj.weight",
"cross_attn.q_proj.weight",
"cross_attn.v_proj.weight",
"mlp.layer1.weight",
"mlp.layer2.weight",
"self_attn.k_proj.weight",
"self_attn.output_proj.weight",
"self_attn.q_proj.weight",
"self_attn.v_proj.weight",
]
anima_llm_layers = [
"cross_attn.k_proj.weight",
"cross_attn.o_proj.weight",
"cross_attn.q_proj.weight",
"cross_attn.v_proj.weight",
"mlp.0.weight",
"mlp.2.weight",
"self_attn.k_proj.weight",
"self_attn.o_proj.weight",
"self_attn.q_proj.weight",
"self_attn.v_proj.weight",
]
Here is the list of models:
- https://civitai.red/models/2596298/animosity?modelVersionId=2924638
- https://civitai.red/models/2361209/perfectrsbmix-anima-aio-sfw-nsfw?modelVersionId=2923162
- https://civitai.red/models/2596964/ix-anima?modelVersionId=2917237
- https://civitai.red/models/2495369/kirazuri-anima?modelVersionId=2898376
- https://civitai.red/models/2505864/pornmaster-anima-preview?modelVersionId=2898873
- https://civitai.red/models/2578175/ramthrusts-nsfw-pink-alchemy-anima?modelVersionId=2896460
- https://civitai.red/models/2544636/wai-anima?modelVersionId=2859702
- Update: https://civitai.red/models/2530372/slivanimix-anima-preview
They were all extracted against Preview 3: https://huggingface.co/circlestone-labs/Anima/blob/main/split_files/diffusion_models/anima-preview3-base.safetensors
PS: if the difference was not over 1e-4, the layer was not included.
for k in tqdm(weight_list):
diff = (tune[k].to(dtype=torch.float) - orig[k].to(dtype=torch.float)) * scale
if torch.mean(torch.abs(diff)) < 0.0001:
# Not enough difference, let's skip it
del diff
continue
NB: The method used can be adapted to extract a LoRA from ANY models:
- Define a list of layers (2D shaped)
- Compute Diff = Tuned minus Orig for each
- Extract Up/Down from Diff using SVD and store those tensors
Update
Two additional scripts are now included:
- merge.py: This script takes multiple LoRAs and merge/redim them.
- extract_lora_te.py: This script extract via SVD a text encoder LoRA for ANIMA based on Qwen3 model files.
Two demo LoRAs are included based on the following examples:
- Example usage of merge.py:
python merge.py megamix.safetensors "<lora:animosity_anima:0.9>" "<lora:perfectrsbmixAnimaETA:0.7>" "<lora:kirazuriAnima:0.5>"
- Example usage of extract_lora_te.py:
python extract_lora_te.py qwen_3_06b_base.safetensors Qwen3-0.6B-heretic-abliterated-uncensored.safetensors qwen-heretic-lora.safetensors
PS:
- Qwen3-0.6b abliterated found here: https://huggingface.co/DavidAU/Qwen3-0.6B-heretic-abliterated-uncensored
- Forge Neo now load correctly TE keys: https://github.com/Haoming02/sd-webui-forge-classic/issues/1115
Update2
Added extract_lora_bn.py which include bias and norm weights (1D tensors) at rank 128 (but doesn't include alpha anymore).
Used for https://civitai.red/models/2625328/p3-to-v1-anima-helper