Chitra (चित्र) means picture. Chitra Tiny is our first image model: a 212M-parameter English text-to-image model that turns a sentence into a 256×256 picture, in about three seconds on an Apple-silicon Mac.

It is a small research model — for learning how diffusion models behave, for experiments, and as a starting point for fine-tuning — and we have tried to be precise about what it can and cannot do.
What we built
- A diffusion transformer trained from scratch. 16 layers, width 768, 212M parameters, trained with rectified flow. No weights came from any other image model.
- Two existing open models, used unchanged: Google's Flan-T5-Base reads the prompt, and Stability AI's
sd-vae-ft-msedecoder turns the model's 32×32 latent into pixels. - About 4.7 million training images, all released by their creators into the public domain or under CC0, with automatically generated captions. We held out 5,000 images before training for evaluation.
Results
We measured the released weights three ways. The first two use held-out images of the kind Chitra Tiny was trained on, so they favour it; GenEval is neutral.
| Test | Chitra Tiny | Reference |
|---|---|---|
| FID, 5,000 held-out images (lower is better) | 22.1 | Not comparable to FID on other datasets |
| CLIP score, ViT-L/14 (higher is better) | 26.2 | Real held-out images score 27.5 |
| GenEval overall (higher is better) | 0.219 | Stable Diffusion 1.5 scores 0.426 |
GenEval breaks that score down by task, using the official code and 553 prompts with four images each:
| Task | Chitra Tiny | Stable Diffusion 1.5 |
|---|---|---|
| Single object | 0.60 | 0.96 |
| Colours | 0.39 | 0.77 |
| Counting | 0.15 | 0.38 |
| Two objects | 0.10 | 0.37 |
| Colour attribution | 0.07 | 0.05 |
| Position | 0.01 | 0.04 |
Our harness gave Stable Diffusion 1.5 0.426, against 0.43 published by the GenEval authors, so it reproduces the published setup.
Two findings stood out. First, how common an object is matters a great deal: single-object accuracy was 0.85 for the most common third of objects and 0.33 for the rarest. Second, rewriting prompts to look like training captions made scores worse, not better. Data coverage and model size, more than the sampler, set the score.
Where it fails
These were all saved on the first try, so they are what you should expect for subjects like these:


People are another weak spot: faces and hands come out distorted. Images are 256×256 only, prompts are English only, and the training images over-represent historic, Western and museum imagery.
Chitra Tiny has no safety filter of its own. If you put it in front of the public, add your own moderation, and do not use it to depict real people or news events.
Try it
The quickest way is the try box on the model page: type a prompt in your browser, free and without signing in. To run it yourself:
git clone https://github.com/UdgamLabs/chitra-tiny && cd chitra-tiny
pip install -r requirements.txt
python chitra_tiny.py "a lighthouse on a rocky coast at sunset" --n 4
The first run downloads the 0.85 GB weights plus the text encoder and decoder; no login is needed. It picks an NVIDIA
GPU, Apple silicon or CPU automatically — about three seconds per image on an Apple-silicon Mac, tens of seconds on a
CPU. Run python app.py for a local playground in your browser.
The weights are on Hugging Face, the evaluation notes have every number with its settings, and the walkthrough shows a gallery of saved outputs. Weights, code and docs are Apache-2.0.