Inpaint in Stable Diffusion: tutorial met voorbeelden en uitgebreide uitleg

Categorie: Stable Diffusion
Foto van auteur
Geschreven door: Edwin

Edwin is de oprichter van aikundig.nl. Gedreven door passie voor AI experimenteert Edwin voortdurend met nieuwe AI-tools en deelt hij zijn inzichten op deze website.

Na maandenlang videolessen opnemen staat mijn eigen cursus Midjourney online! Ik heb al mijn kennis, die ik in de afgelopen jaren met Midjourney en AI tools heb opgedaan, omgezet in leuke videolessen. Bij deze Nederlandstalige cursus krijg je ook nog eens twee leuke e-books.

Om dit alles te vieren, heb ik een bijzondere korting voor je: Je krijgt 20% korting op de cursus (eenmalige aanschaf, levenslange toegang). Gebruik daarvoor deze link en gebruik de vouchercode AIKUNDIG-20.

Deel dit artikel

Soms genereer ik een afbeelding die ik erg mooi vind, maar waar nog aardig wat fouten in zitten, of waar ik net wat anders in wil zien. Dat los ik dan op met inpainting in Stable Diffusion of generative fill in Photoshop. In dit artikel behandel ik stap voor stap, aan de hand van afbeeldingen, in een tutorial, hoe inpaint werkt in Stable Diffusion.

Wat is inpainting in Stable Diffusion?

Inpainting is een techniek waarbij je een gedeelte van een afbeelding selecteert en dit opnieuw laat genereren door de AI. Dit geeft je de mogelijkheid om bepaalde delen van een afbeelding die je mooi vindt te behouden, terwijl je andere delen die niet naar wens zijn, kunt aanpassen. Hierdoor kun je details zoals vervormde handen, wazige gezichten of andere ongewenste elementen corrigeren zonder de rest van de afbeelding te veranderen. In Midjourney heet dit re-paint. Iets wat ik mijn Nederlandstalige Midjourney cursus uitgebreid behandel.

Voordeel: Met inpainting krijg je meer controle over het eindresultaat van AI-gegeneerde afbeeldingen. Ik vind het erg fijn dat ik een afbeelding die ik wel heel mooi vind, maar wel veel fouten in zitten, nog kan ‘redden’ door middel van inpainting. Het kost soms wel even wat werk, maar ik werk stapje-voor-stapje aan een afbeelding zonder (al) te veel fouten!  

Hoe werkt inpaint? Stap-voor-stap uitgelegd met voorbeeld

Ik heb met Stable Diffusion XL  een afbeelding gemaakt met de simpele prompt:

A cartoon image of a woman sitting behind the table, cat standing on the table, at home, cozy place

Ik heb meerdere batches gemaakt. Van de onderstaande afbeelding was ik meteen fan.

Er kloppen een aantal details echt voor geen meter. Denk bijvoorbeeld aan het ontbreken van de koffie en het feit dat er twee katten zichtbaar zijn, terwijl ik er om 1 heb gevraagd. Deze kan ik goed gaan oplossen met inpainting. Ik stuur deze naar het inpainting tabblad toe door op het schilderspalet te klikken. Je kan ook handmatig naar het img2img tabblad gaan en hier een afbeelding uploaden.

In het tabblad van inpaint heb je énorm veel opties die je in kan stellen. Ik zal bovenaan beginnen:

Als eerste zie je de promptbalk. Als je de afbeelding hebt meegenomen vanuit txt2img, dan wordt hier automatisch de prompt ingevuld waarmee je de afbeelding hebt gemaakt. Je kan deze vaak gewoon laten staan. Bij sommige modellen is het ook prima om het volledig weg te halen. Wil je iets nieuws genereren? Dan moet je wel een nieuwe prompt invullen. Dit leg ik je later in het voorbeeld uit.

Een stukje naar onder scrollen brengt je bij de instellingen. Dit is het meest interessante (en meest verwarrende) gedeelte van inpainting. Hier zul je soms wat mee moeten spelen.

Instellingen voor inpainting in Automatic1111

  • Resize mode: Bepaalt hoe het masker wordt aangepast in grootte. Standaardinstelling “Just resize” is meestal voldoende.
  • Mask blur: Zorgt voor vloeiendere randen van het masker. Standaardwaarde 4 biedt een goede balans voor natuurlijke overgangen.Mask mode: Kies welk deel van de afbeelding wordt aangepast: gemaskeerd of niet-gemaskeerd. Handig om specifieke delen te behouden.
  • Masked content:
    • Fill: Vult het gemaskeerde gebied met kleuren uit de omgeving, handig voor vervanging.
    • Original: Start met de originele afbeelding, ideaal voor kleine aanpassingen.
    • Latent Noise: Vult met willekeurige ruis, geschikt voor nieuwe elementen.
    • Latent Nothing: Variabel in effectiviteit, goed om mee te experimenteren.
    • Inpaint area: Bepaal of het hele beeld of alleen het gebied rondom het masker wordt aangepast. Voor specifieke aanpassingen is “Only Masked” meestal beter.
  • Only masked padding, pixels: Bepaalt de marge rondom het gemaskeerde gebied voor een soepele overgang. Belangrijk voor gedetailleerde bewerkingen.
  • Sampling method en sampling steps: Deze blijven hetzelfde als bij het genereren van de oorspronkelijke afbeelding.
  • Resize to: Stel de grootte van het canvas in voor het inpaint-proces. Standaardgrootte is vaak voldoende, maar kan aangepast worden voor snelheid of details.
  • Denoising strength: Bepaalt de mate van verandering ten opzichte van de oorspronkelijke afbeelding. Lage waarden behouden details, hogere waarden veroorzaken grotere veranderingen. Belangrijk voor het verfijnen van aanpassingen.

Aan de slag met inpaint

Nu je bekend bent met de instellingen, kunnen we aan de slag met het leuke gedeelte! Ik wil allereerst wat meer detail creëren in het gezicht van de vrouw op de afbeelding. Hier kun je goed de only masked optie voor gebruiken. Ik heb in de afbeelding een masker getekend op het gezicht van de mevrouw.

 Daarna heb ik de volgende instellingen aangegeven:

  • Masked content: Original – Ik hoef geen nieuw element te creëren, dus om een bestaand element te verbeteren is Original een prima instelling.
  • Inpaint Area: Only masked – Dit is perfect voor het verbeteren van details. Er wordt als het ware ingezoomd door AI op het gedeelte waar je een masker maakt. Daarna wordt dit gedeelte in hogere resolutie, dus met meer detail, gegeneerd.
  • Only masked padding: 32
  • Batch Count: 4
  • Denoising strenght: 0.40 – Ik wil niet dat alle details verloren gaan van het origineel, dus test het eerst uit met een lage denoising strenght. Zo blijft de basis in stand. Dit is overigens een instelling waar je vaak als eerste aan sleutelt als er iets niet goed is gegaan in de afbeelding.

Ik heb hieronder het voor en na resultaat naast elkaar gezet. Je ziet goed dat er meer detail in het gezicht is gekomen.

Ik kan het ook volledig proberen te veranderen, door de prompt te wijzigen in: Cartoon smiling woman, blush on cheek, happy, blue eye. Ik kies dan voor een Denoising strenght van 0.60, omdat ik wel heel veel wil wijzigen. Ik vind deze versie misschien nog wel leuker. Dus besluit om deze weer te sturen naar het inpaint gedeelte om verder mee te werken.

Kat op de grond verwijderen met inpaint

Nu heb ik nog een probleem met de kat op de grond. Deze wilde ik eigenlijk helemaal niet hebben in mijn afbeelding. Ik kan hier mooi de fill optie gebruiken. Ik besluit om hier een mooie kamerplant te plaatsen. Bij de prompt vul ik in: cartoon houseplant in terracotta pot. Ik gebruik de instellingen:

  • Resize mode:  Just rezize
  • Masked content: Fill
  • Inpaint Area: Only masked
  • Denoising strenght: 0.7

Na een aantal batches krijg ik een prima resultaat! Ik doe precies hetzelfde, maar dan verander ik de prompt in “small cup of coffee” en markeer een plek op de tafel waar ik de koffie wil hebben. De afbeelding is nu grotendeels naar mijn zin. Ik haal de afbeelding nu door Magnific AI heen (je kan ook een upscale doen in Stable Diffusion), Dit is het eindresultaat:

Tip: Ik heb het inpainting wat subtiel aangepakt in het voorbeeld (als je het verwijderen van een kat niet meetelt ;). Dit komt omdat ik in veel andere gevallen liever een geheel nieuwe afbeelding genereer. Wil ik bijvoorbeeld de haarkleur anders? Dan maak ik in txt2img liever een nieuwe afbeelding met een prompt waar ik dat in specificeer. Je kan overigens nog steeds in img2img een nieuwe haarkleur inpainten!

Plaats een reactie

Share to...