Zelf creatief met kunstmatige intelligentie
Na een wat schoorvoetend begin maakt kunstmatige intelligentie (AI) de laatste jaren grote sprongen, zowel in het bewerken van bestaand beeld als in het creëren van nieuw materiaal. In dit artikel inventariseren we de stand van zaken en gaan we zelf met wat tools aan de slag.
Wanneer we opgroeien, zijn er twee vaardigheden die we vrijwel automatisch aanleren: het interpreteren van de wereld die we zien om ons heen en het kunnen benoemen ervan. Het is dan ook niet verwonderlijk dat begrijpend kijken en taalbeheersing al decennialang tot de belangrijkste speerpunten behoren bij de ontwikkeling van AI.
Zo’n tien jaar geleden drong deze vorm van AI voorzichtig binnen in het dagelijks leven via apps die gesproken instructies konden begrijpen, teksten konden vertalen en in realtime kunstjes konden uithalen met je gezicht tijdens een videogesprek.
De laatste jaren is de kwaliteit van AI voor beeldmanipulatie dusdanig toegenomen dat het op steeds grotere schaal commercieel wordt toegepast. Veel ontwikkelingen die nu nog experimenteel zijn, zullen die weg spoedig volgen.
We kijken naar de stand van zaken en gaan zelf aan de slag met dé ontwikkeling voor de komende jaren: het maken van beeld op basis van tekst.
01 Fotomanipulatie
Jarenlang moesten we alles zelf doen als het ging om fotobewerking. Vervolgens verschenen voorzichtig handige hulpjes zoals het automatisch optimaliseren van helderheid en belichting, en later de broodnodige assistentie bij het selecteren van objecten met ingewikkelde vormen. Toch waren dat niet meer dan betrekkelijk eenvoudige (wiskundige) trucjes.
In de nieuwste software voor fotobewerking heeft AI ook zijn intrede gedaan. Voor bijvoorbeeld Photoshop gebeurt dat nog enigszins mondjesmaat door middel van bijvoorbeeld slim vergroten (Super Resolution) en om automatisch de scherptediepte van een afbeelding achteraf aan te passen. Een bedrijf als Skylum zet echter volop in op deze nieuwe ontwikkelingen. Vorig jaar bespraken we van deze makers al Luminar AI, dat het onderwerp in foto’s kan herkennen en waarmee je op basis daarvan bijvoorbeeld razendsnel en simpel portretten kunt optimaliseren. Inmiddels is het nieuwste speeltje van Skylum verkrijgbaar onder de naam Luminar Neo. De AI daarin kan automatisch stof en krassen verwijderen, en hoogspanningsleidingen uitgummen. Belangrijker is echter dat het voor- en achtergrond kan herkennen, en op basis daarvan kun je scènes eenvoudig opnieuw belichten om het onderwerp van het scherm te laten spatten.
©PXimport
02 Creatief
Waar praktische fotobewerking met behulp van AI een zeer recente ontwikkeling is, zijn er al heel wat langer technieken beschikbaar om afbeeldingen creatief te lijf te gaan. Waar we het jarenlang moesten doen met vaak maar matig overtuigende filters om bijvoorbeeld een foto om te zetten naar een tekening of olieverfschilderij, kunnen we nu de complete stijl van een willekeurige afbeelding (vaak een kunstwerk) overzetten naar onze eigen foto’s.
Deze techniek, Style Transfer geheten, vloeit voort uit onderzoek van Google naar de manier waarop gelaagde neurale netwerken informatie opslaan en verwerken. Elke laag kijkt naar een ander aspect van een afbeelding en door de juiste beeldkenmerken van één afbeelding over te zetten, kun je de visuele stijl kopiëren. Dit onderzoek resulteerde ook in Deep Dream Generator, een online toepassing waarmee je AI naar een foto kunt laten kijken. De patronen die een bepaalde laag in het neurale netwerk in die foto meent te zien, worden vervolgens aan de foto toegevoegd. Herhaal je dit proces, dan kun je verbluffende en vaak psychedelische afbeeldingen maken.
©PXimport
Met Deep dream kun je verbluffende en vaak psychedelische afbeeldingen maken
-
03 Zien = maken
Wanneer we afbeeldingen zoeken met bijvoorbeeld Googles zoekmachine, dan doen we dat met een zoekopdracht in tekst. Uiteraard is het ondoenlijk voor de makers van een zoekmachine om alle geïndexeerde afbeeldingen van trefwoorden te voorzien en dus gebeurt door middel van AI. Deze AI is in eerste instantie getraind door afbeeldingen (met omschrijving) uit een zorgvuldig en met de hand samengestelde dataset te bekijken. Aan deze training werken wijzelf regelmatig mee wanneer we op een website moeten bewijzen dat we geen robot zijn en bijvoorbeeld alle stoplichten in een raster met negen plaatjes moeten identificeren.
Elke kleuter kan op zeker moment een menselijk poppetje tekenen omdat het al heel wat mensen heeft gezien en de globale kenmerken daarvan (twee armen, twee benen, enzovoort) in de hersenen zijn gecodeerd. Het is dan ook niet verwonderlijk dat op zeker moment een AI, die getraind was op een bepaald type afbeeldingen zoals gezichten, kon worden gebruikt om vanuit de opgedane kennis nieuwe portretten te genereren. Deze techniek wordt toegepast op de inmiddels overbekende site www.thispersondoesnotexist.com (met aanverwante sites voor onder andere katten, paarden en kunstwerken).
04 Generative Adverserial Network
De website die portretten genereert, maakt gebruik van een AI die StyleGAN2 heet. Deze is ontwikkeld door Nvidia, dat een belangrijke speler is in de AI-markt omdat de grafische kaarten van dit merk niet alleen hoogwaardig beeld kunnen genereren, maar ook alles aan boord hebben om efficiënt neurale netwerken te kunnen gebruiken.
Een GAN (Generative Adverserial Network) is een van de populairste methoden om AI zelf beeld te laten genereren door twee AI’s het tegen elkaar te laten opnemen in een soort wedstrijd waarbij ze elkaars prestaties naar steeds grotere hoogtes stuwen.
Dit soort netwerken wordt inmiddels al volop toegepast om bijvoorbeeld zwartwit-foto’s in te kleuren, plaatjes te vergroten en bepaalde soorten afbeeldingen te creëren als in de eerdergenoemde voorbeelden.
05 Contrastive Language-Image Pre-training
Zoals gezegd, is het kunnen benoemen van wat een AI ziet al jaren onderwerp van onderzoek. Zoekmachines hebben dergelijke AI’s nodig om geautomatiseerd afbeeldingen te kunnen indexeren.
Een van de spectaculairste ontwikkelingen op dit gebied heet CLIP (Contrastive Language-Image Pre-training). Voorgaande AI’s waren afhankelijk van het leren herkennen van objecten aan de hand van zorgvuldig en met de hand samengestelde datasets van afbeeldingen en hun beschrijving in een beperkt aantal categorieën (mensen, auto’s, bloemen enzovoort). CLIP (waarvan de oorspronkelijke versie is getraind met ruim 400 miljoen tekst-beeldcombinaties) heeft echter een dusdanig brede kennis dat het tot op zekere hoogte ook afbeeldingen kan omschrijven in categorieën die het nooit eerder heeft gezien. Dit wordt zero shot learning genoemd.
06 GAN + CLIP
Combineer je de kennis van CLIP met een GAN als beeldgenerator, dan wordt het pas echt interessant. De IT-wereld stond een jaar geleden dan ook op zijn kop toen OpenAI ons een kijkje gaf in zijn nieuwste hoogstandje DALL-E.
DALL-E is een gigantisch neuraal netwerk dat beelden creëert aan de hand van een korte omschrijving in tekst. ‘Een fauteuil in de vorm van een avocado’ maakte wereldwijd furore toen dit systeem werd gepresenteerd. Niet alleen liet het een overtuigend zitmeubel zien, maar het maakt desgevraagd duizenden verschillende!
De rol van CLIP in dit alles is dat het als een soort jury fungeert. Het rangschikt de gegeneerde afbeeldingen op relevantie en stuurt de AI die het beeld genereert de goede kant op.
Helaas heeft OpenAI op dit moment de code voor DALL-E nog niet vrijgegeven omdat er volop discussie is over de gevolgen van dit soort AI (zie kader ‘Mogelijke gevolgen’).
©PXimport
CLIP fungeert als jury en stuurt de AI die het beeld genereert de goede kant op
-
Mogelijke gevolgen
Veel opensource-AI is op dit moment nog niet in staat om voor elke gegeven opdracht coherente resultaten te produceren. Een AI die speciaal getraind is op gezichten levert vrijwel perfecte portretten, maar vraag je het aan een algemeen TTI-systeem (Tekst To Image), dan moet je niet vreemd opkijken als het resultaat twee neuzen heeft. Deze systemen worden echter snel beter en spoedig kun je vrijwel elk soort afbeelding maken dat je hebben wilt. Wat de gevolgen daarvan zullen zijn voor fotografen en illustratoren is nauwelijks te overzien.
We kennen allemaal de ophef rond het fenomeen deepfake. Nu nog werkt dat vooral op basis van het vervangen van gezichten in bestaande video’s door middel van AI. Zodra AI echter zelf fotorealistische beelden kan genereren, zullen volledig door AI gemaakte video’s volgen.
Uiteraard zijn er ook volop positieve kanten te noemen. Zo zullen games in rap tempo nog levensechter worden omdat AI 3D-omgevingen in realtime kan vervangen door decors die echt lijken. Oude en krakkemikkige archiefbeelden worden ondertussen in hoog tempo ingekleurd, ontkrast en omgezet naar een hogere resolutie. Naast deze praktische zaken, zien we de opkomst van een geheel nieuwe kunstvorm.
©PXimport
07 Concurrentie
DALL-E mag dan nog niet beschikbaar zijn, dat wil niet zeggen dat we niet zelf met Tekst To Image (TTI) aan de slag kunnen. Al snel verschenen namelijk opensource-oplossingen op basis van CLIP en minder geavanceerde beeldgenerators. Aanvankelijk waren deze alleen online toegankelijk via het Google Colab-platform (zie kader ‘Werken met Colab’), maar al snel kwamen er varianten met een gebruiksvriendelijkere interface.
Zo scoort Visions of Chaos hoog op het gebied van gebruiksgemak en het aantal ondersteunde AI-toepassingen. Hoewel deze software oorspronkelijk is bedoeld als fractal-programma kun je er tegenwoordig tientallen verschillende AI-modellen in draaien. Dit vereist wel een stevige Nvidia-kaart met liefst 12 GB VRAM of meer. Omdat niet iedereen daarover beschikt, bekijken we eerst wat online-alternatieven.
Werken met Colab
Het gros van de opensource AI-toepassingen is gemaakt in Python (waarvan je overigens geen kennis hoeft te hebben). Is je hardware niet krachtig genoeg om deze programma’s lokaal te gebruiken, kies dan uit de vele Python-scripts die beschikbaar zijn op het Google Colab-platform en die je zelfs vanaf je mobiel zou kunnen gebruiken.
Op https://softologyblog.wordpress.com vind je links naar Colab-versies van vrijwel alle scripts die ook in Visions of Chaos beschikbaar zijn. Als voorbeeld gaan we naar het script voor Multi-Perceptor VQGAN+CLIP v3.
Elk Colab-script bestaat uit cellen met programmacode en deze hoef je alleen cel voor cel uit te voeren door op de afspeelknop te klikken. Lees daarbij wel goed de instructies en wacht met de volgende cel tot de vorige klaar is (groen vinkje), wat voor de initialisatie enkele minuten duurt.
Ben je aangekomen bij Do the run, dan vul je daar de tekst in voor wat je wilt zien en kies je het menu Runtime / Alles Uitvoeren. Na enkele minuten zal nu het eerste beeld verschijnen. Ben je tevreden, dan kies je Runtime / Uitvoering Onderbreken en sla je het laatst gegenereerde plaatje op. Voor nieuwe afbeeldingen hoef je alleen de parameters in de cel Do the run te wijzigen en deze te starten.
©PXimport
08 Zelf proberen
Kijk bijvoorbeeld eens bij Wombo Dream als je zelf wilt spelen met TTI. Hier kun je simpelweg een Engelse omschrijving invoeren en na het kiezen van een stijl krijg je binnen een minuut de gegenereerde afbeelding te zien. Wombo is snel en biedt een hoge resolutie.
Wat uitgebreider zijn je mogelijkheden bij NightCafe. Behalve Tekst To Image biedt deze ook Style Transfer. Meer van dit soort diensten vind je in het kader met links aan het einde van deze masterclass.
©PXimport
09 Uitgebreider
Veel meer mogelijkheden vind je bij de pagina’s van https://huggingface.co. Dit is een platform waar organisaties en individuen hun programma’s online toegankelijk maken. Veel daarvan hebben een aanzienlijk uitgebreidere gebruikersinterface dan de diensten die we in de vorige paragraaf noemden, wat ze ideaal maakt voor wie meer diepgang zoekt. Bovendien is het gebruik gratis. Keerzijde is dat je vaak te maken hebt met wachttijden, maar zolang je de pagina open laat, kun je ondertussen iets anders doen.
We noemen twee voorbeeldpagina’s. De eerste vind je via https://kwikr.nl/hfclip en is een van de betere AI-beeldgenerators (CLIP Guided Diffusion). Je kunt hem niet alleen kunt voeden met een tekstprompt, maar ook met een afbeelding om als uitgangspunt te dienen. Bovendien genereert dit AI-script een video waarin je ziet hoe de afbeelding tot stand komt.
Een tweede geavanceerde AI waarmee je bij Huggingface aan de slag kunt, vind je via https://kwikr.nl/hfsg3. Deze AI maakt video’s op basis van de nieuwste versie van StyleGAN. Er zijn varianten die getraind zijn op gezichten, portretten uit de kunstwereld en zelfs landschappen, en in elk van deze categorieën kun je video’s maken waarin losse beelden op adembenemende wijze in elkaar overvloeien.
©PXimport
10 Lokale AI
Beschik je over een geschikte Nvidia-kaart, dan weerhoudt niets je ervan om op je eigen pc met AI aan de slag te gaan. Zoals gezegd moet je hiervoor Visions of Chaos (VoC) installeren. Daarmee ben je er echter nog niet. Je dient allerlei aanvullende componenten te installeren om AI-modellen te kunnen gebruiken. Deze maken namelijk gebruik van PyTorch of TensorFlow, de twee populairste platformen voor AI.
Gedetailleerde installatie-instructies vind je via https://kwikr.nl/instai. Installatie van alle benodigde software is niet moeilijk, maar je bent er wel zo’n twee uurtjes mee zoet. Als de klus is geklaard, kun je Visions of Chaos starten en is de speeltuin geopend.
Je kunt video’s maken waarin beelden op adembenemende wijze in elkaar overvloeien
-
11 Visions of Chaos
In Visions of Chaos vind je de AI in het menu Mode / Machine Learning, die is onderverdeeld in de categorieën PyTorch en TensorFlow. Die laatste bevat als belangrijkste onderdelen Deep Dream en Style Transfer, maar deze zijn ook beschikbaar als PyTorch-variant, dus we concentreren ons op dat platform.
De eerste keer dat je een onderdeel wilt gebruiken zal het de automatisch de benodigde neurale netwerken en Python-scripts downloaden.
Met alle mogelijkheden die je tot je beschikking hebt, kunnen we een jaargang PCM’s vullen, dus we bekijken er slechts een paar.
12 StyleGAN3
Ga om te beginnen naar StyleGAN3. Je ziet dat Model file daar standaard een van de Faces-modellen is. Klik op Generate Image om een willekeurig portret te maken.
Je kunt gegenereerde afbeeldingen manipuleren met behulp van tekst. Zet daarvoor een vinkje bij de bovenste optie, Style with CLIP. Laat de standaardtekst staan en genereer nogmaals een afbeelding.
In het vrijwel oneindige domein van alle mogelijke gezichten heeft de opgegeven instructie het oorspronkelijke portret nu in iets totaal anders veranderd. Genereer je een video, dan zal StyleGAN3 voor het gekozen model beelden in elkaar laten overvloeien (in ons geval gezichten), wat herinnert aan het aloude ‘morphing’, maar dan automatisch en veel vloeiender. Gebruik je CLIP in combinatie met video, dan start deze met een willekeurig portret en zie je hoe dit verandert in iets dat hopelijk voldoet aan de gegeven opdracht. Probeer bijvoorbeeld ‘a caricature of Tom Cruise’. Na het genereren van de beeldjes krijg je een FFmpeg-venster te zien waarmee je ze kunt combineren tot video. Je hebt hier veel bewerkingsmogelijkheden waar we hier niet op in kunnen gaan. Klik voor nu op Build en hoop op de gewenste karikatuur.
©PXimport
13 Text-to-image
Het tweede onderdeel van Visions of Chaos dat we bekijken is de optie Text-to-image. Klik je op de naam achter Script, dan zie je een enorme waslijst aan beschikbare AI’s waarvan de beste van een asterisk zijn voorzien. Allemaal hebben ze zo hun eigen instellingen, maar er zijn ook veel overeenkomsten.
Als voorbeeld gaan we aan de slag met Multi-Perceptor VQGAN+CLIP v3. Hierin worden de gemaakte afbeeldingen beoordeeld door twee verschillende CLIP-modellen voor meer betrouwbaarheid. Laat de standaard inputprompt voor wat hij is en klik op Generate om je eerste TTI-kunstwerk te produceren. Het eindresultaat laat enkele minuten op zich wachten waarbij het beeld tussentijds steeds wordt bijgewerkt. Je kunt het proces overigens versnellen door vooraf Number of cutouts bijvoorbeeld te halveren.
Waar je in StyleGAN bij dezelfde Random Seed hetzelfde plaatje te zien krijgt, is dat bij TTI niet het geval. Hier zorgt het getal er alleen voor dat een nieuw plaatje met dezelfde prompt een vorige niet overschrijft. Je vindt gemaakt beeld overigens in de map Documenten\Visions of Chaos.
Omdat niet elke prompt meteen iets moois oplevert, kun je bij Batch / Input prompt with different seeds meerdere exemplaren achter elkaar genereren. Hier vind je ook de mogelijkheid om een lijst met prompts of willekeurige input op te geven waarmee je je pc een nachtje kunt laten werken.
©PXimport
14 Ingenieur
Het verzinnen van opdrachten die interessant beeld opleveren, kan een flinke puzzel zijn waarvan de oplossing bovendien per AI verschilt. Niet voor niets wordt deze kunst ‘prompt engineering’ genoemd. Behalve de feitelijke prompt, zoals ‘a landscape’ kun je er kwalificaties aan toevoegen die we modifiers noemen. Voorbeelden zijn: ‘in summer’, ‘at dawn’, ‘by Vincent van Gogh’ of ‘in impressionist style’. Ook kun je modifiers toevoegen voor materialen (‘made of glass’) of technieken (‘a pencil drawing’).
Sommige AI’s werken het best met dit alles in een lange zin (an oil painting of a park by Georges Seurat), terwijl andere het beter doen wanneer de prompt in stukken is gehakt (a park | oil painting | by Georges Seurat). Bij sommige AI’s kun je elementen zelfs extra nadruk geven door direct achter een trefwoord een dubbele punt en een cijfer te zetten waarbij hoger meer nadruk betekent. Alleen met experimenteren kom je er achter wat voor jouw favoriete AI het beste werkt.
15 Volop in ontwikkeling
Hoewel we slechts een fractie van de vele ontwikkelingen hebben kunnen bespreken, is duidelijk dat er volop interessante dingen gebeuren op het gebied van AI voor beeldbewerking. Als het gaat om Tekst To Image, gaan deze zelfs zo hard dat het niet onwaarschijnlijk is dat er al weer betere modellen beschikbaar zijn op het moment dat je dit artikel leest. We kunnen dan ook alleen maar eindigen met een klassieke zin uit de wereld van de strip: wordt vervolgd!
Online bronnen
Naast de in het artikel genoemde links, zijn er veel andere bronnen om zelf aan de slag te gaan of om informatie op te doen. Een kleine selectie:
Informatie over het grootste TTI-systeem DALL-e.
Een studie naar prompt engineering (pdf).
Maak, combineer en manipuleer afbeeldingen en korte video’s.
Maak fotorealistische landschappen op basis van een schets.
Een TTI-systeem.
Een groot TTI-systeem, het Russische antwoord op DALL-e.
Facebook-groep met afbeeldingen en video’s die we niet in dit artikel konden tonen.