← all repositories
vanhuyz/CycleGAN-TensorFlow

TensorFlow 1.0 time capsule: CycleGAN before the hype

A straightforward 2017-era reimplementation of the unpaired image-to-image translation paper, frozen in amber.

1.2k stars Python Image · Video · Audio
CycleGAN-TensorFlow
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

What it does

Converts images between two domains—apples to oranges, horses to zebras—without needing paired training data. You download a dataset, stuff it into TFRecords, run train.py, and wait. The repo includes export and inference scripts to turn checkpoints into standalone .pb files for actual use.

The interesting bit

The author is admirably honest: the README is labeled “work in progress,” warns you to restart training if backgrounds invert, and admits you’ll need multiple runs to get anything good. That candor is rarer than the code itself. The TensorBoard screenshot of orange→apple training looking “funny” is a nice touch of realism in a field that usually fakes perfection.

Key highlights

  • Implements the full CycleGAN paper in TensorFlow 1.0.0 (yes, 1.0.0)
  • Supports LSGAN and standard GAN losses, instance or batch normalization
  • Includes image buffer (history replay) with configurable pool_size
  • Exports to frozen GraphDef for deployment; pretrained models available in releases
  • Resume training from timestamped checkpoints

Caveats

  • Stuck on TensorFlow 1.0.0 and Python 3.6.0; essentially archaeological at this point
  • README warns of instability: high-contrast inversions mean you restart and pray
  • No mention of training time, hardware requirements, or how many “several times” actually is

Verdict

Worth a look if you’re studying GAN history or need a clean, minimal reference implementation to port elsewhere. If you want to actually train something today, use PyTorch and the official repo.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.