finds.dev← search

// the find

junyanz/iGAN

★ 4,005 · Python · MIT · updated Aug 2020

Interactive Image Generation via Generative Adversarial Networks

iGAN is a 2016 ECCV research demo that lets you sketch rough color/shape strokes and have a DCGAN project them onto the image manifold in real time, producing photo-realistic outputs. It's a working proof-of-concept for constrained latent-space optimization, not a production tool. The target audience is researchers wanting to study or demo early interactive GAN ideas.

The core idea — projecting user constraints onto the GAN latent manifold via gradient descent — is well-implemented and clearly separated into constrained_opt.py vs the Theano-specific variant. The UI is surprisingly complete for an academic project: three brush types, multi-mode candidate display, interpolation slider, and a headless script mode for batch use without Qt. The image-to-latent projection pipeline (opt / cnn / cnn_opt hybrid) is a nice addition that most contemporaneous GAN repos skipped. Pre-trained models for four distinct domains ship with the repo, so you can actually run it without your own training data.

Requires Python 2, Theano (dead since 2017), PyQt4 (dropped from most distros), and a CUDA 7.5 / cuDNN 5 stack — getting this running on any modern machine is a multi-day archaeology project. Output resolution is locked at 64×64; that was acceptable for 2016 but makes the results look like artifacts today. No PyTorch port exists in this repo (the author's later CycleGAN/pix2pix repos do, but iGAN was never ported). The constrained optimization is slow enough that 'real-time' depends heavily on your GPU — on anything less than a Titan X equivalent, latency will break the interactive feel.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →