Stable Diffusion Prompt scheduling in Automatic1111 + voorbeelden

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

Als je beter wilt worden in het schrijven van prompts voor Stable Diffusion, is het belangrijk om je te verdiepen in prompt scheduling. Dit is een techniek waarmee je woorden kan mengen in een text-to-image AI-tool, zoals Stable Diffusion met het Automatic1111 GUI. Hoewel het lastig klinkt, is het best makkelijk om toe te passen. In dit artikel geef ik je meerdere uitgebreide voorbeelden en leg ik het begrip op een duidelijke manier uit.

Sampling steps in Stable Diffusion

Om een prompt te maken waarin je prompt scheduling gebruikt, moet je eerst weten wat sampling steps zijn. Sampling steps in Stable Diffusion zijn het aantal keren dat het programma herhaalt om van ruis naar een herkenbare afbeelding te gaan op basis van de tekstprompt. Je kunt het zien alsof de AI laagjes verf toevoegt aan een canvas om een schilderij te creëren.

Over het algemeen (maar niet altijd) zou je kunnen stellen:

  • Meer sampling steps leiden over het algemeen tot afbeeldingen met meer detail, maar dit kost ook meer tijd.
  • Minder steps zorgen voor een sneller proces, maar de afbeelding kan dan korrelig of vaag zijn.

Wat is Prompt scheduling?

Je kan in Automatic1111 twee of meerdere woorden met elkaar mengen, waarbij je aangeeft na hoeveel stappen AI met het ene woord moet stoppen en met het andere woord moet beginnen. Dit heet prompt scheduling. Dit klinkt misschien wat lastig, maar het is eigenlijk best eenvoudig. Hieronder leg ik het aan de hand van prompts en voorbeelden uit. In een prompt ziet het er als volgt uit:

[woord1:woord2: factor]
  • Woord1: Een woord waarmee AI moet starten, bijvoorbeeld yellow
  • Woord 2: Een woord waarmee AI verder moet gaan, bijvoorbeeld red
  • Factor: Na hoeveel stappen (sampling steps) AI moet overstappen naar het volgende woord tijdens het genereren van de afbeelding. Bijvoorbeeld: 5

Je kan de factor op twee manieren instellen.

  1. Aan de hand van het aantal stappen waarna je wilt dat er overgeschakeld wordt naar het andere woord. Bijvoorbeeld: als je 40 sampling steps gebruikt, kan je het cijfer 30 invullen. Na 30 stappen stapt AI over op het andere woord.
  2. Door het invoeren van een percentage. Bijvoorbeeld 0.5 als je wilt dat na 50% van de sampling steps naar een ander woord geschakeld moet worden.

Als ik invoer: a woman with [yellow:red:0.1] long straight hair. Dan zeg ik tegen de text-to-image AI-tool: ik wil dat je begint met een gele haarkleur, maar nadat je 10% van de stappen hebt gehad, moet je verder gaan met het genereren van rood haar. In het eindresultaat zal de haarkleur overwegend rood zijn.

Goed om te weten: [yellow:red:0.5] staat gelijk aan [yellow:red:20] als ik uitga van 40 sampling steps.

Een voorbeeld: geel en rood haar

In dit voorbeeld heb ik dezelfde prompt meerdere keren uitgevoerd. Ik heb alleen de factor aangepast. Ik gebruik voor dit voorbeeld 40 sampling steps. De basisprompt die ik gebruik:

eye-level headshot of woman with [yellow:red:0] long straight hair, professional shot, dlsr, 35mm, grey backdrop

Ik geef bij de eerste afbeelding aan: begin bij stap 0 met het genereren van rood haar. Bij de tweede afbeelding geef ik aan: start met blond haar, maar stap over na stap 10 op rood haar etc. etc.

Ik heb verder geen rekening gehouden met het model, want ik vind dit wel een typisch standaard Stable Diffusion model (lees hoe je unieke gezichten kan genereren)

Nog een voorbeeld

Als je prompt scheduling gebruikt, betekent het niet dat de rest van de prompt wordt genegeerd. In de onderstaande prompt heb ik bijvoorbeeld aangegeven dat het gaat om een oude vrouw. Hier heb ik ook extra gewicht aan gehangen (1.5x). In de trainingsdata van het model dat ik gebruik hebben oudere vrouwen grijs haar. Dit zie je dan ook terug in het eindresultaat.

Headshot photo of an (old:1.5) woman with long straight [blue:black:10] hair. She is smiling slightly, looking directly into the camera.

Hier heb ik bij de eerste afbeelding aangegeven dat AI moet starten met het genereren van een oudere vrouw met blauw haar. Pas na stap 35 van de 40 moet er nog een beetje donker haar worden gegenereerd.

Kleding

Je hoeft prompt scheduling natuurlijk niet alleen te gebruiken met kleuren. Je kan het eigenlijk op alles toepassen. In dit voorbeeld heb ik het uitgetest met patronen op kleding. Ik heb volgende prompt geschreven als basis:

A black woman wearing a sundress with [hearts:dots:5] pattern

Je kan ook meerdere keywords gebruiken in prompt scheduling

Als laatste wil ik een iets geavanceerder voorbeeld geven. In dit voorbeeld heb ik een prompt gemaakt waar ik prompt scheduling in gebruik, maar dan met meerdere woorden. Ik moet eerlijk zeggen dat dit niet altijd even goede resultaten zal geven, maar in sommige gevallen (bijvoorbeeld unieke gezichten genereren) wel kan helpen. Ik bouw voor de duidelijkheid de prompt eerst op:

  • [dog:sheep] = een afbeelding van een hondschaap. Dit kan zijn een hond in schapenpak of schaap met hondenkop, afhankelijk van het model sta je gebruikt en de vrijheid die je Stable Diffusion geeft.
  • [dog:sheep:0.5] = Verschuift na 50% van de sampling steps van hond naar schaap
  • [[dog:sheep:0.33]:bear:0.66] = Verschuift van hond naar schaap op 33% van de sampling steps. Verschuift daarna naar beer op 66% van de stappen

Je krijgt hier soms wel héle vreemde resultaten mee.

Plaats een reactie

Share to...