Post
639
🦁 I built a math app for my daughters — and they already love it.
NumZoo is a mental math trainer for kids. Answer questions, earn cute AI-generated animal rewards. My girls picked their favorite animals, chose a magical place, and haven't stopped playing since.
▶️ Watch the demo:
https://www.loom.com/share/c565cba49f2c4ad1bfb428e38ff4b629
🎮 Try it:
build-small-hackathon/numzoo
Stack:
- 🎨 FLUX.2-klein-4B — 4B params, Apache 2.0, 4 inference steps
- 🖼️ Custom kawaii style LoRA (trained on FLUX.2-klein-base-4B)
- ⚡ ZeroGPU · Gradio · Diffusers
The LoRA: locking in a kawaii storybook style
Out of the box, FLUX.2-klein is unpredictable — same prompt, wildly different styles. Not great when you want every reward to feel cozy and on-brand for a 6-year-old.
So I fine-tuned a style LoRA: 54 hand-curated scenes (12 animals × 10 places), captioned with a NUMZOO. trigger and no style words — the model learns the look from the images alone. Rank 32, 1500 steps, trained on a Modal A100 in ~45 min.
Published here: goumsss/numzoo-flux2-klein-lora
Two performance tricks that made it feel instant:
- Pre-generation: image generation starts in the background the moment the quiz begins. By the time a reward is earned (3 correct answers), the image is already ready. Zero wait.
- Cold-start fix: from_pretrained runs at module scope on CPU, outside the ZeroGPU budget. Inside @GPU we only do .to("cuda") — shaves the cold-start from potential timeout to ~1s.
Built for the 🤗 Build Small Hackathon. Small model, real joy. 🐾
NumZoo is a mental math trainer for kids. Answer questions, earn cute AI-generated animal rewards. My girls picked their favorite animals, chose a magical place, and haven't stopped playing since.
▶️ Watch the demo:
https://www.loom.com/share/c565cba49f2c4ad1bfb428e38ff4b629
🎮 Try it:
build-small-hackathon/numzoo
Stack:
- 🎨 FLUX.2-klein-4B — 4B params, Apache 2.0, 4 inference steps
- 🖼️ Custom kawaii style LoRA (trained on FLUX.2-klein-base-4B)
- ⚡ ZeroGPU · Gradio · Diffusers
The LoRA: locking in a kawaii storybook style
Out of the box, FLUX.2-klein is unpredictable — same prompt, wildly different styles. Not great when you want every reward to feel cozy and on-brand for a 6-year-old.
So I fine-tuned a style LoRA: 54 hand-curated scenes (12 animals × 10 places), captioned with a NUMZOO. trigger and no style words — the model learns the look from the images alone. Rank 32, 1500 steps, trained on a Modal A100 in ~45 min.
Published here: goumsss/numzoo-flux2-klein-lora
Two performance tricks that made it feel instant:
- Pre-generation: image generation starts in the background the moment the quiz begins. By the time a reward is earned (3 correct answers), the image is already ready. Zero wait.
- Cold-start fix: from_pretrained runs at module scope on CPU, outside the ZeroGPU budget. Inside @GPU we only do .to("cuda") — shaves the cold-start from potential timeout to ~1s.
Built for the 🤗 Build Small Hackathon. Small model, real joy. 🐾