Lucy

Lucy is OpenCerebral's image family: diffusion models pretrained from scratch at 128×128, with no fine-tuning of an existing checkpoint and no pretrained transformer initialization. Two models are published — an unconditional face model and a text-to-image diffusion transformer.

ModelTypeParamsLicenseReleased
Lucy Unconditional DDPM, faces71.4MApache 2.02026.08.09
Lucy-2 Text-to-image diffusion transformer112.5MResearch only2026.08.12

Lucy — unconditional faces

A 71.4M-parameter UNet2DModel DDPM that generates 128×128 RGB faces, trained from scratch on CelebA-faces-cropped-128 for 60,000 steps in 9.54 hours. The released weights are the EMA weights. There is no prompt and no class label — the only control over the output is the seed.

Lucy
ArchitectureUNet2DModel, epsilon-prediction
Block channels128, 128, 256, 256, 512
AttentionOne self-attention stage at 16×16, plus the mid block
ScheduleLinear beta, 1e-4 to 0.02, T = 1000
OptimizerAdamW, lr 1e-4, 500-step warmup, EMA decay 0.9999
Precisionfp16 AMP with GradScaler, TF32 matmul

Attention sits at exactly one resolution on purpose. At 128×128 a full-resolution attention map is what exhausts a 12 GB card, and a single mid-depth stage recovers most of the global coherence — face symmetry, consistent lighting — for very little of the cost. The repository ships the training script, the launch command, the complete 60k-step log, and an EMA preview grid rendered every 3,000 steps from a fixed seed, so the whole run can be watched resolving from noise.

Lucy-2 — text to image

A 112.5M-parameter DiT trained with rectified flow. The transformer starts from random init; only the VAE (stabilityai/sd-vae-ft-mse) and the CLIP text encoder (openai/clip-vit-large-patch14) are off-the-shelf, and both are frozen throughout. About 44 GPU-hours in total.

StageDataTime
PretrainCC3M, 3.02M pairs, 2.86 epochs, 8.6M samples20h
FinetuneWatermark-filtered subset4h
FinetuneWatermark-tagged pool (4% marked) + 10% CelebA face crops12h

Pass the negative prompt. It is not optional: watermark, text overlay, with cfg_scale 4.5 and 50 steps. CC3M is largely stock photography, so the model learned to draw caption bars; training tagged those captions so the sampler can steer away from the concept. Without it you get watermarks and noticeably worse faces, because watermarked stock imagery correlates with the waxy portraits in the dataset.

The face crops are the other lesson. In a full scene a face occupies maybe 5×5 of a 16×16 latent, but a portrait crop that fills the frame gets the whole budget. Mixing them in fixed faces within 2,500 steps after they had failed for the entire pretrain.

What works and what does not

Lucy-2 handles scenes, composition, colour, material, and lighting — landscapes, interiors, food, vehicles, single animals, close-up portraits. It fails on multi-subject prompts ("two cats sitting on a sofa" produces hybrid creatures, and counting is unreliable — this never improved at any stage), relational clauses ("strawberries next to a glass of milk" drops the milk), structured objects with thin geometry such as bicycle spokes, text rendering, and proper nouns, which CC3M hypernymises into "person" or "actor" before training ever sees them.

Licensing

Lucy is Apache 2.0. Lucy-2 is not. CelebA is licensed for non-commercial research use only, and those images were used in training, so Lucy-2 is released for research use only — it is the one OpenCerebral model that is not permissively licensed, and the constraint comes from the training data rather than from us. CC3M images are likewise not owned by the dataset authors and carry their own terms. See Licenses.

Limitations

Lucy-2 is roughly 2 H100-hours equivalent of compute against the ~150,000 A100-hours behind Stable Diffusion. Calibrate accordingly. The training data is web-scraped and unfiltered beyond the watermark heuristic, and carries the biases of that corpus, including in which people and scenes it represents well; the CelebA mixture skews the portrait distribution toward that dataset's demographics. No safety filtering of any kind was applied to outputs.