See people who don't exist, through the eyes of an AI.

This AI lets you generate faces that have never been seen before. None of these people exist. Manipulate the settings to see how this AI thinks about the human face. For really wacky results, pump up the distortion.


Use these settings to manipulate the image and see how the AI generates new faces. Change the seed to see completely new faces, and up the distortion to see the AI forget what faces look like.

All-layer Settings

These values apply to layers that are not explicitly overriden. You can override layers in the section below.

Per-layer Settings

You can override specific layers in this section. By doing this you can "freeze" certain features while you play around with the rest. Try overriding the first three layers and then play around with the all-layers settings!

Load the model.

Click on "Load" below to download and initialize the AI model.

Click 'Load' to load the model.

What's a seed?

"Seed" refers to the random input used to generate the face; it generally has no semantic meaning but is used to make the image different.

What's a layer?

You can think of a "layer" as a part of the AI responsible for generating a specific feature of the face, with lower-number layers corresponding to more general features. For example, Layer 0 might be responsible for determining the age while Layer 13 might be responsible for the accent lighting.

Here's the nerd stuff.

This is a demo of a face generation system using a generative adversarial network (referred to as a GAN). The GAN used here is StyleGAN2, developed by NVIDIA. The model was ported to the browser using ONNX, the Open Neural Network Exchange. Everything here runs locally on your browser.

Check me out!

I built this demo almost entirely live. Check out my Twitch channel. If you want to see more stuff that I build, feel free to follow me on Twitter.

Questions, concerns, or found a bug?

Please out to me on Twitter or email me!