przez Radosław Kołacki

Znakowanie obrazów generowanych przez AI narzędziem SynthID

SynthID-Image jest skutecznym watermarkiem post-hoc, ale da się go czasem obejść (np. re-renderingiem) lub uwidocznić po mocnej korekcie poziomów.

przyklad synthid

Pytanie „czy to jest obraz z AI?” jeszcze niedawno dawało się rozstrzygać dość prosto, bo generatory zostawiały powtarzalne ślady. Człowiek patrzył na ręce, zęby, tekst na szyldzie, na to czy światło i cienie „mają sens”, i często trafiał. Ten etap minął. Nie dlatego, że ludzie nagle przestali być spostrzegawczy, tylko dlatego, że sam problem przestał być optyczny. Nowoczesne modele dyfuzyjne są wytresowane tak, by ich wyniki miały statystykę obrazów fotograficznych: faktury, rozkłady krawędzi, przejścia tonalne, nawet „przypadkowość” detali wyglądają coraz bardziej jak w danych uczących. To oznacza, że typowe „na oko” działa dziś raczej jako zbiór poszlak niż narzędzie weryfikacji. Możesz znaleźć anomalię i mieć rację, ale równie często trafisz na zdjęcie prawdziwe, tylko mocno przetworzone; albo na obraz AI, który przeszedł przez filtr ziarna, kompresję i rekodowanie do JPEG tak intensywne, że różnice, które kiedyś krzyczały, dziś toną w zwykłym szumie internetu.

Warto zresztą zauważyć, że sama dystrybucja „błędów wizualnych” zmieniła się w sposób, który psuje intuicję. Tam, gdzie kiedyś dominowały spektakularne potknięcia (dodatkowy palec, literki udające litery), dziś częściej spotyka się błędy semantyczne: coś jest nielogiczne, ale wizualnie poprawne. A jeszcze częściej, nic nie jest wyraźnie błędne, tylko obraz ma styl, który jedni uznają za „zbyt perfekcyjny”, a inni za efekt dobrego obiektywu i grade’u kolorystycznego. Tego typu wrażenia są podatne na kontekst i uprzedzenia. Jeśli ktoś „wie”, że obraz może być z AI, to zaczyna widzieć symptomy; jeśli nie wie, to często ich nie zauważa. To nie jest solidna baza do wnioskowania.

Jeżeli zależy Ci na czymś, co można powtarzalnie obronić, musisz przestawić pytanie z „czy ja to widzę?” na „czy mam weryfikowalny ślad pochodzenia?”. W praktyce istnieją trzy klasy takich śladów, o różnym ciężarze dowodowym. Pierwsza to proweniencja: informacja o tym, jak i czym plik został wytworzony oraz edytowany, często w formie podpisanych metadanych lub łańcucha poświadczeń (standardy typu C2PA są tu dobrym punktem odniesienia, choć nie jedynym). To bywa najmocniejsza forma dowodu, bo nie próbuje „zgadywać” z pikseli opisuje historię. Ale ma oczywisty problem: proweniencja często ginie po drodze. Wystarczy screenshot, re-upload w serwisie społecznościowym, eksport do innego formatu, i ładna opowieść o pochodzeniu znika. Druga klasa to watermarking, czyli sytuacja, w której sam obraz niesie w danych ukryty sygnał możliwy do wykrycia narzędziem. I tu pojawia się SynthID: idea jest prosta, choć implementacja bywa złożona, do obrazu dodaje się niewidoczną „podpisową” strukturę tak, by później można było sprawdzić, czy ten podpis jest obecny. To jest znacznie bardziej „twarde” niż heurystyki wizualne, ale ma fundamentalne ograniczenie: działa tylko wtedy, gdy watermark został zastosowany. Brak wykrycia nie oznacza „to nie AI”; oznacza wyłącznie „nie znaleziono tego konkretnego znaku”. Trzecia klasa to detektory statystyczne: modele, które próbują odróżnić obrazy AI od nie-AI na podstawie cech rozkładowych. One mogą być użyteczne jako sygnał pomocniczy, lecz mają własny zestaw problemów: generator ewoluuje, a detektor zostaje z tyłu (drift), albo obraz pochodzi z innej domeny niż ta, na której detektor był uczony (domain shift). Wtedy rosną fałszywe alarmy i przeoczenia, często w sposób trudny do przewidzenia bez żmudnej kalibracji.

Najrozsądniejsza praktyka nie polega więc na znalezieniu jednego „magicznego testu”, tylko na układaniu warstw. Najpierw szukasz proweniencji, bo to najlepszy kontekst, jeśli przetrwała. Potem sprawdzasz, czy obraz niesie watermark z konkretnego ekosystemu (SynthID jest przykładem takiego podejścia). Dopiero na końcu uruchamiasz wzrok i statystyczne detektory jako wsparcie, a nie jako sąd ostateczny. Ta hierarchia jest ważna, bo porządkuje resztę dyskusji: skoro „na oko” jest coraz mniej rozstrzygające, warto zrozumieć, skąd bierze się realizm dyfuzji, a następnie, jak dokładnie SynthID-Image potrafi osadzić w obrazie sygnał, którego nie widać, ale który da się wykryć, nawet po kompresji i internetowej obróbce.

Dyfuzja w pigułce

Żeby zrozumieć, czemu wykrywanie „AI vs nie-AI” stało się tak niewdzięczne, trzeba przez chwilę zejść poziom niżej i zobaczyć, co właściwie robią modele dyfuzyjne. Ich podstawowy trik jest zaskakująco elegancki: zamiast uczyć sieć „rysowania” obrazu od zera, uczymy ją odwracania procesu niszczenia obrazu. To jest różnica praktyczna, nie filozoficzna. W standardowym opisie mamy więc proces do przodu (forward / noising) i proces wsteczny (reverse / denoising).

W procesie do przodu bierzemy prawdziwy obraz i w wielu krokach dodajemy do niego szum Gaussa. Po ttt krokach dostajemy, coraz bardziej przypominające czysty szum. Kluczowe jest to, że ten proces jest skonstruowany tak, aby był prosty matematycznie: zwykle wybiera się harmonogram wariancji (ile szumu dodajemy w kroku ttt) i definiuje przejścia Markowa. Wtedy można pokazać, że xtx_tda się zapisać wprost jako mieszaninę sygnału i szumu: w uproszczeniu „trochę obrazu + trochę Gaussa”. To sprawia, że model podczas uczenia ma bardzo klarowny cel: dostaje zaszumiony przykład i ma odtworzyć informację o tym, jaki szum został dodany albo jak wyglądał czystszy obraz.

Proces wsteczny jest tym, co dzieje się podczas generowania. Startujemy od praktycznie czystego szumu, i wykonujemy serię kroków odszumiania. W każdym kroku sieć dostaje bieżący stan oraz informację o danym kroku i przewiduje coś w rodzaju „jaką część tego sygnału stanowi szum”. W najpopularniejszej parametryzacji sieć przewiduje czyli estymację szumu, a sampler wykorzystuje to do wyliczenia kolejnego, mniej zaszumionego stanu.

Gdzie w tym wszystkim jest „prompt” i generowanie warunkowe? To drugi, równie ważny konkret: większość nowoczesnych dyfuzji jest warunkowana (conditional). Najczęściej robi się to przez mechanizm uwagi krzyżowej (cross-attention): tekst (lub inny warunek) jest kodowany do wektorów, a U-Net w trakcie denoisingu „konsultuje się” z tym kodem, żeby obraz zmierzał w stronę zgodną z opisem. Technicznie to oznacza, że rozkład próbkowania nie jest „dowolnym obrazem z danych”, tylko „obrazem z danych zgodnym z warunkiem”. I tu pojawia się ważny punkt dla detekcji: skoro model jest uczony na ogromnych zbiorach prawdziwych obrazów, a następnie w procesie wstecznym rekonstruuje próbkę w sposób zgodny z tym rozkładem, to wynik ma bardzo naturalne statystyki. Nie dlatego, że model „rozumie świat”, tylko dlatego, że nauczył się bardzo dobrze imitować regularności wizualne obecne w danych.

Na koniec jeden konkret, który często umyka w popularnych opisach: wiele systemów nie pracuje bezpośrednio na pikselach, tylko w tzw. przestrzeni ukrytej (latent space). W latent diffusion obraz jest najpierw kompresowany przez autoenkoder (VAE) do niższowymiarowej reprezentacji, a dyfuzja zachodzi w tym latentzie. Dopiero na końcu VAE-dekoder mapuje latent z powrotem do RGB. To przyspiesza generowanie i obniża koszty, ale też ma konsekwencje: część „struktury” obrazu jest kształtowana w latentach, a część w dekoderze. Dlatego gdy później mówimy o watermarkingu, trzeba zawsze doprecyzować, czy znak jest osadzany „w locie” w latentach/samplingu, czy post-hoc na gotowych pikselach. Właśnie na tym rozróżnieniu opiera się sensowna rozmowa o SynthID-Image, bo to rozwiązanie nie musi ingerować w sam proces dyfuzji: może działać na gotowym obrazie, zachowując niezależność od tego, jakim modelem został wygenerowany.

To wszystko brzmi technicznie, ale ma prostą konsekwencję: dyfuzja produkuje obrazy, które są „statystycznie wiarygodne”, bo powstają przez kontrolowane odszumianie w kierunku rozkładu danych. Dlatego proste polowanie na wizualne potknięcia traci moc, a rośnie znaczenie metod, które nie próbują zgadywać z wyglądu, tylko polegają na weryfikowalnym sygnale osadzonym w samych danych – i tu płynnie przechodzimy do SynthID.

„Na oko”, co działa, co nie, i dlaczego to nie może być fundament

Skoro wiemy już, że dyfuzja potrafi wytwarzać obrazy o bardzo „fotograficznych” statystykach, łatwiej zrozumieć, czemu ludzkie oko coraz częściej przegrywa. Warto jednak nie popadać w skrajność: ocena wizualna nadal bywa użyteczna, tylko trzeba ją traktować jako narzędzie wstępne, a nie jako metodę dowodową. To jest różnica między „mam podejrzenie” a „mam weryfikację”.

Najbardziej klasyczny repertuar podejrzeń dotyczy miejsc, gdzie obraz jest wrażliwy na semantykę i geometrię jednocześnie. Dłonie i palce długo były słabym punktem, bo wymagają spójności anatomicznej (liczba palców, kształt stawów) i spójności oświetlenia (cienie między palcami, refleksy na paznokciach). Podobnie tekst: litery są szczególnie bezlitosne, bo człowiek rozpoznaje je kategorycznie albo to jest „A”, albo nie. Szczególnie w języku polskim. Wreszcie światło i odbicia: okno, metal, szkło, lustro potrafią obnażyć model, jeśli odbicia nie zgadzają się z pozycją obiektów.

Problem polega na tym, że te wskazówki są w naturalny sposób „wypychane” z modeli. Jeżeli tysiące użytkowników zaczyna wskazywać ten sam błąd, powstaje presja, by go naprawić: albo przez lepszy trening, albo przez filtr po generacji, albo przez narzędzia pomocnicze (np. automatyczne poprawianie twarzy, rąk, tekstu). Efekt jest taki, że heurystyka, która była świetna dwa lata temu, dziś ma dużo gorszą skuteczność i nie ma żadnej gwarancji, że jutro będzie miała jakąkolwiek.

Jest też drugi powód, często ważniejszy w praktyce: obraz, który widzisz w sieci, prawie nigdy nie jest „czystym” wyjściem modelu. Przechodzi przez kompresję, skalowanie, wyostrzanie, odszumianie, dodane ziarno, czasem filtr kolorystyczny, a czasem kilka takich etapów jeden po drugim. Nie maskuje to tylko ewentualnych artefaktów AI, ale także dokleja je do zdjęć prawdziwych. Jeżeli ktoś wrzuci zdjęcie z telefonu po mocnym odszumianiu nocnym, wyostrzy je, a platforma dodatkowo je przekoduje do JPEG, to efekt potrafi wyglądać „nienaturalnie gładko” i łatwo o fałszywy alarm. Analogicznie, jeśli ktoś weźmie obraz AI, doda ziarno filmowe i przepuści przez kompresję, to dostaje „wiarygodny brud”, który wiele osób mylnie bierze za cechę autentyczności.

Dlatego w ocenie „na oko” warto rozdzielić dwie rzeczy: artefakty strukturalne (niespójności geometrii, fizyki, semantyki) i artefakty przetwarzania (JPEG, sharpen, denoise, grain). Te drugie są zdradliwe, bo są wszędzie i nie mówią nic o pochodzeniu. A pierwsze, choć czasem mocne, są coraz rzadsze w modelach i coraz częściej „naprawiane” w pipeline’ach.

W praktyce można więc traktować wzrok jak filtr pierwszego przejścia: jeżeli coś jest ewidentnie nielogiczne albo fizycznie niemożliwe, to jest to dobra wskazówka. Ale jeśli obraz jest po prostu „ładny” albo „zbyt równy”, to nie jest dowód, tylko odczucie. I w tym miejscu dochodzimy do sedna: skoro wygląd jest w najlepszym razie miękką przesłanką, to do rozstrzygania potrzebujemy czegoś, co można sprawdzić niezależnie od gustu, kompresji i kontekstu – czyli sygnału w danych. Właśnie to robią dwie rodziny rozwiązań, które dziś mają największy sens: proweniencja (jeśli jest zachowana) i watermarking (jeśli został zastosowany). A spośród watermarków najciekawszym, bo zaprojektowanym „na skalę internetu”, jest podejście Google DeepMind: SynthID, a w szczególności SynthID-Image.

W kolejnym rozdziale przejdziemy od ogólnej idei do mechaniki: jak wygląda architektura encoder–detector, czym jest payload, jak uczy się odporności na JPEG i kadrowanie, i jak na poziomie pikseli można sobie wyobrazić „niewidoczną” zmianę, którą detektor mimo wszystko potrafi wykryć.

SynthID i SynthID-Image: techniczny rdzeń (post-hoc) + mini-demo na pikselach

W praktyce „SynthID” to nie jeden algorytm-sztuczka, tylko system watermarkingu + detekcji, zaprojektowany do działania w realnym obiegu internetowym: obrazy są kompresowane do JPEG, skalowane, kadrowane, przepuszczane przez filtry i wielokrotnie re-uploadowane. Google DeepMind opisuje to wprost jako kompromis trzech rzeczy naraz: znak ma być niewidoczny, wykrywalny i odporny na typowe modyfikacje. W wersji dla obrazów (SynthID-Image) kluczowe jest jedno zdanie, które porządkuje całą architekturę: to podejście post-hoc i model-independent, znak jest nakładany na gotowy obraz przez osobny moduł (enkoder), a potem wykrywany przez odpowiadający mu detektor/dekoder. Nie jest to „modyfikacja procesu dyfuzji w locie”. [1]

To „post-hoc” jest ważniejsze, niż brzmi. Oznacza, że pipeline wygląda mniej więcej tak: generator (dyfuzja albo cokolwiek innego) produkuje obraz końcowy, a dopiero później wchodzi enkoder SynthID-Image, który dodaje do obrazu bardzo małą, precyzyjnie dobraną perturbację. Ta perturbacja nie jest przypadkowym „szumem” w stylu „zmień co dziesiąty piksel”, tylko wynikiem uczenia: DeepMind opisuje SynthID jako rozwiązanie oparte o dwa modele deep learning (watermarking i identifying), trenowane wspólnie tak, by z jednej strony zwiększać wykrywalność, a z drugiej minimalizować widoczność, m.in. przez „wizualne dopasowanie” znaku do treści. [2] Paper SynthID-Image formalizuje ten problem jako „przesunięcie rozkładu obrazów w sposób wykrywalny dla detektora”, ale przy zachowaniu ograniczeń jakości, a jakość weryfikują nie tylko metrykami, lecz także badaniami z ludźmi. [1]

Druga rzecz, która odróżnia SynthID-Image od wielu popularnych opisów watermarkingu, to payload. System ma nie tylko odpowiedzieć „jest / nie ma znaku”, ale też nieść wielobitową informację (np. do wersjonowania i organizacyjnego zarządzania watermarkami). Autorzy podkreślają, że payload ma być odporny na „codzienne” zmiany treści, a w ich ujęciu problem detekcji i payloadu jest rozwiązywany świadomie (w paperze opisują je jako odrębne wymagania i omawiają, czemu payload jest kluczowy dla proweniencji w praktyce). [1]

Trzecia rzecz to detekcja jako wynik probabilistyczny, nie wyrok. W operacyjnym ujęciu detektor daje score, który trzeba skalibrować (dobór progu pod docelowy poziom fałszywych alarmów). [1] W publicznej komunikacji DeepMind już w 2023 pisał o interpretacji wyniku poprzez poziomy pewności (np. trzy poziomy confidence). [2] To jest podejście „inżynierskie”: narzędzie ma działać w skali i mieć kontrolowany FPR, a nie udawać stuprocentową wyrocznię.

W tle jest jeszcze „internet scale”: paper wprost mówi, że SynthID-Image został użyty do watermarkowania ponad dziesięciu miliardów obrazów i klatek wideo w usługach Google, a usługa weryfikacji była dostępna dla zaufanych testerów. [3] W warstwie produktowej Google opisuje też portal detekcji (SynthID Detector), który ma wykrywać znaki dla różnych modalności i potrafić wskazywać fragmenty treści najbardziej prawdopodobnie watermarked. [4]

Mini-demo: jak wyglądają „mikrozmiany” na poziomie pikseli

Żeby to poczuć praktycznie, weźmy prawdziwy wycinek 4×4 pikseli z brązowego kartonika na kubku (gładka, jasna powierzchnia – czyli miejsce, gdzie znak musi być szczególnie nieinwazyjny i delikatny). Poniżej jest macierz kolorów w HEX odczytana bezpośrednio z pliku.

Oryginalne zdjęcie

b72ac633 3aa3 47f7 bfa8 ea41b4b82eae

Przykład oryginalnego małego obszaru 4×4 px

Screenshot 2026 01 14 at 20.21.57
#C6B19C  #C7B29D  #C8B3A0  #C8B3A0
#C6B19C  #C7B29D  #C7B29F  #C8B3A0
#C7B19C  #C8B29D  #C7B29F  #C8B3A0
#C7B19C  #C9B39E  #C8B3A0  #C9B4A1

Teoretycznie bez dostępu do prawdziwego enkodera SynthID-Image nie powinno się dać wygenerować “prawdziwego” watermarku dla pliku. Możemy jednak pokazać, jak wygląda skala i charakter zmian, o których mówimy – mikroprzesunięcia rzędu pojedynczych jednostek w kanałach RGB. Poniżej jest więc ilustracyjna wersja „po watermarkingu” (toy demo), gdzie zmieniamy wybrane piksele minimalnie (np. +1 w jednym kanale, −1 w innym), tak żeby wypadkowo kolor pozostał wizualnie prawie ten sam.

Ilustracja „po watermarkingu” (4×4, toy demo)

#C7B09C  #C6B39D  #C9B2A0  #C8B3A1
#C5B29C  #C8B19D  #C7B39E  #C9B2A0
#C7B09D  #C8B39C  #C6B39F  #C8B3A1
#C8B09C  #C8B49D  #C9B2A0  #C9B4A0

Co widać „inżyniersko”, nawet w tak małej próbce? Zmiana typu #C6B19C → #C7B09C oznacza, że czerwony kanał wzrósł o 1, zielony spadł o 1, a niebieski został bez zmian. Dla oka to wciąż będzie ten sam ciepły odcień beżu, szczególnie w kontekście sąsiednich pikseli, oświetlenia i całej sceny. Ale dla detektora liczy się nie pojedynczy piksel, tylko to, że takie mikrozmiany układają się w rozproszony, statystycznie spójny sygnał rozlany po wielu fragmentach obrazu.

Screenshot 2026 01 14 at 20.30.31

I tu jest najważniejsza intuicja: detektor w stylu SynthID-Image nie “czyta znaku” z jednego miejsca, nie szuka też prostego schematu w rodzaju „najmłodszy bit w co dziesiątym pikselu”. W rozwiązaniach opisywanych przez Google DeepMind chodzi o to, by encoder nauczył się wprowadzać perturbacje, które są (a) minimalne percepcyjnie, ale (b) nadal dają się wykryć po typowych przekształceniach, jak kompresja JPEG, skalowanie czy kadrowanie, dlatego trening obejmuje symulowanie takich transformacji w pętli uczenia. [1] W publicznych opisach SynthID pojawia się też praktyczny aspekt interpretacji wyniku: narzędzie detekcyjne zwykle nie daje „wyroku absolutnego”, tylko wynik w postaci poziomu pewności/score, który jest kalibrowany pod sensowny kompromis między fałszywymi alarmami i przeoczeniami. [2]

Ten mini-przykład ma więc jeden cel: pokazać, że na poziomie heksów „widzisz” jedynie mikroskopijne przesunięcia, które same w sobie niczego nie dowodzą. Dopiero wtedy, gdy są one generowane przez wytrenowany encoder w sposób skoordynowany i sprawdzane przez odpowiadający mu detektor, stają się weryfikowalnym sygnałem pochodzenia. Dlatego w praktyce nie „ogląda się” SynthID wzrokiem ani przez pojedyncze piksele, sprawdza się go narzędziem, które wie, jakiego typu rozproszonej struktury szuka, czyli jest w stanie „odkodować” ten znak.

Jak SynthID wygląda w praktyce?

Warto w tym miejscu dopisać jedno zastrzeżenie: odporność SynthID-Image jest projektowana przede wszystkim pod typowe przekształcenia dystrybucyjne (kompresja, skalowanie, kadrowanie), ale pojawia się osobna klasa działań, które nie są zwykłą edycją obrazu, tylko generatywnym re-renderingiem – ponowną, kontrolowaną re-syntezą, która zachowuje semantykę i kompozycję sceny, a jednocześnie potrafi nadpisać niskopoziomową „warstwę” pikseli niosącą watermark. W repozytorium SynthID-Bypass [9] autorzy opisują proof-of-concept, w którym takie przetworzenie obniża wykrywalność znaku oraz pokazują ciekawy krok „diagnostyczny” wykorzystując Comfy.

image 1
Przykład workflow Comfy próby obniżenia wykrywalności znaku, źródło https://github.com/00quebec/Synthid-Bypass

Bardzo podobną intuicję widać na przykładzie przygotowanym przeze mnie poniżej: po wygenerowaniu czarnego kwadratu #000000 i manipulacji poziomami, stosując agresywną korektę tonalną, w pliku dało się „wyciągnąć” strukturę z zakodowanymi elementami – niewidoczną w normalnym podglądzie, ale obecną w mikroróżnicach pikselowych. Nie jest to oczywiście próba „obalenia” SynthID, a jedynie doprecyzowanie granic: SynthID-Image jest watermarkiem nastawionym na skalę internetu i określony „threat model”, a przy aktywnym przeciwniku (zwłaszcza stosującym generatywne „pranie” treści) trzeba liczyć się z tym, że wykrywalność może spaść – co zresztą wprost wpisuje się w dyskusję o bezpieczeństwie i kompromisach (fidelity/robustness/security) w pracy SynthID-Image.

Section 1 scaled
Przykład korekty tonalnej czarnego kwadratu

Kontrast: post-hoc (SynthID-Image) vs in-process (watermark „w locie”)

W praktyce watermarking w generatywnych obrazach rozdziela się na dwa podejścia, które brzmią podobnie („dodaj znak wodny”), ale technicznie i operacyjnie są zupełnie innymi systemami. Pierwsze to post-hoc, czyli nakładanie znaku na gotowy obraz. Drugie to in-process, czyli „wplatanie” znaku w sam proces generowania, krok po kroku.

Post-hoc, tak jak w SynthID-Image, jest koncepcyjnie prostsze: model generatywny robi swoje, produkuje finalny obraz, a dopiero potem osobny moduł (enkoder) wprowadza mikrozmiany w pikselach, które są niewidoczne dla oka, ale rozpoznawalne przez odpowiadający detektor. Największa zaleta tego podejścia jest bardzo inżynierska: nie trzeba dotykać generatora. To właśnie znaczy „model-independent”, ten sam schemat watermarkowania można wpiąć za różnymi generatorami, bo działa na ich wyjściu. Z perspektywy wdrożeń to ogromna wygrana: można rozwijać znakowanie i detekcję jako osobny komponent, wersjonować go, testować na nowych transformacjach (JPEG, crop, resize) i aktualizować bez przebudowy całego modelu generującego. W publikacji SynthID-Image widać też, że post-hoc łatwiej traktować jak „produkt na skalę internetu”: kalibrujesz detektor, pilnujesz niskiego odsetka fałszywych alarmów, a odporność budujesz przez trening z augmentacjami symulującymi obróbkę w sieci.

Cena tej wygody jest równie konkretna: enkoder nie może liczyć na to, że generator „wygładzi” perturbację. Skoro obraz jest już gotowy, enkoder musi bardzo ostrożnie dobrać zmiany, żeby nie zostawić widocznych śladów, a jednocześnie utrzymać wykrywalność po kompresji i edycjach. To często prowadzi do twardszego kompromisu „jakość vs odporność”: jeśli chcesz, by znak przetrwał agresywniejsze transformacje, musisz go wprowadzić silniej, a to podnosi ryzyko percepcyjnych artefaktów. Post-hoc jest też z definicji bardziej narażone na pewne klasy ataków typu „usuń znak przez silną degradację”, bo atakujący nie musi walczyć z mechaniką generowania, ponieważ wystarczy mu zmielić obraz na tyle, by detektor stracił sygnał (co oczywiście zwykle psuje też jakość).

In-process, czyli watermark „w locie”, działa inaczej: znak nie jest dodawany po fakcie, tylko jest elementem trajektorii generowania. W modelach dyfuzyjnych oznacza to zwykle, że w trakcie kolejnych kroków odszumiania system wprowadza kontrolowane, małe preferencje w tym, jak powstaje obraz, tak aby końcowy wynik „niósł” sygnał. Technicznie może to być realizowane na kilka sposobów: przez modyfikację tego, jak dobierane są kolejne próbki szumu, przez sterowanie pewnymi cechami w latentach, albo przez wprowadzenie dodatkowego celu/regularizacji, która wymusza obecność łatwo wykrywalnego podpisu. W literaturze pojawiają się schematy, które robią to wprost w procesie dyfuzji (np. rodziny podejść „tree-ring” czy inne latent watermarking), ale wspólna idea jest taka sama: generator i watermark są splecione.

Zaletą in-process jest to, że watermark może być „bardziej organiczny” względem generowanego obrazu i nie jest nakładką na gotowy obraz, tylko wynika z tego, jak obraz powstaje. W pewnych ustawieniach daje to większą odporność na niektóre transformacje, bo sygnał jest głębiej powiązany ze strukturą generowanych cech. Dodatkowo, mająć kontrolę do całego procesu generowania, można projektować watermark od początku z myślą o określonych kanałach (np. częstotliwościowych) i lepiej bilansować go z percepcją.

Ale cena jest wysoka i bardzo praktyczna: nalezy mieć kontrolę nad generatorem. In-process nie jest „nakładką”, tylko zmianą zachowania modelu lub samplera, więc:

  • trudniej to wdrożyć w wielu modelach naraz,
  • trudniej to aktualizować bez wpływu na jakość i dystrybucję wyników,
  • a w przypadku modeli zewnętrznych (gdzie nie ma kontroli samplera) jest to po prostu niewykonalne.

W dodatku in-process mocniej komplikuje ewaluację. Skoro watermark jest częścią generowania, zmienia się pytanie: czy spadek jakości wynika z watermarku, czy z innej konfiguracji samplingu? Jak porównać modele fair? Post-hoc daje czystszy eksperyment: generator jest stały, a watermarking to po prostu osobny moduł.

Podsumowanie

Wydaje się, że na dziś post-hoc wygrywa operacyjnie, a in-process pozostaje atrakcyjne naukowo i być może w dłuższym horyzoncie stanie się bardziej „jakościową” formą watermarkingu w tym sensie, że znak będzie głębiej zintegrowany z mechaniką generowania, a nie dodawany na końcu. Post-hoc (jak SynthID-Image) ma jednak przewagę, która w praktyce przesądza o jego wyborze: jest łatwe do standaryzacji i skalowania. Można potraktować je jak niezależny komponent infrastruktury wpiąć za dowolnym generatorem, rozwijać encoder i detector w osobnym cyklu, stroić odporność na realne transformacje (JPEG, resize, crop, filtry), kalibrować progi pod niski odsetek fałszywych alarmów i aktualizować system bez konieczności „przekopania” samego modelu generującego. To ma znaczenie, jeśli celem jest szerokie zastosowanie: powtarzalność, kontrola ryzyka, kompatybilność z różnymi pipeline’ami i możliwość utrzymania systemu przez lata, mimo że modele generujące będą się zmieniać.

In-process może oferować ciekawe trade-offy, potencjalnie bardziej „organiczne” osadzenie sygnału oraz odporność na część klas ataków, bo watermark jest powiązany z trajektorią generowania, a nie tylko z końcowym obrazem. Jednak ma to wysoką cenę: wymaga pełnej kontroli nad generacją (modelem i samplowaniem), jest trudniejsze do wdrożenia w wielu różnych modelach, a aktualizacje potrafią wpływać na jakość i dystrybucję wyników, co komplikuje zarówno ewaluację, jak i utrzymanie w produkcji.

Innymi słowy: in-process może być świetne tam, gdzie cały stack technologiczny jest pod kontrolą i stabilny, jednak staje się problematyczne, przy próbie zbudowania rozwiązania dla szerszego grona odbiorców, które ma działać w różnych produktach, na różnych modelach i w warunkach ciągłych zmian. Właśnie dlatego duże firmy chętnie wybierają podejścia post-hoc jako warstwę na końcu całego procesu, bo dają one najlepszy stosunek wdrażalności do korzyści, a badania in-process utrzymują jako alternatywną linię rozwoju, która może okazać się kluczowa w środowiskach zamkniętych lub w przyszłych systemach, gdzie kontrola nad generatorem jest pełna i nie trzeba płacić wysokich kosztów integracji.

Bibliografia

[1] S. Gowal et al., „SynthID-Image: Image watermarking at internet scale”, arXiv preprint arXiv:2510.09263, 10 Oct 2025, DOI: 10.48550/arXiv.2510.09263.

[2] Google DeepMind, „SynthID” (strona produktu / dokumentacja ogólna), dostęp: 14 Jan 2026.

[3] Google AI, „Advancing AI safely and responsibly” (sekcja: SynthID / SynthID Detector), dostęp: 14 Jan 2026.

[4] Coalition for Content Provenance and Authenticity (C2PA), „C2PA Technical Specification v1.3”, 29 Mar 2023.

[5] Y. Wen, J. Kirchenbauer, J. Geiping, T. Goldstein, „Tree-Ring Watermarks: Fingerprints for Diffusion Images that are Invisible and Robust”, arXiv preprint arXiv:2305.20030, 31 May 2023.

[6] P. Fernandez et al., „The Stable Signature: Rooting Watermarks in Latent Diffusion Models”, ICCV 2023 (paper), także: arXiv preprint arXiv:2303.15435, 2023.

[7] H. Huang et al., „ROBIN: Robust and Invisible Watermarks for Diffusion Models …”, NeurIPS 2024 Proceedings (paper).

[8] „Guidance Watermarking for Diffusion Models”, arXiv / OpenReview, 2025 (watermarking „w locie” przez guidance).

[9] 00quebec, „SynthID-Bypass” (README), GitHub, dostęp: 21.01.2026.

Jak oceniasz ten artykuł?

Średnia ocena 4.9 / 5. Oceniło: 16

No votes so far! Be the first to rate this post.