← Alla guider Under huven

Varför detektorn körs i din webbläsare

En modell på 40 MB, WebAssembly och ingen uppladdningsslutpunkt. Vad den arkitekturen ger, vad den kostar och varför kompromissen är värd att göra.

· 8 min läsning · Best AI Image Detector

Så att dina bilder aldrig lämnar din enhet. Modellen laddas ner en gång och körs på din dator, vilket eliminerar uppladdningen, serverkostnaden och personuppgiftsbiträdesavtalet på samma gång.

Hur arkitekturen faktiskt ser ut

En vision transformer, konverterad till ONNX och komprimerad till cirka 40 MB, uppdelad i två delar så att vardera håller sig under hostingplattformens filstorleksgräns. Den sätts ihop i webbläsaren och dess kontrollsumma verifieras innan något körs.

Inferens sker via WebAssembly, vilket gör att en kompilerad körtidsmiljö kan köras i nära ursprunglig hastighet inuti en webbläsarflik. Själva körtidsmiljön är en komprimerad WASM-binärfil som laddas tillsammans med modellvikterna.

Inget med detta är längre exotiskt. Det som var en forskningsdemonstration 2021 är i dag ett normalt sätt att distribuera en modell, och webbläsarna gjorde det mesta av jobbet.

Vad det ger

Fastighet I webbläsaren På en server
Bilden lämnar din enhet No omöjligt Yes krävs
Kostnad per kontroll Yes noll No faktisk beräkningskraft
Personuppgiftsbiträdesavtal krävs No Yes
Fungerar utan nätverk efter laddning Yes No
Modellen kan hållas privat No den laddas ner Yes
Första kontrollen sker direkt No modellen laddas ner en gång Yes
Samma produkt, byggd på två sätt. Skillnaderna är arkitektoniska snarare än policyval.

Den första raden är anledningen till att resten finns. Eftersom det inte finns någon uppladdningsslutpunkt finns det ingen samling med andras fotografier, ingen lagringspolicy att skriva, ingen dataläcka att anmäla och ingenting att lämna ut på begäran.

Den andra raden förklarar varför verktyget kan vara gratis utan användningsbegränsningar. En kontroll kostar ingenting att leverera, så det finns ingen kostnad per bild att täcka, vilket ändrar hur prissättningen måste se ut.

Vad det kostar

Tre verkliga kompromisser, rakt på sak, eftersom en sida som bara listar fördelar är reklam.

  1. Den första kontrollen är långsam. Fyrtio megabyte måste tas emot innan något kan hända. På en snabb anslutning tar det några sekunder; på en sämre tar det längre tid. Efterföljande kontroller återanvänder den cachade modellen och startar direkt.
  2. Äldre enheter har det kämpigt. Inferens kräver minne och processorkraft som en fem år gammal telefon kanske inte har. En server bryr sig inte om vilken enhet du håller i handen.
  3. Modellen är offentlig. Allt som laddas ner till en webbläsare kan sparas. En serverbaserad modell kan vara skyddad som företagshemlighet; det kan inte den här, och vikterna är ändå en öppen forskningskontrollpunkt.

Den tredje punkten är värd att vara tydlig med. Att skicka en modell till klienten innebär att ge bort den. Det är en acceptabel kompromiss här eftersom vikterna redan är publicerade, och arbetet som gör verktyget användbart är kalibreringen, uppdelningen i fält och tolkningen som byggts runt dem.

De tekniska problemen som är värda att känna till

Dela upp en stor fil

Statiska hostingplattformar har tak för enskilda filstorlekar. En modell på 40 MB överskred gränsen, så den levereras som två deterministiska delar som sätts ihop i webbläsaren och kontrolleras mot en manifest-hash före användning. En skadad eller utbytt del ger ett tydligt fel i stället för att tyst producera felaktiga resultat.

Ladda ingenting förrän det behövs

Modellen, körtidsmiljön och behörighetsläsaren hämtas inte vid sidladdning. De laddas först vid användning, så någon som läser en artikel laddar aldrig ner något av det. Det håller sidorna snabba för den stora majoriteten av besökare som aldrig kör en kontroll.

Avkoda svåra format

HEIC från iPhone, AVIF, TIFF och JPEG XL måste alla avkodas före analys. Webbläsare hanterar nu de flesta av dessa internt, vilket tar bort vad som brukade vara den största delen av arbetet på klientsidan i ett verktyg som detta.

När den här arkitekturen är fel val

Den är inte universellt bättre. En server är mer rimlig när modellen är patentskyddad och värd att skydda, när den är för stor för att skickas, när du behöver resultat i en backend-pipeline snarare än framför en person, eller när du behöver en garanterad svarstid oavsett enhet.

För ett verktyg som någon öppnar för att kontrollera en misstänkt bild gäller inget av detta, och integritetsaspekten är värd mer än allt en server skulle tillföra.

Vad detta utesluter

Att välja klientsidan får konsekvenser utöver integritet, och vissa av dem är begränsningar värda att nämna snarare än funktioner.

Det finns ingen historik. Ett resultat existerar bara i fliken som genererade det, så ingenting kan slås upp senare om det inte exporterades. Det är den direkta kostnaden för att inte ha ett konto, och det är den mest efterfrågade funktionen som arkitekturen försvårar.

Det finns inget delat tillstånd. Två personer kan inte se samma kö, och ett team kan inte granska varandras kontroller. En delad länk innehåller ett enskilt resultat, vilket fungerar för en diskussion men inte för ett arbetsflöde.

Det finns inget API. Något som körs i en webbläsarflik kan inte anropas från en backend-pipeline, vilket utesluter användningsområden med höga volymer helt och hållet. Det är verkliga begränsningar, och den ärliga hållningen är att de är priset för den egenskap som är viktigare.

Frågor som ställs

Laddas min bild verkligen inte upp?
Nej, och du behöver inte lita blint på det. Öppna nätverksfliken i utvecklarverktygen och kör en kontroll. Du ser att modellen och körtidsmiljön laddas ner, men inga anrop skickar din fil. Det är ett av få integritetspåståenden som en användare kan verifiera direkt på cirka trettio sekunder.
Varför är modellen så stor?
Det är en vision transformer med miljontals parametrar, komprimerad så långt det går utan att förlora precision. Mindre modeller finns och presterar märkbart sämre, särskilt på de komprimerade, beskurna bilder som folk faktiskt kontrollerar. Fyrtio megabyte är priset för precisionen.
Fungerar den offline?
Efter den första laddningen, i stort sett ja. När modellen väl är cachad körs poängsättningen helt utan nätverk. Den enda delen som kräver anslutning är att hämta en bild från en inklistrad URL; att kontrollera en lokal fil fungerar utan.
Drar den slut på telefonens batteri?
En enstaka kontroll innebär några sekunders bearbetning, jämförbart med att ladda en tung webbsida. Att köra en batch med tjugofem bilder märks mer. Det är inget man låter stå och köra, och det är ingen betydande kostnad vid sporadisk användning.
Kunde ni inte använda WebGPU för att göra det snabbare?
För enheter som stöder det, ja, men stödet är fortfarande så ojämnt att en WASM-lösning måste finnas oavsett. Att lägga till en andra körningsväg fördubblar ytan där resultat kan skilja sig åt mellan användare, vilket är en verklig kostnad mot en hastighetsvinst de flesta inte skulle märka.
Skickar webbläsaren någonting alls om min bild?
Nej. Det finns ingen telemetri för filnamn, dimensioner eller poäng, eftersom resultatet aldrig existerar någon annanstans än i din flik. Det är en följd av arkitekturen snarare än en inställning, vilket är den del som är värd att förstå.