You look at the bottom corner of a clean-looking generation and there’s a smudge shaped like a watermark: usually unreadable text, a Shutterstock-style logo silhouette, or what looks like a scrawled signature. Occasionally it’s a legible “shutterstock” or “getty” word; more often it’s a vague watermark-shaped ghost.
Fastest fix: if you’re on a Stable Diffusion family model (SDXL, SD 3.5, Pony, Illustrious), add watermark, signature, logo, text to your negative prompt and re-roll; that clears it in most cases. If you’re on Flux or Midjourney, negative prompts work differently (see below) so go straight to cropping the outer ~5% or inpainting the corner out.
This is training-data residue, not a tracking watermark. The model was trained on millions of stock photos that carried watermarks, so it learned that “professional photo” sometimes comes with a watermark-shaped artifact. It reproduces the shape even though there’s no real logo or attribution behind it. (This is unrelated to invisible provenance watermarks like Google’s SynthID or C2PA metadata, which are a separate topic and can’t be removed by re-prompting.)
Which bucket are you in?
| Symptom | Most likely cause | Go to |
|---|---|---|
| Same corner every time, center clean | Resolution / corner artifacting | Cause 4, Step 3 |
| Legible “getty”/“shutterstock”/“alamy” text | Stock-style prompt words or brand name | Cause 2/5, Steps 1-2 |
| Random watermark-ish blob, varies per seed | No negative-prompt blocker (SD) | Cause 1, Step 1 |
| Happens on every model you try | Stock-style style words, not the model | Cause 2, Step 2 |
| Only on one checkpoint, clean on others | Checkpoint trained on watermarked data | Cause 3, Step 5 |
Common causes
Ordered by hit rate, highest first.
1. No negative-prompt watermark blocker (SD-family only)
On Stable Diffusion models, without watermark, signature, logo, text overlay in the negative prompt the model freely generates them whenever it thinks “professional photo” warrants it. Note: Flux ignores negative prompts in its standard distilled/guidance pipeline, and Midjourney uses the --no parameter instead of an inline negative field, so this cause and Step 1 apply specifically to SD-family tools.
How to spot it: you’re on SDXL/SD 3.5/Pony/Illustrious and your negative prompt is missing those words.
2. Style words that evoke stock-photo training data
"stock photo style, professional photography, commercial photography,
high quality photograph, editorial photography, cinematic"
These phrases are over-represented in watermarked training data, so the model associates them with the watermark itself. This is the one cause that follows you across every model, including Flux and Midjourney.
How to spot it: prompt contains stock photo, professional photography, editorial, or commercial. Replace with neutral terms (Step 2).
3. Checkpoint has heavy stock-photo training
Some checkpoints (older SDXL fine-tunes, certain “photoreal” merges, models trained on loosely web-scraped data) show far more watermark residue than others.
How to spot it: the same prompt on a known-clean checkpoint (Juggernaut XL v9+, RealVisXL v5+, FLUX.1 dev or FLUX.2 dev base) produces no watermark, so the original model is the source.
4. Generated at a resolution where corners get messy
Some models produce more corner artifacts at off-native resolutions (e.g., 768×768 on SDXL, whose native training size is 1024×1024). The center is fine; the corners collect garbage.
How to spot it: the artifact is always in the same corner and the center is clean. Re-run at the model’s native resolution.
5. A brand or press-style prompt the model ties to watermarks
shot like a Getty Images photo, Reuters style, documentary press photography: all of these carry brand association in training data, and the model may reproduce the brand watermark with the look.
How to spot it: your prompt names a watermarked-source brand or agency. Drop the brand name (Step 2).
Shortest path to fix
Step 1: Negative-prompt the watermark (SD-family)
For SDXL / SD 3.5 / Pony / Illustrious, paste into the negative prompt:
watermark, signature, logo, text, text overlay,
stamp, copyright, branding, getty images, shutterstock,
adobe stock, alamy, depositphotos, watermark text,
attribution text, artist signature, frame border, photo frame
This single addition clears the watermark in roughly 70-80% of SD-family cases. Keep the list tied to the actual problem; SDXL tends to flatten detail if you bloat the negative prompt with unrelated terms, so don’t pile on generic quality words here.
For Midjourney (V8.1, the current default, and V7), use the --no parameter instead of an inline negative field:
--no watermark, signature, text, logo
Note that --no reads each word independently (it applies roughly a -0.5 weight per term), so keep the terms simple and unambiguous.
For Flux (FLUX.1 / FLUX.2 dev): negatives are not honored, so skip to Step 2 (rephrase the prompt) or Step 4 (inpaint).
Step 2: Drop watermark-evoking style words
Remove from the positive prompt:
stock photo, stock photography, professional photography,
commercial photography, editorial photo, getty style,
shutterstock style, reuters style, AP photo
Replace with neutral descriptors:
photograph, 35mm film, natural photo, documentary,
candid moment, available light
This is the fix that works on every model, including Flux and Midjourney, because it removes the trigger rather than fighting it.
Step 3: Crop the outer ~5% and re-upscale
Watermark residue almost always hides in the corners, so a crop plus upscale clears most of it:
# Photoshop / Pixelmator (manual)
1. Crop ~5% off each edge
2. Resize back up to original dimensions (bicubic or AI upscale)
3. Done — the corner artifact is gone
# Command line (ImageMagick 7)
magick input.png -gravity center -crop 90%x90%+0+0 -resize 1024x1024 output.png
# Or compose with an intentionally tighter crop
"... --ar 4:5" # Midjourney: a taller frame naturally trims corner artifacts
Step 4: Inpaint over the watermark
If cropping isn’t acceptable (you need the full frame):
# Mask the watermark region, then regenerate just that patch
- Photoshop / Affinity / Pixelmator: Generative Fill / Remove tool
- SDXL Forge / ComfyUI: inpaint with a prompt matching the surroundings
- FLUX.1 Kontext: "remove the watermark in the corner" (natural-language edit)
- Gemini "Nano Banana" image edit: same, natural-language removal
- Cleanup.pictures / Photoroom: free browser tools for a one-off
Modern inpaint tools reconstruct from surrounding pixels rather than just painting over, so the patch blends seamlessly even on textured backgrounds.
Step 5: Switch checkpoint
Try the identical prompt on a cleaner model:
# Known cleaner
- Juggernaut XL v9+
- RealVisXL v5+
- FLUX.1 dev / FLUX.2 dev base
- Midjourney V8.1 / V7 (heavily filtered training set)
# Known watermark-heavy (avoid for stock-style work)
- Older SDXL base / early fine-tunes
- Generic "photoreal" merges
- Some loosely web-scraped fine-tunes
Step 6: Push generation quality up
# Midjourney V7 (legacy)
--quality 1 # default on V7; valid values are 0.25, 0.5, 1
# affects only the first 4-image grid, not upscales/variations
# raise it only if you had explicitly lowered it to 0.25/0.5
# NOTE: V8.1 (the current default) dropped --quality; on V8.1 just
# use the default model and rely on Steps 1-5 plus HD mode instead
# SDXL
- More steps (30-40) + a better sampler (DPM++ 2M Karras)
- CFG 6-7 — the model commits harder to "no watermark" once you've specified it
How to confirm it’s fixed
- Zoom to 100-200% on every corner and along the bottom edge; that’s where residue hides.
- Generate 3-4 seeds with the corrected prompt, not just one; a single clean roll can be luck.
- If you cropped or inpainted, check the patch edges for a seam or a blur halo at full resolution before delivery.
Prevention
- Bake
watermark, signature, text, logointo your default SD negative-prompt template, and--no watermark, signature, textinto your Midjourney preset. - Avoid
stock photo/professional photographystyle words; usephotograph/35mm filminstead. This is the single highest-leverage habit because it works across all models. - For commercial work, default to known-clean checkpoints (Juggernaut, RealVisXL, FLUX dev).
- Always inspect corners on every generated image before delivery.
FAQ
Why does AI add a watermark when I never asked for one? It isn’t adding a real watermark. The model saw millions of watermarked stock photos in training and learned that “professional photo” sometimes includes a watermark-shaped blob, so it paints the shape from memory. There’s no logo file behind it, which is why it usually looks garbled.
Negative prompts aren’t removing the watermark on Flux. What gives?
Flux’s standard pipeline doesn’t honor negative prompts, so adding watermark there does nothing. On Flux, remove the stock-style trigger words from your positive prompt (Step 2), or inpaint/crop the corner out (Steps 3-4).
Is it legal to remove a watermark-shaped artifact from my AI image? A training-data artifact isn’t anyone’s actual logo or copyrighted mark, so removing the smudge from your own generation is generally fine. That’s different from stripping a real third-party watermark off someone else’s photo, and different again from invisible provenance signals like SynthID or C2PA metadata, which identify AI origin and aren’t removed by re-prompting.
The watermark is always in the exact same corner. Why? That’s a resolution/corner-artifacting signature, not a content one. Run at the model’s native resolution (1024×1024 for SDXL), or just crop the outer ~5% and upscale (Step 3).
Which checkpoints are cleanest for stock-style photography? As of June 2026, Juggernaut XL v9+, RealVisXL v5+, and the FLUX dev bases are reliably clean. Avoid older SDXL base, generic “photoreal” merges, and loosely web-scraped fine-tunes for commercial work.