invisible-watermark
The library for creating and decoding invisible image watermarks
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires torch and opencv-python; dwtDct method is CPU-only and experimental.
- RivaGAN method is 10x slower than default on CPU.
- Low friction installation with pure Python distribution.
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions.
last release 2023-07-06 (1135 days) · last repo commit 2023-09-23 · 1,967 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 237,921 downloads/mo, #8,951 on PyPI
Alternatives
Verify before relying
pip install invisible-watermark
from invisible_watermark import WatermarkEncoder
encoder = WatermarkEncoder()
encoder.set_watermark('bytes', b'test')
encoded = encoder.encode(image_array, 'dwtDct')- 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
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 on it.
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
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.
Requires torch and opencv-python; dwtDct method is CPU-only and experimental. RivaGAN method is 10x slower than default on CPU.
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')
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 | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesPillowPyWaveletsnumpyopencv-pythontorch |
| 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 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 |
Evidence: invisible_watermark-0.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “invisible image watermarking”
- invisible-watermarkEmbeds and decodes invisible watermarks into images using…
- resemble-perthEmbeds imperceptible watermarks into audio files and detects them…
- ocrmypdfOCRmyPDF adds searchable text layers to scanned PDF files using…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also resemble-perth · qudida · watermark · pytorch-wavelets · noisereduce · transparent-background · torchcrepe · PyWavelets · simplejpeg · cloudinary