Download README.md from Mohit5899/bhaav-e: direct link, hf CLI and curl.
- Browser
- Download file 7.09 kB
-
https://huggingface.co/Mohit5899/bhaav-e/resolve/main/README.md
- Command line
-
hf download hf://Mohit5899/bhaav-e/README.md
-
curl -L -o README.md https://huggingface.co/Mohit5899/bhaav-e/resolve/main/README.md
license: mit
language:
- en
library_name: pytorch
pipeline_tag: text-to-video
tags:
- text-to-video
- video-generation
- diffusion-transformer
- rectified-flow
- stickers
- animation
Uncurated samples (seed 0, 50 steps, guidance 3.0): the first and only sample generated for each prompt.
Model Details
Bhaav-E generates 2-second looping stickers from a text prompt. It is a 211.92M-parameter video diffusion transformer trained from scratch with rectified flow, operating in the latent space of the frozen Wan2.2 video VAE and conditioned on a frozen Flan-T5-Base text encoder.
- Developed by: Mohit
- Model type: latent video diffusion transformer (rectified flow)
- Output: 17 frames, 256 × 256, 8 fps, looping
- Language: English prompts
- License: MIT (frozen components: Apache-2.0)
- Code: github.com/Mohit-5899/bhaav-e
| Component | Specification |
|---|---|
| Denoiser (trained) | 16 transformer blocks, width 768, 12 heads, 2 × 2 patches (320 tokens) |
| Text encoder (frozen) | google/flan-t5-base, max 35 tokens |
| Autoencoder (frozen) | Wan2.2 VAE, 48 latent channels |
| Sampler | 50 Euler steps, classifier-free guidance 3.0, time shift 5.0 |
Files
| File | Description |
|---|---|
bhaav_e.safetensors |
Bhaav-E (recommended): EMA weights, step 40,000, fp32 |
config.json |
model size and sampler defaults |
text/info.json, latents/vae_config.json |
text-encoder settings and VAE latent statistics used at inference |
r1/ |
baseline checkpoint trained on the natural attribute distribution, same format |
code/ |
model definition (videodit.py) and sampler (sample.py) |
Uses
Intended use: generating short animated stickers, reaction emoji and UI micro-animations, and research on small video diffusion models, compositional generalization and evaluation with procedurally generated data.
Out of scope: subjects outside the training vocabulary, photorealistic video, high resolution or long clips.
How to Use
No installation: open the Colab notebook,
select Runtime → Run all, and open the gradio.live link it prints. This runs the full web demo on a free GPU.
Python (CPU or GPU):
git clone https://github.com/Mohit-5899/bhaav-e && cd bhaav-e
pip install torch diffusers transformers sentencepiece safetensors pillow numpy huggingface_hub
import sys; sys.path.insert(0, "space")
from bhaav import Bhaav, save_gif
pipe = Bhaav() # downloads this checkpoint, the VAE and the text encoder
frames = pipe.generate("a crying emoji bouncing, tears falling, light blue background",
steps=50, cfg=3.0, seed=0)
save_gif(frames, "sticker.gif")
Prompt format: subject, motion, effect, background. The model supports 30 subjects (10 emotion faces, 10 animated emoji, 10 UI animations), 9 motions, 12 effects and 12 background colours; the full list is in the GitHub README.
Training
| Data | 85,816 procedurally rendered clips; 61,571 used for training, with effects balanced per subject |
| Objective | rectified flow, MSE on predicted velocity |
| Optimizer | Muon (lr 0.02) for transformer weight matrices, AdamW (lr 2e-4) for other parameters |
| Batch size × steps | 64 × 40,000 |
| Precision | bf16 autocast |
| Compute | 1 × NVIDIA RTX PRO 4500 (32 GB), ≈ 3.6 hours |
Evaluation
256 prompts with attribute combinations seen in training and 256 with combinations held out from training. Automatic checkers read subject, motion, effect, background and accent from each generated clip; errors are counted only where the checker reads the corresponding real clip correctly.
| Model | Seen combinations | Unseen combinations |
|---|---|---|
| Bhaav-E | 2.0% | 3.3% |
| Bhaav-E r1 (baseline) | 2.0% | 5.3% |
Error rate on any attribute, guidance 3.0. The dominant failure mode is effect leakage: adding the effect most associated with a subject when none is requested. The unseen difference between the models is not statistically significant (exact sign test, p = 0.23; one training seed each). Full report: runs/r2/RESULTS.md.
Limitations
- Closed vocabulary: only the 30 trained subjects, 12 effects and 12 backgrounds.
- 256 × 256 resolution and 2-second duration.
- Unrequested effects are occasionally added.
- Evaluated with one seed per model and about 250 prompts per split.
Citation
@misc{bhaave2026,
title = {Bhaav-E: A Compact Text-to-Video Model for Animated Stickers},
author = {Mohit},
year = {2026},
howpublished = {\url{https://github.com/Mohit-5899/bhaav-e}}
}
Acknowledgements
Built on Wan2.2, Flan-T5 and Microsoft Fluent Emoji (MIT, training artwork).
Special thanks to Udgam Labs for openly publishing the code, training logs and cost reports of their small models; their published recipe and model size served as the reference for this work.







