This A.I. creates infinite NFTs
#nft #gan #ai

Today we build our own AI that can create as many bored apes as we want! Fungibility for everyone!

Try the model here: https://huggingface.co/spaces/ykilcher/apes
or here: https://ykilcher.com/apes
Files & Models here: https://huggingface.co/ykilcher/apes/tree/main
Code here: https://github.com/yk/apes-public (for the "what's your ape" app, look for the file interface_projector.py)

This video is sponsored by BrightData, use this link for free credits:
https://brightdata.grsm.io/yannickilcher

OUTLINE:
0:00 - Introduction
2:05 - Generative Adversarial Networks
3:40 - Scraping Opensea with BrightData
7:55 - Training the GAN
11:35 - Here are the results!
15:20 - Diving deeper into BrightData

References:
Stylegan 3 imagery: https://nvlabs.github.io/stylegan3/
Bored Ape Yacht Club NFT Collection: https://opensea.io/collection/boredapeyachtclub
Better GANFT model: https://medium.com/@nathancooperjones/these-bored-apes-do-not-exist-6bed2c73f02c
Abstract AI-created apes: https://opensea.io/collection/gan-apes-nft
https://mobile.twitter.com/gannft
Another good model: https://twitter.com/cyrilzakka/status/1463944040878071811
StyleGAN2 versions: https://thispersondoesnotexist.com/
https://thissneakerdoesnotexist.com/
https://thischairdoesnotexist.com/
GANs: https://en.wikipedia.org/wiki/Generative_adversarial_network
https://arxiv.org/pdf/1406.2661.pdf
StyleGAN3: https://nvlabs.github.io/stylegan3/
StyleGAN2 code: https://github.com/NVlabs/stylegan2-ada-pytorch
CLIP: https://openai.com/blog/clip/
DALL-E 2 images: https://twitter.com/search?q=%23dalle&f=image
My music video: https://www.youtube.com/watch?v=2iq7WXSw26s
BrightData Links: https://brightdata.com/products/data-collector
https://brightdata.com/testimonials
https://brightdata.com/use-cases/adtech
https://brightdata.com/use-cases/social-media-for-marketing
https://brightdata.com/use-cases/ecommerce

Links:
Merch: https://ykilcher.com/merch
TabNine Code Completion (Referral): http://bit.ly/tabnine-yannick
YouTube: https://www.youtube.com/c/yannickilcher
Twitter: https://twitter.com/ykilcher
Discord: https://ykilcher.com/discord
BitChute: https://www.bitchute.com/channel/yannic-kilcher
LinkedIn: https://www.linkedin.com/in/ykilcher
BiliBili: https://space.bilibili.com/2017636191

If you want to support me, the best thing to do is to share out the content :)

If you want to support me financially (completely optional and voluntary, but a lot of people have asked for this), find options at https://ykilcher.com
 This ape does not exist. Neither does this one, this one, this, this, this or this. In fact, I've created all of them using an AI that I trained myself. And today I'm going to show you how it's done and what other cool things you can do with this. Hi there, my name is Yannick. Welcome to the channel. Today I'm going to walk you through how I built the GANFTAI and how you can use it. It's all available online. So you know, if you want, go check it out. This video is sponsored by Bright Data. Use my link to sign up to them and get $25 in free credits, and they'll match your first deposit up to 250. Thanks Bright Data for sponsoring this video. I'll tell you more about them in just a second. NFTs have obviously been super popular and these bored apes are the pinnacle of it. And you know what power we have with our AI. We are going to be rich, we're going to give you an ape and then another ape and another one. Like if these are apes will be like you get an ape and you get an ape and you get an ape and ape, apes just all the way. Funge, funge, everything's fungible. Now, needless to say, once it's done, we're gonna be ending up with a model and I'll just put it out there. You can go to the model every time you click Submit, you'll get a new instance of some creation of that model. It's not perfect, but it's pretty good. But given that this is an AI model, we can actually do more than just generate new ape. For example, take a look at this ape that was generated by my model and this ape that was generated by my model. What we can do is we can look at what the model thinks are all the in between apes between the two. This is generally called an interpolation. It's pretty cool to explore what the model learns and how it sees the world. Now needless to say, I'm not the first person that does this nor is my model the best model that I've been people who have investigated this much more and have put more work into it. And I'm not going to be able to mention all of them right here. But Nathan Cooper Jones has a very cool medium article on his investigations on the board ape collection and GANs and so has serial sucker on Twitter. So the technique we're going to use today to make our AI is called a generative adversarial network, a GAN, which is the same methodology that powers websites like this person does not exist.com, where every time you refresh, you get a new artificially generated face. But there's more there is this sneaker does not exist.com this chair does not exist.com and pretty much anything you can think of. So GANs generative adversarial networks were first invented in Well, let's not talk about that right now. They were first mentioned in a 2014 paper by Ian Goodfellow and collaborators called generative adversarial nets. And oh boy, in recent years, they have made progress. So these were from the original paper, you can see you can barely make out a face, it's okay at generating digits, but anything else is way out of scope. And they're just a couple of years later, as you can see right here, these things have gone insane. The pictures they produce are almost impeccable. They're very versatile. And they're at the forefront of computer generated imagery. Very briefly, a GAN consists of two neural networks, one called the generator and one called the discriminator. And while the generator tries to produce these fake images, the discriminator tries to differentiate those fake images from real images from a data set. Now, as the discriminator gets better at discerning what is real and what is fake, the generator in turn gets better at fooling the discriminator. And therefore both neural networks get better and better and better. And at the end, the generator is really good, as you can see right here. So the first thing we're going to need is data. In fact, what we're going to do is we're going to go to open sea and we're going to collect the board apes Yacht Club of that website. The board apes Yacht Club is a NFT collection on open sea, it consists of 10,000 of these apes, each one of the ape comes with its own attributes and properties, as you can see, they are procedurally generated, but only certain combinations exist and certain attributes are much more rare than others. Now they do have an API, but I don't trust APIs, I want to get the data directly from the website. And that's what we're going to use Bright Data for Bright Data offers scalable, robust collection of public web data as a service. This is really, really cool and can save you a lot of troubles. They really have everything you need in order to collect data. For example, they maintain a vast network of proxies all over the world and from any kind of device. So you're really not limited and what you can collect, though at the heart of their service is definitely the data collection engine. They have various levels of difficulties of how you can interact with them naturally, since I'm a nerd, I'm going to go for the programming layer, which is the lowest layer, but it's also the most fun layer. So here's my scraper for open seas board a yacht club. So let me show you what I did. So the code on top here simply says that I want to use a proxy in the US and I want to go to the board a yacht club website, then I want to wait until the navigation action has completed. So essentially, I've arrived at the website. Now it turns out that open sea is actually one of the more difficult websites to scrape because it's very, very dynamic. Like watch what happens when I reload the page, the page already loads, but then the items load individually. Moreover, if I scroll down, you can see that constantly new apes are being added instead of these placeholders. This is called an infinite scroll, even though I guess it's not infinite. But it means that you can't just load the website once and you have all the apes available, you need to do so in a stepwise fashion. So yes, it's going to be a bit more tricky than just loading up the website and scraping the content. But hey, that's what we're here for nothing that a little bit of Cody Cody magic can solve. So we've got to instruct our scraper that it waits for you know, just a bit more after it has arrived at the website. Now the code you're seeing here is mostly JavaScript, but bright data has introduced a bunch of utility functions like this navigate thing up here, or the weight function here, which we're going to use right now, they're going to wait for the grid to initially become available, which means that the first set of apes has been loaded, we're then going to call the parse function right here. And the parse function is one of the main functions of data collection, essentially, it goes to the website and collect some data from it as it is, you can see down here what we are selecting. And if your CSS foo is good, you'll realize that we're going for this counter here, this counter tells us how many total apes there are. And why is that important for scraping? Well, you see, if you open a bunch of them, you can see that the different URLs here all have an ending that is different, but then a prefix that is the same. So my suspicion was that they're probably numbered from zero to 999999. And we could just iterate through all of them in order to get them. And yes, I was right. So all we have to do then is loop from one to whatever that number of total grid cells is and call the next stage, every bright data scraper is divided into stages. And you could probably already guess that the second stage deals with collecting an individual ape. Now that's a lot easier than before. All we do is we navigate to the URL, we wait for the summary to be ready, we wait for the history panel to be ready. And then we call parse. Now, as you can see, we are collecting quite a bit more data than before. So I do not only want the image of the ape, I also want its attributes. And I want the price of when it was last sold, which I'm going to get from this table right here. See, whenever it says sale, that's when the ape was sold 78 ether to Gary V. All right, well, you do you. And while we're not going to use the attributes are priced today, it is valuable data for our future endeavors. Alright, so once I have my scraper, all I gotta do is go to the scraper, say initiate, and off it goes, starting and collecting. Now that we have the data, the next thing we need is some code. And I could write it myself. However, I'm not in the mood to do so. So I'm going to go over to Nvidia and get the official implementation for stylegan to add up, which already has excellent code available on GitHub. Not only do they have code, they have a very thorough readme that describes how you can use their code, how you train your own stuff. So after converting the images using their data set tool, essentially, it's just a matter of calling train dot pi. I know I wish machine learning was more interesting. But this is it. So off went my first training run, you can see that the loss of the discriminator starts up high, goes down low, and then starts rising again, I don't know, is that good? Is that bad? While the generators loss starts low goes high, and then drops down. Well, GAN training is one of these things where the metrics are a bit like tea leaf reading. And there's not too much indication that you can go by of whether your model does something well or not. One of the metrics that is sometimes useful is the F ID. And as you can see right here, the F ID of my model quickly dropped down, which is good, low F ID is good, but then quickly went up again after only a few hundred steps. So that concerned me. And then I looked at the output data. So the code base will actually sample every couple of hundred steps, a new batch of images, so that you can see what progress your model makes. At the very beginning, it's just noisy gibberish, as you can see right here. But very quickly, it gets the idea of what it should do approximately, this already looks quite promising. But then as it went on, you can see that what is this? Why is everything turned to the side? Now to this day, I don't really know why this is turned to the side. I suspect it's part of the data augmentation that sometimes turns images to the side, although I haven't looked that that's the case. So clearly, this was a failure and a collapse. I had to start again, I tweaked the hyper parameters a little bit, and then a second run went much, much better. Yeah, this is the last step. And it got like a bit different, but in a weird way. So off I go. What starting again, so the second run, I changed some hyper parameters around, I did some tweaky, tweaky, Cody, Cody, you know, like us machine learners do, and very quickly, that model became better, you can see already that the diversity is higher from the beginning. And after only a few steps, we got something really neat going, you can see it still makes a lot of mistakes. There are a lot of artifacts in here. However, it's clearly going into the correct direction. In fact, remember that FID metric that I've showed you before? Well, the orange line here is the one of the new model. So you can see as the blue one gets worse, again, the orange one just continues to drop. This is really good, really nice. It goes down, it goes towards zero down further and further. Now, I have no comparison because there's not a lot of academic effort into producing board apes. I have no clue how good nine is. But I like the shape of the graph and that's important. So as you can see by step 9000 or so the model was getting pretty decent, and I was hopeful, but I just wanted to see what happens when I let it train for longer. And in hindsight, I shouldn't I mean, check out when I zoom out. Ouch. But you know, this is normal, every GAN will collapse at some point. And in fact, the checkpoints that I've put online for my project, which you can also download are definitely from the regions where it hasn't collapsed yet. Now I've done a few more runs where I managed to get it training for even longer before it collapsed, such as the green or the red one right here. But all of these things will give quite satisfying results. So I was happy. So what are the results? This is a hugging face space, I've uploaded my model there. And you can go to it, you can click on the button. And every time you click, you get a new produced ape. This ape is produced in this instance, the same ape has never been produced before and will never be produced after. So this is fully yours. And it's absolutely fungible. I'm not going to mean these things as NFTs or anything like this, just download it, you can definitely produce more than one image. For example, if you set it to three, it will give you a grid of three images. And if you click the interpolate checkmark, it will do the generate two images and then generate everything in between. You see, very funny. Now because this is not the full experience of fungibility. I've also made a little website. So this is why culture.com slash apes. If you go to this, there's nothing different. Every time you refresh, you get a new ape. In fact, it calls the same API. However, if you click download right here, oh, well, you're just going to have to try it for yourself. And here's another fun thing that you can do with this. This is a little application that I call what's your eight. And what you can do is you can go here, you can input a little image of whatever you want right here doesn't have to be me, but you know, it better be me and it will generate the ape that corresponds to your picture the most that this is really fun. I've only put 250 steps, I'd usually put 1000 steps, then the quality is a bit higher, it doesn't always work, you sometimes have to retry. But if you do retry, you get different apes. And it's quite fun, you get a little video of how the AI searches through the latent space in order to match your picture. The technology behind this that I had to add is open AI clip model clip is trained on text image pairs and therefore understands what's inside an image much better than for example, a classic image net trained resonant by using clip and back propagating into the game, I'm able to search the latent space of again in order for a picture that is as similar as possible in the eyes of the clip model to the picture that I input, what my app does is it tries to match how clip sees the image you have input and how clip sees the image that is output from the game. I've used a very similar technique to generate my music video. So go check that out for a more in depth explanation. And the same technique has powered a lot of recent AI art, for example, Dolly to buy open AI, if you search on Twitter for the hashtag Dolly, you can get some amazing outputs of this model that only doesn't use again, but it also uses clip as a central part of its architecture. Now due to this being quite heavy in compute, I cannot exactly put this on hogging face space, I'll just take too long, you actually need a local GPU and some time 1000 step take roughly two minutes or so. But if you can give it a try. Again, it doesn't always work. But it's fun when it does. And here are some more cool results that I got with it. Alright, this was it for today's video. Thank you so much for being here. Let me know if you like project report kind of style videos like this. I've put all the code and checkpoints and whatever online I've put links to everything I mentioned in the description. Please go check it out. Thank you so much again to Bright Data for sponsoring this video. It's really cool to have them on board in a second. I'm just going to show you a couple more things you can do with them just in case you're interested. They have a really established infrastructure for collecting public data and the possibilities of what you can do with it are almost endless. People use this for example, to verify that the ads that they make online really reach their target audience by scraping from the perspective of their target audience. This is a really cool idea. I would have never thought of this. Another example is you can go out there to e commerce websites, collect pricing data, aggregate this from all over the web and either let this influence your pricing or offer your customers a better deal. I mean, so many things are possible with cool web scraping technology. And if you can do this at scale regularly and automatically, that is mighty, mighty powerful. Now I've given a shot at collecting some other data by myself. I'm going to show you that now. So stay tuned. And I wish you the best. Again, many thanks to today's sponsor, Bright Data. Now let me show you a little bit what more you can do with their platform. I've gone by far the most difficult and the most cumbersome route to use their platform in the project today, it is usually much easier, which you're going to see right now. So if I go to their platform, and I go to collectors, I add a new collector and there are all kinds of collectors already predefined, all the big social media companies, all the e commerce companies, Amazon and eBay, all the hotel pages, and everything already has predefined collectors for you. So many of the things that you would possibly want to scrape will already have a scraper defined, all you need to go is enter a few details and off you go. For example, here I can scrape myself a data set of Instagram posts that have the hashtag AI art. Now people upload these pictures whenever they make some art with AI and they want to show it to the world. And I just want to download it all. So with Bright Data, super easy, I simply go to the collector that's made for scraping hashtag on Instagram, I enter AI art, I say how many posts I want off I go, I get a neat JSON file at the end with everything that I'd want to know about these posts. Or here, what if I have some new business idea like Airbnb for campsites, I might want to research a lot about which campsites are in which area, how expensive are they, how occupied are they and so on. So I might want to regularly scrape all of the campgrounds around certain regions, no problem. In fact, Bright Data has a scraper for you already prepared for that to simply select the scraper, enter the locations you'd like to know about and off you go. You can set these scrapers to run manually or on a schedule and then export the data to wherever you want into your cloud, they can send it to you as an email, you can download them yourself, whatever you like. So not only do they have predefined scrapers, they've actually let their scrapers run on a lot of public facing websites and scraped all public data from those. For example, you can see there are a lot of data sets available. One of them is this LinkedIn company data set. So this is a registry of over 50 million companies and all the publicly available data that's on LinkedIn. Now, whether you're a recruiter or looking for a new job or looking to sell something to businesses, this data is really valuable. Now, this is only a small set of features that Bright Data offers, they just make collecting data from the internet a whole lot easier. So thanks again so much to Bright Data for sponsoring this video. Please check them out. There's a link in the description. I'm very sure you'll be pleasantly surprised. With that, I'll see you around. Bye bye.
 This ape does not exist. Neither does this one, this one, this, this, this or this. In fact,
 I've created all of them using an AI that I trained myself. And today I'm going to show you
 how it's done and what other cool things you can do with this. Hi there, my name is Yannick. Welcome
 to the channel. Today I'm going to walk you through how I built the GANFTAI and how you can use it.
 It's all available online. So you know, if you want, go check it out.
 This video is sponsored by Bright Data. Use my link to sign up to them and get $25 in free credits,
 and they'll match your first deposit up to 250. Thanks Bright Data for sponsoring this video.
 I'll tell you more about them in just a second. NFTs have obviously been super popular and these
 bored apes are the pinnacle of it. And you know what power we have with our AI. We are going to
 be rich, we're going to give you an ape and then another ape and another one. Like if these are
 apes will be like you get an ape and you get an ape and you get an ape and ape, apes just all the
 way. Funge, funge, everything's fungible. Now, needless to say, once it's done, we're gonna be
 ending up with a model and I'll just put it out there. You can go to the model every time you
 click Submit, you'll get a new instance of some creation of that model. It's not perfect, but it's
 pretty good. But given that this is an AI model, we can actually do more than just generate new
 ape. For example, take a look at this ape that was generated by my model and this ape that was
 generated by my model. What we can do is we can look at what the model thinks are all the in between
 apes between the two. This is generally called an interpolation. It's pretty cool to explore what
 the model learns and how it sees the world. Now needless to say, I'm not the first person that
 does this nor is my model the best model that I've been people who have investigated this
 much more and have put more work into it. And I'm not going to be able to mention all of them
 right here. But Nathan Cooper Jones has a very cool medium article on his investigations on the
 board ape collection and GANs and so has serial sucker on Twitter. So the technique we're going
 to use today to make our AI is called a generative adversarial network, a GAN, which is the same
 methodology that powers websites like this person does not exist.com, where every time you refresh,
 you get a new artificially generated face. But there's more there is this sneaker does not exist.com
 this chair does not exist.com and pretty much anything you can think of. So GANs generative
 adversarial networks were first invented in Well, let's not talk about that right now.
 They were first mentioned in a 2014 paper by Ian Goodfellow and collaborators called generative
 adversarial nets. And oh boy, in recent years, they have made progress. So these were from the
 original paper, you can see you can barely make out a face, it's okay at generating digits, but
 anything else is way out of scope. And they're just a couple of years later, as you can see right here,
 these things have gone insane. The pictures they produce are almost impeccable. They're very
 versatile. And they're at the forefront of computer generated imagery. Very briefly, a GAN consists
 of two neural networks, one called the generator and one called the discriminator. And while the
 generator tries to produce these fake images, the discriminator tries to differentiate those fake
 images from real images from a data set. Now, as the discriminator gets better at discerning what
 is real and what is fake, the generator in turn gets better at fooling the discriminator. And
 therefore both neural networks get better and better and better. And at the end, the generator
 is really good, as you can see right here. So the first thing we're going to need is data. In fact,
 what we're going to do is we're going to go to open sea and we're going to collect the board
 apes Yacht Club of that website. The board apes Yacht Club is a NFT collection on open sea,
 it consists of 10,000 of these apes, each one of the ape comes with its own attributes and properties,
 as you can see, they are procedurally generated, but only certain combinations exist and certain
 attributes are much more rare than others. Now they do have an API, but I don't trust APIs,
 I want to get the data directly from the website. And that's what we're going to use Bright Data for
 Bright Data offers scalable, robust collection of public web data as a service. This is really,
 really cool and can save you a lot of troubles. They really have everything you need in order
 to collect data. For example, they maintain a vast network of proxies all over the world and from
 any kind of device. So you're really not limited and what you can collect, though at the heart of
 their service is definitely the data collection engine. They have various levels of difficulties
 of how you can interact with them naturally, since I'm a nerd, I'm going to go for the programming
 layer, which is the lowest layer, but it's also the most fun layer. So here's my scraper for open
 seas board a yacht club. So let me show you what I did. So the code on top here simply says that I
 want to use a proxy in the US and I want to go to the board a yacht club website, then I want to wait
 until the navigation action has completed. So essentially, I've arrived at the website. Now it
 turns out that open sea is actually one of the more difficult websites to scrape because it's very,
 very dynamic. Like watch what happens when I reload the page, the page already loads, but then the
 items load individually. Moreover, if I scroll down, you can see that constantly new apes are
 being added instead of these placeholders. This is called an infinite scroll, even though I guess
 it's not infinite. But it means that you can't just load the website once and you have all the
 apes available, you need to do so in a stepwise fashion. So yes, it's going to be a bit more
 tricky than just loading up the website and scraping the content. But hey, that's what we're
 here for nothing that a little bit of Cody Cody magic can solve. So we've got to instruct our scraper
 that it waits for you know, just a bit more after it has arrived at the website. Now the code you're
 seeing here is mostly JavaScript, but bright data has introduced a bunch of utility functions like
 this navigate thing up here, or the weight function here, which we're going to use right now,
 they're going to wait for the grid to initially become available, which means that the first set
 of apes has been loaded, we're then going to call the parse function right here. And the parse function
 is one of the main functions of data collection, essentially, it goes to the website and collect
 some data from it as it is, you can see down here what we are selecting. And if your CSS foo is good,
 you'll realize that we're going for this counter here, this counter tells us how many total apes
 there are. And why is that important for scraping? Well, you see, if you open a bunch of them,
 you can see that the different URLs here all have an ending that is different, but then a prefix that
 is the same. So my suspicion was that they're probably numbered from zero to 999999. And we
 could just iterate through all of them in order to get them. And yes, I was right. So all we have to
 do then is loop from one to whatever that number of total grid cells is and call the next stage,
 every bright data scraper is divided into stages. And you could probably already guess that the
 second stage deals with collecting an individual ape. Now that's a lot easier than before. All we
 do is we navigate to the URL, we wait for the summary to be ready, we wait for the history
 panel to be ready. And then we call parse. Now, as you can see, we are collecting quite a bit more
 data than before. So I do not only want the image of the ape, I also want its attributes. And I want
 the price of when it was last sold, which I'm going to get from this table right here. See,
 whenever it says sale, that's when the ape was sold 78 ether to Gary V. All right, well, you do
 you. And while we're not going to use the attributes are priced today, it is valuable data for our
 future endeavors. Alright, so once I have my scraper, all I gotta do is go to the scraper,
 say initiate, and off it goes, starting and collecting. Now that we have the data, the next
 thing we need is some code. And I could write it myself. However, I'm not in the mood to do so. So
 I'm going to go over to Nvidia and get the official implementation for stylegan to add up,
 which already has excellent code available on GitHub. Not only do they have code, they have
 a very thorough readme that describes how you can use their code, how you train your own stuff. So
 after converting the images using their data set tool, essentially, it's just a matter of calling
 train dot pi. I know I wish machine learning was more interesting. But this is it. So off went my
 first training run, you can see that the loss of the discriminator starts up high, goes down low,
 and then starts rising again, I don't know, is that good? Is that bad? While the generators loss
 starts low goes high, and then drops down. Well, GAN training is one of these things where the
 metrics are a bit like tea leaf reading. And there's not too much indication that you can go by of
 whether your model does something well or not. One of the metrics that is sometimes useful is
 the F ID. And as you can see right here, the F ID of my model quickly dropped down, which is good,
 low F ID is good, but then quickly went up again after only a few hundred steps. So that concerned
 me. And then I looked at the output data. So the code base will actually sample every couple of
 hundred steps, a new batch of images, so that you can see what progress your model makes. At the very
 beginning, it's just noisy gibberish, as you can see right here. But very quickly, it gets the idea
 of what it should do approximately, this already looks quite promising. But then as it went on,
 you can see that what is this? Why is everything turned to the side? Now to this day, I don't
 really know why this is turned to the side. I suspect it's part of the data augmentation
 that sometimes turns images to the side, although I haven't looked that that's the case. So clearly,
 this was a failure and a collapse. I had to start again, I tweaked the hyper parameters a little bit,
 and then a second run went much, much better. Yeah, this is the last step. And it got like a bit
 different, but in a weird way. So off I go. What starting again, so the second run, I changed some
 hyper parameters around, I did some tweaky, tweaky, Cody, Cody, you know, like us machine learners do,
 and very quickly, that model became better, you can see already that the diversity is higher from
 the beginning. And after only a few steps, we got something really neat going, you can see it still
 makes a lot of mistakes. There are a lot of artifacts in here. However, it's clearly going
 into the correct direction. In fact, remember that FID metric that I've showed you before? Well,
 the orange line here is the one of the new model. So you can see as the blue one gets worse, again,
 the orange one just continues to drop. This is really good, really nice. It goes down, it goes
 towards zero down further and further. Now, I have no comparison because there's not a lot of academic
 effort into producing board apes. I have no clue how good nine is. But I like the shape of the graph
 and that's important. So as you can see by step 9000 or so the model was getting pretty decent,
 and I was hopeful, but I just wanted to see what happens when I let it train for longer.
 And in hindsight, I shouldn't I mean, check out when I zoom out. Ouch. But you know, this is normal,
 every GAN will collapse at some point. And in fact, the checkpoints that I've put online for
 my project, which you can also download are definitely from the regions where it hasn't
 collapsed yet. Now I've done a few more runs where I managed to get it training for even longer
 before it collapsed, such as the green or the red one right here. But all of these things will give
 quite satisfying results. So I was happy. So what are the results? This is a hugging face space,
 I've uploaded my model there. And you can go to it, you can click on the button. And every time
 you click, you get a new produced ape. This ape is produced in this instance, the same ape has never
 been produced before and will never be produced after. So this is fully yours. And it's absolutely
 fungible. I'm not going to mean these things as NFTs or anything like this, just download it,
 you can definitely produce more than one image. For example, if you set it to three, it will give
 you a grid of three images. And if you click the interpolate checkmark, it will do the generate two
 images and then generate everything in between. You see, very funny. Now because this is not the
 full experience of fungibility. I've also made a little website. So this is why culture.com slash
 apes. If you go to this, there's nothing different. Every time you refresh, you get a new ape. In fact,
 it calls the same API. However, if you click download right here, oh, well, you're just going
 to have to try it for yourself. And here's another fun thing that you can do with this. This is a
 little application that I call what's your eight. And what you can do is you can go here,
 you can input a little image of whatever you want right here doesn't have to be me, but you know,
 it better be me and it will generate the ape that corresponds to your picture the most that this is
 really fun. I've only put 250 steps, I'd usually put 1000 steps, then the quality is a bit higher,
 it doesn't always work, you sometimes have to retry. But if you do retry, you get different
 apes. And it's quite fun, you get a little video of how the AI searches through the latent space
 in order to match your picture. The technology behind this that I had to add is open AI clip
 model clip is trained on text image pairs and therefore understands what's inside an image much
 better than for example, a classic image net trained resonant by using clip and back propagating
 into the game, I'm able to search the latent space of again in order for a picture that is as similar
 as possible in the eyes of the clip model to the picture that I input, what my app does is it tries
 to match how clip sees the image you have input and how clip sees the image that is output from
 the game. I've used a very similar technique to generate my music video. So go check that out for
 a more in depth explanation. And the same technique has powered a lot of recent AI art, for example,
 Dolly to buy open AI, if you search on Twitter for the hashtag Dolly, you can get some amazing
 outputs of this model that only doesn't use again, but it also uses clip as a central part of its
 architecture. Now due to this being quite heavy in compute, I cannot exactly put this on hogging
 face space, I'll just take too long, you actually need a local GPU and some time 1000 step take
 roughly two minutes or so. But if you can give it a try. Again, it doesn't always work. But it's fun
 when it does. And here are some more cool results that I got with it.
 Alright, this was it for today's video. Thank you so much for being here. Let me know if you
 like project report kind of style videos like this. I've put all the code and checkpoints and
 whatever online I've put links to everything I mentioned in the description. Please go check
 it out. Thank you so much again to Bright Data for sponsoring this video. It's really cool to
 have them on board in a second. I'm just going to show you a couple more things you can do with them
 just in case you're interested. They have a really established infrastructure for collecting public
 data and the possibilities of what you can do with it are almost endless. People use this for example,
 to verify that the ads that they make online really reach their target audience by scraping
 from the perspective of their target audience. This is a really cool idea. I would have never
 thought of this. Another example is you can go out there to e commerce websites, collect pricing data,
 aggregate this from all over the web and either let this influence your pricing or offer your
 customers a better deal. I mean, so many things are possible with cool web scraping technology.
 And if you can do this at scale regularly and automatically, that is mighty, mighty powerful.
 Now I've given a shot at collecting some other data by myself. I'm going to show you that now.
 So stay tuned. And I wish you the best. Again, many thanks to today's sponsor, Bright Data. Now
 let me show you a little bit what more you can do with their platform. I've gone by far the most
 difficult and the most cumbersome route to use their platform in the project today, it is usually
 much easier, which you're going to see right now. So if I go to their platform, and I go to collectors,
 I add a new collector and there are all kinds of collectors already predefined, all the big
 social media companies, all the e commerce companies, Amazon and eBay, all the hotel pages,
 and everything already has predefined collectors for you. So many of the things that you would
 possibly want to scrape will already have a scraper defined, all you need to go is enter a
 few details and off you go. For example, here I can scrape myself a data set of Instagram posts
 that have the hashtag AI art. Now people upload these pictures whenever they make some art with AI
 and they want to show it to the world. And I just want to download it all. So with Bright Data,
 super easy, I simply go to the collector that's made for scraping hashtag on Instagram, I enter
 AI art, I say how many posts I want off I go, I get a neat JSON file at the end with everything
 that I'd want to know about these posts. Or here, what if I have some new business idea like
 Airbnb for campsites, I might want to research a lot about which campsites are in which area,
 how expensive are they, how occupied are they and so on. So I might want to regularly scrape
 all of the campgrounds around certain regions, no problem. In fact, Bright Data has a scraper for
 you already prepared for that to simply select the scraper, enter the locations you'd like to
 know about and off you go. You can set these scrapers to run manually or on a schedule and
 then export the data to wherever you want into your cloud, they can send it to you as an email,
 you can download them yourself, whatever you like. So not only do they have predefined scrapers,
 they've actually let their scrapers run on a lot of public facing websites and scraped all public
 data from those. For example, you can see there are a lot of data sets available. One of them is
 this LinkedIn company data set. So this is a registry of over 50 million companies and all
 the publicly available data that's on LinkedIn. Now, whether you're a recruiter or looking for
 a new job or looking to sell something to businesses, this data is really valuable.
 Now, this is only a small set of features that Bright Data offers, they just make collecting data
 from the internet a whole lot easier. So thanks again so much to Bright Data for sponsoring this
 video. Please check them out. There's a link in the description. I'm very sure you'll be
 pleasantly surprised. With that, I'll see you around. Bye bye.