← all repositories
ajbrock/Neural-Photo-Editor

Paint with latent vectors: a 2016 GAN photo editor

A Tkinter GUI that lets you brush edits onto faces by manipulating a generative model's latent space, not pixels.

Neural-Photo-Editor
Not currently ranked — collecting fresh signals.
star history

What it does Neural Photo Editor is a Python/Tkinter interface for editing photos through a generative neural network. You load a face from the included CelebA subset, then paint directly on the image or on a latent-space canvas below it. The model—an Introspective Adversarial Network—re-renders the face to match your brush strokes. There’s also training and sampling code for the underlying IAN model.

The interesting bit The editor doesn’t manipulate pixels; it backpropagates your paint strokes into the latent vector and asks the generator to reconstruct. The “latent brush” slider controls how aggressively your edits perturb the compressed representation. It’s a tangible, if finicky, demonstration of how GAN latent spaces encode semantic face attributes.

Key highlights

  • Ships with a lightweight IAN_simple model that runs on ~1GB laptop GPUs (tested on a GT730M)
  • Supports VAE or ALI-based GAN models via a framework-agnostic plat interface
  • Includes training code for CelebA 64×64 with resumable checkpoints
  • Scroll-wheel lightening/darkening patches by biasing the latent vector toward white or black
  • Single-directory dump of code, admirably honest about its messiness

Caveats

  • Requires Python 2.7, Theano, and Lasagne—all effectively archived ecosystems in 2024
  • Non-cuDNN path only works for IAN_simple; other models need GPU acceleration
  • MADE layer has a rigid hidden-size constraint that throws BAD_PARAM errors
  • Author notes the directory structure is “unorganized” and cleanup was planned

Verdict Worth studying if you’re researching interactive generative interfaces or historical GAN architectures. Skip it if you want a working modern photo editor; the dependencies alone are a time capsule.

Frequently asked

What is ajbrock/Neural-Photo-Editor?
A Tkinter GUI that lets you brush edits onto faces by manipulating a generative model's latent space, not pixels.
Is Neural-Photo-Editor open source?
Yes — ajbrock/Neural-Photo-Editor is open source, released under the MIT license.
What language is Neural-Photo-Editor written in?
ajbrock/Neural-Photo-Editor is primarily written in Python.
How popular is Neural-Photo-Editor?
ajbrock/Neural-Photo-Editor has 2.1k stars on GitHub.
Where can I find Neural-Photo-Editor?
ajbrock/Neural-Photo-Editor is on GitHub at https://github.com/ajbrock/Neural-Photo-Editor.

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