English | 中文
This project provides an elegant way to remove the sora watermark in the sora2 generated videos.
- Watermark removed
sora_watermark_removed.mp4
- Original
19700121_1645_68e0a027836c8191a50bea3717ea7485.mp4
⭐️: Yolo weights has been updated, try the new version watermark detect model, it should works better.
The SoraWatermarkCleaner(we call it SoraWm later) is composed of two parsts:
-
SoraWaterMarkDetector: We trained a yolov11s version to detect the sora watermark. (Thank you yolo!)
-
WaterMarkCleaner: We refer iopaint's implementation for watermark removal using the lama model.
(This codebase is from https://github.com/Sanster/IOPaint#, thanks for their amazing work!)
Our SoraWm is purely deeplearning driven and yields good results in many generated videos.
We highly recommend using the uv to install the environments:
- installation:
uv syncnow the envs will be installed at the
.ven, you can activate the env using:source .venv/bin/activate
- Downloaded the pretrained models:
The trained yolo weights will be stored in the resources dir as the best.pt. And it will be automatically download from https://github.com/linkedlist771/SoraWatermarkCleaner/releases/download/V0.0.1/best.pt . The Lama model is downloaded from https://github.com/Sanster/models/releases/download/add_big_lama/big-lama.pt, and will be stored in the torch cache dir. Both downloads are automatic, if you fail, please check your internet status.
To have a basic usage, just try the example.py:
from pathlib import Path
from sorawm.core import SoraWM
if __name__ == "__main__":
input_video_path = Path(
"resources/dog_vs_sam.mp4"
)
output_video_path = Path("outputs/sora_watermark_removed.mp4")
sora_wm = SoraWM()
sora_wm.run(input_video_path, output_video_path)We also provide you with a streamlit based interactive web page, try it with:
streamlit run app.pyHere, we provide a FastAPI-based web server that can quickly turn this watermark remover into a service.
Simply run:
python start_server.py
The web server will start on port 5344.
You can view the FastAPI documentation for more details.
There are three routes available:
-
submit_remove_task
After uploading a video, a task ID will be returned, and the video will begin processing immediately.
- get_results
You can use the task ID obtained above to check the task status.
It will display the percentage of video processing completed.
Once finished, the returned data will include a download URL.
- download
You can use the download URL from step 2 to retrieve the cleaned video.
Packaged as a Cog and published to Replicate for simple API based usage.
Apache License
If you use this project, please cite:
@misc{sorawatermarkcleaner2025,
author = {linkedlist771},
title = {SoraWatermarkCleaner},
year = {2025},
url = {https://github.com/linkedlist771/SoraWatermarkCleaner}
}- IOPaint for the LAMA implementation
- Ultralytics YOLO for object detection