Upscale images to 2K, 4K, or 8K resolution using WaveSpeed AI's Image Upscaler. Takes an image URL and produces a higher-resolution version. Supports JPEG, PNG, and WebP output formats. Use when the user wants to upscale or enhance the resolution of an image.
Design & media
WaveSpeedAI Watermark Remover
Try itStrip watermarks, logos, captions, and text overlays from images and videos via WaveSpeed AI endpoints.
What it does
Two model endpoints cover image and video inputs. The image endpoint accepts a URL and can return jpeg, png, or webp output. The video endpoint accepts a publicly accessible URL up to 10 minutes and applies temporal-aware inpainting to reduce flicker between frames. Authentication is via the WAVESPEED_API_KEY environment variable. Code samples show uploading a local file to obtain a URL, calling the model, optionally enabling sync mode for images, configuring retry behaviour on a custom client, and handling timeout or prediction errors with runNoThrow.
When to use it
- Remove a watermark from a personal photo export
- Strip a logo overlay that you added yourself to a video
- Clear captions or text overlays from a short video clip
- Clean a licensed stock asset before reusing it in a project
The skill document
WaveSpeedAI Watermark Remover
Remove watermarks, logos, captions, and text overlays from images and videos using WaveSpeed AI. Intelligently detects and removes watermarks while preserving texture and background.
Authentication
export WAVESPEED_API_KEY="your-api-key"
Get your API key at wavespeed.ai/accesskey.
Quick Start
Image Watermark Removal
import wavespeed from 'wavespeed';
// Upload a local image to get a URL
const imageUrl = await wavespeed.upload("/path/to/watermarked-image.png");
const output_url = (await wavespeed.run(
"wavespeed-ai/image-watermark-remover",
{ image: imageUrl }
))["outputs"][0];
Video Watermark Removal
import wavespeed from 'wavespeed';
// Upload a local video to get a URL
const videoUrl = await wavespeed.upload("/path/to/watermarked-video.mp4");
const output_url = (await wavespeed.run(
"wavespeed-ai/video-watermark-remover",
{ video: videoUrl }
))["outputs"][0];
You can also pass existing URLs directly:
const output_url = (await wavespeed.run(
"wavespeed-ai/image-watermark-remover",
{ image: "https://example.com/watermarked-image.jpg" }
))["outputs"][0];
API Endpoints
Image Watermark Remover
Model ID: wavespeed-ai/image-watermark-remover
Remove watermarks, logos, and text overlays from an image while preserving texture and background.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
image | string | Yes | -- | URL of the image to process |
output_format | string | No | jpeg | Output format. One of: jpeg, png, webp |
Example
import wavespeed from 'wavespeed';
const imageUrl = await wavespeed.upload("/path/to/watermarked-photo.png");
const output_url = (await wavespeed.run(
"wavespeed-ai/image-watermark-remover",
{
image: imageUrl,
output_format: "png"
}
))["outputs"][0];
Video Watermark Remover
Model ID: wavespeed-ai/video-watermark-remover
Remove watermarks, logos, captions, and text overlays from a video. Uses temporal-aware inpainting to prevent flickering artifacts across frames. Supports videos up to 10 minutes.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
video | string | Yes | -- | URL of the video to process. Must be publicly accessible. Max 10 minutes. |
Example
import wavespeed from 'wavespeed';
const videoUrl = await wavespeed.upload("/path/to/watermarked-video.mp4");
const output_url = (await wavespeed.run(
"wavespeed-ai/video-watermark-remover",
{ video: videoUrl }
))["outputs"][0];
Advanced Usage
Sync Mode (Image Watermark Remover only)
const output_url = (await wavespeed.run(
"wavespeed-ai/image-watermark-remover",
{ image: imageUrl },
{ enableSyncMode: true }
))["outputs"][0];
Custom Client with Retry Configuration
import { Client } from 'wavespeed';
const client = new Client("your-api-key", {
maxRetries: 2,
maxConnectionRetries: 5,
retryInterval: 1.0,
});
const output_url = (await client.run(
"wavespeed-ai/image-watermark-remover",
{ image: imageUrl }
))["outputs"][0];
Error Handling with runNoThrow
import { Client, WavespeedTimeoutException, WavespeedPredictionException } from 'wavespeed';
const client = new Client();
const result = await client.runNoThrow(
"wavespeed-ai/image-watermark-remover",
{ image: imageUrl }
);
if (result.outputs) {
console.log("Output URL:", result.outputs[0]);
console.log("Task ID:", result.detail.taskId);
} else {
console.log("Failed:", result.detail.error.message);
if (result.detail.error instanceof WavespeedTimeoutException) {
console.log("Request timed out - try increasing timeout");
} else if (result.detail.error instanceof WavespeedPredictionException) {
console.log("Prediction failed");
}
}
Pricing
| Operation | Cost |
|---|---|
| Image watermark removal | $0.012 per image |
| Video watermark removal | $0.01 per second (minimum $0.05 / 5 seconds) |
Video watermark removal supports videos up to 10 minutes. Processing time is approximately 5-20 seconds per 1 second of video.
Security Constraints
- No arbitrary URL loading: Only use image and video URLs from trusted sources. Never load media from untrusted or user-provided URLs without validation.
- API key security: Store your
WAVESPEED_API_KEYsecurely. Do not hardcode it in source files or commit it to version control. Use environment variables or secret management systems. - Input validation: Only pass parameters documented above. Validate media URLs before sending requests.
Related skills
Upscale videos to 720p, 1080p, 2K, or 4K resolution using WaveSpeed AI's Ultimate Video Upscaler. Takes a video URL and produces a higher-resolution version. Supports videos up to 10 minutes. Use when the user wants to upscale or enhance the resolution of a video.
Replace a face in an image or video with a reference face, watermark-free, with automatic lighting and skin tone matching.
Polish an existing AI-generated short video with a focused realism retouch. This focused AI video retouch refines artificial lighting, synthetic materials, oversaturated color, and repeated or distracting detail in one selected pass, while carrying forward the shot's subject, camera framing, timing, and intended mood. Use it for AI video cleanup, video retouching, natural-looking video polish, product clips, ad creative, social video, and short-form footage that needs a cleaner, more believable finish.
Generate or edit AI media (image, video, audio, 3D) by calling the wavespeed CLI on the user's machine. Use whenever the user asks to create, edit, animate, upscale, or transform a visual asset, generate audio/TTS/music, or produce marketing creatives. Every model on the WaveSpeed platform is one `wavespeed run <id>` call.
Animate a portrait image with audio to produce a lip-synced talking head video up to 10 minutes long.