14.8K ·GitHub
What is this?
This is a Python library for blind, invisible image watermarking: you embed a hidden watermark into an image and can later extract it without needing the original, un-watermarked image.
Is this a library or a command-line tool?
It is a Python library that can also be driven straight from the command line, so you can either import it in Python code or run bash commands to embed and extract watermarks.
How do I get it embedding watermarks?
Install the package for your Python environment, then call the embed function on an image plus your watermark data, and the matching extract function to pull it back out later.
Do I need anything besides Python?
No extra dependencies are called out in the README beyond Python itself; you can optionally pass a processes argument to use multiprocessing for faster embedding.
Does the watermark survive edits to the image?
The demos show the hidden watermark surviving 45-degree rotation, random cropping, masking, vertical/horizontal cuts, resizing, pepper noise, and a 10% brightness drop, but robustness naturally depends on how severe the distortion is.
What kinds of data can I embed as a watermark?
You can embed a text string, another image, or a raw array of bits as the watermark payload.
Why doesn't extraction need the original image?
The library is a 'blind' watermarking method by design, meaning the watermark can be pulled directly out of the watermarked image without comparing it to the original.
Are there related projects for watermarking other media?
The same author maintains 'textblindwatermark' for hiding messages inside text and 'HideInfo' for hiding data as images, sounds, or text.
What are similar projects?
noai-watermark, amazing-qr, pytube, caire, gallery-dl, primitive, blurhash, guetzli
Which topics is it in?
watermark, algorithm, image, python-library, image-processing, computer-vision, command-line, utility, command-line-tool, terminal, chinese, tool
+ '@guofei9987 开源万岁!' = 









