Teaching neural networks to stop coloring everything brown
A hands-on tutorial repo that builds image colorization from a 100-line baseline up to a GAN, with the author openly admitting most outputs are still pretty bad.

What it does
This repo contains four progressively complex Jupyter notebooks that colorize grayscale images using Keras/TensorFlow. It starts with a minimal “Alpha” version that learns on a single image, adds batch training in “Beta,” incorporates a pre-trained classifier in the “Full” version to nudge the network away from its default “safest color, brown,” and finally an experimental GAN version borrowing from pix2pixHD and DeOldify.
The interesting bit
The author is unusually candid: displayed results are cherry-picked, most outputs are “mostly black and white or lightly colored in brown,” and narrow datasets work better than diverse ones. That honesty makes it a genuinely useful teaching tool — you see why colorization is hard, not just that it exists.
Key highlights
- Four staged notebooks (Alpha → Beta → Full → GAN) with increasing complexity
- Full version uses classifier features (nature/human/sky/building percentages) to guide color choices
- GAN version implements multi-scale discriminators, spectral/instance normalization, and multi-GPU support
- Includes dataset scraping scripts for Yahoo 100M images and Pixabay
- Pre-trained weights available for the GAN version; trained on contemporary photography, “not a lot of people”
- Accompanying Medium tutorial claims a 100-line starting point
Caveats
- GAN version has known memory problems and the author suggests falling back to the original Keras generator
- Multi-GPU implementation is inefficient: models are copied to each GPU rather than distributed strategically
- 128×128 training converges “a magnitude faster” than 256×256, so higher-res results require patience
- FloydHub integration button is present but the platform itself is defunct (noted without editorializing)
Verdict
Good for developers who want to understand colorization mechanics from the ground up, or who need a sandbox to experiment with GAN architectures. Skip it if you need production-ready results today — the author literally points you to Palette API for that.