Andersons hoek

Het herstel van wat uw camera heeft vastgelegd voordat AI het heeft gewijzigd

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google
AI-generated image (GPT-2). A photographer examines an open DSLR as a stream of colorful fantasy creatures and glowing imagery bursts out, while he reacts with focused, subdued surprise in a studio setting.

Hoe kunt u de integriteit van een onbewerkte foto beschermen tegen AI-inmenging als deze al automatisch door AI in de camera is verwerkt? Nieuw onderzoek probeert de ‘echte’ sensordata te herstellen – ook met AI!

 

De toename van de authenticiteit van AI-afbeeldingen in de afgelopen jaar of zo heeft ertoe geleid dat veel groepen en individuen in opstand zijn gekomen tegen de daaropvolgende erosie van vertrouwen in de fotografie.

In dezelfde periode heeft de Coalition for Content Provenance and Authenticity (C2PA) geprobeerd om een semi-cryptografische standaard te verspreiden die metadata-gebaseerde bewijsinformatie aan een afbeelding koppelt, vanaf het moment dat deze door een ondersteunde camera of apparaat is vastgelegd, in de hoop om eventueel gebruik van generatieve AI op deze ‘originele’ afbeeldingen te ontmaskeren:

Schema van bewijs in het C2PA-systeem, waarbij metadata die op het moment van vastlegging wordt geschreven, kan worden toegevoegd als een soort dagboek, waardoor gebruikelijke aanpassingen zoals helderheid en contrast mogelijk zijn, maar waarbij belangrijke aanpassingen worden geregistreerd, zodat een zwaar AI-gealtereerd beeld als zodanig wordt weergegeven in media-outlets die dit systeem ondersteunen. Bron - https://spec.c2pa.org/specifications/specifications/1.2/specs/

Schema van bewijs in het C2PA-systeem, waarbij metadata die op het moment van vastlegging wordt geschreven, kan worden toegevoegd als een soort dagboek, waardoor gebruikelijke aanpassingen zoals helderheid en contrast mogelijk zijn, maar waarbij belangrijke aanpassingen worden geregistreerd, zodat een zwaar AI-gealtereerd beeld als zodanig wordt weergegeven in media-outlets die dit systeem ondersteunen. Bron

De adoptie van de standaard is niet zo wijdverspreid als de coalitie had gehoopt, en momenteel ondersteunen slechts 14 camera’s het in-camera imprimeren van de authenticiteitsinformatie.

Wat interessant is aan het idee van de C2PA om een foto een ‘paspoort’ te geven zodra deze bestaat, is dat dit te laat kan zijn – omdat camerafabrikanten nu routinematig AI-verwerking in de creatie van de afbeelding integreren:

Uit het paper van 2024 'Advocating Pixel-Level Authentication of Camera-Captured Images': een illustratie van hoe moderne camerapipelines hallucineerde inhoud introduceren bij vastlegging en hoe pixelniveau-authenticatiemetadata dit blootlegt. In (A) wordt een smartphone-sensorafbeelding verwerkt door de ISP, waarbij AI-modules details kunnen verzinnen tijdens digitale zoom of belichtingscorrectie, waardoor realistische afbeeldingen met fouten zoals mislezen van nummerplaatcijfers ontstaan. In (B) wordt een authenticatiemasker als metadata ingebed en later overlaid om niet-authentieke gebieden te onthullen, waardoor gebruikers originele gegevens van AI-gealtereerde pixels kunnen onderscheiden. Bron – https://ieeexplore.ieee.org/ielx7/6287639/10380310/10478521.pdf?tp=&arnumber=10478521&isnumber=10380310&ref=aHR0cHM6Ly9zY2hvbGFyLmdvb2dsZS5jb20ucHkv

Uit het paper van 2024 ‘Advocating Pixel-Level Authentication of Camera-Captured Images’: een illustratie van hoe moderne camerapipelines hallucineerde inhoud introduceren bij vastlegging en hoe pixelniveau-authenticatiemetadata dit blootlegt. In (A) wordt een smartphone-sensorafbeelding verwerkt door de ISP, waarbij AI-modules details kunnen verzinnen tijdens digitale zoom of belichtingscorrectie, waardoor realistische afbeeldingen met fouten zoals mislezen van nummerplaatcijfers ontstaan. In (B) wordt een authenticatiemasker als metadata ingebed en later overlaid om niet-authentieke gebieden te onthullen, waardoor gebruikers originele gegevens van AI-gealtereerde pixels kunnen onderscheiden. Bron

Feit is dat deze AI-‘inmenging’ in de vastlegging van ruwe gegevens van de camera’s sensor uiteindelijk zelfs het overheersende proces kan worden.

Dit soort nabewerking is niet hetzelfde als de huidige trend om foto’s in de camera te bewerken, waarbij een telefoonapp of camera-app de gebruiker toestaat om een foto op zijn gemak te heroverwegen voordat deze van het apparaat wordt gedownload.

Integendeel, de verwerking gebeurt in een ‘black box’-routine in de camera’s Image Signal Processor (ISP), meestal in een propriëtaire runtime die de ruwe sensordata (en overweeg dat het zogenaamde camera-RAW-formaat niet zo ‘raw’ is) niet blootstelt of beschikbaar maakt.

Dus, tegen de tijd dat u de foto überhaupt kunt zien, kan deze al zijn onderworpen aan AI-geassisteerde verbeteringen zoals laaglichtverbetering, upscaling of zelfs maanvervanging.

In veel gevallen kan dit leiden tot onjuiste reconstructies, bijvoorbeeld van tekst, die het gebruik van een dergelijke afbeelding als bewijs kan ongeldig maken, aangezien een echte ‘ruwe’ afbeelding niet beschikbaar zou zijn:

Uit het nieuwe paper - een RAW-sensorafbeelding wordt verwerkt door een GenAI-geactiveerde ISP om een definitief sRGB-uitvoer te produceren dat helderder lijkt maar hallucineerde details kan bevatten, zoals wordt getoond in het voorbeeld van het nummerbord waarin de tekens onjuist worden afgeleid tijdens digitale zoom. De werkelijke scène, die in de praktijk niet toegankelijk is, verschilt zowel van de AI-geverbeterde uitvoer als van het tussenliggende authentieke beeld vóór hallucinatie. De voorgestelde aanpak maakt het mogelijk om dit pre-hallucinatiebeeld te herstellen, waardoor wordt hersteld wat de camera-optica oorspronkelijk heeft vastgelegd voordat AI-gebaseerde verbeteringen de inhoud hebben gewijzigd. Bron - https://arxiv.org/pdf/2604.21879

Uit het nieuwe paper – een RAW-sensorafbeelding wordt verwerkt door een GenAI-geactiveerde ISP om een definitief sRGB-uitvoer te produceren dat helderder lijkt maar hallucineerde details kan bevatten, zoals wordt getoond in het voorbeeld van het nummerbord waarin de tekens onjuist worden afgeleid tijdens digitale zoom. De werkelijke scène, die in de praktijk niet toegankelijk is, verschilt zowel van de AI-geverbeterde uitvoer als van het tussenliggende authentieke beeld vóór hallucinatie. De voorgestelde aanpak maakt het mogelijk om dit pre-hallucinatiebeeld te herstellen, waardoor wordt hersteld wat de camera-optica oorspronkelijk heeft vastgelegd voordat AI-gebaseerde verbeteringen de inhoud hebben gewijzigd. Bron

De bovenstaande voorbeelden komen uit een nieuw onderzoeksartikel dat een oplossing biedt voor ‘native AI-foto’s’, met behulp van alternatieve AI-processen om de geschatte ruwe en ongezuiverde afbeelding van de verwerkte afbeelding te reconstrueren.

De auteurs stellen:

‘Wanneer AI-modellen getraind zijn met generatieve of perceptuele verliezen en worden gebruikt in ISPs, zijn ze geneigd om inhoud te hallucineren, waardoor de afbeelding [betekenis] kan worden gewijzigd. De implicatie is dat afbeeldingen die rechtstreeks uit de camera komen, mogelijk “nep” inhoud kunnen bevatten, vooral in smartphonecamera’s waarin AI-ISP-modules steeds vaker worden gebruikt.

‘Het gebruik van GenAI in camera-hardware markeert een paradigmaparadigmawisseling in hoe we naar camerabeelden kijken en daagt de traditionele forensische visie op camerabeelden als inherent betrouwbaar uit.’

Het nieuwe werk gebruikt een zeer lichte encoder en MLP-decoder, die in de afbeelding kan worden opgenomen met een gewichtsstraf van slechts 180kb. Het doel is de ontwikkeling van coderingssystemen die snel genoeg zijn om het oorspronkelijke beeld in real-time te extraheren.

Uit het nieuwe paper: GenAI-gebaseerde super-resolutie binnen de camera-ISP kan subtiele veranderingen in gezichtstrekken introduceren, waardoor de verschijning of waargenomen identiteit verandert door veranderingen in blik en mondvorm. Laaglichtverbetering kan de afbeeldingsinhoud op soortgelijke wijze wijzigen, waardoor de interpretatie wordt beïnvloed, ondanks de verbetering van de visuele kwaliteit. In het voorbeeld van de QR-code maakt de verbetering de afbeelding aantrekkelijker, maar maakt de code onleesbaar. De methode maakt het mogelijk om het authentieke beeld te herstellen vóór deze hallucinaties, waardoor de oorspronkelijke gezichtstrekken en een scannable QR-code worden hersteld.

Uit het nieuwe paper: GenAI-gebaseerde super-resolutie binnen de camera-ISP kan subtiele veranderingen in gezichtstrekken introduceren, waardoor de verschijning of waargenomen identiteit verandert door veranderingen in blik en mondvorm. Laaglichtverbetering kan de afbeeldingsinhoud op soortgelijke wijze wijzigen, waardoor de interpretatie wordt beïnvloed, ondanks de verbetering van de visuele kwaliteit. In het voorbeeld van de QR-code maakt de verbetering de afbeelding aantrekkelijker, maar maakt de code onleesbaar. De methode maakt het mogelijk om het authentieke beeld te herstellen vóór deze hallucinaties, waardoor de oorspronkelijke gezichtstrekken en een scannable QR-code worden hersteld.

Alternatief kunnen camerafabrikanten gebruikers toegang geven tot de werkelijk ongerepte sensordumps; echter, dit lijkt waarschijnlijk beperkt te blijven tot zeer hoogwaardige apparatuur. In de mobiele en consumentenruimte is het helaas mogelijk dat toegang tot niet-verwerkte foto’s als een ‘niche’ of randgebied wordt beschouwd.

Terwijl consumentencamera’s altijd een bepaalde mate van nabewerking hebben toegepast, vóór de komst van edge AI, waren de algoritmes die werden gebruikt minimaal ‘interpretatief’ en niet waarschijnlijk om de inhoud van een foto op dezelfde manier te wijzigen als de huidige AI-methoden.

Interessant is dat, gezien de mate waarin Samsung’s ‘maanvervangingsbeleid’ onderwerp van publieke kritiek was enkele jaren geleden, Samsung’s AI Center in Toronto een van de deelnemers is aan het nieuwe onderzoek, dat de titel Addressing Image Authenticity When Cameras Use Generative AI draagt en wordt geleid door bijdragen van vijf onderzoekers aan de Universiteit van Toronto.

Methode

De auteurs maken gebruik van het enige andere project dat tot nu toe rechtstreeks het probleem van perturbatie-op-ontwerp heeft aangepakt: het paper van 2024 paper Advocating Pixel-Level Authentication of Camera-Captured Images, dat een ‘binaire authenticatiemasker’ voorstelde dat gebieden aangaf die door in-camera AI-processen waren gewijzigd:

Rechts, het 'authenticatiemasker' van het paper van 2024 onthult gebieden van de lucht die door AI-'gladmaking'-processen in een camera zijn beïnvloed.

Rechts, het ‘authenticatiemasker’ van het paper van 2024 onthult gebieden van de lucht die door AI-‘gladmaking’-processen in een camera zijn beïnvloed.

Het systeem bood echter geen methode om een ‘echte’ afbeelding te herstellen, wat het nieuwe onderzoek aanpakt, waarbij een schuld wordt erkend aan het eerdere onderzoek.

Het doel van het nieuwe onderzoek is om gebruikers in staat te stellen een afbeelding te herstellen die zo dicht mogelijk bij de werkelijke scène ligt die door de camera is vastgelegd, voordat de verwerking plaatsvond:

Overzicht van de voorgestelde methode. In (A), op het moment van vastlegging, wordt de ISP-uitvoerbeeld met hallucinaties door een bevroren voorgetrainde encoder geleid, en worden de latentie-kenmerken gecombineerd met ruimtelijke coördinaten en gevoerd in een MLP dat per pixel werkt om het niet-hallucineerde beeld te voorspellen, met training geleid door een verlies tegen het authentieke beeld. De encoder- en MLP-gewichten worden vervolgens opgeslagen als metadata naast de afbeelding. In (B), op het moment van inferentie, worden deze gewichten opgehaald uit de metadata en gebruikt met de encoder en MLP om het niet-hallucineerde beeld te reconstrueren.

Overzicht van de voorgestelde methode. In (A), op het moment van vastlegging, wordt de ISP-uitvoerbeeld met hallucinaties door een bevroren voorgetrainde encoder geleid, en worden de latentie-kenmerken gecombineerd met ruimtelijke coördinaten en gevoerd in een MLP dat per pixel werkt om het niet-hallucineerde beeld te voorspellen, met training geleid door een verlies tegen het authentieke beeld. De encoder- en MLP-gewichten worden vervolgens opgeslagen als metadata naast de afbeelding. In (B), op het moment van inferentie, worden deze gewichten opgehaald uit de metadata en gebruikt met de encoder en MLP om het niet-hallucineerde beeld te reconstrueren.

Op het moment van vastlegging, in de nieuwe methode, wordt de verwerkte afbeelding door een bevroren encoder geleid die deze omzet in een compacte latentie-representatie. Vervolgens worden de relevante ruimtelijke coördinaten gecombineerd met deze kenmerken en gevoerd in een lichte MLP die per pixel werkt, om de oorspronkelijke afbeeldingsinhoud te voorspellen – in feite leren om de hallucineerde elementen te verwijderen door een reconstructieverlies, tegen authentieke doelen.

De encoder en decoder zijn voorgetraind op gepaarde authentieke en hallucineerde afbeeldingen, en vervolgens snel fijngesteld voor elke vastgelegde afbeelding, met hun gewichten opgeslagen als metadata naast de afbeelding zelf, waardoor alleen een kleine grootte-overhead wordt toegevoegd.

Op het moment van weergave, worden deze opgeslagen gewichten opgehaald en opnieuw gebruikt om dezelfde encoder en MLP uit te voeren, waardoor een afbeelding kan worden hersteld die dicht bij de oorspronkelijke scène ligt die door de camera is vastgelegd, zonder nieuwe synthetische inhoud toe te voegen.

Gegevens en tests

De auteurs hebben de nieuwe methode getest met behulp van twee van de meest gebruikelijke ISP-nabewerkingsTaken: super-resolutie (SR, inclusief voor ingezoomde gebieden); en laaglichtfotografie.

Voor het ‘natuurlijke beeld’-SR-gedeelte van de tests, werden veel voorbeelden van tekst opgenomen in de gegevens, aangezien ISP-SR-routines bekend staan om tekst te hebben gewijzigd (bijvoorbeeld van nummerplaten, maar zie eerder in het artikel). Aangezien tekstvervorming een apart probleem is, werd dit behandeld als een sub-set van de SR-tests, met speciale gegevens.

De bovengenoemde encoder werd getraind voor elk van de twee modaliteiten die werden getest, en elk werd geselecteerd op basis van welk AI-ISP-module waarschijnlijk tijdens de vastlegging zou worden ingeschakeld (d.w.z. een ‘laaglicht’-module, in donkere omstandigheden).

De auteurs gebruikten de DIV2K-dataset voor super-resolutietraining, aangedreven door het populaire RealESRGAN-netwerk. In overeenstemming met het eerder genoemde onderzoek van 2024 over ISP-inmenging, genereerden de onderzoekers gegevensparen met onbeïnvloede en hallucineerde inhoud.

Voor het tekst-SR-gedeelte gebruikten de auteurs het MARCONet-tekst-SR-model van 2023:

Uit het MARCONet-paper van 2023, voorbeelden van echte laagresolutie- en equivalent opgeschaalde teksten. Bron - https://arxiv.org/pdf/2303.14726

Uit het MARCONet-paper van 2023, voorbeelden van echte laagresolutie- en equivalent opgeschaalde teksten. Bron

Om gegevensparen te creëren in dit geval, voerden de onderzoekers niet-hallucineerde afbeeldingen door MARCONet. Tweeduizend afbeeldingen werden gegenereerd uit de oorspronkelijke code, met 200 opzij gezet voor validatie, evenals nog eens 200 voor testen.

Voor de laaglichttests werd de LOw-Light dataset (LOL) van een Chinees paper van 2018 aangenomen:

Uit de LOL-dataset van 2018, voorbeelden van dezelfde afbeeldingen bij verschillende belichtingen en niveaus van duisternis en degradatie. Bron - https://arxiv.org/pdf/1808.04560

Uit de LOL-dataset van 2018, voorbeelden van dezelfde afbeeldingen bij verschillende belichtingen en niveaus van duisternis en degradatie. Bron

Rivale kaders

Om de methode te evalueren, werden vergelijkingen gemaakt met drie specifieke baselines die onder gelijke omstandigheden werden getraind. Ten eerste, SIREN en NeRF werden voorgetraind op gegevensparen van authentieke en hallucineerde afbeeldingen en vervolgens fijngesteld tijdens de vastlegging voor dezelfde duur als de voorgestelde benadering, waardoor een directe vergelijking met NeRF mogelijk was.

Ten tweede, een MLP met een geleerde codering op basis van de hashgrid-methode van Instant-NGP werd gebruikt, met de hash-tabel-invoeren en MLP gezamenlijk geoptimaliseerd.

De insluitgrootte en netwerkcapaciteit werden gematched met de doel-encoder en MLP, met experimenten die zowel per-afbeelding-optimalisatie van scratch als voorafgaand trainen en vervolgens fijnschaven omvatten.

Ten derde, een blinde beeld-naar-beeld-vertalingsbaseline werd geïmplementeerd met behulp van een 64MB NAFNet-model, getraind als een pixel-naar-pixel regressie-systeem zonder toegang tot metadata.

Tijdens het trainen, werd de Adam-optimizer gebruikt over PyTorch, zowel voor voorafgaand trainen als fijnschaven. De encoder en MLP werden getraind voor 50.000 epochs bij een batchgrootte van 32, met modality-specifieke encoders getraind voor elke taak (d.w.z. SR, tekst-SR, laaglicht).

Fijnschaven vond plaats in ongeveer drie seconden op een NVIDIA V100 GPU met 32GB VRAM. De auteurs merken op dat, hoewel on-device-optimalisatie het doelomgeving en scenario is, het niet realistisch was om dit voor alle kaders te implementeren, en daarom werden alle tests uitgevoerd in een desktopomgeving:

Prestatievergelijking met metadata-ondersteunde MLP-gebaseerde baselines, inclusief SIREN, NeRF en de hash-grid-methode, evenals blinde herstel met NAFNet. Resultaten worden gerapporteerd als PSNR in decibels over drie taken: natuurlijke beeldsuperresolutie op DIV2K; tekstsuperresolutie op MARCONet; en laaglichtverbetering op LOL, met de voorgestelde methode die de hoogste scores in elk geval behaalt.

Prestatievergelijking met metadata-ondersteunde MLP-gebaseerde baselines, inclusief SIREN, NeRF en de hash-grid-methode, evenals blinde herstel met NAFNet. Resultaten worden gerapporteerd als PSNR in decibels over drie taken: natuurlijke beeldsuperresolutie op DIV2K; tekstsuperresolutie op MARCONet; en laaglichtverbetering op LOL, met de methode van de auteurs die de hoogste scores in elk geval behaalt.

Voor MLP-gebaseerde benaderingen hing de prestatie sterk af van de invoerrepresentatie, waarbij modellen die alleen ruimtelijke coördinaten gebruikten, tijdens voorafgaand trainen worstelden en niet verbeterden tijdens de beperkte fijnschavende fase. Het toevoegen van kleurinformatie leidde tot sterkere resultaten.

Blinde herstel met NAFNet presteerde goed op DIV2K, waar de mapping van verwerkte naar schone afbeeldingen relatief stabiel was, maar faalde op MARCONet en LOL, waar meerdere plausibele reconstructies bestonden en het model niet over de benodigde informatie beschikte om deze ambiguïteit op te lossen.

Dit effect was het meest uitgesproken in laaglichtverbetering, waar de oorspronkelijke helderheid van de scène niet betrouwbaar kon worden afgeleid uit de verwerkte afbeelding alleen.

De auteurs stellen:

‘[In] de synthetische MARCONet-gegevens, kaarten afbeeldingen met verschillende blur-sterktes naar dezelfde hallucineerde afbeelding. Het kan worden gezien uit de resultaten dat onze voorgestelde benadering de concurrenten overtreft in alle datasets.’

In de bovenstaande vergelijking kunnen we zien hoe goed verschillende methoden presteren, afhankelijk van hoeveel tijd ze krijgen om te draaien op het moment dat een foto wordt genomen. Het trainen van een model van scratch voor elke afbeelding kan sterke resultaten opleveren, zoals te zien is met SIREN, NeRF en hash-grid – maar dit duurt te lang om in een camera te worden geïmplementeerd.

In plaats daarvan doet de methode van de auteurs het meeste werk van tevoren, met een snelle aanpassing op het moment van vastlegging, waardoor het betere resultaten kan opleveren binnen korte tijdsbeperkingen (3, 5 of tien seconden).

Prestatievergelijking met metadata-ondersteunde MLP-gebaseerde baselines, inclusief SIREN, NeRF en de hash-grid-methode, evenals blinde herstel met NAFNet. Resultaten worden gerapporteerd als PSNR in decibels over drie taken: natuurlijke beeldsuperresolutie op DIV2K; tekstsuperresolutie op MARCONet; en laaglichtverbetering op LOL, met de methode van de auteurs die de hoogste scores in elk geval behaalt. Verwijzing naar het bronpaper voor (iets) betere resolutie.

Prestatievergelijking met metadata-ondersteunde MLP-gebaseerde baselines, inclusief SIREN, NeRF en de hash-grid-methode, evenals blinde herstel met NAFNet. Resultaten worden gerapporteerd als PSNR in decibels over drie taken: natuurlijke beeldsuperresolutie op DIV2K; tekstsuperresolutie op MARCONet; en laaglichtverbetering op LOL, met de methode van de auteurs die de hoogste scores in elk geval behaalt. Verwijzing naar het bronpaper voor (iets) betere resolutie.

Bovenstaand worden kwalitatieve resultaten op DIV2K getoond, waar verbeteringsmethoden zichtbare hallucinaties introduceerden. Een GAN-gebaseerd superresolutiemodel veranderde oogkleur, en blinde herstel worstelde om het oorspronkelijke beeld te reconstrueren. NeRF en hash-grid produceerden artefacten in gestructureerde gebieden zoals ramen en tekst, terwijl de voorgestelde methode het authentieke beeld beter benaderde.

Tenslotte, in de bovenstaande figuur, zien we resultaten op de LOL-dataset, met helderheid geschaald voor visualisatie.

Blinde herstel kon de onbekende helderheidsschaal niet oplossen, terwijl de voorgestelde methode texturen beter reconstrueerde en gewijzigde tekens herstelde, zoals het corrigeren van een ‘1’ naar ‘i’, zonder artefacten toe te voegen.

Conclusie

Het is waarschijnlijk niet betwistbaar, noch ooit betwistbaar was, dat ‘de camera nooit liegt’. Elke beslissing over wat te fotograferen en wanneer te fotograferen, evenals hoe het te presenteren en te contextualiseren, is in feite een politieke of sociale beslissing.

Evenmin zijn de oudste methoden van nabewerking, zoals dodgen en branden (lang geleden overgezet naar Photoshop-hulpmiddelen) hoogst subjectieve handelingen van artistieke beslissing en voorkeur.

Desondanks is het geen reden om op te geven aan het doel van ‘objectieve’ beeldvastlegging; en het lijkt redelijk dat de gemiddelde consument in staat zou moeten worden gesteld om, zelfs met enige moeite, toegang te krijgen tot de ‘ongemasseerde’ ruwe sensordumps van de foto’s die ze nemen, als ze dat willen; of ten minste, dat ze ISP-nabewerking zouden mogen beperken tot niet-AI-algoritmen, zoals ze zouden prefereren.

 

Voor het eerst gepubliceerd op vrijdag 24 april 2026

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: [email protected]