Public release · 12 October 2026 Saved images, not cherry-picked. Measured results. Known limitations.

Chitra Tiny / Trained from scratch

A picture from a sentence.
Small enough for a laptop.

A 212M-parameter English text-to-image model. Type a prompt and it paints a 256×256 picture in about three seconds on an Apple-silicon Mac. Chitra (चित्र) means “picture”.

Open weights under Apache-2.0. 0.85 GB.
Trained on about 4.7 million public-domain and CC0 images.

One prompt, one pictureSaved output

“a lighthouse on a rocky coast at sunset”

Made by the model
Chitra Tiny output: a lighthouse on dark rocks against a purple and yellow sunset sky
seed 0 · guidance 7 · 50 steps · 256×256

One small model.
Best at:

02 / How it works

From noise
to a picture,
in 50 steps.

  1. 1

    Read the prompt.

    A text encoder turns the words into 77 vectors that capture their meaning. It is Google’s open Flan-T5-Base, used unchanged.

  2. 2

    Start from noise.

    The picture begins as random numbers in a small compressed space. The seed picks which random numbers, so a new seed gives a new picture.

  3. 3

    Remove the noise, step by step.

    The Chitra Tiny transformer, the part we trained from scratch, predicts how to move from noise towards a picture that fits the text, and takes 50 small steps. Guidance compares its prediction with and without the prompt and pushes further towards the prompt.

  4. 4

    Turn it into pixels.

    An open image decoder (Stability AI’s sd-vae-ft-mse, used unchanged) expands the result into a 256×256 picture.

Try the guidance dial

Same prompt, same seed, different guidance: “a cottage in a snowy forest”.

“a cottage in a snowy forest”, seed 0, guidance 7

The default. It scored best on GenEval: the subject is clear and the scene is clean.

Change the seed

Same prompt, same guidance, a different starting noise: “an old stone church in a green valley”.

“an old stone church in a green valley”, seed 0, guidance 7

Each seed is a different, equally valid picture of the same prompt.

03 / The evidence

Convincing scenes.
Weak at composition.

22.1FID · lower is better

On 5,000 held-out images of the kind it was trained on. It measures how realistic and varied the pictures are. Not comparable to FID on other datasets.

26.2CLIP score · higher is better

How well each picture matches its caption. Real held-out photos with their own captions score 27.5.

0.219GenEval · higher is better

A strict test of specific everyday objects, counts, colours and positions. Stable Diffusion 1.5 scores 0.426 in our same harness.

Where it does well

Photographs, paintings, landscapes, buildings, vehicles and food: the kinds of picture that fill public-domain collections. Its pictures match their captions nearly as well as real photos do.

Where it is behind

GenEval’s everyday objects. On single objects it scores 0.85 for the most common third of them in its training captions, but 0.33 for the rarest third. Two objects, counting and positions are weak.

Is the comparison fair?

Stable Diffusion 1.5 has about four times the parameters and was trained on far more images. GenEval is neutral to both. FID and CLIP use held-out images like Chitra Tiny’s own training data, so they favour it.

GenEval, task by task
  • TaskChitra Tiny (guidance 7)Stable Diffusion 1.5
  • Single object0.600.96
  • Colours0.390.77
  • Counting0.150.38
  • Two objects0.100.37
  • Colour attribution0.070.05
  • Position0.010.04
  • Overall0.2190.426

Official GenEval code and prompts, 553 prompts × 4 images, 50 steps. Our harness gave Stable Diffusion 1.5 0.426, against 0.43 published by the GenEval authors. At guidance 4, Chitra Tiny scores 0.190.

Full evaluation and method

04 / Know the limits

Five things it
gets wrong.

Seed 0, guidance 7, first try, as in the gallery. These are typical of its weaknesses.

05 / Run it

Your prompt.
Your laptop.

Clone the repository, install six Python packages and run one command. The weights download from Hugging Face on first use, with no login.

Runs on an NVIDIA GPU, Apple silicon or a CPU. Defaults: guidance 7, 50 steps. Use 25 steps to halve the time.

Shell / Python
git clone https://github.com/UdgamLabs/chitra-tiny
cd chitra-tiny && pip install -r requirements.txt
python chitra_tiny.py "a castle on a hill" --n 4

# or from Python
from chitra_tiny import ChitraTiny
pipe = ChitraTiny.from_pretrained("UdgamLabs/Chitra-Tiny")
pipe("a bridge in autumn", n=4, seed=0)[0].save("bridge.png")

# local web playground: python app.py

Illustrative usage, taken from the repository README. This page does not execute the code.

Before you use it

A few honest answers.

What does “trained from scratch” mean here?

The diffusion transformer, the part that makes the picture, started from random numbers and learned only from our training images. No weights came from any other image model. It works with two existing open models, used unchanged: Google’s Flan-T5-Base to read the prompt and Stability AI’s sd-vae-ft-mse to turn the result into pixels.

What was it trained on?

About 4.7 million images that their creators released into the public domain or under CC0, each with an automatically generated caption. That is why it is good at photos, art, landscapes and buildings, and weaker at modern everyday objects.

How does it compare with big image models?

It is far behind today’s large models, and about half of Stable Diffusion 1.5 on GenEval. It is a small research model: useful for learning, experiments, fine-tuning and running fully offline on modest hardware.

Will it run on my computer?

Yes. The weights are 0.85 GB. On an Apple-silicon Mac it takes about 3 seconds per image; a recent NVIDIA GPU is faster; a CPU takes tens of seconds.

Is it safe to put in front of the public?

Not on its own. It has no safety filter. The training images come from curated public-domain collections, but add your own moderation for any public-facing use.

Can I use it commercially?

The weights, code and documentation are Apache-2.0, and its two helper models are Apache-2.0 and MIT. Check that its quality and limitations fit your use.

Why is there no online demo?

It is quick to run locally: python app.py opens a web playground on your own machine.

Weights, code and the evaluation

Take a closer look.

Weights and the model card are on Hugging Face. Code, examples, evaluation details and checksums are on GitHub.