Wat is Stable Diffusion?
Stable Diffusion is een open-source generatief AI-model dat tekstaanwijzingen gebruikt om nieuwe afbeeldingen te genereren of bestaande afbeeldingen te wijzigen.
Technisch gezien is Stable Diffusion een latent diffusion model (LDM) voor machinaal leren. Dit type gespecialiseerde deep learning-modellen gebruikt kansverdelingen om uitkomsten te genereren die statistisch vergelijkbaar zijn met de gegevens waarop het model is getraind.
Naast het genereren van nieuwe afbeeldingen kan Stable Diffusion ook worden gebruikt voor het in- of overschilderen van elementen binnen een bestaande afbeelding en voor het vertalen van afbeelding naar afbeelding.
- Inpainting is het proces waarbij ontbrekende of beschadigde delen van een afbeelding worden opgevuld. Het is een veelvoorkomende taak bij beeldrestauratie en -bewerking en kan worden gebruikt om objecten uit afbeeldingen te verwijderen, beschadigde foto’s te herstellen of onvolledige afbeeldingen aan te vullen.
- Outpainting is het proces waarbij een afbeelding wordt uitgebreid tot buiten de oorspronkelijke grenzen. Het kan worden gebruikt om grotere afbeeldingen te maken, nieuwe elementen aan een afbeelding toe te voegen of de beeldverhouding van een afbeelding te wijzigen.
- Beeld-naar-beeld vertaling is het proces waarbij een invoerafbeelding wordt omgezet naar een uitvoerafbeelding. Het kan worden gebruikt om de artistieke stijl van een afbeelding te wijzigen, het uiterlijk van een object in een afbeelding te veranderen of de kwaliteit van een afbeelding te verbeteren door het contrast of de kleurdichtheid te verhogen.
Hoe werkt Stable Diffusion?
Stable Diffusion werd aanvankelijk getraind op door mensen gelabelde afbeeldingen die van het internet werden gehaald. Het model leerde hoe het zijn output kon verbeteren door gebruik te maken van een techniek die reinforcement learning with human feedback (RLHF) wordt genoemd.
Tijdens de initiële trainingsfase werd het basismodel belast met het analyseren van de waarschijnlijkheidsverdeling van latente variabelen in gelabelde trainingsgegevens. De latente variabelen leggen de onderliggende structuur en details van een trainingsafbeelding vast en stellen het model in staat om te leren hoe waarschijnlijk het is dat een specifieke afbeelding overeenkomt met het tekstlabel dat door een mens is gemaakt.
Stabiele diffusie werkt door een diffusiefilter toe te passen op een afbeelding van willekeurige pixels die het gemiddelde neemt van de waarden van naburige pixels. Tijdens elke herhaling van het deep learning-proces verwijdert het filter meer ruis uit de afbeelding totdat de resterende pixels statistisch overeenkomen met de opgegeven tekstbeschrijving.
De nieuwste versie van het basismodel, SDXL 1.0, werd uitgebracht in augustus 2023. Het zou zijn getraind met 3,5 miljard parameters en duizenden hyperparameters. Volgens de website van Stability AI werkt het model zo goed omdat het voor de release op schaal is getest met meer dan 10.000 bètatesters die gemiddeld 1,7 miljoen afbeeldingen per dag creëerden.
Hier is een voorbeeld van een Stable Diffusion-afbeelding die is gemaakt met de tekst “Grijze eekhoorn snuffelt aan gele bloem”.
Hier is een voorbeeld van een Stable Diffusion-afbeelding die is gemaakt met de tekst “Origami grijze eekhoorn snuffelt aan gele bloem”.
Stable Diffusion vs. DALL-E, Middenweg
Stable Diffusion wordt vaak vergeleken met DALL-E, een eigen generatieve AI-afbeeldingstoepassing ontwikkeld door Open AI, de maker van ChatGPT.
Hoewel beide AI-modellen zijn getraind op enorme hoeveelheden afbeeldingsgegevens en beide bruikbare afbeeldingen kunnen genereren, is DALL-E een geconditioneerd diffusiemodel dat externe informatie gebruikt om het afbeeldingsproces te sturen. De aanwijzingen van de gebruiker geven het model specifieke aanwijzingen over waar het gegenereerde beeld op moet lijken of wat het moet bevatten.
Stable Diffusion is daarentegen een open-source latent diffusiemodel dat tekst of afbeeldingen gebruikt om een latente representatie van de gewenste afbeelding te coderen. De latente representatie stuurt het diffusieproces om ervoor te zorgen dat de gegenereerde afbeelding statistisch gezien gelijk is aan de prompt van de gebruiker.
Midjourney is een eigen latent diffusiemodel voor het genereren van afbeeldingen. Het is alleen beschikbaar via een betaald abonnement. Er zijn geen gratis of freemium versies beschikbaar voor persoonlijk gebruik.
Geschiedenis
Stable Diffusion werd voor het eerst uitgebracht in 2022 en wordt gefinancierd door een relatief nieuw bedrijf voor onderzoek en ontwikkeling (R&D) genaamd Stability AI.
De samenwerking van het bedrijf met Amazon Web Services (AWS) gaf ontwikkelaars toegang tot de Ezra-1 UltraCluster supercomputer en voorzag Stability AI van de verwerkingskracht die de startup nodig had om complexe kunstmatige intelligentie (AI)-modellen te ontwikkelen voor het genereren van afbeeldingen, muziek en code.
De missie van Stability AI is om “AI toegankelijker en meer inclusief te maken”. In september 2023 meldden sommige media echter dat het gebruikers verboden werd om Stable Diffusion te draaien op het Google Cloud Platform (GCP).
Chris Perry, een productmanager bij Google, reageerde door te tweeten dat het bedrijf de generatieve AI-app niet verbood, maar wel beperkingen oplegde aan gratis accounts omdat Stable Diffusion zo populair was geworden. De oprichter van Stable AI, Mohammad Emad Mostaque, tweette dat hij dit een eerlijke beslissing vond.
Hoe gebruik je Stable Diffusion
Stable Diffusion is gratis toegankelijk en uit te proberen via de website van Stability AI of met behulp van DreamStudio of Clipdrop. DreamStudio is de webapplicatie van Stability AI voor het genereren en bewerken van beelden, en Clipdrop is het ecosysteem van generatieve apps, plugins en hulpmiddelen.
Het model is ook beschikbaar op een freemium-basis via een groot aantal websites van derden die gebruikmaken van de application programming interface (API) van Stable Diffusion.
Volg deze stappen om Stable Diffusion te gebruiken:
- Open de gebruikersinterface van Stable Diffusion.
- Voer een tekst in die een afbeelding beschrijft – of upload een afbeelding en voer een tekst in die aangeeft hoe de afbeelding moet worden aangepast.
- Klik op de knop Genereren om een klein aantal afbeeldingen te genereren op basis van de tekstmelding.
- Pas desgewenst de tekstaanwijzingen en de latente variabelen van het model aan om verschillende aspecten van de uitvoer te regelen, zoals stijl, inhoud of thema.
- Zodra het model het gewenste resultaat heeft gegenereerd, kunt u het lokaal opslaan voor toekomstig gebruik.
3 tips voor het gebruik van Stable Diffusion
- Wees specifiek bij het maken van tekstaanwijzingen. Dit is waarschijnlijk het moeilijkste aspect van het gebruik van Stable Diffusion. Hoe specifieker de tekstaanwijzingen, hoe beter de uitvoer zal zijn. Als de eerste resultaten van het model niet optimaal zijn, overweeg dan om het proces opnieuw te beginnen met specifiekere aanwijzingen.
- Gebruik negatieve aanwijzingen om specifieke elementen uit te sluiten van de uitvoer van het model. Om bijvoorbeeld een afbeelding van een cowboy zonder hoed te genereren, gebruik je de negatieve prompt “no hat”.
- Als het model lokaal wordt uitgevoerd, overweeg dan om het te verfijnen met een kleinere dataset om aan specifieke creatieve behoeften te voldoen.
Lokaal gebruik van Stable Diffusion
Om te voorkomen dat er betaald moet worden voor het gebruik van Stable Diffusion op grote schaal, kunnen technisch onderlegde gebruikers die akkoord gaan met Stability AI’s acceptable use policy (AUP) het LDM-model lokaal installeren op desktopcomputers die beschikken over een grafische kaart met minimaal 7GB aan video random access memory (VRAM).
In de nabije toekomst verwacht Stability AI geoptimaliseerde versies van hun LDM-model uit te brengen die zowel de prestaties van het model als de uitvoerkwaliteit zullen verbeteren. Ze plannen ook releases waardoor Stable Diffusion kan werken op AMD, Macbook M1/M2 en andere chipsets. (Momenteel worden NVIDIA chips aanbevolen.)
Lokaal Stable Diffusion draaien is een goede optie voor gebruikers die vrije afbeeldingen op schaal willen genereren, offline afbeeldingen willen genereren, afbeeldingen privé willen houden of de uitvoer van Stable Diffusion willen afstemmen op een specifieke toepassing.
Een ontwikkelaar kan bijvoorbeeld Stable Diffusion lokaal gebruiken om texturen en afbeeldingen te genereren voor een spel dat hij aan het ontwikkelen is.
Hoe installeer je Stable Diffusion
Nadat de gebruiker de Stability.ai website heeft bezocht en geverifieerd heeft dat zijn computer voldoet aan de laatste minimale vereisten, moet hij zowel Python als Git downloaden en installeren. Ze moeten ook een gratis account aanmaken bij Hugging Face om de modelgewichten te krijgen en dan deze stappen volgen:
Stap 1: Om de projectbestanden van Stable Diffusion te verkrijgen, ga je naar de GitHub pagina voor dit project. Zoek en klik in de rechterbovenhoek op de groene knop “Code”. Selecteer “Download ZIP” in het dropdown menu. Pak na het downloaden de inhoud van het ZIP-bestand uit. Deze actie maakt een map aan met de naam “stable-diffusion-webui-master”. Om de installatie te vereenvoudigen, kopieer je de hele map (samen met alle uitgepakte bestanden) naar de hoofdmap van de C: schijf van de hostcomputer.
Stap 2: Bezoek de Hugging Face website en zoek of blader naar de downloadlink voor het “768-v-ema.ckpt” bestand. Dit bestand is vrij groot, dus reken op veel wachttijd tijdens het downloaden. Nadat het downloaden is voltooid, navigeer je naar deze locatie: “C:\stable-diffusion-webui-master\models\Stable-diffusion. Zoek in deze map een bestand met de naam “Put Stable Diffusion checkpoints here.txt” en voeg het bestand “768-v-ema.ckpt” in.
Stap 3: Zoek het config YAML bestand in het gedownloade ZIP bestand van GitHub. Navigeer naar de map “C:\stable-diffusion-webui-master\Stable-diffusion” en sla het YAML-bestand daar op. Verander de bestandsnaam in “768-v-ema.yaml” met behoud van de extensie “.yaml”.
Stap 4: Ga naar de map “stable-diffusion-webui-master” en voer het bestand “webui-user.bat” uit. Wacht enkele minuten. In het opdrachtvenster zou uiteindelijk een bericht moeten verschijnen met de tekst: “Running on local URL”, gevolgd door een URL die het IP-adres van de lokale machine en een poortnummer bevat. Kopieer en plak de volledige URL (inclusief het poortnummer) in een webbrowser. Hierdoor wordt de toepassing Stable Diffusion geopend.
Stap 5: Voer een beschrijving in voor de gewenste afbeelding wanneer daarom wordt gevraagd. Optioneel kun je tekst opgeven die je wilt uitsluiten in het vak Negative prompt. Pas de parameters aan, wijzig het aantal batches en de grootte naar wens en klik op de knop “Genereren”. De toepassing zal dan het gevraagde aantal afbeeldingen weergeven op basis van de ingevoerde gegevens.
Licentie
Stable Diffusion is gelicenseerd onder de CreativeML Open RAIL-M licentie, die zowel commercieel als niet-commercieel gebruik van het model en zijn resultaten toestaat.
Het is belangrijk op te merken dat de licentie niet het auteursrecht dekt van onderliggende materialen die gebruikt kunnen worden om afbeeldingen te genereren met Stable Diffusion.
Dit betekent dat als een foto waarop auteursrecht rust, wordt gewijzigd door elementen in de afbeelding toe te voegen of te vervangen (inpainted), wordt uitgebreid om de afbeelding groter te maken (outpainted), of wordt gemaakt om op een schilderij van Van Gogh te lijken (image-to-image translation), het auteursrecht voor de nieuw gegenereerde afbeelding nog steeds toebehoort aan de houder van het auteursrecht op de originele foto.