Now in Beta

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/Waldo

Try 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.

Text Server: Checking...
Image Server: Checking...

1 - less noise, worse detection 5 - more noise, better detection

Clear Response

No Watermark

Response will appear here...

Watermarked Response

Watermarked

Response will appear here...

Built for Real-World Protection

Waldo helps platforms and users maintain trust in an AI-powered world

Combat Fake News

Combat Fake News

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

Identify Bot Accounts

Identify Bot Accounts

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

Verify Profile Authenticity

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