Downloads ยท 30 days
29
1% of all-time downloads
bench-labs/pixelmodel-v1
pixelmodel-v1 is a text-to-image model from bench-labs. Use it when you need an image from a text prompt. The card lists the license as mit.
<table align="center" <tr <td align="center"
Downloads ยท 30 days
29
1% of all-time downloads
All-time downloads
4.2K
Public
Parameters
23.7K
96 KB on disk
Likes
10
Public
Click a slice to open those files.
.png158 KB ยท 53%
From the Hugging Face model README
<a href="https://huggingface.co/spaces/bench-labs/BenchLabs-Leaderboard">๐ BenchLabs Leaderboard</a> โข <a href="https://huggingface.co/spaces/FlameF0X/Tiny-T2I-Leaderboard">๐ Tiny-T2I Leaderboard</a> โข <a href="https://huggingface.co/spaces/bench-labs/blog?post=pixelmodel-v1.html">๐ Blog Post</a>
</td> </tr> </table>A neural network where the weights are the image. Now the model is a thumbnail.
model.png is not a picture โ it is the model.
Every pixel encodes neural network weights. At inference, the PNG is decoded into weight matrices, the prompt is hashed into an embedding, and a coordinate-conditioned decoder paints an image โ at any resolution.
v0 was a 202,752-parameter MLP welded to 32ร32 output, trained on 6 color swatches. v1 is 8.5ร smaller (23,747 parameters), renders at any resolution (native 64ร64), and is trained on ~20K real MS-COCO caption/image pairs.
The model generates 600 images (cpu) in 5 (five) seconds. Thats 5000 images in 24 seconds on cpu. The model trained on cpu for just 30 minutes.
| v0 | v1 | |
|---|---|---|
| Parameters | 202,752 | 23,747 |
model.png | 64ร3200 px | 160ร149 px (a thumbnail) |
| Output head | 1 weight row per pixel (196K params, 97% of model) | CPPN decoder on (x, y) โ resolution-free |
| Resolution | fixed 32ร32 | any; native 64ร64 |
| Prompt embedding | char-sum (order-blind, collision-heavy) | hashed trigrams + words (FNV-1a), still 0 params |
| Biases | none | yes |
| Weight precision | 8-bit (G channel wasted) | 16-bit (R=high byte, G=low byte) |
| Training data | 6 solid-color swatches | ~20K MS-COCO caption/image pairs |
Each pixel stores one weight at 16-bit precision, mapped from [-2, 2]:
Round-trip quantization error โ 3ร10โปโต per weight.
prompt string
โ hashed char-trigram + word embedding (64-dim, deterministic, 0 params)
โ T1 (80ร64)+b โ tanh
โ T2 (64ร80)+b โ tanh = latent z (64)
for every pixel (x, y):
concat(z, fourier features of (x, y)) โ 18 coord dims, freqs 1/2/4/8
โ D1 (80ร82)+b โ tanh
โ D2 (80ร80)+b โ tanh
โ D3 (3ร80)+b โ sigmoid = RGB
Because pixels are decoded from coordinates, parameter count is independent of
resolution โ --res 256 works with the same 23,747 weights.
All weights live inside model.png (160ร149 px).
model.png is the canonical model โ training writes to it directly. For
tooling that expects standard weight files, the same 10 tensors are exported as
model.safetensors (23,747 parameters total):
python convert_to_safetensors.py # model.png -> model.safetensors
Parameter count is verifiable without running code: config.json
(total_parameters: 23747, full per-layer breakdown) and the safetensors
header metadata (total_parameters, param_breakdown, has_bias,
text_encoder_parameters: 0, vae_parameters: 0).
Measured per the Tiny-T2I-Leaderboard protocol โ see eval.md for full method and EVAL_REPRODUCTION.md to re-run:
| Metric | v0 | v1 | Tooling |
|---|---|---|---|
| FID โ | 566.84 (n=40) | 439.46 (n=5000) | torchmetrics.image.fid.FrechetInceptionDistance |
| CLIP Score โ | 18.60 (n=40) | 20.02 (n=5000) | torchmetrics.multimodal.CLIPScore, openai/clip-vit-base-patch32 |
| Native resolution | 32ร32 | 64ร64 |
Real set: MS-COCO val2014 pairs from sayakpaul/coco-30-val-2014 (256ร256
center-crop). Training images are hash-checked to be disjoint from the eval
images.
Expectation management: a 23K-parameter model does not draw recognizable objects. It learns caption-conditioned color, layout, and texture statistics of COCO photos โ the outputs are blurry impressions, not pictures. The point is the size:quality ratio and the PNG-as-model gimmick, executed honestly.
<img src="pixelmodel-v1-probe.png" alt="Target photos vs model outputs: the model produces caption-conditioned color washes" style="width: 100%; max-width: 640px;"># training data (COCO subset)
python fetch_coco_subset.py --out ../pm-work
# train (writes model.png every epoch)
python train.py --data ../pm-work/coco_train.npz --epochs 50
# inference from model.png (canonical)
python main.py "a red double decker bus" --out bus.png
# inference from model.safetensors (standalone, needs only this one file + torch)
python convert_to_safetensors.py
python INFERENCE.py "a red double decker bus" --out bus.png
# any resolution from the same 23,747 weights
python main.py "a beach with palm trees" --res 256 --scale 1
# benchmark eval
python eval/run_eval.py --work ../pm-work --model model.png --n 5000
main.py and INFERENCE.py produce identical output for the same prompt and
resolution.
model.png โ THE MODEL (160ร149 px)
model.safetensors โ same weights, standard format + param metadata
config.json โ architecture + parameter-count metadata
main.py โ inference, loads model.png
INFERENCE.py โ inference, loads model.safetensors (standalone)
convert_to_safetensors.py โ model.png -> model.safetensors
train.py โ training
model.py โ architecture + PNG weight codec
fetch_coco_subset.py โ builds train/eval data from COCO
eval/run_eval.py โ FID + CLIP Score via torchmetrics
eval.md โ benchmark results + method
EVAL_REPRODUCTION.md โ step-by-step reproduction guide
Still a toy. Slightly less useless. The model is literally a thumbnail.
Bench Labs ยท Simple, Reliable, Open sourced