// the find
junyanz/CycleGAN
Software that can generate photos from paintings, turn horses into zebras, perform style transfer, and more.
The original Torch/Lua implementation of CycleGAN, the 2017 ICCV paper that figured out how to do image-to-image translation without paired training data. If you want to turn horse photos into zebra photos without collecting matched pairs, this is where that idea came from. Historical significance aside, this is a research artifact, not a usable library.
The cycle-consistency loss idea is genuinely clever — training two generators simultaneously so A→B→A reconstruction enforces consistency without paired supervision. Comes with a decent model zoo covering style transfer, semantic segmentation, and map/satellite pairs, so you can verify it works before committing to training. The training configuration is simple environment variables rather than a config file maze. The failure cases section in the README is honest and saves you from wasting GPU time on domain pairs that won't work.
Written in Lua/Torch, which has been effectively dead since 2017 — Torch is no longer maintained and LuaRocks dependencies are a graveyard. The README itself tells you to use the PyTorch rewrite instead, so adopting this version is actively wrong. No Python, no pip install, no modern ML tooling integration. The Lua codebase is roughly 1000 lines with minimal abstraction, fine for reading but not for extending. GPU required — CPU mode is documented as untested and the codebase is from an era before MPS or reasonable CPU training times.