Chitra Tiny
A 212M-parameter English text-to-image model trained from scratch by UdgamLabs. It makes 256×256 images from a text prompt and runs comfortably on a laptop: about 3 seconds per image on an Apple-silicon Mac, faster on a GPU.
Chitra (चित्र) means "picture".
More: visual walkthrough · code, examples and evaluation on GitHub · evaluation details

One image per prompt, seeds 0–15, guidance 7, 50 steps. Prompts, left to right and top to bottom: a red apple on a wooden table · a lighthouse on a rocky coast at sunset · a black and white photo of a city street · an oil painting of a vase of flowers · a dog sitting in the grass · a sailing ship on a calm sea · a portrait of an old man with a beard · a mountain landscape with snow and pine trees · two cats sleeping on a sofa · a bowl of soup next to a spoon · a red car parked in front of a house · a watercolor painting of a bird on a branch · a church with a tall tower · a bridge over a river in autumn · a plate with a slice of cake · a woman holding an umbrella in the rain.
| Developer | UdgamLabs |
| Parameters | 212M (diffusion transformer: 16 layers, width 768) |
| Output | 256×256 RGB |
| Method | latent rectified-flow diffusion, classifier-free guidance |
| Text encoder | google/flan-t5-base (frozen, Apache-2.0) |
| Image decoder | stabilityai/sd-vae-ft-mse (frozen, MIT) |
| Training | from scratch, on about 4.7 million public-domain and CC0-licensed images with automatically generated captions |
| Licence | Apache-2.0 |
Quick start
pip install torch transformers diffusers safetensors huggingface_hub pillow
git clone https://huggingface.co/UdgamLabs/Chitra-Tiny && cd Chitra-Tiny
python chitra_tiny.py "a lighthouse on a rocky coast at sunset" --n 4 # writes chitra_0.png ... chitra_3.png
from chitra_tiny import ChitraTiny
pipe = ChitraTiny.from_pretrained("UdgamLabs/Chitra-Tiny") # or the local folder
images = pipe("an oil painting of a vase of flowers", n=4, guidance=7, steps=50, seed=0)
images[0].save("flowers.png")
A local web playground is included: pip install gradio, run python app.py, then open http://127.0.0.1:7860.
Settings:
- Guidance (default 7): higher follows the prompt more literally; 3–5 gives more variety.
- Steps (default 50): 25 is about twice as fast with a small loss in detail.
- Seed: changes the picture.
- Negative prompt: optional, things to avoid.
What it is good at, and what it is not
Chitra Tiny is a small research model. It is good at:
- photographs and old photographs
- paintings and illustrations
- landscapes, buildings, vehicles, food and simple single subjects
It is weak at:
- less common everyday objects (for example frisbees, toasters, carrots)
- several objects in one picture, counting and positions ("a cup left of a laptop")
- people, especially faces and hands
- writing legible text in images
The output is 256×256, so fine detail is limited.
Evaluation
All numbers below were measured by us, with the same seeds and settings for every model in each comparison.
| Test | Chitra Tiny | Notes |
|---|---|---|
| FID, 5,000 held-out images (lower is better) | 22.1 | Guidance 4, 50 steps. Held-out images come from the same kind of public-domain and CC0 photos it was trained on |
| CLIP score, ViT-L/14 (higher is better) | 26.2 | Real held-out images with their own captions score 27.5 |
| GenEval overall (higher is better) | 0.190 at guidance 4 · 0.219 at guidance 7 | 553 prompts × 4 images. Stable Diffusion 1.5 scored 0.426 in our same harness |
GenEval breakdown at guidance 7:
| Single object | Two objects | Counting | Colours | Position | Colour attribution |
|---|---|---|---|---|---|
| 0.60 | 0.10 | 0.15 | 0.39 | 0.01 | 0.07 |
GenEval asks for the 80 everyday object types of the COCO dataset. Chitra Tiny scores 0.85 on single objects that are common in its training images, but only 0.33 on rare ones. The gap to larger models comes mostly from data coverage and model size.
Intended use and limitations
Intended use: research, education, experimentation with small diffusion models, and as a starting point for fine-tuning.
Not suitable for:
- depicting real people
- news or factual imagery
- any use where errors or biases could cause harm
Not safety-filtered:
- Training images come from curated public-domain and CC0 collections.
- The model has no safety filter of its own.
- Add your own content moderation for any public-facing use.
Training images and captions reflect their sources, which over-represent historic, Western and museum imagery. Expect these biases in its outputs.
Licence and attribution
- Weights and code: Apache-2.0.
- Dependencies: Chitra Tiny downloads and uses google/flan-t5-base (Apache-2.0) and stabilityai/sd-vae-ft-mse (MIT).
- Training data: the training images were released by their creators into the public domain or under CC0.
Citation
@misc{chitratiny2026,
title = {Chitra Tiny: a 212M text-to-image model trained from scratch},
author = {UdgamLabs},
year = {2026},
url = {https://huggingface.co/UdgamLabs/Chitra-Tiny}
}
- Downloads last month
- 6