Blog archives

AI-revolutie: ontdek hoe het werkt door te spelen met Stable Diffusion en ChatGPT

1 comment

We zitten middenin een AI-revolutie. Het afgelopen jaar is er zo ontzettend veel gebeurd op het gebied van AI dat het lastig is om een beetje bij te blijven. Ik doe dat zelf door veel te lezen maar vooral door veel te spelen met de techniek. Om een revolutie te snappen moet je weten hoe dingen werken. In dit artikel wil ik je meenemen in een paar van de tools waar ik zelf de laatste tijd mee heb gespeeld.

Stable Diffusion

Stable Diffusion is één van de belangrijkste text to image-pakketten, samen met Midjourney en DALL-E. Waar het zich onderscheidt van die andere twee is dat het een stuk opener is. De code die je gebruikt om de plaatjes te genereren is volledig open source, het model (dat nodig is om plaatjes te genereren) mag je downloaden en verspreiden. Dat betekent dus dat je de code én het model kunt downloaden op je eigen computer en plaatjes kunt genereren zonder een maandelijks abonnement te nemen (Midjourney) of credits te kopen (DALL-E). Daarnaast zorgt dat open model ervoor dat andere mensen software kunnen bouwen op basis van Stable Diffusion. 

Een voorbeeld is Diffusionbee. Dat is (ook weer) een open source-pakket (momenteel alleen Mac) dat een handige interface biedt die vergelijkbaar is met die van DALL-E en Midjourney. 

Stable Diffusion en Diffusionbee draaien dus op je eigen computer. Dat betekent dat als je laptop wat ouder is, of minder krachtig, het genereren van plaatjes minder vlot gaat. Op mijn eigen machine, een Macbook Air met M1 processor en 16 GB geheugen, is Diffusionbee / Stable Diffusion zeker langzamer dan DALL-E of Midjourney. Een plaatje genereren duurt ongeveer een halve minuut, bij de cloud-gebaseerde concurrenten is dat vaak een paar secondes. 

Maar de ontwikkelingen gaan snel. Toen ik twee maanden geleden een oudere versie uitprobeerde duurde dat genereren nog 3 tot 4 minuten per plaatje. Apple heeft inmiddels nét zelf een fork uitgebracht die efficiënter gebruik maakt van diens hardware. De genereer-tijden zullen dus ongetwijfeld de komende maanden en jaren nog fors naar beneden gaan als de code wordt doorontwikkeld en machines sneller worden. 

Wat kun je zoal met Stable Diffusion? Diffusionbee biedt vier opties die vergelijkbaar zijn met de concurrentie. Ik zal ze hier illustreren aan de hand van een foto van mijn favoriete knuffelaap (en de mascotte van mijn nieuwsbrief): Barrie.

Barrie, in zijn niet-door-AI-gegenereerde staat

Bij text to image tik je een stukje (Engelstalige) tekst in (de zogenaamde prompt) en komt er een plaatje uit. Bij Stable Diffusion kun je ook nog een hoop instellen. Bijvoorbeeld hoeveel plaatjes je wilt maken (vier is de standaard bij DALL-E en ik vind het zelf ook een goed aantal). Je kunt de resolutie instellen en hoe strikt de AI je prompt moet ‘volgen’. Ook kun je een ‘negative prompt’ instellen. Dit kan helpen om je afbeelding te verfijnen. Als je merkt dat de apen op je plaatjes er heel harig uitzien kun je ‘hairy’ invullen als negative prompt en zal de AI minder harige apen fantaseren.

Een ongemakkelijk kijkend Boliviaans doodskopaapje volgens Stable Diffusion

Zo’n prompt schrijven is nog een hele kunst. Prompt engineer is vast binnenkort een functie. Een goede manier om daar wat meer over te leren is door te kijken naar de werken op sites als lexica.art of arthub.ai, waar altijd de prompt bij staat. Deze PDF is ook nuttig. Ook al is het geschreven voor DALL-E, de principes zijn van toepassing op alle algoritmes. 

De andere kant op, dus van plaatje naar tekst, kan niet met Stable Diffusion. Maar er is natuurlijk wel weer een andere tool voor zoals de CLIP interrogator. De originele foto van Barrie leidde bijvoorbeeld tot deze prompt

a close up of a stuffed animal on a table, a character portrait, inspired by Thomas Stothard, marmoset toolbag, black centered pupil, sheep wool, yelow, selfie photo, worried, mottled coloring, matteo salvini, twitch emote, connectedness, sheep, banana, etsy

Een beschrijving die op z’n minst verrassend is. Een marmoset is een aap, maar een ‘toolbag’? En hoe Matteo Salvini (de leider van de Italiaanse populistische Lega Nord) en de 18-de eeuwse Britse schilder Thomas Stothard in de beschrijving terechtkomen is een raadsel. Hoe dan ook, als je deze beschrijving weer in Stable Diffusion gooit krijg je ook weer interessante dingen.

Text to image is de basismodus, maar de andere modi in Diffusionbee zijn minstens zo interessant. Met inpainting kun je delen van een afbeelding weggummen en weer combineren met een prompt om die zo in te vullen. Een soort magische Photoshop. Het is soms een beetje zoeken met deze modus, maar het kan ook een manier zijn om te itereren en je afbeelding stukje bij beetje uit te breiden of te verbeteren. Bij de volgende plaatjes gumde ik bijvoorbeeld Barrie’s ogen en mond weg en gaf ik als prompt ‘knuffelaap met zonnebril / sigaret’

Barrie met een zonnebril en een sigaret

Outpainting lijkt op inpainting maar is weer net anders: in plaats van dat je in de afbeelding dingen weggumt fantaseert de AI de wereld buiten het plaatje. Bij deze plaatjes hield ik dus alleen Barrie’s gezicht over en gaf ik als prompt ‘knuffelaap met een hoed’.

Je bent hier niet beperkt tot het vierkante canvas. Je kan het canvas ook naar alle kanten uitbreiden.

En je kan hier ook weer delen weggummen. Als je bijvoorbeeld alleen Barries ogen behoudt en de rest invult krijg je ook weer verrassende resultaten.

Tenslotte is er de optie image to image. Wat mij betreft de meest interessante. Hiermee genereer je, net zoals bij text to image, een plaatje op basis van een prompt. Maar het verschil is dat je een afbeelding kunt gebruiken als input om de ‘stijl’ van de afbeelding aan te wijzen. Een soort combinatie van een tekst en een afbeeldings-prompt. Je kunt aangeven hoeveel de nieuwe afbeelding op de oude moet lijken.

Je kunt de nieuwe omschrijving zo gek maken als je zelf wilt. Barrie kan een kat worden.

Of je kunt de afbeelding genereren in de stijl van je favoriete kunstenaar.

Barrie in de stijl van (met de klok mee vanaf boven links): Georgia O’Keeffe, Picasso, Vermeer en Rembrandt

Die “variaties in de stijl van een kunstenaar” roepen een hoop vragen op. Want van wie zijn deze plaatjes eigenlijk? Van de makers van de software? Van de persoon die de prompt heeft geschreven? Of van de talloze makers van de afbeeldingen waarop de neurale netwerken zijn getraind? 

Want de software genereert niet uit het niets. Daar is heel veel trainingsdata voor nodig. Stable Diffusion is getraind op de LAION-5B dataset, waar bijna 6 miljard ‘tekst-afbeeldingsparen’ inzitten. De mensen die al die plaatjes hebben gemaakt hebben daar geen toestemming voor gegeven, het is gewoon gescraped met behulp van scriptjes (hier checkt u of u zelf in die set zit). Je kunt je afvragen of de algoritmes niet profiteren van andermans werk. En of je niet je eigen site moet afschermen tegen die scrapers en ze wellicht zelfs expres verkeerd ‘voeren’. En misschien moet je wel helemaal geen afbeeldingen van jezelf meer online zetten omdat mensen er weet ik veel wat mee kunnen doen.

ChatGPT

En dan hebben we het alleen nog maar over afbeeldingen! Een van de meest opzienbarende nieuwe toepassingen van AI is juist op het gebied van tekst. Minder dan twee weken geleden kwam ChatGPT uit, een chat-variant van het eerder gelanceerde GPT-3. ChatGPT is een chatbot, maar eentje die een stuk intelligenter is dan die je bijvoorbeeld vindt op de klantenservice-pagina van de gemiddelde webwinkel. Het is lastig om duidelijk te maken wat ChatGPT precies is zonder het zelf te proberen. Zie het als een soort van veel slimmere en natuurlijkere variant van Google. Voorlopig is ChatGPT trouwens gratis, in tegenstelling tot DALL-E.  

Je kunt ChatGPT vragen stellen (ook in het Nederlands).

Maar de manier hoe je die vragen stelt en ook hoe ze beantwoord mogen worden is geheel aan jou. 

Je kan ChatGPT zelfs iets proberen te leren, zoals een taal. En je kan ChatGPT ook je eigen teksten laten herschrijven.

ChatGPT wordt zowel onderschat als overschat. Het is geen orakel dat je opeens gaat vertellen hoe we klimaatverandering gaan oplossen. Een veel subtieler probleem is dat ChatGPT antwoorden kan geven die volledig fout zijn maar wel heel overtuigend klinken. Het is een kwestie van tijd voordat leraren niet alleen moeten checken of leerlingen scripties copy-pasten, maar of ze niet alles genereren met behulp van AI

Wat er ook allemaal nog gaat gebeuren, het is een feit dat we aan het begin staan van een enorme verandering in hoe we met digitale media creëren. Zoals met elke technologische innovatie betekent het niet dat mensen van de ene op de andere dag overbodig worden. Maar dat hun werk zal veranderen staat vast. Een beetje kennis en kunde van deze technologieën kan dan ook geen kwaad. 

En als je daar geen zin in hebt kun je altijd nog je e-mails naar je baas genereren. Of dit blog lezen.

Dit artikel verscheen eerder in editie #172 van De Circulaire.

Add a comment

1 comment