This rental does not exist.

It never did. It was imagined by a machine; having looked at millions of pictures of bedrooms, millions of pictures of people, and hundreds of thousands of Airbnb listings, it was able to create this result.

None of the pictures, nor the text, came directly from the real world. The listing titles, the descriptions, the picture of the host, even the pictures of the rooms: They are all fevered dreams of computers.

It may be that we all need to think a little harder going forward before deciding something is real.

How Does This Work?

All of the dynamic content on each listing is generated via a series of different machine-learned AI models.

The images are produced from StyleGAN. (StyleGAN is “A Style-Based Generator Architecture for Generative Adversarial Networks”, by Tero Karras (NVIDIA), Samuli Laine (NVIDIA), Timo Aila (NVIDIA).) These images were produced by the pre-trained models produced by NVidia – the profile pictures from their ffhq dataset, and the rooms from their bedrooms dataset. (The StyleGAN code and models are distributed under the “CC-By-NC 4.0” license, and no changes were made to any StyleGAN code in the making of this site.)

The text is produced from a language model trained on Airbnb listings. The data was downloaded from OpenDataSoft’s Airbnb Listings. The language models were produced using a model based heavily on Tensorflow’s “Predict Shakespeare with Cloud TPUs” example; the only modification was to adjust the sequence size somewhat depending on the text. For titles, only listings with 3 or more bedrooms were included; for descriptions, all listings were included.

Outputs from each of these models are pre-produced, and a new listing is created every 5 seconds.

Why Did you Do This?

I was inspired by This Person Does Not Exist (created by Phillip Wang), an extremely simple site using the same StyleGAN models to try to make clear the state of the art in neural network produced content.

When I saw this, I had no idea what went into such a thing, and I wanted to see if I could come up with something similar.

Partially I did it because I wanted to see if it would work. Was it possible for someone with with no real experience with neural networks, and no access to their own fancy computing resources, generate a plausible-seeming imaginary listing for a vacation rental? Thanks to the excellent work of folks like Phillip, creator of This Person Does Not Exist, I was able to understand how to build my own images out of the existing StyleGAN models. (In particular, my starting point was his Colab notebook.) Training Shakespeare was similarly straightforward.

This means that just about anyone with a couple hours to kill could create something just as compelling as I did. While there are parts of the experience that are weak, overall, I think that it works: the listings are often dubious, but typically plausible enough that they would survive a quick glance.

This is something that people should know about the state of the art of neural networks and AI: that they’re now sufficiently advanced that they can often fool folks, especially if they’re not looking very hard.

Have Others Done This?

This effort is one of a number recently created based on StyleGAN. For other examples, check out the Does Not Exist GitHub Repo.

Can I Do This Too?

Absolutely. All of the data for this site was originally developed using Google’s Colab – an interactive web-based Python interpreter which gives access to Google’s powerful TPUs and GPUs for training machine learning models in the cloud. There’s no setup, no agreements, and no cost. I used these tools to generate hundreds of thousands of images over the course of a few days while learning how to use the StyleGAN models.

The text models are simple language models; training the models took about 15 minutes using the Colab example on training models using TPUs.

I will be writing a series of articles over the next couple weeks walking through the process of recreating a site like this. If you are interested in hearing about new articles as they become available, please subscribe to my weekly newsletter or my gadget blog.

Who Are You?

I’m Christopher Schmidt, @crschmidt on Twitter, and also Chris Plays Games in many contexts. I’m a software engineer by day, but this project is done completely separate from my work; my opinions are my own and not those of my employer.