De belangrijkste evolutionaire sprong in het genereren van afbeeldingen met kunstmatige intelligentie is het creëren van gepersonaliseerde modellen. Daarmee bedoel ik secundaire pakketten die specifieke stijlen of objecten reproduceren, maar die ook kunnen worden gebruikt om iemands gezicht in unieke scenario's te injecteren. Dit is mogelijk dankzij het platform Dreambooth, ontwikkeld door Google Research en de Universiteit van Boston. De populairste toepassing van DreamBooth tegenwoordig is het fine-tunen van modellen die compatibel zijn met Stable Diffusion, en vandaag leggen we uit hoe je dat doet.
Grenzen verleggen
Van de drie modellen die beschikbaar zijn voor het genereren van afbeeldingen met AI, heeft Stable Diffusion bewezen het meest flexibel te zijn. Waarom? Twee redenen: het is gratis en open source, en het kan goed overweg met alternatieve modellen. Maar waar komen die modellen vandaan? Van de gebruikers zelf, die gebruikmaken van hun high-end hardware of gratis online opties om ze te trainen.
Het probleem van de gepersonaliseerde training of het 'fine-tuning' van Stable Diffusion is het VRAM-verbruik. Een model trainen met weinig videogeheugen is bijna onmogelijk, maar dankzij de magie van Google Colab, Google Drive, HuggingFace en het YouTube-kanaal DotCSV kunnen we dat vandaag doen zonder al te veel problemen en zonder duizenden euro's aan hardware uit te geven. De technische vereisten worden bij elke stap uitgelegd, dus sla niets over!
Train je eigen model met Dreambooth
- De eerste stap is om naar de HuggingFace-pagina te gaan en een account aan te maken. Alles wat nodig is, is een e-mailadres en een gebruikersnaam. Dit is belangrijk omdat we een van de toegangstokens van het platform nodig hebben. Zodra het account is aangemaakt, ga je naar Instellingen -> Toegangstokens en klik je op Nieuw token. Geef een naam op en specificeer de functie Write. Ga niet te ver weg, want je moet het token later van hier kopiëren.
- Vervolgens moet je bepalen welk soort model je wilt trainen door een selectie van afbeeldingen te kiezen. De aanbevolen gemiddelde is 20... en ze moeten gevarieerd zijn. Het doel is om een stijl, een concept, een formaat, een idee te demonstreren. Stel dat je een model wilt dat geïnspireerd is op Polaroidfoto's. Als je je alleen richt op Polaroids van portretten, komt het model nooit uit die mal, terwijl het ideaal is om de details, de fouten, de 'warmte' en de 'vintage' essentie van die foto's te reproduceren.
- De derde stap is simpel: pas de afbeeldingen aan naar een exact formaat van 512 x 512 pixels. Het Birme-portaal waar we het onlangs over hadden helpt je dit in een mum van tijd te doen, door het formaat aan te passen en overtollige randen bij te snijden. Sla de afbeeldingen op in een tijdelijke map, we komen er zo op terug.
- Nu is het tijd om de Google Colab-omgeving te openen die door DotCSV is geconfigureerd. Mijn eerste aanbeveling? Wees niet bang. In het begin lijkt het iets dat door buitenaardse wezens is ontworpen, maar het is eigenlijk een 'stap voor stap'-interface die wat soberder is dan normaal. Ga voordat je begint naar "Runtime", ga naar het gedeelte "Runtime-type wijzigen" en zorg ervoor dat "GPU" de geselecteerde optie is. Dit bevestigt dat Google Colab een geschikte grafische kaart voor de taak moet toewijzen.
- De Google Colab-omgeving nodigt ons uit om de stappen te volgen. We drukken op de Play-knop in stap 1 en accepteren de waarschuwing om onze Google Drive aan de omgeving te koppelen. Google Drive moet minimaal 4 GB vrije ruimte hebben en ik raad aan om een alternatief account te gebruiken.
- Daarna drukken we op de Play-knop naast Afhankelijkheden. Zoals de naam al aangeeft, installeert dit alle benodigde afhankelijkheden voor de juiste uitvoering van Dreambooth. Gelukkig duurt dit niet al te lang.
- Stap 3 activeert het veld waar we het token moeten invoeren dat we bij HuggingFace hebben gegenereerd. Een klik op de pijl opent het menu, we kopiëren het token en plakken het in "HuggingFace_Token". Negeer de rest van de opties en druk op Play. Wacht tot het klaar is.
- De vierde stap vraagt om gegevens over de Dreambooth-training, en dit verandert afhankelijk van je wensen: wil je een persoon trainen of een object? Misschien een kunstenaar of een tv-serie? Kies de juiste optie uit de lijst in het veld "Training_Subject" en wijzig vervolgens de uitdrukking in "Subject_Type" volgens de onderstaande voorbeelden. Al je aandacht moet echter naar "Instance_name" gaan. Dit is de wildcard, het trefwoord dat je in de prompts gebruikt om de getrainde inhoud te 'activeren'. Er wordt een zeldzaam woord aanbevolen dat door Stable Diffusion niet met iets anders wordt verward.
- Al je op Play drukt in stap 4, activeert Google Colab een uploadknop voor het uploaden van de afbeeldingen die als referentie voor de training dienen. Onthoud: ze moeten 512 x 512 zijn!
- De vijfde stap is optioneel en is vooral handig wanneer we modellen van mensen maken. In onze test is het niet nodig, maar je vindt er vijf verschillende waarden. "person_ddim" is de standaardmodus, aarzel niet om het te wijzigen om te experimenteren.
En nu, wachten
De Play-knop van stap 6 start het trainingsproces en vanaf hier... geduld. Hoe lang duurt het? Voor een standaardpakket van 20 afbeeldingen met 1.600 stappen duurt het gemiddeld een uur, heel redelijk als je bedenkt dat we gigabytes aan VRAM gratis gebruiken. De activiteit in Google Colab en de grafische kaart die voor het project is geconfigureerd, beïnvloeden ook de uiteindelijke prestaties.
Met het getrainde model blijven er nog maar twee dingen over: het online evalueren met behulp van stap 7, of het downloaden van het ckpt-bestand uit je Google Drive-account voor offline gebruik met Automatic1111. Vergeet niet je trefwoord aan de prompts toe te voegen, anders zie je nooit correcte resultaten tussen de gegenereerde afbeeldingen.
Kortom, Dreambooth is een buitengewoon krachtige tool, maar vereist wat oefening. Soms is de training niet helemaal bevredigend en moet je het opnieuw proberen met een andere reeks afbeeldingen. Geef niet op!
HuggingFace: klik hier
Dreambooth op Google Colab: klik hier