From 4b4049a6f1cdafafca32c97987eac40efd370ffe Mon Sep 17 00:00:00 2001 From: Victor Kuznetsov Date: Sun, 31 May 2026 17:53:48 -0700 Subject: [PATCH] docs(text-protection): update stale strength note (~0.05 -> ~0.30 SynthID threshold) Co-Authored-By: Claude Opus 4.8 --- docs/text-protection-research.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/text-protection-research.md b/docs/text-protection-research.md index 9c54428..5c6ab50 100644 --- a/docs/text-protection-research.md +++ b/docs/text-protection-research.md @@ -14,8 +14,10 @@ filter applied to every candidate below. ## Problem recap -The `invisible` pipeline is SDXL base 1.0 img2img at low strength (~0.05) to defeat -SynthID with minimal visible change. Text is protected via Differential Diffusion with a +The `invisible` pipeline is SDXL base 1.0 img2img to defeat SynthID. The default +strength has risen over time as Google hardens SynthID (0.05 -> 0.10 -> **~0.30**, the +current threshold for fresh Gemini output); higher strength deforms text more, which is +exactly why text protection matters. Text is protected via Differential Diffusion with a per-pixel change map (`preserve` ~0.9) driven by the PP-OCRv3 DB detector (`text_protector.py`). Large text survives; **small text (sub ~8 px strokes) softens or garbles** (issue #14, confirmed on real content).