Andersons hoek

Hoe Stable Diffusion zich kan ontwikkelen als een mainstream consumentenproduct

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Ironisch genoeg is Stable Diffusion, het nieuwe AI-afbeeldingsyntheseframework dat de wereld teistert, noch stabiel noch echt “gediffuseerd” – tenminste, nog niet.

Het volledige bereik van de functionaliteiten van het systeem wordt verspreid over een smörgåsbord van constant muterende aanbiedingen van een handvol ontwikkelaars die de laatste informatie en theorieën uitwisselen in diverse discussies op Discord – en de meeste installatieprocedures voor de door hen gemaakte of aangepaste pakketten zijn verre van “plug and play”.

Ze vereisen meestal een command-line- of BAT-gestuurde installatie via GIT, Conda, Python, Miniconda en andere bleeding-edge ontwikkelingsframeworks – softwarepakketten die zo zeldzaam zijn onder de algemene consumenten dat hun installatie vaak wordt gemarkeerd door antivirus- en anti-malwareleveranciers als bewijs van een gecompromitteerd hostsysteem.

Alleen een kleine selectie van de stadia in de hindernisbaan die de standaard Stable Diffusion-installatie momenteel vereist. Veel van de distributies vereisen ook specifieke versies van Python, die in conflict kunnen komen met bestaande versies die op de machine van de gebruiker zijn geïnstalleerd - hoewel dit kan worden verholpen met Docker-gebaseerde installaties en, in zekere mate, door het gebruik van Conda-omgevingen.

Alleen een kleine selectie van de stadia in de hindernisbaan die de standaard Stable Diffusion-installatie momenteel vereist. Veel van de distributies vereisen ook specifieke versies van Python, die in conflict kunnen komen met bestaande versies die op de machine van de gebruiker zijn geïnstalleerd – hoewel dit kan worden verholpen met Docker-gebaseerde installaties en, in zekere mate, door het gebruik van Conda-omgevingen.

Berichten in zowel de SFW- als de NSFW-Stable Diffusion-gemeenschappen worden overspoeld met tips en trucs met betrekking tot het hacken van Python-scripts en standaardinstellingen, om betere functionaliteit te kunnen bieden of om veel voorkomende afhankelijkheidsfouten en andere problemen op te lossen.

Dit laat de gemiddelde consument, geïnteresseerd in het maken van geweldige afbeeldingen vanuit tekstprompts, vrijwel aan de genade van het groeiende aantal gemonetiseerde API-webinterfaces, waarvan de meeste een minimaal aantal gratis afbeeldingengeneraties bieden voordat ze het kopen van tokens vereisen.

Bovendien weigeren de meeste van deze webgebaseerde aanbiedingen om NSFW-inhoud (veel waarvan kan verband houden met niet-pornografische onderwerpen van algemeen belang, zoals ‘oorlog’) te produceren, wat Stable Diffusion onderscheidt van de gezuiverde diensten van OpenAI’s DALL-E 2.

‘Photoshop voor Stable Diffusion’

Wat de bredere wereld naar verluidt verwacht, is ‘Photoshop voor Stable Diffusion’ – een cross-platforminstalleerbare toepassing die de beste en meest krachtige functionaliteit van Stability.ai’s architectuur combineert, evenals de verschillende geniale innovaties van de opkomende SD-ontwikkelingsgemeenschap, zonder zwevende CLI-vensters, obscure en voortdurend veranderende installatie- en update-routines, of ontbrekende functies.

Wat we momenteel hebben, in de meeste capabele installaties, is een verschillend elegante webpagina met een command-linevenster en wiens URL een localhost-poort is:

Soortgelijk aan CLI-gestuurde synthesetoepassingen zoals FaceSwap en de BAT-georiënteerde DeepFaceLab, toont de 'prepack'-installatie van Stable Diffusion zijn command-line-wortels, met de interface die toegankelijk is via een localhost-poort (zie bovenaan de afbeelding) die communiceert met de CLI-gebaseerde Stable Diffusion-functionaliteit.

Soortgelijk aan CLI-gestuurde synthesetoepassingen zoals FaceSwap en de BAT-georiënteerde DeepFaceLab, toont de ‘prepack’-installatie van Stable Diffusion zijn command-line-wortels, met de interface die toegankelijk is via een localhost-poort (zie bovenaan de afbeelding) die communiceert met de CLI-gebaseerde Stable Diffusion-functionaliteit.

Er is zonder twijfel een meer gestroomlijnde toepassing in aantocht. Er zijn al verschillende Patreon-gebaseerde integrale toepassingen die kunnen worden gedownload, zoals GRisk en NMKD (zie afbeelding hieronder) – maar geen enkele die, tot nu toe, de volledige reeks functies integreert die sommige van de geavanceerdere en minder toegankelijke implementaties van Stable Diffusion kunnen bieden.

Vroege, Patreon-gebaseerde pakketten van Stable Diffusion, licht 'ge-appt'. NMKD's is de eerste die de CLI-uitvoer rechtstreeks in de GUI integreert.

Vroege, Patreon-gebaseerde pakketten van Stable Diffusion, licht ‘ge-appt’. NMKD’s is de eerste die de CLI-uitvoer rechtstreeks in de GUI integreert.

Laten we eens kijken hoe een meer gepolijste en integrale implementatie van deze verbazingwekkende open-sourcewonder eruit zou kunnen zien – en welke uitdagingen het zou kunnen tegenkomen.

Rechtelijke overwegingen voor een volledig gefinancierde commerciële Stable Diffusion-toepassing

De NSFW-factor

De Stable Diffusion-broncode is vrijgegeven onder een extreem permissieve licentie die commerciële herimplementaties en afgeleide werken die uitgebreid zijn gebouwd vanuit de broncode, niet verbiedt.

Naast de eerder genoemde en groeiende aantal Patreon-gebaseerde Stable Diffusion-bouwpakketten, evenals het uitgebreide aantal toepassingsplugins die worden ontwikkeld voor Figma, Krita, Photoshop, GIMP en Blender (onder andere), is er geen praktische reden waarom een goed gefinancierde softwareontwikkelingshuis niet een veel geavanceerdere en capabelere Stable Diffusion-toepassing zou kunnen ontwikkelen. Vanuit een marktperspectief is er alle reden om aan te nemen dat verschillende van dergelijke initiatieven al goed op weg zijn.

Hier staan dergelijke inspanningen onmiddellijk voor het dilemma of ze, net als de meeste web-API’s voor Stable Diffusion, de toepassing zullen toestaan om Stable Diffusion’s native NSFW-filter (een fragment van code) uit te schakelen.

‘Begraven’ van de NSFW-schakelaar

Hoewel Stability.ai’s open-sourcelicentie voor Stable Diffusion een breed interpreteerbare lijst met toepassingen bevat waarvoor het niet mag worden gebruikt (waaronder pornografische inhoud en deepfakes), is de enige manier waarop een leverancier dit gebruik effectief zou kunnen verbieden, door de NSFW-filter te compileren in een ondoorzichtige uitvoerbaar bestand in plaats van een parameter in een Python-bestand, of door een checksum-vergelijking af te dwingen op het Python-bestand of de DLL die de NSFW-directive bevat, zodat renderingen niet kunnen plaatsvinden als gebruikers deze instelling wijzigen.

Dit zou de vermeende toepassing ‘ontmand’ achterlaten op een manier die vergelijkbaar is met hoe DALL-E 2 momenteel is, waardoor de commerciële aantrekkingskracht wordt vermindert. Bovendien zouden onherleidbare ‘gekloonde’ versies van deze componenten (ofwel oorspronkelijke Python-runtime-elementen of gecompileerde DLL-bestanden, zoals momenteel worden gebruikt in de Topaz-lijn van AI-afbeeldingverbeteringstools) waarschijnlijk verschijnen in de torrent/hackergemeenschap om dergelijke beperkingen te omzeilen, door eenvoudigweg de belemmerende elementen te vervangen en checksum-vereisten te negeren.

Uiteindelijk kan de leverancier ervoor kiezen om eenvoudigweg Stability.ai’s waarschuwing tegen misbruik te herhalen, die het eerste uitvoeren van veel huidige Stable Diffusion-distributies kenmerkt.

Echter, de kleine open-sourceontwikkelaars die momenteel informele vrijwaringen op deze manier gebruiken, hebben weinig te verliezen in vergelijking met een softwarebedrijf dat aanzienlijke hoeveelheden tijd en geld heeft geïnvesteerd in het maken van Stable Diffusion volledig functioneel en toegankelijk – wat dieper overleg nodig maakt.

Deepfake-aansprakelijkheid

Zoals we onlangs hebben opgemerkt, bevat de LAION-aesthetische database, onderdeel van de 4,2 miljard afbeeldingen waarop Stable Diffusion’s voortdurende modellen zijn getraind, een groot aantal beroemdheden, waardoor gebruikers effectief deepfakes kunnen maken, inclusief deepfake-celebrity-porno.

Uit ons recente artikel, vier stadia van Jennifer Connelly over vier decennia van haar carrière, afgeleid van Stable Diffusion.

Uit ons recente artikel, vier stadia van Jennifer Connelly over vier decennia van haar carrière, afgeleid van Stable Diffusion.

Dit is een afzonderlijk en meer omstreden kwestie dan de generatie van (meestal) legale ‘abstracte’ porno, die geen ‘echte’ mensen afbeeldt (hoewel dergelijke afbeeldingen worden afgeleid van meerdere echte foto’s in het trainingsmateriaal).

Aangezien een toenemend aantal Amerikaanse staten en landen wetten tegen deepfake-porno ontwikkelen of hebben ingesteld, kan Stable Diffusion’s vermogen om celebrity-porno te creëren betekenen dat een commerciële toepassing die niet volledig is gecensureerd (d.w.z. die pornografisch materiaal kan maken) mogelijk enige capaciteit moet hebben om celebrity-gezichten te filteren.

Een methode zou zijn om een ingebouwd ‘blacklist’ van termen te bieden die niet zullen worden geaccepteerd in een gebruikersprompt, met betrekking tot beroemdheden en fictieve personages waarmee ze geassocieerd kunnen worden. Verondersteld wordt dat dergelijke instellingen in meer talen dan alleen Engels zouden moeten worden ingesteld, aangezien de oorspronkelijke gegevens andere talen bevatten. Een andere benadering zou zijn om celebrity-herkenningssystemen zoals die ontwikkeld door Clarifai te integreren.

Het kan nodig zijn voor softwareproducenten om dergelijke methoden te integreren, misschien aanvankelijk uitgeschakeld, wat kan helpen voorkomen dat een volledig zelfstandige Stable Diffusion-toepassing celebrity-gezichten genereert, totdat er nieuwe wetgeving is die een dergelijke functionaliteit illegaal zou maken.

Nogmaals, een dergelijke functionaliteit zou onherroepelijk kunnen worden gedecompileerd en omgekeerd door geïnteresseerde partijen; echter, de softwareproducent zou, in dat geval, kunnen beweren dat dit effectief ongeoorloofde vandalisme is – zolang een dergelijke reverse-engineering niet te gemakkelijk wordt gemaakt.

Functies die kunnen worden opgenomen

De kernfunctionaliteit in elke distributie van Stable Diffusion zou verwacht worden van elke goed gefinancierde commerciële toepassing. Deze omvatten de mogelijkheid om tekstprompts te gebruiken om passende afbeeldingen te genereren (tekst-naar-afbeelding); de mogelijkheid om schetsen of andere afbeeldingen te gebruiken als richtlijnen voor nieuwe gegenereerde afbeeldingen (afbeelding-naar-afbeelding); de middelen om aan te passen hoe ‘imaginatief’ het systeem is geïnstrueerd om te zijn; een manier om renderingsduur tegen kwaliteit af te wegen; en andere ‘basics’, zoals optionele automatische afbeelding/prompt-archivering, en routine optionele upscaling via RealESRGAN, en ten minste basis ‘gezichtsfixatie’ met GFPGAN of CodeFormer.

Dat is een behoorlijk ‘vanille-installatie’. Laten we eens kijken naar enkele van de geavanceerdere functies die momenteel worden ontwikkeld of uitgebreid, die kunnen worden geïntegreerd in een volledig uitgeruste ‘traditionele’ Stable Diffusion-toepassing.

Stochastische bevriezing

Zelfs als u een zaad van een eerder geslaagde rendering opnieuw gebruikt, is het verschrikkelijk moeilijk om Stable Diffusion ertoe te brengen om een transformatie nauwkeurig te herhalen als enig deel van de prompt of de bronafbeelding (of beide) wordt gewijzigd voor een latere rendering.

Dit is een probleem als u EbSynth wilt gebruiken om Stable Diffusion’s transformaties op te leggen op echte video op een temporeel coherente manier – hoewel de techniek zeer effectief kan zijn voor eenvoudige hoofd-en-schouderopnamen:

Beperkte beweging kan EbSynth een effectief medium maken om Stable Diffusion-transformaties om te zetten in realistische video. Bron: https://streamable.com/u0pgzd

Beperkte beweging kan EbSynth een effectief medium maken om Stable Diffusion-transformaties om te zetten in realistische video. Bron: https://streamable.com/u0pgzd

EbSynth werkt door een kleine selectie van ‘gewijzigde’ sleutelkaders uit te breiden tot een video die is gerenderd in een reeks afbeeldingsbestanden (en die later opnieuw kan worden samengesteld tot een video).

In dit voorbeeld van de EbSynth-site zijn een klein aantal kaders van een video geschilderd in een artistieke stijl. EbSynth gebruikt deze kaders als stijlgidsen om de hele video te wijzigen zodat deze overeenkomt met de geschilderde stijl. Bron: https://www.youtube.com/embed/eghGQtQhY38

In dit voorbeeld van de EbSynth-site zijn een klein aantal kaders van een video geschilderd in een artistieke stijl. EbSynth gebruikt deze kaders als stijlgidsen om de hele video te wijzigen zodat deze overeenkomt met de geschilderde stijl. Bron: https://www.youtube.com/embed/eghGQtQhY38

In het onderstaande voorbeeld, dat vrijwel geen beweging vertoont van de (echte) blonde yogainstructrice links, heeft Stable Diffusion nog steeds moeite om een consistent gezicht te behouden, omdat de drie afbeeldingen die worden getransformeerd als ‘sleutelkaders’ niet helemaal identiek zijn, zelfs als ze allemaal hetzelfde numerieke zaad delen.

Hier, zelfs met dezelfde prompt en zaad over alle drie transformaties, en zeer weinig veranderingen tussen de bronkaders, variëren de lichaamsspieren in grootte en vorm, maar belangrijker nog, het gezicht is inconsistent, waardoor temporele consistentie in een potentiële EbSynth-rendering wordt belemmerd.

Hier, zelfs met dezelfde prompt en zaad over alle drie transformaties, en zeer weinig veranderingen tussen de bronkaders, variëren de lichaamsspieren in grootte en vorm, maar belangrijker nog, het gezicht is inconsistent, waardoor temporele consistentie in een potentiële EbSynth-rendering wordt belemmerd.

Hoewel de SD/EbSynth-video hieronder zeer inventief is, waarbij de vingers van de gebruiker zijn getransformeerd in (respectievelijk) een lopend paar broekspijpen en een eend, typifiëren de inconsistentie van de broek de problemen die Stable Diffusion heeft met het behouden van consistentie over verschillende sleutelkaders, zelfs als de bronkaders op elkaar lijken en het zaad consistent is.

Een man zijn vingers worden een lopende man en een eend, via Stable Diffusion en EbSynth. Bron: https://old.reddit.com/r/StableDiffusion/comments/x92itm/proof_of_concept_using_img2img_ebsynth_to_animate/

Een man zijn vingers worden een lopende man en een eend, via Stable Diffusion en EbSynth. Bron: https://old.reddit.com/r/StableDiffusion/comments/x92itm/proof_of_concept_using_img2img_ebsynth_to_animate/

De gebruiker die deze video opmerkte dat de eendtransformatie, die overigens het meest effectief was, slechts één getransformeerd sleutelkader vereiste, terwijl het nodig was om 50 Stable Diffusion-afbeeldingen te renderen om de lopende broek te creëren, die meer temporele inconsistentie vertoont. De gebruiker merkte ook op dat het vijf pogingen kostte om consistentie te bereiken voor elk van de 50 sleutelkaders.

Daarom zou het een groot voordeel zijn voor een echt complete Stable Diffusion-toepassing om functionaliteit te bieden die kenmerken tot het maximum behoudt over sleutelkaders.

Een mogelijkheid is dat de toepassing de gebruiker toelaat om de stochastische code voor de transformatie op elk kader te ‘bevriezen’, wat momenteel alleen kan worden bereikt door de broncode handmatig te wijzigen. Zoals het onderstaande voorbeeld laat zien, helpt dit bij temporele consistentie, hoewel het deze niet volledig oplost:

Een Reddit-gebruiker transformeerde webcambeelden van zichzelf in verschillende beroemde mensen door niet alleen het zaad te behouden (wat elke implementatie van Stable Diffusion kan doen), maar door ervoor te zorgen dat de stochastic_encode() parameter identiek was in elke transformatie. Dit werd bereikt door de code te wijzigen, maar zou gemakkelijk een gebruikersschakelaar kunnen worden.

Een Reddit-gebruiker transformeerde webcambeelden van zichzelf in verschillende beroemde mensen door niet alleen het zaad te behouden (wat elke implementatie van Stable Diffusion kan doen), maar door ervoor te zorgen dat de stochastic_encode() parameter identiek was in elke transformatie. Dit werd bereikt door de code te wijzigen, maar zou gemakkelijk een gebruikersschakelaar kunnen worden. Bron: https://old.reddit.com/r/StableDiffusion/comments/wyeoqq/turning_img2img_into_vid2vid/

Cloud-gebaseerde tekstuele inversie

Een betere oplossing voor het verkrijgen van temporeel consistente personages en objecten is om ze ‘in te bakken’ in een tekstuele inversie – een 5KB-bestand dat kan worden getraind in een paar uur op basis van slechts vijf geannoteerde afbeeldingen, die vervolgens kunnen worden opgeroepen door een speciale ‘*’ prompt, waardoor een persistente verschijning van nieuwe personages mogelijk is voor opname in een verhaal.

Afbeeldingen die zijn geassocieerd met passende tags kunnen worden omgezet in discrete entiteiten via tekstuele inversie, en opgeroepen zonder ambiguïteit, en in de juiste context en stijl, door speciale tokenwoorden. Bron: https://huggingface.co/docs/diffusers/training/text_inversion

Afbeeldingen die zijn geassocieerd met passende tags kunnen worden omgezet in discrete entiteiten via tekstuele inversie, en opgeroepen zonder ambiguïteit, en in de juiste context en stijl, door speciale tokenwoorden. Bron: https://huggingface.co/docs/diffusers/training/text_inversion

Tekstuele inversies zijn aanvullende bestanden op het zeer grote en volledig getrainde model dat Stable Diffusion gebruikt, en worden effectief ‘meegesleept’ in het oproep-/promptproces, zodat ze kunnen deelnemen aan model-afgeleide scènes, en profiteren van het enorme kennisbestand van het model over objecten, stijlen, omgevingen en interacties.

Hoewel een tekstuele inversie niet lang duurt om te trainen, vereist het een grote hoeveelheid VRAM; volgens verschillende huidige walkthroughs, ergens tussen 12, 20 en zelfs 40GB.

Aangezien de meeste casual gebruikers onwaarschijnlijk over dat soort GPU-kracht beschikken, zijn cloudservices al in opkomst die de bewerking zullen uitvoeren, waaronder een Hugging Face-versie. Hoewel er Google Colab-implementaties zijn die tekstuele inversies voor Stable Diffusion kunnen maken, kunnen de vereiste VRAM en tijdsvereisten moeilijk zijn voor gratis Colab-gebruikers.

Voor een potentieel volledig uitgeruste en goed geïnvesteerde Stable Diffusion-toepassing (geïnstalleerd) lijkt het doorsturen van deze zware taak naar de cloudservers van het bedrijf een voor de hand liggende monetarisatie-strategie (aannemend dat een lage of geen Stable Diffusion-toepassing is doordrongen van dergelijke niet-gratis functionaliteit, wat waarschijnlijk is in veel toepassingen die in de komende 6-9 maanden uit deze technologie zullen voortkomen).

Bovendien kan het vrij gecompliceerde proces van annoteren en formatteren van de ingediende afbeeldingen en tekst worden geautomatiseerd in een geïntegreerde omgeving. Het potentieel ‘verslavende’ aspect van het creëren van unieke elementen die kunnen verkennen en interageren met de uitgebreide werelden van Stable Diffusion zou potentieel verslavend kunnen zijn, zowel voor algemene enthousiastelingen als voor jongere gebruikers.

Veelzijdige prompt-gewicht

Er zijn veel huidige implementaties die de gebruiker toelaten om grotere nadruk te leggen op een deel van een lange tekstprompt, maar de instrumentatie varieert nogal tussen deze, en is vaak onhandig of niet intuïtief.

De zeer populaire Stable Diffusion-fork van AUTOMATIC1111, bijvoorbeeld, kan de waarde van een promptwoord verlagen of verhogen door het te omvatten in enkele of meerdere haakjes (voor de-emfasering) of vierkante haakjes voor extra nadruk.

Vierkante haakjes en/of haakjes kunnen uw ontbijt transformeren in deze versie van Stable Diffusion-prompt-gewichten, maar het is een cholesterol-nachtmerrie op welke manier dan ook.

Vierkante haakjes en/of haakjes kunnen uw ontbijt transformeren in deze versie van Stable Diffusion-prompt-gewichten, maar het is een cholesterol-nachtmerrie op welke manier dan ook.

Andere iteraties van Stable Diffusion gebruiken uitroeptekens voor nadruk, terwijl de meest veelzijdige toepassingen gebruikers toelaten om gewichten toe te kennen aan elk woord in de prompt via de GUI.

Het systeem zou ook negatieve prompt-gewichten moeten toelaten – niet alleen voor horror-fans, maar omdat er minder alarmerende en meer verheffende mysteries in Stable Diffusion’s latent ruimte kunnen zijn dan onze beperkte gebruik van taal kan oproepen.

Uitschilderen

Kort na de sensationele open-sourcing van Stable Diffusion, probeerde OpenAI – grotendeels tevergeefs – enige van zijn DALL-E 2-thunder terug te winnen door ‘uitschilderen’ aan te kondigen, waarmee een gebruiker een afbeelding kan uitbreiden buiten zijn grenzen met semantische logica en visuele coherentie.

Natuurlijk is dit sindsdien geïmplementeerd in verschillende vormen voor Stable Diffusion, evenals in Krita, en zou zeker moeten worden opgenomen in een uitgebreide, Photoshop-achtige versie van Stable Diffusion.

Tegel-gebaseerde uitbreiding kan een standaard 512x512-rendering vrijwel oneindig uitbreiden, zolang de prompts, bestaande afbeelding en semantische logica dit toelaten. Bron: https://github.com/lkwq007/stablediffusion-infinity

Tegel-gebaseerde uitbreiding kan een standaard 512×512-rendering vrijwel oneindig uitbreiden, zolang de prompts, bestaande afbeelding en semantische logica dit toelaten. Bron: https://github.com/lkwq007/stablediffusion-infinity

Omdat Stable Diffusion is getraind op 512x512px-afbeeldingen (en om een aantal andere redenen), snijdt het vaak de hoofden (of andere essentiële lichaamsdelen) van menselijke onderwerpen af, zelfs waar de prompt duidelijk ‘hoofd-nadruk’ aangaf, enz..

Typische voorbeelden van Stable Diffusion 'onthoofding'; maar uitschilderen kan George weer in het beeld zetten.

Typische voorbeelden van Stable Diffusion ‘onthoofding’; maar uitschilderen kan George weer in het beeld zetten.

Elke uitschilderimplementatie van het type dat in de geanimeerde afbeelding hierboven wordt getoond (die uitsluitend is gebaseerd op Unix-bibliotheken, maar zou moeten kunnen worden gerepliceerd op Windows) zou ook moeten worden uitgerust als een één-klik/prompt-oplossing voor dit probleem.

Momenteel breiden veel gebruikers het canvas van ‘onthoofde’ afbeeldingen uit naar boven, vullen ongeveer het hoofdgebied in en gebruiken img2img om de gescheurde rendering te voltooien.

Effectief maskeren dat context begrijpt

Maskeren kan een verschrikkelijk hit-and-miss-aangelegenheid zijn in Stable Diffusion, afhankelijk van de fork of versie in kwestie. Vaak, waar het mogelijk is om een samenhangend masker te tekenen, eindigt het geselecteerde gebied met inpainting met inhoud die de hele context van de afbeelding niet in overweging neemt.

Op één gelegenheid maskeerde ik de hoornvliezen van een gezichtsafbeelding en gaf ik de prompt ‘blauwe ogen’ als maskerinpaint – alleen om te ontdekken dat ik leek te kijken door twee uitgeknipte menselijke ogen naar een afbeelding van een onwerkelijk uitziende wolf. Ik denk dat ik geluk heb dat het niet Frank Sinatra was.

Semantische bewerking is ook mogelijk door het lawaai te identificeren dat de afbeelding heeft gegenereerd, waardoor de gebruiker specifieke structurele elementen in een rendering kan aanspreken zonder de rest van de afbeelding te verstoren:

Verandering van één element in een afbeelding zonder traditioneel maskeren en zonder aangrenzende inhoud te wijzigen, door het lawaai te identificeren dat de afbeelding heeft gegenereerd en de delen ervan aan te spreken die hebben bijgedragen aan het doelgebied. Bron: https://old.reddit.com/r/StableDiffusion/comments/xboy90/a_better_way_of_doing_img2img_by_finding_the/

Verandering van één element in een afbeelding zonder traditioneel maskeren en zonder aangrenzende inhoud te wijzigen, door het lawaai te identificeren dat de afbeelding heeft gegenereerd en de delen ervan aan te spreken die hebben bijgedragen aan het doelgebied. Bron: https://old.reddit.com/r/StableDiffusion/comments/xboy90/a_better_way_of_doing_img2img_by_finding_the/

Deze methode is gebaseerd op de K-Diffusion-sampler.

Semantische filters voor fysiologische blunders

Zoals we eerder hebben vermeld, kan Stable Diffusion vaak ledematen toevoegen of verwijderen, grotendeels vanwege gegevensproblemen en tekortkomingen in de annotaties die de afbeeldingen begeleiden die het hebben getraind.

Net als dat ondeugende kind dat zijn tong uitstak in de schoolgroepsfoto, zijn de biologische gruweldaden van Stable Diffusion niet altijd meteen duidelijk, en u kunt uw laatste AI-meesterwerk op Instagram hebben geplaatst voordat u de extra handen of gesmolten ledematen opmerkt.

Net als dat ondeugende kind dat zijn tong uitstak in de schoolgroepsfoto, zijn de biologische gruweldaden van Stable Diffusion niet altijd meteen duidelijk, en u kunt uw laatste AI-meesterwerk op Instagram hebben geplaatst voordat u de extra handen of gesmolten ledematen opmerkt.

Het is zo moeilijk om dergelijke fouten te corrigeren dat het nuttig zou zijn als een volledige Stable Diffusion-toepassing een soort anatomisch herkenningssysteem zou bevatten dat semantische segmentatie gebruikt om te berekenen of de binnenkomende afbeelding ernstige anatomische tekortkomingen vertoont (zoals in de afbeelding hierboven), en deze verwerpt ten gunste van een nieuwe rendering voordat deze aan de gebruiker wordt gepresenteerd.

Uiteraard wilt u mogelijk de godin Kali, Doctor Octopus of zelfs een onaangetaste deel van een ledemaat-geplaagde afbeelding redden, dus deze functie zou een optionele schakelaar moeten zijn.

Als gebruikers de telemetrieaspecten kunnen verdragen, kunnen dergelijke mislukkingen anoniem worden doorgegeven in een collectieve inspanning van federatief leren dat kan helpen om toekomstige modellen te verbeteren in hun begrip van anatomische logica.

LAION-gebaseerde automatische gezichtsverbetering

Zoals ik in mijn eerder onderzoek naar drie dingen die Stable Diffusion in de toekomst kan aanpakken, heb ik opgemerkt, zou het niet alleen aan een versie van GFPGAN moeten worden overgelaten om gegenereerde gezichten te ‘verbeteren’ in eerste instantie-renderingen.

GFPGAN’s ‘verbeteringen’ zijn verschrikkelijk generisch, ondermijnen vaak de identiteit van de afgebeelde persoon en werken alleen op een gezicht dat evenveel verwerkingstijd of aandacht heeft gekregen als elk ander deel van de afbeelding.

Daarom zou een professioneel standaardprogramma voor Stable Diffusion in staat moeten zijn om een gezicht te herkennen (met een standaard- en relatief lichtgewicht bibliotheek zoals YOLO), om de volledige kracht van de beschikbare GPU te gebruiken om het opnieuw te renderen, en om het verbeterde gezicht te mengen in de oorspronkelijke volledige context-rendering, of om het afzonderlijk op te slaan voor handmatige recompositie. Momenteel is dit een vrij ‘handmatig’ proces.

In gevallen waarin Stable Diffusion is getraind op een adequaat aantal afbeeldingen van een beroemdheid, is het mogelijk om de volledige GPU-capaciteit te richten op een latere rendering van alleen het gezicht van de gegenereerde afbeelding, wat meestal een opmerkelijke verbetering is – en, in tegenstelling tot GFPGAN, put uit informatie uit LAION-getrainde gegevens, in plaats van alleen het gegenereerde pixeloppervlak aan te passen.

In gevallen waarin Stable Diffusion is getraind op een adequaat aantal afbeeldingen van een beroemdheid, is het mogelijk om de volledige GPU-capaciteit te richten op een latere rendering van alleen het gezicht van de gegenereerde afbeelding, wat meestal een opmerkelijke verbetering is – en, in tegenstelling tot GFPGAN, put uit informatie uit LAION-getrainde gegevens, in plaats van alleen het gegenereerde pixeloppervlak aan te passen.

In-app LAION-zoekopdrachten

Sinds gebruikers zijn gaan beseffen dat het zoeken in LAION’s database naar concepten, personen en thema’s een hulpmiddel kan zijn voor een beter gebruik van Stable Diffusion, zijn verschillende online LAION-verkenners gemaakt, waaronder haveibeentrained.com.

De zoekfunctie op haveibeentrained.com laat gebruikers toe om de afbeeldingen te verkennen die Stable Diffusion aandrijven, en te ontdekken of objecten, personen of ideeën die ze mogelijk willen oproepen uit het systeem, waarschijnlijk zijn getraind. Dergelijke systemen zijn ook nuttig om aangrenzende entiteiten te ontdekken, zoals de manier waarop beroemdheden zijn gegroepeerd, of het 'volgende idee' dat voortkomt uit het huidige. Bron: https://haveibeentrained.com/?search_text=bowl%20of%20fruit

De zoekfunctie op haveibeentrained.com laat gebruikers toe om de afbeeldingen te verkennen die Stable Diffusion aandrijven, en te ontdekken of objecten, personen of ideeën die ze mogelijk willen oproepen uit het systeem, waarschijnlijk zijn getraind. Bron: https://haveibeentrained.com/?search_text=bowl%20of%20fruit

Hoewel dergelijke webgebaseerde databases vaak enkele van de tags onthullen die de afbeeldingen begeleiden, betekent het proces van generalisatie dat plaatsvindt tijdens modeltraining dat het onwaarschijnlijk is dat een bepaalde afbeelding kan worden opgeroepen door het gebruik van zijn tag als prompt.

Bovendien betekent de verwijdering van ‘stopwoorden’ en de praktijk van stemming en lemmatisering in natuurlijke taalverwerking dat veel van de zinnen die worden weergegeven zijn opgesplitst of weggelaten voordat ze zijn getraind in Stable Diffusion.

Niettemin kan de manier waarop esthetische groeperingen in deze interfaces zijn verbonden, de eindgebruiker veel leren over de logica (of, argumenteerbaar, de ‘persoonlijkheid’) van Stable Diffusion, en een hulpmiddel zijn voor betere afbeeldingsproductie.

Conclusie

Er zijn veel andere functies die ik zou willen zien in een volledig native desktop-implementatie van Stable Diffusion, zoals native CLIP-gebaseerde afbeeldingsanalyse, die het standaard Stable Diffusion-proces omkeert en de gebruiker toelaat om zinnen en woorden op te roepen die het systeem van nature zou associëren met de bronafbeelding, of de rendering.

Bovendien zou echte tegel-gebaseerde schaling een welkome toevoeging zijn, aangezien ESRGAN bijna zo’n bot instrument is als GFPGAN. Gelukkig zijn plannen om de txt2imghd implementatie van GOBIG te integreren, snel werkelijkheid aan het worden over de distributies, en lijkt het een voor de hand liggende keuze voor een desktop-iteratie.

Sommige andere populaire verzoeken van de Discord-gemeenschappen interesseren me minder, zoals geïntegreerde promptwoordenboeken en toepasbare lijsten van artiesten en stijlen, hoewel een in-app-notitieboek of een aanpasbaar lexicon van zinnen een logische toevoeging zou lijken.

Evenzo blijft de huidige beperking van mensgerichte animatie in Stable Diffusion, hoewel aangezwengeld door CogVideo en verschillende andere projecten, nog steeds ongelooflijk embryonaal, en is het afhankelijk van stroomopwaartse onderzoek naar temporele prioriteiten met betrekking tot authentieke menselijke beweging.

Voorlopig is Stable Diffusion-video strikt psychedelisch, hoewel het een veel heldere toekomst kan hebben in deepfake-poppenkast, via EbSynth en andere relatief embryonale tekst-naar-video-initiatieven (en het is de moeite waard om op te merken het ontbreken van gesynthesizeerde of ‘gewijzigde’ personen in Runway’s laatste promotionele video).

Een andere waardevolle functionaliteit zou transparante Photoshop-doorstroom zijn, die al lang is gevestigd in Cinema4D’s texture-editor, onder andere soortgelijke implementaties. Hiermee kunt u afbeeldingen gemakkelijk tussen toepassingen doorsluizen en elke toepassing gebruiken om de transformaties uit te voeren waarin ze uitblinken.

Tenslotte, en misschien wel het belangrijkst, zou een volledig desktop-Stable Diffusion-programma in staat moeten zijn om niet alleen gemakkelijk tussen checkpoints (d.w.z. versies van het onderliggende model dat het systeem aandrijft) te wisselen, maar ook om aangepaste Textual Inversions bij te werken die met eerdere officiële modelreleases werkten, maar mogelijk zijn gebroken door latere versies van het model (zoals ontwikkelaars op de officiële Discord hebben aangegeven dat het geval kan zijn).

Ironisch genoeg is de organisatie in de beste positie om een dergelijke krachtige en geïntegreerde matrix van tools voor Stable Diffusion te creëren, Adobe, zo sterk verbonden met de Content Authenticity Initiative dat het een retrograde PR-misstap voor het bedrijf zou lijken – tenzij het Stable Diffusion’s generatieve krachten zo grondig zou beperken als OpenAI heeft gedaan met DALL-E 2, en het zou positioneren als een natuurlijke evolutie van zijn aanzienlijke bezit in stockfotografie. Eerst gepubliceerd op 15 september 2022.

Schrijver over machine learning, domeinspecialist in humane beeldsynthese. Voormalig hoofd van onderzoeksinhoud bij Metaphysic.ai, tot de opheffing ervan in DNEG's Brahma.ai.
Portfolio site: martinanderson.ai
Contact: martin@martinanderson.ai