mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-10-14 13:30:55 +02:00
Guard the docs seam, and close the eight knobs it had already lost
The code-to-code seams were guarded and the code-to-docs seam was not, so it drifted the way an unguarded seam does. docs/cli.md named none of --adaptive-polish, --controlnet-scale, --detect/--no-detect, --humanize, --strength, --tile-size or --tile-overlap; --no-detect is the escape hatch the CLI's own --sensitivity help recommends. docs/python-api.md named 9 of the 16 InvisibleOptions fields. The new test reads the live Click tree and the live dataclass rather than a hand-kept list. Group spellings by the Click parameter, not by string surgery: a boolean pair can be spelled --strip-metadata/--keep-metadata or --keep-standard/--remove-all, and deriving the partner from a --no- prefix splits those and demands both halves. Mutation-tested both ways -- removing a flag from cli.md and adding a field to InvisibleOptions each fail it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
326840bab4
commit
adbc6a3046
4 files changed
+133
-1
No files matched your search
@@ -146,6 +146,31 @@ engine's own parameter names and defaults. `force`, which decides whether the
|
||||
engine runs at all, is a parameter of `remove_all` and `remove_batch` alongside
|
||||
`backend` and `sensitivity`.
|
||||
|
||||
The complete field set, with the shipped defaults:
|
||||
|
||||
| Field | Default | Effect |
|
||||
| --- | --- | --- |
|
||||
| `strength` | `None` | Denoising strength. `None` resolves per profile and vendor cohort. |
|
||||
| `pipeline` | `"qwen-zimage"` | Profile: `qwen-zimage`, `sdxl-zimage`, `chroma-zimage`, or `auto`. |
|
||||
| `vendor` | `None` | Strength cohort, and an assertion that the watermark is present. |
|
||||
| `seed` | `None` | `None` uses the certified seed 0. Removal near the floor is seed-dependent. |
|
||||
| `hf_token` | `None` | Hugging Face token for the model download; the environment and a local `.env` are read when unset. |
|
||||
| `humanize` | `0.0` | Analog film grain. 0 is off; 2.0-6.0 is the useful band. |
|
||||
| `unsharp` | `0.0` | Unsharp-mask sharpening. 0 is off. |
|
||||
| `adaptive_polish` | `None` | `None` lets the profile decide (off for `qwen-zimage`, on for `sdxl-zimage`); `True`/`False` override it. |
|
||||
| `max_resolution` | `0` | Cap the long side before diffusion. 0 keeps native geometry and the most detail. |
|
||||
| `controlnet_conditioning_scale` | `1.0` | Canny ControlNet conditioning on the global stage. Higher stays closer to the original structure and text. |
|
||||
| `cpu_offload` | `False` | Stream model components between CPU and GPU. Lower CUDA memory, slower. |
|
||||
| `tile` | `False` | Regenerate large inputs in overlapping tiles instead of downscaling. |
|
||||
| `tile_size` | `1024` | Tile side in pixels when `tile` is set. |
|
||||
| `tile_overlap` | `128` | Tile overlap in pixels. More overlap hides seams and costs time. |
|
||||
| `text_manifest` | `None` | Path to an operator-verified text manifest; see the text-restoration section. |
|
||||
| `fidelity_anchor` | `False` | Opt into the fidelity-anchor pass. |
|
||||
|
||||
`tests/test_docs_cover_the_public_surface.py` fails when a field is added here
|
||||
and not to this table, because this seam had already drifted by eight fields
|
||||
before anything checked it.
|
||||
|
||||
If AI metadata survives the strip, `remove_all` raises `MetadataStripIncomplete`
|
||||
**before** writing anything: an AI-readable output is worse than no output.
|
||||
|
||||
|
||||
Reference in new issue
Block a user