laidline-diffusers 1.0.4__tar.gz → 1.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: laidline-diffusers
3
- Version: 1.0.4
4
- Summary: `attach(pipe)` marks every image a diffusers pipeline returns (watermark, C2PA, evidence) and replaces the SDXL invisible watermarker
3
+ Version: 1.0.6
4
+ Summary: `attach(pipe)` marks the images a diffusers pipeline returns (watermark, evidence, and C2PA on the signed `out.assets`) and replaces the SDXL invisible watermarker
5
5
  Project-URL: Homepage, https://laidline.com
6
6
  Project-URL: Documentation, https://laidline.com/docs/quickstart
7
7
  Project-URL: Changelog, https://laidline.com/docs/changelog
@@ -26,8 +26,10 @@ Description-Content-Type: text/markdown
26
26
 
27
27
  # laidline-diffusers
28
28
 
29
- `attach(pipe, marker)` marks every image a diffusers pipeline returns (TrustMark watermark, C2PA manifest, evidence
30
- entry), exactly once per image, and replaces SDXL's artifact-prone invisible watermarker. `detach(pipe)` undoes it.
29
+ `attach(pipe, marker)` marks the images a diffusers pipeline returns (PixelSeal watermark by default, C2PA manifest,
30
+ evidence entry), once per image, and replaces SDXL's artifact-prone invisible watermarker. An image under 128 px on its
31
+ short side, or below the PSNR floor, is signed without the watermark; a flat or solid-colour image whose mark does
32
+ not read back is signed without it and logged as `unmarked`. `detach(pipe)` undoes it.
31
33
 
32
34
  ```python
33
35
  from laidline import Marker
@@ -44,8 +46,9 @@ out.images[0] # the same pixels, watermark only (a man
44
46
  - `out.images` carry the watermark only, in the original type, shape and dtype; `out.assets[i]` (`MarkedAsset`) holds
45
47
  the signed bytes (`data`, `asset_id`, `manifest_id`, `save(path)`). Store or serve `asset.data`.
46
48
  - SDXL's `StableDiffusionXLWatermarker` is replaced (`pipe.watermark = None`; `replace_watermarker=False` keeps it).
47
- - A marking failure raises `MarkError`: no unmarked image is returned.
49
+ - A marking failure raises `MarkError`: no unmarked image is returned, apart from the cases above.
48
50
 
49
51
  Status: proven on diffusers 0.40.0 tiny random pipelines on CPU (`hf-internal-testing/tiny-stable-diffusion-torch`
50
- and `hf-internal-testing/tiny-stable-diffusion-xl-pipe`); no production checkpoint was run. See
51
- https://laidline.com/docs/integrations/diffusers.
52
+ and `hf-internal-testing/tiny-stable-diffusion-xl-pipe`), and on 21 Oct 2026 on `stabilityai/stable-diffusion-xl-base-1.0`
53
+ (fp16, RTX 5080): four 1024 px images, each detected as marked at grade B, with a development signing chain and unkeyed
54
+ payloads. See https://laidline.com/docs/integrations/diffusers.
@@ -1,7 +1,9 @@
1
1
  # laidline-diffusers
2
2
 
3
- `attach(pipe, marker)` marks every image a diffusers pipeline returns (TrustMark watermark, C2PA manifest, evidence
4
- entry), exactly once per image, and replaces SDXL's artifact-prone invisible watermarker. `detach(pipe)` undoes it.
3
+ `attach(pipe, marker)` marks the images a diffusers pipeline returns (PixelSeal watermark by default, C2PA manifest,
4
+ evidence entry), once per image, and replaces SDXL's artifact-prone invisible watermarker. An image under 128 px on its
5
+ short side, or below the PSNR floor, is signed without the watermark; a flat or solid-colour image whose mark does
6
+ not read back is signed without it and logged as `unmarked`. `detach(pipe)` undoes it.
5
7
 
6
8
  ```python
7
9
  from laidline import Marker
@@ -18,8 +20,9 @@ out.images[0] # the same pixels, watermark only (a man
18
20
  - `out.images` carry the watermark only, in the original type, shape and dtype; `out.assets[i]` (`MarkedAsset`) holds
19
21
  the signed bytes (`data`, `asset_id`, `manifest_id`, `save(path)`). Store or serve `asset.data`.
20
22
  - SDXL's `StableDiffusionXLWatermarker` is replaced (`pipe.watermark = None`; `replace_watermarker=False` keeps it).
21
- - A marking failure raises `MarkError`: no unmarked image is returned.
23
+ - A marking failure raises `MarkError`: no unmarked image is returned, apart from the cases above.
22
24
 
23
25
  Status: proven on diffusers 0.40.0 tiny random pipelines on CPU (`hf-internal-testing/tiny-stable-diffusion-torch`
24
- and `hf-internal-testing/tiny-stable-diffusion-xl-pipe`); no production checkpoint was run. See
25
- https://laidline.com/docs/integrations/diffusers.
26
+ and `hf-internal-testing/tiny-stable-diffusion-xl-pipe`), and on 21 Oct 2026 on `stabilityai/stable-diffusion-xl-base-1.0`
27
+ (fp16, RTX 5080): four 1024 px images, each detected as marked at grade B, with a development signing chain and unkeyed
28
+ payloads. See https://laidline.com/docs/integrations/diffusers.
@@ -0,0 +1,7 @@
1
+ """``attach(pipe)`` marks the images a diffusers pipeline returns (PixelSeal watermark by default, C2PA manifest on
2
+ saved files, evidence entry) exactly once, and replaces SDXL's artifact-prone invisible watermarker. ``detach(pipe)``
3
+ undoes it."""
4
+
5
+ from .attach import attach, detach, is_attached
6
+
7
+ __all__ = ["attach", "detach", "is_attached"]
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "laidline-diffusers"
3
- version = "1.0.4"
4
- description = "`attach(pipe)` marks every image a diffusers pipeline returns (watermark, C2PA, evidence) and replaces the SDXL invisible watermarker"
3
+ version = "1.0.6"
4
+ description = "`attach(pipe)` marks the images a diffusers pipeline returns (watermark, evidence, and C2PA on the signed `out.assets`) and replaces the SDXL invisible watermarker"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
7
7
  authors = [{name = "Laidline LLC"}]
@@ -1,6 +0,0 @@
1
- """``attach(pipe)`` marks every image a diffusers pipeline returns (TrustMark watermark, C2PA manifest, evidence entry)
2
- exactly once, and replaces SDXL's artifact-prone invisible watermarker. ``detach(pipe)`` undoes it."""
3
-
4
- from .attach import attach, detach, is_attached
5
-
6
- __all__ = ["attach", "detach", "is_attached"]