Dreamina Video Watermark Removal: Pure FFmpeg, No AI, No Uploads

22 days ago

Dreamina Video Watermark Removal: Pure FFmpeg, No AI, No Uploads

One corner badge standing between you and your video

Generating a video in Dreamina is satisfying: type a prompt, wait a few minutes, out comes a decent short clip. But every download carries a small "AI" badge pinned to the top-left corner — ByteDance's transparency marker on free-tier generations. Want to post it to socials, cut it into a portfolio piece, or repurpose it as footage? That badge is the first hurdle.

The usual fix is an online watermark remover or AI tool: upload, queue, wait for frame-by-frame inpainting. It works, but it's slow, requires network access, may compress the output, and raises privacy questions — your footage passes through someone else's server first.

Is there a lighter path? A tiny GitHub project called dreamina-delogo offers a counterintuitive answer: process it locally with pure FFmpeg — ~30 seconds for a 15-second clip, no AI, no upload, no quality loss.


1. Why "no AI" is actually the optimal call

Look at what the Dreamina watermark actually is: a small badge fixed in the top-left corner — same position, same size, frozen from the first frame to the last.

For this kind of watermark, AI inpainting is overkill. AI video repair (ProPainter, LaMa, RunwayML's Erase & Replace) shines on dynamic watermarks, large occlusions, and complex backgrounds — at the cost of being 10–100× slower and needing a GPU or a paid API. A static little badge, though, is a textbook case for classic interpolation-based patching: estimate the pixels under the watermark from the surrounding frame.

FFmpeg ships a built-in filter for exactly this: delogo, which fills the watermark region by per-pixel interpolation of neighboring pixels. Fast, clean, zero hardware requirements.

dreamina-delogo adds one refinement: delogo's rectangular boundary can leave a visible seam, so the project layers a radial-feathered gaussian blur (a radial gradient generated with the geq filter) on top, smoothly fading the patch edges into the surrounding frame. The seam disappears.


2. Performance and quality, by the numbers

Measured figures from the README:

  • Speed: a 15-second clip processes in about 30 seconds
  • Audio: -c:a copy — bit-for-bit copy, zero audio loss
  • Video quality: re-encoded at CRF 18 (x264's visually-lossless range; 16–20 is the sweet spot), medium preset by default
  • Batch: single files or whole folders
  • Platforms: bash script for macOS/Linux, PowerShell script for Windows

Two real examples are included: an easy case (static camera, soft sky background — the badge vanishes) and a hard case (shaky handheld, busy detailed ground — the patch edges are still barely visible). Before/after MP4s ship in the repo.


3. How to use it

  1. Install FFmpeg (if needed):

    # macOS
    brew install ffmpeg
    # Linux
    sudo apt install ffmpeg
    

    Verify with ffmpeg -version.

  2. Clone the repo:

    git clone https://github.com/olegpars/dreamina-delogo.git
    cd dreamina-delogo
    
  3. Run it:

    # single file
    ./delogo.sh input.mp4
    # whole folder
    ./delogo.sh ./folder/
    

    Windows users run delogo.ps1 instead.


4. Tuning: what if the watermark isn't where the defaults expect

The defaults are calibrated for Dreamina vertical 834×1112 with the AI badge top-left. Horizontal video, a different position, or a different generator? Adjust these variables:

VariableDefaultWhat it does
LOGO_X / LOGO_Y10 / 10Top-left corner of the delogo bounding box
LOGO_W / LOGO_H66 / 52Box size (badge + a few px margin)
BLUR_W / BLUR_H84 / 74Feather zone size (anchored at 0,0 by default)
BLUR_CX / BLUR_CY40 / 34Center of the radial blur
BLUR_R0 / BLUR_R128 / 40Inner/outer feather radius (full → zero blur)
BLUR_SIGMA2Gaussian strength (higher = softer)
CRF18x264 quality (16–20 recommended)
PRESETmediumx264 speed preset

Finding coordinates: export a frame.png with FFmpeg, open it in any viewer that shows pixel coordinates (Photoshop, IrfanView, Paint, GIMP, even browser DevTools), hover over the watermark, read the bounding box, and plug the numbers in.


5. Limitations: what it can't handle

The README is blunt: this handles static, fixed-position, small-area badges only.

  • ❌ Dynamic / moving watermarks (e.g., full-screen drifting ones)
  • ❌ Large-area watermarks (subtitle bars, half-frame logos)
  • ❌ Multiple watermark positions

For those, use AI inpainting (ProPainter, RunwayML, Topaz Video AI). Slower, but only they can reconstruct dynamic/complex scenes properly.


6. Free script vs. the official paid plan

Dreamina does offer a "no watermark" exit: paid membership (from ~$9.60/month) exports videos without the visible "AI Generated" badge. Right for heavy daily users. Two caveats though:

  1. Paid exports only drop the visible badge — an invisible fingerprint watermark (standard on ByteDance AI products) remains on every output
  2. If you also use Kling, Sora, Runway, etc., each platform charges separately for clean exports — the FFmpeg script is one config that adapts to any watermark position (just change the coordinates)

Which to pick:

ScenarioRecommendation
Occasional clips, want fast and freedreamina-delogo
Privacy-sensitive, no uploads alloweddreamina-delogo
Batch-processing whole foldersdreamina-delogo
Generating constantly, heavy daily useOfficial paid plan (clean at the source)
Dynamic / complex watermarksAI repair tools

7. The takeaway

dreamina-delogo has just 6 commits and 1 star, but it embodies an underrated idea in an over-hyped AI era: not every problem needs AI. For a fixed static watermark, an interpolation algorithm from two decades ago is still the optimal tool — fast, free, local, lossless.

Next time you face an "AI video badge" problem, ask whether the watermark is static. If it is, a single FFmpeg command may beat any AI tool. It's MIT-licensed — take it and make it yours.

Author
Admin
Category