3-4x fewer tokens than OmniLottie (CVPR 2026) for generating Lottie animations. Now with character animation support.
AnimTOON
OmniLottie
Tokens (simple)
166
616
Tokens (complex)
597
4095
VRAM
5GB
15.2GB
FPS
30
8
Model Size
3B LoRA
4B full
Custom Tokenizer
No
Yes (40k tokens)
Accepts SVG
Yes
No
What is AnimTOON?
AnimTOON is a compact, plain-text animation format that any LLM can generate. Instead of outputting 18,000+ tokens of raw Lottie JSON, AnimTOON describes animations in ~166-597 tokens of human-readable text.
anim fr=30 dur=120
layer Logo shape
fill #000000
path sh x2
pos [0.5,0.5]
rot 0.0->-67 0.04->46 0.14->-31 0.28->0 ease=bounce
scale 0.0->[0,0] 0.14->[90,90] 0.28->[100,100] ease=smooth
opacity 0.0->0 0.14->100 ease=fade
This produces a complete animated .lottie file with bounce entrance, rotation wobble, and fade-in.
How to Use
python
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
34tokenizer = AutoTokenizer.from_pretrained("srk0102200/AnimTOON-3B")5model = AutoModelForCausalLM.from_pretrained(6"srk0102200/AnimTOON-3B",7 dtype=torch.float16,8 device_map="cuda"9)1011prompt ="a red circle pulsing in the center with a smooth bounce"12messages =[{"role":"user","content":f"Generate AnimTOON animation: {prompt}"}]13text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)14inputs = tokenizer(text, return_tensors="pt").to("cuda")1516with torch.no_grad():17 out = model.generate(**inputs, max_new_tokens=512, temperature=0.7, do_sample=True)18result = tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)19print(result)
1from lottie import parsers # pip install lottie23# Convert SVG to Lottie (perfect paths)4anim = parsers.svg.parse_svg_file("your_logo.svg")5lottie_dict = anim.to_dict()67# Generate AnimTOON animations with the model8# Apply animations to the Lottie layers9# Output: .lottie file with real SVG shapes + AI animations