Stable Diffusion, Midjourney en andere AI image tools zijn een krachtig hulpmiddel voor het genereren van beelden met behulp van AI. Je kan hier door middel van text-to-image afbeeldingen mee genereren. Een interessant fenomeen dat zich hierbij kan voordoen, is ‘concept bleeding’. Dit verschijnsel treedt op wanneer bepaalde woorden of concepten in de prompt indirect de uiteindelijke output beïnvloeden. Dit wordt ook wel token spilling, prompt bleeding, concept bleeding, context bleeding of prompt saturation genoemd. Hoe ga je dit tegen? Vijf tips!
Wat is prompt bleeding?
Prompt bleeding is een fenomeen dat optreedt bij kunstmatige intelligentie (AI) modellen voor beeldgeneratie, zoals Stable Diffusion, Firefly, Leonardo AI en DALL-E, waarbij bepaalde woorden of concepten in de invoer (de prompt) onbedoeld de uiteindelijke output beïnvloeden. Dit gebeurt doordat de AI associaties en patronen uit zijn trainingsdata haalt, die leiden tot verbanden tussen concepten die mensen normaal niet zouden maken. Dit kan resulteren in afbeeldingen die elementen bevatten die verrassend of ongewenst zijn, omdat ze niet direct gerelateerd lijken aan de oorspronkelijke instructies.
Een voorbeeld uit eigen bibliotheek: running
Ik wilde voor een andere website in mijn beheer een afbeelding genereren van een man die de laatste versie van Adobe Lightroom gebruikt op zijn computer. Ik schreef hier een simpele prompt voor in Stable Diffusion: A man running the latest version of Adobe Lightroom. Echter denkt AI dat running te maken heeft met hardlopen. Dit zal bijvoorbeeld in zijn trainingsdata veel vaker voorkomen dan running software on a computer. Ik krijg dan een niet-gewenste afbeelding. Er was in dit geval sprake van prompt bleeding.
Nog een voorbeeld: painting
Eén woord kan een prompt al dusdanig ‘verpesten’ en een hele andere uitkomst geven dan je zelf wilt. Ik wilde een afbeelding genereren van een vrouw die een zelfportret schildert. Ik voer netjes in: ‘A woman painting a self-portrait’. Ik krijg vervolgens meerdere keren een afbeelding te zien van iets wat ik niet voor ogen had. De ene keer schildert iemand een echte vrouw. Een andere keer krijg ik een soort selfie van een vrouw. Na een paar keer herhalen krijg ik zelfs een afbeelding in de stijl van een schilderij. Zo zie je dat woorden zoals “painting”, “self” en “portrait” erg krachtig kunnen zijn in een prompt en deze de output ook erg kunnen beïnvloeden.
Goed om te weten: In Stable Diffusion is de output ook erg afhankelijk van het checkpoint dat je gebruikt, de textual inversions en Lora’s.
Hoe kan je dit voorkomen? 9 tips
Gaat er iets mis in de afbeelding? Dan moet je de prompt aan gaan passen. Afbeeldingen genereren met AI is een proces van vallen en opstaan. Bij mij is zelden de eerste keer perfect. Voor echt mooie afbeeldingen, die precies zijn zoals ik wil, ben ik een flinke poos bezig. Treed er prompt bleeding of token spilling op? Dan pas ik de prompt aan, zodat dit voorkomen kan worden. Bijvoorbeeld:
- De belangrijkste woorden vooraan de prompt plaatsen
- Elementen die niet mogen overheersen later in de prompt introduceren
- In Stable Diffusion werken met prompt scheduling
- Juiste model of checkpoint gebruiken. Een checkpoint in Stable Diffussion of Leonardo AI voor realistische foto’s, gaat echt geen mooi schilderij maken in de stijl van Gustav Klimt.
- Synoniemen verzinnen voor woorden die dubbel opgevat kunnen worden (a man using Lightroom, in plaats van a man running Lightroom)
- Prompt weights toepassen
- Seeds gebruiken
- Wees duidelijk en beschrijf in detail wat je wil (a german shepherd in plaats van a large dog).
- Woorden afzwakken. Je kan in Stable Diffusion ook woorden afzwakken in een prompt. Je zou een krachtig woord als painting af kunnen zwakken door deze tussen haakjes te plaatsen met daarachter een getal <1. Bijvoorbeeld (painting:0.7)