skillfed

invisible-watermark

The library for creating and decoding invisible image watermarks

invisible-watermark v0.2.0 237.9K downloads/30d#8,951 on PyPI1,967
Permissive license DORMANT released

What it is and what it does

invisible-watermark is a Python library and CLI tool for embedding imperceptible watermarks into images and extracting them later. It implements frequency-domain methods (dwtDct, dwtDctSvd using discrete wavelet and cosine transforms) and a deep-learning approach (RivaGAN) trained on movie clips. The library does not require the original image to decode the watermark, making it useful for copyright protection and content tracking.

The package is explicitly experimental and CPU-only, with the default dwtDct method suitable for real-time embedding but slower variants intended for offline use. The library trades off robustness for speed: it handles JPEG compression, noise, brightness changes, and overlays well, but fails on image resizing and rotation. Known limitations include poor performance on screenshots and uniform-background images, and no guarantee of 100% accurate decoding even without attacks.

Use it for:

  • Embed copyright or ownership marks into digital images for content tracking without visible artifacts
  • Batch-process image collections to add imperceptible watermarks for rights management
  • Extract and verify embedded watermarks from potentially modified images to confirm authenticity
  • Test watermark robustness against common image transformations like compression and noise
  • Protect video frames or screenshots with watermarks resistant to cropping and masking

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Embeds and decodes invisible watermarks into images using frequency-domain and deep-learning algorithms, with a command-line interface and Python API.

Yes, with conditions. The package solves a real problem (invisible watermarking) with working implementations and low install friction. However, the project is dormant since mid-2023, explicitly experimental, CPU-only, and the authors acknowledge it cannot guarantee 100% accurate decoding. Install if you need frequency-domain watermarking for non-critical applications or research; avoid for production systems requiring active maintenance or GPU acceleration.

Install

invisible-watermark on PyPI

pip

pip install invisible-watermark

uv

uv add invisible-watermark

poetry

poetry add invisible-watermark

Installing invisible-watermark

Before you install

Low friction installation with pure Python distribution. Project is dormant since July 2023 with no recent updates; last commit was September 2023. Relies on five runtime dependencies including torch, which adds significant disk and memory overhead.

License in practice

Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions.

Quickstart

pip install invisible-watermark

from invisible_watermark import WatermarkEncoder

encoder = WatermarkEncoder()
encoder.set_watermark('bytes', b'test')
encoded = encoder.encode(image_array, 'dwtDct')

Requires torch and opencv-python; dwtDct method is CPU-only and experimental. RivaGAN method is 10x slower than default on CPU.

Verify before relying

  • Whether GPU acceleration has been added since the last release in July 2023
  • Current robustness against modern image compression or transformation techniques beyond those documented
  • Production-readiness status given the experimental designation and dormant maintenance
  • How to properly import and use the library's public API beyond the documented examples

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies 5 — Pillow, PyWavelets, numpy, opencv-python, torch
Maintenance dormant — 1,135 days since the last release
Last repo commit
First released
Downloads 237,921/month — #8,951 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: invisible_watermark-0.2.0-py3-none-any.whl

License :: OSI Approved :: MIT LicenseOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3

Tags

invisible image watermarkingdigital watermark embeddingimage watermark encoding decodingfrequency domain watermarkingwatermark robustness testingbatch image watermarkingwatermark extraction from images
watermarkingimage-processingcopyright-protection

More Graphics packages