The reason is pretty practical—I wanted to give every project in my portfolio a unified cover style, but didn’t want to buy stock images or paid tools, so I just set up my own text-to-image generator. I picked the Schnell variant for both teaching and practical reasons: it’s distilled, generates images in just a few steps, and is way lighter than the versions chasing top-tier quality.
On a mid-range machine, the difference between a 3-second output and a 1-minute output decides whether it’s actually usable for demos. To keep the style consistent, I preset a few templates—basically wrapping a prompt template around the user’s plain description, adding modifiers for composition, color scheme, and final output vibe.
A simple prompt gets fleshed out into something decent. On the tech side, the model runs on the HuggingFace ecosystem, FastAPI handles the interface, Pillow does post-processing for direct PNG downloads, and the frontend is hooked into Laravel. When I break down for students why distillation is faster, this is a perfect live example.