Praktyczny przykład wraz z plikami
Porównaj kopię obrazu z ponownym eksportem
Użyj skrótu pliku do porównania bajtów, a kontroli metadanych do sprawdzenia zapisanych rekordów. Nowy eksport może pokazywać ten sam obraz, zmieniając zarówno skrót pliku, jak i dostępne informacje o utworzeniu.
Wykonaj kolejne kroki
- Pobierz poniższy oryginał z parametrami, jego kopię bajtową oraz ponowny eksport PNG.
- Porównaj oryginał z kopią bajtową. W tym przykładzie skrót SHA-256 pliku i wszystkie czytelne rekordy są zgodne.
- Porównaj oryginał z ponownym eksportem. Zdekodowane piksele są zgodne, ale skrót pliku się zmienia, a prompt nie jest już czytelny.
Dokładnie przetestowane operacje
Kopię bajtową utworzono za pomocą Buffer.from(input). Ponowny eksport wykonano przez sharp(input).png().toBuffer(), używając wersji biblioteki zapisanej w JSON z wynikami. Są to operacje lokalne, a nie eksperyment w serwisie społecznościowym.
Przykład wyodrębnia praktyczną różnicę: zachowanie oryginalnego strumienia bajtów zachowuje również dołączone rekordy. Zapisanie nowego pliku obrazu może inaczej obsłużyć metadane.
Użyj odpowiedniego porównania
Narzędzie do skrótów plików w przeglądarce oblicza SHA-256 całego wybranego pliku. Porównanie pikseli zestawia natomiast zdekodowane piksele obrazu. Do nazwanych pól promptów, ustawień i workflow użyj porównania metadanych.
Inny skrót nie wyjaśnia, co się zmieniło. Zgodne piksele nie wyjaśniają, jak powstały. Zapisuj każdą obserwację osobno.
Zachowaj kopię źródłową
Jeśli oryginał jest ważny dla analizy, zachowaj go obok przekształconych kopii. Zapisz, jaka operacja utworzyła każdą kopię, a następnie sprawdź jej wynik. Nie zakładaj, że opcja zachowania metadanych obejmuje każde niestandardowe pole; zweryfikuj dokładnie potrzebne pola.
Pobierz · Uruchom · Porównaj
Wypróbuj sprawdzony przykład
Narysowaliśmy obraz kodem i dodaliśmy kontrolowane rekordy. Zapisane prompty i nazwy modeli są danymi demonstracyjnymi. Pliki testują odczyt rekordów; do uzyskania tych wyników nie użyto generatora obrazów, aplikacji do zrzutów ekranu ani sieci społecznościowej.
Zaobserwowany wynik
| Pole | Przed | Po | Stan |
|---|---|---|---|
| Zapisany prompt | Controlled example: a paper boat on a blue table | Controlled example: a paper boat on a blue table | Takie samo |
| Wartość seed | 42 | 42 | Takie samo |
| Kroki | 20 | 20 | Takie samo |
| Zapisana szerokość generowania | 1024 | 1024 | Takie samo |
| Zapisana wysokość generowania | 768 | 768 | Takie samo |
| Pole | Przed | Po | Stan |
|---|---|---|---|
| Zapisany prompt | Controlled example: a paper boat on a blue table | Nie odczytano | Nieczytelne w późniejszym pliku |
| Wartość seed | 42 | Nie odczytano | Nieczytelne w późniejszym pliku |
| Kroki | 20 | Nie odczytano | Nieczytelne w późniejszym pliku |
| Zapisana szerokość generowania | 1024 | Nie odczytano | Nieczytelne w późniejszym pliku |
| Zapisana wysokość generowania | 768 | Nie odczytano | Nieczytelne w późniejszym pliku |
Wartości seed w JSON są ciągami znaków, aby duże liczby całkowite zachowały precyzję. Wynik null oznacza tutaj, że nie zwrócono obsługiwanego zapisanego promptu.
Skróty i odtwarzanie
- parameters-tEXt.png · 13 371 bajtów
e76d2af4e6c273e1ba8ca6cf2b5b7885ceda2321bce893f0bb5f9e64ace17c9f - original-copy.png · 13 371 bajtów
e76d2af4e6c273e1ba8ca6cf2b5b7885ceda2321bce893f0bb5f9e64ace17c9f - reencoded.png · 13 179 bajtów
acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf
Pliki testowe i obserwacje są udostępnione na warunkach CC0-1.0. Pobierz wszystkie obserwacje i wersje lub przeczytaj opis procedury. Kompletny skrypt odtwarzania Node.js (wymaga sharp) tworzy te same dane testowe i porównuje bajty oraz piksele. Kod źródłowy isGenAI dodatkowo weryfikuje zapisane pola za pomocą npx tsx scripts/build-guide-lab.ts.
W osobnym badaniu eksportu sprawdź 18 przypadków zachowania metadanych.
Źródła i metoda
Podlinkowane źródła pierwotne opisują formaty. Wyniki plików testowych do pobrania sprawdzono automatycznymi asercjami względem aktualnego czytnika isGenAI. Te poradniki przygotowano z pomocą AI i zweryfikowano na podstawie tych przykładów.
Zgłoś błąd lub nieobsługiwany przykład. Aby sprawdzić podpisany rekord, sprawdź Content Credentials.