Add high-fidelity Qwen Z-Image removal pipeline

This commit is contained in:
Victor Kuznetsov
2026-07-25 16:53:22 -07:00
parent 11afe68411
commit b6204a24ce
27 changed files with 2618 additions and 170 deletions
+23
View File
@@ -18,6 +18,7 @@ external oracle, recorded per image in `verified_via` (see below).
data/synthid_corpus/
README.md # this protocol (committed)
manifest.csv # labels + provenance (committed; one row per tracked image)
quality_sets/ # reusable test-suite manifests over corpus images
images/ # the labeled corpus (committed)
pos/ # SynthID present
neg/ # SynthID absent (incl. reviewed real photos)
@@ -33,6 +34,28 @@ identifiable content you would not publish -- this is a public repo and git
history is permanent. The synthetic `refs/` fills stay gitignored (regenerable,
not part of the labeled set).
## Reusable removal-quality set
`quality_sets/full_pipeline_quality_2026-07-25.csv` is the canonical reusable
input set for full-pipeline visual-quality and watermark-removal tests. Its
fixtures are cleared for permanent public test reuse. Tests, benchmarks, and
manual evaluation bundles may read these images repeatedly without requesting
new permission.
The CSV preserves each platform's original filename and maps it to the one
SHA-256-addressed corpus copy. Use `corpus_path` to read the input, but preserve
`source_filename` in generated result names and keep OpenAI and Gemini outputs
in separate provider groups. This avoids duplicating large PNGs while retaining
the names needed for the corresponding provider oracle.
Rows with a dated negative `final_clean_oracle` were checked after the complete
`visible -> qwen-zimage -> metadata` route with the matching provider oracle.
`not-checked-in-final-candidate` means the input is available as an additional
quality stress fixture, but a newly generated output still needs the matching
oracle before claiming removal. The checked result applies to those exact
output bytes; re-run the oracle after changing the pipeline, seed, model
versions, or runtime settings.
## Verification levels (`verified_via`)
Ground-truth quality, strongest first:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

+1
View File
@@ -38,3 +38,4 @@ f99bd9a51814265a23de467d14792db903fef99678b7e7c960d0c6813ed9b0fc,f99bd9a5-gemini
4aa5f61c55c1f3fa9bbc49dffff8a404527722637ae694a932245629635b3f2b,4aa5f61c-gemini_2_clean_s015_max1536.png,cleaned,"our pipeline (SDXL img2img, --max-resolution 1536)",stabilityai/stable-diffusion-xl-base-1.0,2816,1536,png,,,gemini-app,2026-06-04T00:08:05Z,cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
356196dd63abf011b30b582a0408ccecb726d746065af20ad3611dde72a88725,356196dd-gemini_3_clean_s015_max1536.png,cleaned,"our pipeline (SDXL img2img, --max-resolution 1536)",stabilityai/stable-diffusion-xl-base-1.0,2816,1536,png,,,gemini-app,2026-06-04T00:08:05Z,cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
9e4160bb8e3e915d2d4593e37c71495ee7cfcec183602541166f622ebfd84403,9e4160bb-gemini_4_clean_s015_max1536.png,cleaned,"our pipeline (SDXL img2img, --max-resolution 1536)",stabilityai/stable-diffusion-xl-base-1.0,2816,1536,png,,,gemini-app,2026-06-04T00:08:05Z,cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
228e54413a3ef62b313176dcdba774a56a58c36b54227d1440bc26cbe0aefd82,"228e5441-ChatGPT Image May 31, 2026, 02_02_23 PM.png",pos,ChatGPT,gpt-image,1122,1402,png,OpenAI,yes,c2pa-metadata,2026-07-25T20:21:33Z,Reusable full-pipeline quality fixture; original filename preserved in quality-set manifest; cleared for public test reuse
1 sha256 filename label source model width height format c2pa_issuer synthid_metadata verified_via added notes
38 4aa5f61c55c1f3fa9bbc49dffff8a404527722637ae694a932245629635b3f2b 4aa5f61c-gemini_2_clean_s015_max1536.png cleaned our pipeline (SDXL img2img, --max-resolution 1536) stabilityai/stable-diffusion-xl-base-1.0 2816 1536 png gemini-app 2026-06-04T00:08:05Z cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
39 356196dd63abf011b30b582a0408ccecb726d746065af20ad3611dde72a88725 356196dd-gemini_3_clean_s015_max1536.png cleaned our pipeline (SDXL img2img, --max-resolution 1536) stabilityai/stable-diffusion-xl-base-1.0 2816 1536 png gemini-app 2026-06-04T00:08:05Z cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
40 9e4160bb8e3e915d2d4593e37c71495ee7cfcec183602541166f622ebfd84403 9e4160bb-gemini_4_clean_s015_max1536.png cleaned our pipeline (SDXL img2img, --max-resolution 1536) stabilityai/stable-diffusion-xl-base-1.0 2816 1536 png gemini-app 2026-06-04T00:08:05Z cleaned at strength 0.15 --max-resolution 1536; Gemini-app: SynthID NOT detected (docs/synthid.md 2.2)
41 228e54413a3ef62b313176dcdba774a56a58c36b54227d1440bc26cbe0aefd82 228e5441-ChatGPT Image May 31, 2026, 02_02_23 PM.png pos ChatGPT gpt-image 1122 1402 png OpenAI yes c2pa-metadata 2026-07-25T20:21:33Z Reusable full-pipeline quality fixture; original filename preserved in quality-set manifest; cleared for public test reuse
@@ -0,0 +1,8 @@
provider,source_filename,corpus_path,sha256,original_signal_verified_via,final_clean_oracle
openai,"ChatGPT Image May 30, 2026, 10_31_08 AM.png","images/pos/28ff8732-openai_3_original.png",28ff8732b037f98a4ef5bc277bbcdaa32e5eb9ccbd00b6c8c616e46ef68ae8a0,openai-verify,openai-verify-negative-2026-07-25
openai,"ChatGPT Image May 31, 2026, 02_02_23 PM.png","images/pos/228e5441-ChatGPT Image May 31, 2026, 02_02_23 PM.png",228e54413a3ef62b313176dcdba774a56a58c36b54227d1440bc26cbe0aefd82,c2pa-metadata,not-checked-in-final-candidate
openai,"ChatGPT Image May 31, 2026, 02_03_55 PM.png","images/pos/05b836ec-openai_1_original.png",05b836ecfe40fd689177fda74384ae4fdcc446505bbc4281cd3cbb6523eb669e,openai-verify,openai-verify-negative-2026-07-25
gemini,"Gemini_Generated_Image_3mc4t93mc4t93mc4.png","images/pos/2c33e75a-gemini_4_original.png",2c33e75a2db614ce74c83cc0a6ac6c3ac735aca83ab88c9c9345843b124f7856,gemini-app,gemini-app-negative-2026-07-25
gemini,"Gemini_Generated_Image_633uuy633uuy633u.png","images/pos/4affd7f2-gemini_1_original.png",4affd7f27767a445db6abf741355743ba8d95108ad922c9fff045feed8492236,gemini-app,gemini-app-negative-2026-07-25
gemini,"Gemini_Generated_Image_akdbeiakdbeiakdb.png","images/pos/8c1a6fb0-gemini_2_original.png",8c1a6fb03ef3d45a1f958fb3401e4264e409ff88c2a793061db7f29023454d0e,gemini-app,gemini-app-negative-2026-07-25
gemini,"Gemini_Generated_Image_y48j3cy48j3cy48j.png","images/pos/45d79a68-gemini_3_original.png",45d79a683134fcba1b147b2aedb669783d474e1fb8a4df329729a0904fd1b46b,gemini-app,gemini-app-negative-2026-07-25
1 provider source_filename corpus_path sha256 original_signal_verified_via final_clean_oracle
2 openai ChatGPT Image May 30, 2026, 10_31_08 AM.png images/pos/28ff8732-openai_3_original.png 28ff8732b037f98a4ef5bc277bbcdaa32e5eb9ccbd00b6c8c616e46ef68ae8a0 openai-verify openai-verify-negative-2026-07-25
3 openai ChatGPT Image May 31, 2026, 02_02_23 PM.png images/pos/228e5441-ChatGPT Image May 31, 2026, 02_02_23 PM.png 228e54413a3ef62b313176dcdba774a56a58c36b54227d1440bc26cbe0aefd82 c2pa-metadata not-checked-in-final-candidate
4 openai ChatGPT Image May 31, 2026, 02_03_55 PM.png images/pos/05b836ec-openai_1_original.png 05b836ecfe40fd689177fda74384ae4fdcc446505bbc4281cd3cbb6523eb669e openai-verify openai-verify-negative-2026-07-25
5 gemini Gemini_Generated_Image_3mc4t93mc4t93mc4.png images/pos/2c33e75a-gemini_4_original.png 2c33e75a2db614ce74c83cc0a6ac6c3ac735aca83ab88c9c9345843b124f7856 gemini-app gemini-app-negative-2026-07-25
6 gemini Gemini_Generated_Image_633uuy633uuy633u.png images/pos/4affd7f2-gemini_1_original.png 4affd7f27767a445db6abf741355743ba8d95108ad922c9fff045feed8492236 gemini-app gemini-app-negative-2026-07-25
7 gemini Gemini_Generated_Image_akdbeiakdbeiakdb.png images/pos/8c1a6fb0-gemini_2_original.png 8c1a6fb03ef3d45a1f958fb3401e4264e409ff88c2a793061db7f29023454d0e gemini-app gemini-app-negative-2026-07-25
8 gemini Gemini_Generated_Image_y48j3cy48j3cy48j.png images/pos/45d79a68-gemini_3_original.png 45d79a683134fcba1b147b2aedb669783d474e1fb8a4df329729a0904fd1b46b gemini-app gemini-app-negative-2026-07-25