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

16 Chitra Tiny samples at 256 px, guidance 7, seeds 0-15

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
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for udgamlabs/Chitra-Tiny

Quantizations
1 model

Spaces using udgamlabs/Chitra-Tiny 3