mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-19 20:17:12 +02:00
Cover QuickTime TC260 placements, Luma AI tags, and MiniMax video provenance
This commit is contained in:
@@ -823,6 +823,42 @@ class TestExifGenerator:
|
||||
path = _img_with_software(tmp_path, "jpg", "Forever Editor 2.0")
|
||||
assert exif_generator(path) is None
|
||||
|
||||
def test_luma_ai_png_text_chunks_detected(self, tmp_path: Path):
|
||||
# Luma AI stamps tEXt Software="Uni-1" (model name, not a token) plus
|
||||
# Source/Comment values carrying "Luma AI"; the Source value must match.
|
||||
from PIL.PngImagePlugin import PngInfo
|
||||
|
||||
info = PngInfo()
|
||||
info.add_text("Software", "Uni-1")
|
||||
info.add_text("Source", "Luma AI")
|
||||
info.add_text("Comment", "Generated by Luma AI's Uni-1 model (https://lumalabs.ai)")
|
||||
path = tmp_path / "luma.png"
|
||||
Image.new("RGB", (64, 64)).save(path, pnginfo=info)
|
||||
assert exif_generator(path) == "Luma AI"
|
||||
|
||||
def test_luma_token_not_overmatched(self, tmp_path: Path):
|
||||
# The token is "luma ai" with the space: a bare "luma" (e.g. a luma
|
||||
# chart tool) must not fire.
|
||||
path = _img_with_software(tmp_path, "jpg", "Luma Chart Export 2.0")
|
||||
assert exif_generator(path) is None
|
||||
|
||||
def test_luma_removal_parity(self, tmp_path: Path):
|
||||
from PIL.PngImagePlugin import PngInfo
|
||||
|
||||
from remove_ai_watermarks.metadata import remove_ai_metadata
|
||||
|
||||
info = PngInfo()
|
||||
info.add_text("Software", "Uni-1")
|
||||
info.add_text("Source", "Luma AI")
|
||||
info.add_text("Comment", "Generated by Luma AI's Uni-1 model (https://lumalabs.ai)")
|
||||
src = tmp_path / "luma.png"
|
||||
Image.new("RGB", (64, 64)).save(src, pnginfo=info)
|
||||
assert exif_generator(src) == "Luma AI"
|
||||
|
||||
out = tmp_path / "clean.png"
|
||||
remove_ai_metadata(src, out)
|
||||
assert exif_generator(out) is None
|
||||
|
||||
def test_aphrodite_make_detected(self, tmp_path: Path):
|
||||
# Aphrodite AI writes EXIF Make="Aphrodite AI".
|
||||
exif = piexif.dump({"0th": {piexif.ImageIFD.Make: b"Aphrodite AI"}, "Exif": {}, "GPS": {}, "1st": {}})
|
||||
|
||||
Reference in New Issue
Block a user