Andersons hoek
Drie uitdagingen voor Stable Diffusion

De release van stability.ai’s Stable Diffusion latent diffusion image synthesis model een paar weken geleden kan een van de meest significante technologische onthullingen sinds DeCSS in 1999 zijn; het is zeker de grootste gebeurtenis in AI-gegenereerde beelden sinds de deepfakes code in 2017 werd gekopieerd naar GitHub en geforkt naar DeepFaceLab en FaceSwap, evenals de real-time streaming deepfake software DeepFaceLive.
Met één slag werden de gebruikersfrustraties over de inhoudsbeperkingen in DALL-E 2’s image synthesis API opzij gezet, toen bleek dat Stable Diffusion’s NSFW-filter kon worden uitgeschakeld door één regel code te wijzigen. Porn-georiënteerde Stable Diffusion Reddits verschenen bijna onmiddellijk en werden even snel afgebroken, terwijl de ontwikkelaar en gebruikerskamp zich op Discord splitsten in officiële en NSFW-gemeenschappen, en Twitter begon vol te lopen met fantastische Stable Diffusion-creaties.
Op dit moment lijkt elke dag een aantal geweldige innovaties te brengen van de ontwikkelaars die het systeem hebben overgenomen, met plugins en derde-partijaanvullingen die haastig worden geschreven voor Krita, Photoshop, Cinema4D, Blender en vele andere toepassingsplatforms.
Ondertussen wordt promptcraft – de nu professionele kunst van ‘AI-whispering’, die mogelijk de kortste carrièremogelijkheid wordt sinds ‘Filofax-binder’ – al gecommercialiseerd, terwijl vroege monitisering van Stable Diffusion plaatsvindt op Patreon-niveau, met de zekerheid van meer geavanceerde aanbiedingen die zullen komen, voor diegenen die niet willen navigeren door Conda-gebaseerde installaties van de broncode, of de proscriptieve NSFW-filters van web-gebaseerde implementaties.
Het tempo van ontwikkeling en het gevoel van exploratie van gebruikers gaat zo snel dat het moeilijk is om ver vooruit te kijken. Eigenlijk weten we nog niet precies waarmee we te maken hebben, of wat alle beperkingen of mogelijkheden kunnen zijn.
Nonetheless, laten we eens kijken naar drie van de meest interessante en uitdagende hindernissen voor de snel gevormde en snel groeiende Stable Diffusion-gemeenschap om te overwinnen.
1: Optimalisatie van tegel-gebaseerde pijplijnen
Met beperkte hardwarebronnen en harde limieten op de resolutie van trainingsafbeeldingen, lijkt het waarschijnlijk dat ontwikkelaars workarounds zullen vinden om zowel de kwaliteit als de resolutie van Stable Diffusion-uitvoer te verbeteren. Veel van deze projecten zullen waarschijnlijk de beperkingen van het systeem exploiteren, zoals de native resolutie van slechts 512×512 pixels.
Stable Diffusion is getraind op vierkante verhoudingsafbeeldingen, in dit geval herschikt naar 512×512, zodat de bronafbeeldingen konden worden geregulariseerd en binnen de beperkingen van de GPUs die het model hebben getraind, konden passen.
Daarom ‘denkt’ Stable Diffusion (als het al denkt) in 512×512-termen, en zeker in vierkante termen. Veel gebruikers die momenteel de limieten van het systeem onderzoeken, melden dat Stable Diffusion de meest betrouwbare en minst glitchy resultaten produceert bij deze vrij beperkte aspectverhouding (zie ‘extremititeiten aanpakken’ hieronder).
Hoewel verschillende implementaties upscaling via RealESRGAN (en kunnen slecht weergegeven gezichten fixen via GFPGAN) hebben, zijn verschillende gebruikers momenteel methoden aan het ontwikkelen om afbeeldingen op te splitsen in 512x512px-secties en de afbeeldingen samen te voegen tot grotere composietwerken.

Deze 1024×576-weergave, een resolutie die normaal gesproken onmogelijk is in een enkele Stable Diffusion-weergave, is gemaakt door het attention.py Python-bestand van de DoggettX-fork van Stable Diffusion (een versie die tegel-gebaseerde upscaling implementeert) te kopiëren en plakken in een andere fork. Bron: https://old.reddit.com/r/StableDiffusion/comments/x6yeam/1024x576_with_6gb_nice/
Hoewel sommige initiatieven van deze soort originele code of andere bibliotheken gebruiken, zal de txt2imghd-poort van GOBIG (een modus in de VRAM-hongerige ProgRockDiffusion) binnenkort deze functionaliteit aan de hoofdtak bieden. Terwijl txt2imghd een gewijd poort van GOBIG is, betreffen andere inspanningen van community-ontwikkelaars verschillende implementaties van GOBIG.

Een handig abstracte afbeelding in de oorspronkelijke 512x512px-weergave (links en tweede van links); opgeschaald door ESGRAN, die nu meer of minder native is voor alle Stable Diffusion-distributies; en gegeven ‘speciale aandacht’ via een implementatie van GOBIG, waardoor details worden geproduceerd die, tenminste binnen de grenzen van de afbeeldingssectie, beter zijn opgeschaald. Bron: https://old.reddit.com/r/StableDiffusion/comments/x72460/stable_diffusion_gobig_txt2imghd_easy_mode_colab/
De soort abstracte voorbeeld hierboven heeft veel ‘kleine koninkrijken’ van details die deze solipsistische benadering van upscaling ondersteunen, maar die mogelijk meer uitdagende code-gedreven oplossingen vereisen om niet-repetitieve, samenhangende upscaling te produceren die niet eruitziet alsof het is samengesteld uit veel delen. Niet in de laatste plaats in het geval van menselijke gezichten, waar we ongewoon gevoelig voor zijn voor afwijkingen of ‘verstorende’ artefacten. Daarom zullen gezichten uiteindelijk mogelijk een speciale oplossing vereisen.
Stable Diffusion heeft momenteel geen mechanisme om de aandacht te richten op het gezicht tijdens een render op dezelfde manier als mensen gezichtsinformatie prioriteren. Hoewel sommige ontwikkelaars in de Discord-gemeenschappen methoden overwegen om dit soort ‘verbeterde aandacht’ te implementeren, is het momenteel veel gemakkelijker om het gezicht handmatig (en uiteindelijk automatisch) te verbeteren nadat de initiële render heeft plaatsgevonden.
Een menselijk gezicht heeft een interne en complete semantische logica die niet wordt gevonden in een ‘tegel’ van de onderste hoek van (bijvoorbeeld) een gebouw, en daarom is het momenteel mogelijk om zeer effectief ‘in te zoomen’ en het gezicht opnieuw te renderen in Stable Diffusion-uitvoer.

Links, Stable Diffusion’s initiële poging met de prompt ‘Volledige kleurenfoto van Christina Hendricks die een drukke plaats binnenkomt, een regenjas draagt; Canon50, oogcontact, hoge details, hoge gezichtsdetails’. Rechts, een verbeterd gezicht verkregen door het vage en schetsmatige gezicht uit de eerste render terug te voeren naar de volledige aandacht van Stable Diffusion met behulp van Img2Img (zie geanimeerde afbeeldingen hieronder).
In de afwezigheid van een speciale Textual Inversion-oplossing (zie hieronder), zal dit alleen werken voor beroemdheden waarvan de persoon in kwestie al goed wordt weergegeven in de LAION-datasets die Stable Diffusion hebben getraind. Daarom zal het werken voor degenen als Tom Cruise, Brad Pitt, Jennifer Lawrence en een beperkt aantal echte mediaberoemdheden die in grote aantallen afbeeldingen in de brondata aanwezig zijn.

Een overtuigende persfoto genereren met de prompt ‘Volledige kleurenfoto van Christina Hendricks die een drukke plaats binnenkomt, een regenjas draagt; Canon50, oogcontact, hoge details, hoge gezichtsdetails’.
Voor beroemdheden met lange en duurzame carrières zal Stable Diffusion meestal een afbeelding van de persoon produceren op een recente (d.w.z. oudere) leeftijd, en zal het nodig zijn om prompt-aanvullingen toe te voegen zoals ‘jong’ of ‘in het jaar [JAAR]’ om jongere uitziende afbeeldingen te produceren.

Met een prominente, veel gefotografeerde en consistente carrière die bijna 40 jaar duurt, is actrice Jennifer Connelly een van de weinige beroemdheden in LAION die Stable Diffusion in staat stellen om een reeks leeftijden weer te geven. Bron: prepack Stable Diffusion, lokaal, v1.4 checkpoint; leeftijdsgebonden prompts.
Dit komt grotendeels door de verspreiding van digitale (in plaats van dure, op emulsie gebaseerde) persfotografie vanaf het midden van de jaren 2000, en de latere toename in volume van beelduitvoer als gevolg van verhoogde breedbandssnelheden.

De gerenderde afbeelding wordt doorgegeven aan Img2Img in Stable Diffusion, waar een ‘focusgebied’ wordt geselecteerd en een nieuwe, maximale grootte render wordt gemaakt van alleen dat gebied, waardoor Stable Diffusion alle beschikbare middelen kan richten op het opnieuw creëren van het gezicht.

Het ‘hoge aandacht’ gezicht terug componeren in de oorspronkelijke render. Behalve gezichten, zal dit proces alleen werken met entiteiten die een potentieel bekende, samenhangende en integrale verschijning hebben, zoals een deel van de oorspronkelijke foto die een distinctief object heeft, zoals een horloge of een auto. Het opschalen van een deel van – bijvoorbeeld – een muur zal waarschijnlijk leiden tot een vreemd uitziende gereconstrueerde muur, omdat de tegelrenders geen bredere context hadden voor deze ‘puzzelstuk’ toen ze werden gerenderd.
Sommige beroemdheden in de database komen ‘vooraf bevroren’ in de tijd, ofwel omdat ze vroeg zijn overleden (zoals Marilyn Monroe), of omdat ze alleen een kortstondige mainstream-populariteit hebben gehad, waardoor een hoge hoeveelheid afbeeldingen in een beperkte periode wordt gegenereerd. Het peilen van Stable Diffusion biedt mogelijk een soort ‘huidige’ populariteitsindex voor moderne en oudere sterren. Voor sommige oudere en hedendaagse beroemdheden zijn er niet genoeg afbeeldingen in de brondata om een zeer goede gelijkenis te verkrijgen, terwijl de duurzame populariteit van bepaalde lang overleden of anderszins verbleekte sterren ervoor zorgt dat hun redelijke gelijkenis kan worden verkregen uit het systeem.

Stable Diffusion-renders onthullen snel welke beroemde gezichten goed worden weergegeven in de trainingsdata. Ondanks haar enorme populariteit als oudere tiener op het moment van schrijven, was Millie Bobby Brown jonger en minder bekend toen de LAION-brondatasets van het web werden gescraped, waardoor een hoge kwaliteit gelijkenis met Stable Diffusion op dit moment problematisch is.
Waar de data beschikbaar is, kunnen tegel-gebaseerde up-res-oplossingen in Stable Diffusion verder gaan dan het focussen op het gezicht: ze kunnen mogelijk nog nauwkeurigere en gedetailleerdere gezichten mogelijk maken door de gezichtskenmerken af te breken en de volledige kracht van lokale GPU-bronnen op belangrijke kenmerken individueel te richten, voordat ze worden samengesteld – een proces dat momenteel nog handmatig is.
Dit is niet beperkt tot gezichten, maar het is beperkt tot delen van objecten die minstens even voorspelbaar zijn geplaatst in de bredere context van het hostobject, en die voldoen aan hoge niveau-embeddings die men redelijkerwijs kan verwachten te vinden in een hyperschaal-dataset.
De echte limiet is de hoeveelheid beschikbare referentiedata in de dataset, omdat uiteindelijk diep geïtereerde details volledig ‘gehallucineerd’ (d.w.z. fictief) en minder authentiek zullen worden.
Deze hoge niveau-granulaire vergrotingen werken in het geval van Jennifer Connelly, omdat ze goed wordt weergegeven over een reeks leeftijden in LAION-aesthetics (de primaire subset van LAION 5B die Stable Diffusion gebruikt), en over het algemeen in LAION; in veel andere gevallen zou de nauwkeurigheid lijden onder een gebrek aan data, waardoor fine-tuning (aanvullende training, zie ‘Aanpassing’ hieronder) of Textual Inversion (zie hieronder) noodzakelijk zou zijn.
Tegels zijn een krachtige en relatief goedkope manier voor Stable Diffusion om hi-res-uitvoer te produceren, maar algoritme-gebaseerde tegel-upscaling van deze soort, als het ontbreekt aan een bredere, hogere niveau-aandachtsmechanisme, kan mogelijk niet voldoen aan de gehoopte standaarden over een reeks inhoudstypen.
2: Het aanpakken van problemen met menselijke ledematen
Stable Diffusion komt niet aan zijn naam tegemoet wanneer het gaat om het weergeven van de complexiteit van menselijke extremiteiten. Handen kunnen willekeurig vermenigvuldigen, vingers kunnen samensmelten, derde benen verschijnen ongevraagd en bestaande ledematen verdwijnen zonder spoor. In zijn verdediging deelt Stable Diffusion dit probleem met zijn stabiele metgezellen, en zeker met DALL-E 2.

Onbewerkte resultaten van DALL-E 2 en Stable Diffusion (1.4) eind augustus 2022, beide met problemen met ledematen. Prompt is ‘Een vrouw die een man omhelst’
Stable Diffusion-fans die hopen dat de komende 1.5-checkpoint (een meer intensief getrainde versie van het model, met verbeterde parameters) het ledemaat-gebrek zou oplossen, zullen waarschijnlijk teleurgesteld worden. Het nieuwe model, dat over ongeveer twee weken zal worden uitgebracht, wordt momenteel in première gegaan op het commerciële stability.ai-portaal DreamStudio, dat 1.5 standaard gebruikt, en waar gebruikers de nieuwe uitvoer kunnen vergelijken met renders van hun lokale of andere 1.4-systemen:

Bron: Lokale 1.4 prepack en https://beta.dreamstudio.ai/

Bron: Lokale 1.4 prepack en https://beta.dreamstudio.ai/

Bron: Lokale 1.4 prepack en https://beta.dreamstudio.ai/
Net als vaak, kan de kwaliteit van de data de primaire bijdragende oorzaak zijn.
De open source-databases die beeldsynthesesystemen zoals Stable Diffusion en DALL-E 2 aandrijven, kunnen veel labels bieden voor zowel individuele mensen als intermenselijke actie. Deze labels worden getraind met hun geassocieerde afbeeldingen of segmenten van afbeeldingen.

Stable Diffusion-gebruikers kunnen de concepten die in het model zijn getraind, verkennen door de LAION-aesthetics-dataset te doorzoeken, een subset van de grotere LAION 5B-dataset, die het systeem aandrijft. De afbeeldingen zijn gerangschikt niet op hun alfabetische labels, maar op hun ‘aesthetische score’. Bron: https://rom1504.github.io/clip-retrieval/
Een goede hiërarchie van individuele labels en klassen die bijdragen aan de weergave van een menselijke arm zou iets zijn als lichaam>arm>hand>vingers>[subdelen + duim]> [vingersegmenten]> [nagels].

Granulaire semantische segmentatie van de delen van een hand. Zelfs deze ongebruikelijk gedetailleerde deconstruktie laat elke ‘vinger’ als een enkele entiteit, zonder rekening te houden met de drie secties van een vinger en de twee secties van een duim. Bron: https://athitsos.utasites.cloud/publications/rezaei_petra2021.pdf
In werkelijkheid zijn de bronafbeeldingen onwaarschijnlijk consistent geannoteerd over de hele dataset, en zullen onbegeleide labelalgoritmen waarschijnlijk stoppen bij het hogere niveau van – bijvoorbeeld – ‘hand’, en de interne pixels (die technisch gezien ‘vinger’-informatie bevatten) laten als een ongelabelde massa pixels, waaruit kenmerken willekeurig kunnen worden afgeleid, en die later in renders kunnen verschijnen als een verstorende factor.

Hoe het zou moeten zijn (boven rechts, als het niet boven is gesneden), en hoe het meestal is (onder rechts), vanwege beperkte middelen voor labeling, of architecturale exploitatie van dergelijke labels als ze in de dataset bestaan.
Daarom, als een latent diffusiemodel zo ver komt als het renderen van een arm, zal het waarschijnlijk ten minste een poging doen om een hand aan het einde van die arm te renderen, omdat arm>hand de minimale vereiste hiërarchie is, vrij hoog in wat de architectuur weet over ‘menselijke anatomie’.
Daarna zullen ‘vingers’ mogelijk de kleinste groepering zijn, hoewel er 14 verdere vinger/duim-subdelen zijn om te overwegen bij het weergeven van menselijke handen.
Als deze theorie standhoudt, is er geen echte oplossing, vanwege het sectorbrede gebrek aan budget voor handmatige annotatie, en het gebrek aan adequaat effectieve algoritmen die labeling kunnen automatiseren met lage foutpercentages. In feite kan het model momenteel afhankelijk zijn van menselijke anatomische consistentie om de tekortkomingen van de dataset waarop het is getraind, te compenseren.
Een mogelijke reden waarom het niet kan vertrouwen op dit, onlangs voorgesteld op de Stable Diffusion Discord, is dat het model in de war kan raken over het juiste aantal vingers dat een (realistische) menselijke hand zou moeten hebben, omdat de LAION-gebaseerde database die het aandrijft, cartoonpersonages kan bevatten die minder vingers hebben (wat op zichzelf een arbeidsbesparende shortcut is).

Twee van de potentiële daders in ‘ontbrekende vinger’-syndroom in Stable Diffusion en soortgelijke modellen. Onder, voorbeelden van cartoonhanden uit de LAION-aesthetics-dataset die Stable Diffusion aandrijft. Bron: https://www.youtube.com/watch?v=0QZFQ3gbd6I
Als dit waar is, dan is de enige voor de hand liggende oplossing om het model opnieuw te trainen, waarbij niet-realistische menselijke inhoud wordt uitgesloten, en ervoor te zorgen dat echte gevallen van weglating (d.w.z. amputees) als uitzonderingen zijn gelabeld. Vanuit een gegevenscuratie-oogpunt alleen al zou dit een behoorlijke uitdaging zijn, vooral voor door de gemeenschap gefinancierde inspanningen.
De tweede benadering zou zijn om filters toe te passen die dergelijke inhoud (d.w.z. ‘hand met drie/vijf vingers’) uitsluiten van manifestatie tijdens de render, op dezelfde manier als OpenAI heeft, in zekere mate, gefilterd GPT-3 en DALL-E 2, zodat hun uitvoer kon worden gereguleerd zonder de bronmodellen opnieuw te trainen.

Voor Stable Diffusion kan de semantische onderscheiding tussen cijfers en zelfs ledematen verschrikkelijk vervaagd raken, wat doet denken aan de ‘body horror’-strand van horrorfilms uit de jaren 80 van regisseurs als David Cronenberg. Bron: https://old.reddit.com/r/StableDiffusion/comments/x6htf6/a_study_of_stable_diffusions_strange_relationship/
Er kan worden gesteld dat er twee overgebleven wegen vooruit zijn: meer data naar het probleem gooien, en het toepassen van derde-partijinterpretatiesystemen die kunnen ingrijpen wanneer fysieke fouten van het type dat hier wordt beschreven, worden gepresenteerd aan de eindgebruiker (op zijn minst zou dit OpenAI een methode geven om restitutie te bieden voor ‘body horror’-renders, als het bedrijf gemotiveerd was om dit te doen).
3: Aanpassing
Een van de meest spannende mogelijkheden voor de toekomst van Stable Diffusion is het perspectief van gebruikers of organisaties die herziene systemen ontwikkelen; modificaties die inhoud buiten de vooraf getrainde LAION-sfeer in het systeem integreren – idealiter zonder de onbeheersbare uitgaven van het opnieuw trainen van het hele model, of het risico dat gemoeid is met het trainen van een grote hoeveelheid nieuwe afbeeldingen in een bestaand, volwassen en capabel model.
Door analogie: als twee minder getalenteerde studenten zich aansluiten bij een geavanceerde klas van dertig studenten, zullen ze ofwel assimileren en bijbenen, of falen als outcasts; in beide gevallen zal de gemiddelde prestatie van de klas waarschijnlijk niet worden beïnvloed. Als vijftien minder getalenteerde studenten zich aansluiten, zal de cijfercurve voor de hele klas waarschijnlijk lijden.
Net zo, kan de synergistische en vrij delicate netwerk van relaties die zijn opgebouwd tijdens een langdurige en dure modeltraining, worden geschonden, in sommige gevallen effectief vernietigd, door te veel nieuwe data, waardoor de uitvoerkwaliteit van het model over het algemeen daalt.
Het geval voor het doen hiervan is voornamelijk waar uw interesse ligt in het volledig overnemen van het conceptuele begrip van relaties en dingen van het model, en het toewijzen ervan voor de exclusieve productie van inhoud die vergelijkbaar is met de extra materiaal dat u hebt toegevoegd.
Daarom zal het trainen van 500.000 Simpsons-frames in een bestaande Stable Diffusion-checkpoint waarschijnlijk, uiteindelijk, een betere Simpsons-simulator opleveren dan de oorspronkelijke build had kunnen bieden, onder voorbehoud dat voldoende brede semantische relaties overleven (d.w.z. Homer Simpson die een hotdog eet, die materiaal over hotdogs kan vereisen dat niet in uw extra materiaal zat, maar al in de checkpoint bestond), en onder voorbehoud dat u niet plotseling wilt overschakelen van Simpsons-inhoud naar het creëren van fabuleuze landschappen van Greg Rutkowski – omdat uw post-getrainde model zijn aandacht enorm heeft afgeleid, en niet zo goed zal zijn in het doen van dat soort dingen als het vroeger was.
Een opvallend voorbeeld hiervan is waifu-diffusion, dat met succes 56.000 anime-afbeeldingen heeft getraind in een voltooide en getrainde Stable Diffusion-checkpoint. Het is een moeilijke prospect voor een hobbyist, aangezien het model een oogverblindende minimum van 30 GB VRAM vereist, ver buiten wat waarschijnlijk beschikbaar zal zijn op consumentenniveau in de komende 40XX-series van NVIDIA.

De training van aangepaste inhoud in Stable Diffusion via waifu-diffusion: het model nam twee weken van post-training in beslag om dit niveau van illustratie te produceren. De zes afbeeldingen links laten de vooruitgang van het model zien in het maken van onderwerp-coherente uitvoer op basis van de nieuwe trainingsdata. Bron: https://gigazine.net/gsc_news/en/20220121-how-waifu-labs-create/
Een grote inspanning kan worden geleverd op dergelijke ‘forks’ van Stable Diffusion-checkpoints, alleen om te worden gehinderd door technische schuld. Ontwikkelaars op de officiële Discord hebben al aangegeven dat latere checkpoint-releases niet noodzakelijkerwijs backward-compatibel zullen zijn, zelfs met promptlogica die werkte met een eerdere versie, aangezien hun primaire interesse is in het verkrijgen van het beste model mogelijk, in plaats van het ondersteunen van legacy-toepassingen en -processen.
Daarom heeft een bedrijf of individu dat besluit om een checkpoint van Stable Diffusion te splitsen in een commercieel product, effectief geen weg terug; hun versie van het model is op dat punt een ‘hard fork’, en zal niet in staat zijn om upstream-voordelen te trekken uit latere releases van stability.ai – wat een behoorlijke toezegging is.
Het huidige, en grotere, hoop voor aanpassing van Stable Diffusion is Textual Inversion, waar de gebruiker een kleine handvol CLIP-gealigneerde afbeeldingen traint.

Een samenwerking tussen de Universiteit van Tel Aviv en NVIDIA, tekstuele inversie stelt gebruikers in staat om discrete en nieuwe entiteiten te trainen, zonder de capaciteiten van het bronmodel te vernietigen. Bron: https://textual-inversion.github.io/
Het primaire zichtbare beperking van tekstuele inversie is dat een zeer laag aantal afbeeldingen wordt aanbevolen – slechts vijf. Dit produceert effectief een beperkte entiteit die meer geschikt kan zijn voor stijltransfer-taken dan voor de invoeging van fotorealistische objecten.
Nonetheless, vinden momenteel experimenten plaats binnen de verschillende Stable Diffusion Discords die gebruikmaken van veel hogere aantallen trainingsafbeeldingen, en het resteert om te zien hoe productief de methode kan blijken. Opnieuw vereist de techniek een grote hoeveelheid VRAM, tijd en geduld.
Vanwege deze beperkende factoren, zullen we mogelijk moeten wachten tot we enkele van de meer geavanceerde tekstuele inversie-experimenten van Stable Diffusion-enthusiasten zien – en of deze benadering kan ‘je in het plaatje zetten’ op een manier die er beter uitziet dan een Photoshop-knip- en-plak, terwijl het de verbluffende functionaliteit van de officiële checkpoints behoudt.
Publicatie 6 september 2022.













