---
license: mit
language:
- en
library_name: pytorch
pipeline_tag: text-to-video
tags:
- text-to-video
- video-generation
- diffusion-transformer
- rectified-flow
- stickers
- animation
---
# Bhaav-E
**A compact text-to-video model for animated stickers**
[](https://huggingface.co/spaces/Mohit5899/bhaav-e)
[](https://github.com/Mohit-5899/bhaav-e)
[](https://colab.research.google.com/github/Mohit-5899/bhaav-e/blob/main/bhaav_e_demo.ipynb)
[](https://github.com/Mohit-5899/bhaav-e/blob/main/LICENSE)
| | | | |
|:---:|:---:|:---:|:---:|
|  |  |  |  |
| *a crying emoji bouncing, tears falling, light blue background* | *a red furious emoji pulsing, steam puffing from its head, dark navy background* | *a blue success checkmark drawing itself inside a circle, confetti bursting out, white background* | *a party popper emoji pulsing, sparkles twinkling around it, light grey background* |
|  |  |  |  |
| *a cool emoji with sunglasses floating gently, sparkles twinkling around it, peach background* | *a glowing star emoji wobbling side to side, sparkles twinkling around it, dark navy background* | *a purple loading spinner spinning round and round, pulsing, black background* | *a screaming in shock emoji wobbling side to side, peach background* |
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](https://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](https://huggingface.co/google/flan-t5-base), max 35 tokens |
| Autoencoder (frozen) | [Wan2.2 VAE](https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B-Diffusers), 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](https://colab.research.google.com/github/Mohit-5899/bhaav-e/blob/main/bhaav_e_demo.ipynb),
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):
```bash
git clone https://github.com/Mohit-5899/bhaav-e && cd bhaav-e
pip install torch diffusers transformers sentencepiece safetensors pillow numpy huggingface_hub
```
```python
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](https://github.com/Mohit-5899/bhaav-e#prompt-format).
## 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](https://github.com/Mohit-5899/bhaav-e/blob/main/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
```bibtex
@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](https://github.com/Wan-Video/Wan2.2), [Flan-T5](https://huggingface.co/google/flan-t5-base) and
[Microsoft Fluent Emoji](https://github.com/microsoft/fluentui-emoji) (MIT, training artwork).
Special thanks to [Udgam Labs](https://udgamlabs.com) 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.