Cover QuickTime TC260 placements, Luma AI tags, and MiniMax video provenance

This commit is contained in:
Victor Kuznetsov
2026-08-17 19:38:37 -07:00
parent 2369d351a9
commit 21ce1dfadd
15 changed files with 327 additions and 67 deletions
+36
View File
@@ -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": {}})