Um exemplo prático, com os ficheiros
Comparar uma cópia de imagem com uma nova exportação
Usa um hash para comparar bytes e uma verificação de metadados para examinar os registos guardados. Uma nova exportação pode mostrar a mesma imagem e, ao mesmo tempo, alterar o hash do ficheiro e os detalhes de criação disponíveis.
Segue os passos
- Transfere abaixo o original com parâmetros, a sua cópia byte a byte e a reexportação PNG.
- Compara o original com a cópia byte a byte. Neste exemplo, o SHA-256 do ficheiro e todos os registos legíveis coincidem.
- Compara o original com a reexportação. Os píxeis descodificados coincidem, mas o hash muda e o prompt deixa de ser legível.
As operações exatas testadas
A cópia byte a byte foi feita com Buffer.from(input). A reexportação foi feita com sharp(input).png().toBuffer(), usando a versão da biblioteca registada no JSON de resultados. São operações locais, não uma experiência numa rede social.
O exemplo isola uma diferença prática: preservar o fluxo original de bytes preserva os registos anexados. Escrever um novo ficheiro de imagem pode tratar os metadados de outra forma.
Usa a comparação adequada
A ferramenta de hash no navegador calcula SHA-256 para o ficheiro selecionado completo. A ferramenta de comparação de píxeis compara os píxeis descodificados. Usa a comparação de metadados para campos identificados de prompt, definições e fluxos de trabalho.
Um hash diferente não explica o que mudou. Píxeis iguais não explicam como foram criados. Regista cada observação separadamente.
Guarda uma cópia da origem
Quando o original for importante para uma análise, guarda-o junto das cópias transformadas. Regista a operação que criou cada cópia e testa o resultado. Não pressuponhas que uma opção de preservação de metadados abrange todos os campos personalizados; verifica os campos exatos de que precisas.
Transferir · Executar · Comparar
Experimenta o exemplo verificado
Desenhámos a imagem por código e anexámos registos controlados. Os prompts e nomes de modelos guardados são dados de demonstração. Estes ficheiros testam a leitura de registos; não usámos um gerador de imagens, uma aplicação de captura de ecrã ou uma rede social para criar estes resultados de teste.
Resultado observado
| Campo | Antes | Depois | Estado |
|---|---|---|---|
| Prompt guardado | Controlled example: a paper boat on a blue table | Controlled example: a paper boat on a blue table | Igual |
| Semente | 42 | 42 | Igual |
| Passos | 20 | 20 | Igual |
| Largura de geração guardada | 1024 | 1024 | Igual |
| Altura de geração guardada | 768 | 768 | Igual |
| Campo | Antes | Depois | Estado |
|---|---|---|---|
| Prompt guardado | Controlled example: a paper boat on a blue table | Não lido | Ilegível no ficheiro posterior |
| Semente | 42 | Não lido | Ilegível no ficheiro posterior |
| Passos | 20 | Não lido | Ilegível no ficheiro posterior |
| Largura de geração guardada | 1024 | Não lido | Ilegível no ficheiro posterior |
| Altura de geração guardada | 768 | Não lido | Ilegível no ficheiro posterior |
Os valores de semente no JSON são cadeias de texto para preservar a precisão dos números inteiros grandes. Um resultado null aqui significa que não foi devolvido um prompt guardado suportado.
Hashes e reprodução
- parameters-tEXt.png · 13.371 bytes
e76d2af4e6c273e1ba8ca6cf2b5b7885ceda2321bce893f0bb5f9e64ace17c9f - original-copy.png · 13.371 bytes
e76d2af4e6c273e1ba8ca6cf2b5b7885ceda2321bce893f0bb5f9e64ace17c9f - reencoded.png · 13.179 bytes
acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf
Os ficheiros de teste e as observações estão sob CC0-1.0. Transferir todas as observações e versões ou ler o procedimento. O script completo de reprodução em Node.js (requer sharp) cria os mesmos ficheiros de teste e compara bytes e píxeis. O código-fonte da isGenAI também verifica os campos guardados com npx tsx scripts/build-guide-lab.ts.
Para o estudo separado de exportação, explora os 18 casos de retenção de metadados.
Fontes e método
As fontes primárias indicadas descrevem os formatos. Os resultados dos ficheiros de teste foram verificados com asserções automáticas no leitor atual da isGenAI. Estes guias foram preparados com assistência de IA e revistos com base nesses exemplos.
Comunicar um erro ou exemplo não suportado. Para um registo assinado, examina as Content Credentials.