Invisible Watermarking for AI Content
Embed undetectable watermarks in AI-generated text, images, and audio. Verify authenticity and combat misinformation with our detection engine.
https://github.com/vika908/WaldoTry It Yourself
We are hosting our own LLM server wich a custom watermarking model. You can see the difference beetween a watermarked and a clear response.
1 - less noise, worse detection 5 - more noise, better detection
Clear Response
No WatermarkResponse will appear here...
Watermarked Response
WatermarkedResponse will appear here...
Built for Real-World Protection
Waldo helps platforms and users maintain trust in an AI-powered world

Combat Fake News
Detect AI-generated misinformation in articles and images before they spread across platforms.

Identify Bot Accounts
Spot AI bots posing as humans in social media comments and conversations with confidence.

Verify Profile Authenticity
Protect users from AI-generated fake profiles and deepfake images on social platforms.
Documentation & Resources
Everything you need to integrate Waldo into your platform
How It Works
Our text watermarking is powered by SynthID, an open-source technology that embeds an imperceptible statistical pattern into generated text. This pattern is created by subtly biasing token selection during generation in a way that does not affect readability or meaning, but can be detected with high confidence by a dedicated verifier.
For images, the watermark is embedded by introducing a specific pattern of noise that corresponds to a unique frequency signature. When transformed into the frequency domain, the watermarked image contains a distinct circular imbalance that can be reliably detected by our system.
For more details, please refer to the github repository: https://github.com/vika908/Waldo
Example of use
from wheres_waldo import GemmaDetector, StableDiffusionDetector# Text Detection
detector = GemmaDetector(tokenizer=...)
result = detector.detect("Some suspicious text...")
print(result)# Image Detection
sd_detector = StableDiffusionDetector()
result = sd_detector.detect(pil_image)
print(result)
Documentation References
This project implements concepts from the following papers:
- Scalable watermarking for identifying large language model outputs: SynthID Text (Google)
- Gemma 2: Improving Open Language Models at a Practical Size
- High-Resolution Image Synthesis with Latent Diffusion Models
- Secure Data Embedding using Fourier Transform-based Watermarking