File size: 4,477 Bytes
c625404
 
 
 
5c60a3c
797fd25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1b5a6da
797fd25
99dfa43
797fd25
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
---
license: apache-2.0
title: AnimeLoom
---

# AnimeLoom

**Open-source character LoRAs and tooling for face-consistent anime video generation.**

AnimeLoom is a text-to-anime-video pipeline focused on the hardest part of long-form
anime generation: **keeping the same character's face the same across every shot.**

This organization hosts the character LoRAs used by the
[AnimeLoom pipeline](https://github.com/JoelJohnsonThomas/AnimeLoom) on GitHub.

---

## Character LoRAs

| Character | Series | Repo |
|-----------|--------|------|
| Sakura Haruno | Naruto | [AnimeLoom/sakura-haruno](https://huggingface.co/AnimeLoom/sakura-haruno) |
| Denji | Chainsaw Man | [AnimeLoom/denji](https://huggingface.co/AnimeLoom/denji) |
| Yuki Nagato | The Melancholy of Haruhi Suzumiya | [AnimeLoom/yuki-nagato](https://huggingface.co/AnimeLoom/yuki-nagato) |

Every LoRA ships **two adapters** in one repo:

- `sdxl/` β€” for [Animagine XL 3.1](https://huggingface.co/cagliostrolab/animagine-xl-3.1), used by AnimeLoom's identity-keyframe stage
- `sd15/` β€” for [DreamShaper 8](https://huggingface.co/Lykon/dreamshaper-8), for lightweight AnimateDiff workflows

All adapters are LoRA rank 32, trained with [PEFT](https://huggingface.co/docs/peft).

---

## The pipeline

AnimeLoom is a Director-Orchestrated pipeline that turns a text story into a
multi-shot anime video with consistent character identity.

```
text story
   ↓
Story Decomposer (Gemini β†’ Claude)        β†’  shot script
   ↓
SDXL + character LoRA + IP-Adapter        β†’  identity keyframe per shot   (Phase 2)
   ↓
Wan2.2 I2V                                β†’  motion driving clip          (Phase 3a)
   ↓
Wan2.2-Animate face-lock                  β†’  face from keyframe pasted
                                              onto motion clip            (Phase 3b)
   ↓
RIFE + Real-ESRGAN + GFPGAN               β†’  temporal/spatial upscale,
                                              anime face restore           (Phase 4)
   ↓
Cross-dissolve assembly                   β†’  final 24fps video
```

### Why face-lock matters

The "Animate" stage at Phase 3b is the moat. Per
[community testing](https://apatero.com/blog/wan22-animate-14b-character-animation-guide-2025),
Wan2.2-Animate-14B achieves an **89% usable rate** versus AnimateDiff's 71% and
commercial APIs' ~78%. Combined with character-specific LoRAs trained for the
SDXL identity stage, AnimeLoom can keep a character recognizably "themselves"
across every shot of a multi-shot scene β€” the part most open-source pipelines
struggle with.

---

## Quick start

Train your own character LoRA, or use one from this org:

```python
import torch
from diffusers import StableDiffusionXLPipeline
from peft import PeftModel
pipe = StableDiffusionXLPipeline.from_pretrained(
    "cagliostrolab/animagine-xl-3.1",
    torch_dtype=torch.float16,
).to("cuda")
# Load any AnimeLoom character LoRA
pipe.unet = PeftModel.from_pretrained(
    pipe.unet,
    "AnimeLoom/sakura-haruno",   # or AnimeLoom/denji, AnimeLoom/yuki-nagato
    subfolder="sdxl",
)
img = pipe(
    "1girl, sakura haruno, pink hair, cherry blossom forest, anime, masterpiece",
    num_inference_steps=28,
    guidance_scale=6.5,
    height=1024, width=1024,
).images[0]
img.save("out.png")
```

For the full text-to-video pipeline, see the
[AnimeLoom RunPod notebook](https://github.com/JoelJohnsonThomas/AnimeLoom/blob/main/notebooks/AnimeLoom_RunPod.ipynb).

---

## License

All character LoRAs in this org are released under
[OpenRAIL++](https://huggingface.co/spaces/CompVis/stable-diffusion-license),
inheriting from their base models (Animagine XL 3.1 / DreamShaper 8).
The AnimeLoom pipeline code on GitHub is apache-2.0 licensed.

---

## Contributing

Want to add a character? The training script is in
[`agents/character/trainer.py`](https://github.com/JoelJohnsonThomas/AnimeLoom/tree/main/agents/character).
Recommended dataset: 15-30 clean anime reference images of the character at
512 or 1024 resolution.

Issues, PRs, and new character requests: [GitHub Issues](https://github.com/JoelJohnsonThomas/AnimeLoom/issues).

---

## Links

- πŸ™ **GitHub**: [JoelJohnsonThomas/AnimeLoom](https://github.com/JoelJohnsonThomas/AnimeLoom)
- πŸ“¦ **Pipeline notebook**: [AnimeLoom_RunPod.ipynb](https://github.com/JoelJohnsonThomas/AnimeLoom/blob/main/notebooks/AnimeLoom_RunPod.ipynb)
- πŸ€— **All models**: [huggingface.co/AnimeLoom](https://huggingface.co/AnimeLoom)