
छवियों और वीडियो से दृश्यमान और अदृश्य AI वॉटरमार्क तथा प्रोवेनेंस मेटाडेटा हटाएँ। SynthID, C2PA, EXIF, IPTC, XMP और सामान्य जनरेटिव-AI मार्क्स के लिए Python लाइब्रेरी और CLI।
अपने स्वयं द्वारा जनरेट किए गए चित्रों और वीडियो से AI प्रोवेनेंस चिह्न हटाएँ:
वीडियो समर्थन में प्रोवेनेंस पहचान, संपूर्ण दृश्यमान-प्लस-मेटाडेटा सफाई, निर्देशिका बैच, दृश्यमान Sora, Veo, Seedance, Dola, Hailuo और Kling चिह्न हटाना, और वीडियो SynthID हटाने के लिए oracle-प्रमाणित VAE पुनर्जनन शामिल है।
इसे ऑनलाइन raiw.cc पर आज़माएँ यदि आप Python इंस्टॉल नहीं करना चाहते या डिफ्यूज़न मॉडल स्थानीय रूप से नहीं चलाना चाहते।
यह प्रोजेक्ट आपके स्वामित्व वाली सामग्री पर कानूनी उपयोग के लिए है। यह स्टॉक एजेंसी प्रीव्यू या अन्य वॉटरमार्क को लक्षित नहीं करता जो तृतीय-पक्ष भुगतान सामग्री की सुरक्षा करते हैं। दायरा, सुरक्षा और कानूनी नोट देखें।
निचले-स्तर और विशेषीकृत एक्स्ट्रा में pixels, heif, trustmark, migan, lama और diffusion शामिल हैं। इंस्टॉलेशन गाइड उनकी सटीक निर्भरता संरचना और मॉडल आवश्यकताओं का दस्तावेज़ीकरण करता है।
मेटाडेटा-केंद्रित डिफ़ॉल्ट CLI इंस्टॉल करें:
uv tool install remove-ai-watermarks
चित्र का निरीक्षण करें:
remove-ai-watermarks identify image.png
दृश्यमान वॉटरमार्क हटाने के लिए, पिक्सेल निर्भरताएँ इंस्टॉल करें:
uv tool install --force "remove-ai-watermarks[visible]"
फिर एक ज्ञात दृश्यमान चिह्न और AI मेटाडेटा हटाएँ:
remove-ai-watermarks visible image.png -o clean.png
दृश्यमान इनपेंटिंग या डिफ्यूज़न चलाए बिना मेटाडेटा हटाएँ:
remove-ai-watermarks metadata image.png --remove -o clean.png
-o के बिना यह कमांड स्रोत को उसी स्थान पर अधिलेखित कर देता है।
MP4, MOV, M4V, WebM, MKV, AVI या FLV फ़ाइल से AI मेटाडेटा का निरीक्षण या हटाना करें:
remove-ai-watermarks video metadata input.mp4 --check
remove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4
video metadata कमांड वीडियो या ऑडियो स्ट्रीम को ट्रांसकोड नहीं करता। ऊपर दिए गए चित्र कमांड के विपरीत, जब -o छोड़ दिया जाता है तो यह <source>_clean लिखता है और मूल को सुरक्षित रखता है। MP4 और MOV निरीक्षण में moov.udta.meta.keys/ilst में मूल TC260 AIGC टैग शामिल होता है, जिसमें मीडिया पेलोड के बाद रखा गया moov भी शामिल है। MKV और WebM निरीक्षण मानक Segment.Tags.Tag.SimpleTag स्थान पढ़ता है। AVI LIST/INFO/AIGC का उपयोग करता है, जबकि FLV script.onMetaData.AIGC का उपयोग करता है। गैर-ISOBMFF प्रारूपों को हटाने के लिए स्ट्रीम कॉपी के साथ रीमक्स किया जाता है।
किसी फ़ाइल की पहचान करने या साफ़ करने के लिए उत्पाद-उन्मुख वीडियो पथ का उपयोग करें:
uv tool install --force "remove-ai-watermarks[video]"
remove-ai-watermarks video identify input.mp4
remove-ai-watermarks video all input.mp4 -o clean.mp4
video all उपस्थित होने पर एक स्थिर पंजीकृत दृश्यमान चिह्न हटाता है और हमेशा सत्यापित AI मेटाडेटा हटाता है। यदि कोई भी सिग्नल नहीं मिलता है, तब भी यह समान-कंटेनर पासथ्रू लिखता है, जिससे एप्लिकेशन कॉलर्स को एक पूर्वानुमानित आउटपुट अनुबंध मिलता है। मालिकाना अदृश्य-वीडियो हटाना डिफ़ॉल्ट रूप से बाहर रखा गया है। --invisible लॉसी, oracle-प्रमाणित वीडियो SynthID प्रोफ़ाइल में ऑप्ट-इन करता है।
उसी अनुबंध के साथ निर्देशिका प्रोसेस करें:
remove-ai-watermarks video batch ./videos --mode all
एक समर्थित दृश्यमान वीडियो चिह्न हटाएँ:
remove-ai-watermarks video visible input.mp4 -o clean.mp4
remove-ai-watermarks video visible veo.mp4 --mark veo -o veo_clean.mp4
remove-ai-watermarks video visible seedance.mp4 --mark seedance -o seedance_clean.mp4
remove-ai-watermarks video visible dola.mp4 --mark dola -o dola_clean.mp4
remove-ai-watermarks video visible hailuo.mp4 --mark hailuo -o hailuo_clean.mp4
remove-ai-watermarks video visible kling.mp4 --mark kling -o kling_clean.mp4
यह पथ पिक्सेल बदलने से पहले संपूर्ण अनुक्रम को स्कैन करता है। यह केवल उस चिह्न को स्वीकार करता है जो आसन्न फ़्रेमों में स्थिर स्थिति पर दोहराता है, फिर चित्र हटाने के समान OpenCV, MI-GAN या LaMa फ़िल बैकएंड का पुन: उपयोग करता है। ऑडियो बिना पुनः-एन्कोडिंग के कॉपी किया जाता है और उसे अपने प्राकृतिक अंत तक पहुँचने दिया जाता है; वीडियो स्ट्रीम ट्रांसकोड की जाती है क्योंकि उसके पिक्सेल बदलते हैं। डिफ़ॉल्ट रूप से, एक सुरक्षित ऑप्टिकल-फ्लो पास पिछले स्वीकृत फ़िल को मोशन-एलाइन करता है और उसे केवल तब मिश्रित करता है जब आस-पास का स्रोत संदर्भ सहमत होता है; इसे अक्षम करने के लिए --no-temporal-consistency का उपयोग करें। एन्कोडर ffmpeg की अंतर्निहित raw-BGR डिफ़ॉल्ट पर निर्भर रहने के बजाय समर्थित 8-बिट स्रोत क्रोमा सैंपलिंग, कलर टैग और MP4/MOV ट्रैक टाइमस्केल को संरक्षित करता है। परिवर्तनीय फ़्रेम अंतराल को औसत फ़्रेम दर पर समतल करने के बजाय एक टाइमस्टैम्प्ड इन-मेमोरी NUT ब्रिज के माध्यम से संरक्षित किया जाता है। गैर-शून्य स्रोत प्रारंभ टाइमस्टैम्प कॉपी किए गए ऑडियो ऑफ़सेट के साथ बनाए रखे जाते हैं। डिफ़ॉल्ट --mark auto सभी प्रदाताओं को एक डीकोड पास में स्कैन करता है और नीचे दिखाए गए विशिष्टता क्रम में पहला स्थिर मिलान चुनता है। पहचान को एक प्रदाता तक सीमित करने के लिए एक स्पष्ट मार्क पास करें। Sora गतिशील Sora 2 मैस्कॉट और वर्डमार्क को कवर करता है। Veo वर्तमान चार-बिंदु डायमंड और विरासत Veo टेक्स्ट दोनों को कवर करता है। Seedance स्थिर बॉक्स्ड AI लेबल को कवर करता है, Dola स्थिर Dola AI टेक्स्ट को कवर करता है, Hailuo समग्र MINIMAX | hailuo AI लेबल को कवर करता है, और Kling अपने संस्करण प्रत्यय के साथ निचले-दाएँ KLING AI लेबल को कवर करता है। एक पूर्ण एन्कोड परमाणु रूप से प्रकाशित होता है। जब कोई स्थिर चिह्न नहीं मिलता है तो कोई आउटपुट नहीं लिखा जाता है। HDR, PQ/HLG और 8-बिट से अधिक इनपुट को OpenCV की 8-बिट BGR सीमा के माध्यम से चुपचाप कम करने के बजाय एन्कोडिंग से पहले अस्वीकार कर दिया जाता है।
वीडियो SynthID हटाएँ:
uv tool install --force "remove-ai-watermarks[video,diffusion]"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4
यह पथ पूरे अनुक्रम को समय में साझा किए गए एक लेटेंट-नॉइज़ फ़ील्ड के साथ पुनर्जनित करता है, संपूर्ण ऑडियो कॉपी करता है, स्रोत मेटाडेटा हटाता है, और पूर्ण एन्कोड को परमाणु रूप से प्रकाशित करता है। डिफ़ॉल्ट noise_std=0.15 प्रोफ़ाइल दो-कैरियर कैलिब्रेशन और एक संपूर्ण सार्वजनिक आठ-सेकंड Veo oracle जाँच दोनों में उत्तीर्ण हुई। Google एक स्थानीय डिकोडर प्रकाशित नहीं करता, इसलिए असामान्य रूप से महत्वपूर्ण फ़ाइलों या प्रदाता परिवर्तनों के बाद एक नई प्रदाता जाँच उपयोगी बनी रहती है, लेकिन यह उत्पाद परिणाम स्थिति नहीं है।
अदृश्य वॉटरमार्क हटाने के लिए, qwen-zimage एक्स्ट्रा इंस्टॉल करें। एक NVIDIA GPU आवश्यक है: दोनों प्रोफ़ाइल केवल CUDA हैं, और कोई CPU या MPS फ़ॉलबैक नहीं है।
uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png
यदि स्थानीय डिटेक्टर अदृश्य वॉटरमार्क की पुष्टि नहीं कर सकते लेकिन आप जानते हैं कि चित्र AI जनरेटर से आया है, तो --force जोड़ें:
remove-ai-watermarks invisible image.png -o clean.png --force
Homebrew, uv, वैकल्पिक सुविधाओं और विकास सेटअप के लिए इंस्टॉलेशन गाइड देखें।
| पहले | बाद में |
|---|---|
![]() | ![]() |
qwen-zimage डिफ़ॉल्ट प्रोफ़ाइल है: Canny ControlNet के अंतर्गत एक Qwen-Image-2512 Lightning पास, उसके बाद किसी भी पहचाने गए चेहरे की SAM-मास्क्ड Z-Image मरम्मत। विकल्प, sdxl-zimage, वैश्विक चरण को SDXL से बदल देता है और समान चेहरे वाला चरण रखता है। दोनों केवल CUDA हैं।
uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png --force
इन सटीक आउटपुट फ़ाइलों की जाँच मेल खाते प्रदाता वेरिफ़ायर से की गई थी। यह परिणाम इन फ़ाइलों पर लागू होता है, हर सीड, चित्र या भविष्य के वॉटरमार्क संस्करण पर नहीं।
remove-ai-watermarks visible image.png -o clean.png
डिफ़ॉल्ट --mark auto सभी पंजीकृत दृश्यमान चिह्नों की जाँच करता है और हर मिलान को हटाता है। यदि चिह्न आपको दिखाई देता है लेकिन डिटेक्टर उसे नहीं पहचान पाता, तो उसका क्षेत्र स्पष्ट रूप से चुनें:
remove-ai-watermarks erase image.png \
--region 1640,1930,400,100 \
-o clean.png
--region x,y,width,height का उपयोग करता है और इसे दोहराया जा सकता है।
जब कोई सीखा हुआ बैकएंड इंस्टॉल नहीं होता है तो visible एक्स्ट्रा OpenCV इनपेंटिंग का उपयोग करता है। अधिक कठिन पृष्ठभूमियों के लिए, सीखा-बैकएंड एक्स्ट्रा में समान पिक्सेल निर्भरताएँ स्वचालित रूप से शामिल होती हैं:
uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan
uv tool install --force "remove-ai-watermarks[lama]"
remove-ai-watermarks visible image.png -o clean.png --backend lama
remove-ai-watermarks invisible image.png -o clean.png \
--cpu-offload --force
CPU ऑफलोड मॉडल घटकों को CPU और GPU के बीच स्थानांतरित करके CUDA मेमोरी दबाव कम करता है, गति की कीमत पर।
remove-ai-watermarks batch ./images --mode visible
remove-ai-watermarks batch ./images --mode all
दृश्यमान चिह्न समर्थन में शामिल है:
मेटाडेटा और प्रोवेनेंस निरीक्षण में C2PA, EXIF, XMP, IPTC, सामान्य जनरेटर पैरामीटर, चीन TC260 AIGC लेबल और कई विक्रेता-विशिष्ट सिग्नल शामिल हैं। वैकल्पिक डिकोडर खुले DWT-DCT वॉटरमार्क और Adobe TrustMark के लिए समर्थन जोड़ते हैं।
सटीक समर्थन मैट्रिक्स, जिसमें महत्वपूर्ण लोकेल और डिटेक्टर सीमाएँ शामिल हैं, समर्थित सिग्नल में उपलब्ध है।
दृश्यमान हटाना तीन चरणों में होता है:
मेटाडेटा हटाना प्रारूप-जागरूक स्ट्रिपिंग का उपयोग करता है। JPEG मेटाडेटा हटाना पुनःसंपीड़ित करने के बजाय एन्कोडेड छवि स्कैन को संरक्षित करता है। मूल MP4/MOV TC260 मान बॉक्स आकार या मीडिया ऑफ़सेट बदले बिना रिक्त किए जाते हैं। अन्य समर्थित कंटेनर अपने संबंधित मेटाडेटा पथ का उपयोग करते हैं।
अदृश्य हटाना अलग है। यह पिक्सेल और फ़्रीक्वेंसी डोमेन वॉटरमार्क को बाधित करने के लिए डिफ्यूज़न पाइपलाइन के माध्यम से चित्र को पुनर्जनित करता है। यह चित्र को बदल देता है और गारंटी नहीं दे सकता कि एक मालिकाना वेरिफ़ायर हर आउटपुट को अस्वीकार करेगा।
पूर्ण तकनीकी सीमा के लिए समर्थित सिग्नल और ज्ञात सीमाएँ देखें।
दृश्यमान-हटाना API के लिए remove-ai-watermarks[visible] आवश्यक है।
import remove_ai_watermarks as raiw
result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)
provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
batch = raiw.remove_video_batch("videos", "videos_clean")
cleaned = raiw.remove_video_metadata("input.mp4")
synthid_cleaned = raiw.remove_video_invisible("input.mp4", "synthid_clean.mp4")
visible = raiw.remove_video_visible("input.mp4", "clean.mp4")
print(visible.mark)
veo = raiw.remove_video_visible("veo.mp4", "veo_clean.mp4", mark="veo")
seedance = raiw.remove_video_visible(
"seedance.mp4",
"seedance_clean.mp4",
mark="seedance",
)
dola = raiw.remove_video_visible("dola.mp4", "dola_clean.mp4", mark="dola")
उच्च-स्तरीय API एक फ़ाइल पथ या BGR NumPy ऐरे स्वीकार करता है। पथ इनपुट के लिए यह प्रोवेनेंस मेटाडेटा भी पढ़ता है, अल्फा संरक्षित करता है, और लिखित परिणाम से AI मेटाडेटा हटा सकता है।
दृश्यमान हटाने, पूर्ण remove_all और remove_batch पाइपलाइन, प्रोवेनेंस निरीक्षण, मेटाडेटा स्ट्रिपिंग और डिफ्यूज़न उपयोग के लिए Python API गाइड देखें।
अलग ComfyUI Remove AI Watermarks पैकेज दृश्यमान हटाने, पहचान, क्षेत्र मिटाने और अदृश्य हटाने के लिए नोड्स प्रदान करता है।
Veo टेक्स्ट, Seedance बॉक्स्ड AI लेबल, और स्थिर Dola, Hailuo और Kling लेबल को पहचानता है। यह पुराने Sora Turbo कोने के स्विरल या उन प्रदाताओं के अपंजीकृत लेआउट को नहीं पहचानता। शास्त्रीय OpenCV बैकएंड संरचित पृष्ठभूमियों को धुंधला कर सकता है; MI-GAN या LaMa का उपयोग करें जब पुनर्प्राप्ति गुणवत्ता मायने रखती है।identify कहीं भी चलते रहते हैं।शामिल video invisible कमांड प्रमाणित noise_std=0.15 प्रोफ़ाइल का उपयोग करता है। साथी scripts/video_synthid_sweep.py रिसर्च हार्नेस एक मेल खाता री-एन्कोड नियंत्रण के साथ VAE-पुनर्जनित उम्मीदवार बनाता है और वेरिफ़ायर निर्णय को रिक्त छोड़ देता है:
uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/
यह मापने के लिए कि एक आउटपुट की वास्तविक लागत क्या थी, scripts/video_fidelity_probe.py का उपयोग करें: इंजन का अपना PSNR रीसाइज़ और एन्कोड से पहले मापा जाता है, इसलिए केवल प्रोब ही वितरित चित्र देखता है।
uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4
एक नकारात्मक उम्मीदवार को हटाने के साक्ष्य के रूप में गिनने से पहले नियंत्रण अभी भी SynthID-पॉज़िटिव होना चाहिए। 2026-07-29 दो-क्लिप कैलिब्रेशन में, दोनों मेल खाते नियंत्रण Gemini के अंतर्निहित SynthID वेरिफ़ायर में पॉज़िटिव थे; मजबूत उम्मीदवार दोनों कैरियर पर नकारात्मक था, जबकि एक कमजोर उम्मीदवार एक पर नकारात्मक था। एक बाद का प्रतिकूल अनुवर्ती जिसने सामान्य Gemini से पिक्सेल परिणाम की पुनर्व्याख्या करने के लिए कहा, उसने UNAVAILABLE लौटाया; वह अनुवर्ती वेरिफ़ायर पुनः चलाना नहीं था और अंतर्निहित निर्णयों को अमान्य नहीं करता। एक सार्वजनिक आठ-सेकंड Veo नमूने पर 2026-07-31 पूर्ण-क्लिप जाँच में पाया गया कि 0.10 अभी भी पहचाना गया और 0.15 पहचाना नहीं गया, इसलिए 0.15 अब प्रमाणित डिफ़ॉल्ट है। पुनरुत्पादनीय हैश और निर्णय data/evaluations/video-synthid-oracle.csv में हैं।
दस्तावेज़ीकरण अनुक्रमणिका से शुरू करें।
शोध नोट और ऐतिहासिक प्रयोग दस्तावेज़ीकरण अनुक्रमणिका में अलग से सूचीबद्ध हैं। वे पिछले निर्णयों की व्याख्या करते हैं लेकिन वर्तमान सार्वजनिक API को परिभाषित नहीं करते।
विकास वातावरण इंस्टॉल करें और प्रोजेक्ट गेट चलाएँ:
uv sync --frozen --extra dev
bash maintain.sh
प्रलेखित इनवेरिएंट वाले सबसिस्टम को बदलने से पहले मॉड्यूल आंतरिक देखें।
Apache 2.0. कॉपीराइट 2025-2026 wiltodelta।
| लक्ष्य | Command | GPU |
|---|
| प्रोवेनेंस सिग्नल और वॉटरमार्क खोजें | identify | नहीं |
| ज्ञात दृश्यमान AI चिह्न हटाएँ | visible | नहीं |
| आपके द्वारा चयनित क्षेत्र मिटाएँ | erase | नहीं |
| AI मेटाडेटा हटाएँ | metadata | नहीं |
| समर्थित वीडियो प्रोवेनेंस की पहचान करें | video identify | नहीं |
| वीडियो से दृश्यमान चिह्न और AI मेटाडेटा हटाएँ | video all | नहीं |
| वीडियो से AI मेटाडेटा हटाएँ | video metadata | नहीं |
| वीडियो से पंजीकृत दृश्यमान AI चिह्न हटाएँ | video visible | नहीं |
| वीडियो की निर्देशिका प्रोसेस करें | video batch | मोड पर निर्भर |
| प्रमाणित VAE प्रोफ़ाइल के साथ वीडियो SynthID हटाएँ | video invisible | अनुशंसित |
| अदृश्य वॉटरमार्क को बाधित करने के लिए चित्र पुनर्जनित करें | invisible | आवश्यक (CUDA) |
| दृश्यमान, अदृश्य और मेटाडेटा हटाना चलाएँ | all | अनुशंसित |
| निर्देशिका प्रोसेस करें | batch | मोड पर निर्भर |
| आवश्यकता | इंस्टॉल |
|---|
| मेटाडेटा निरीक्षण और हटाना | remove-ai-watermarks |
| दृश्यमान पहचान और हटाना | remove-ai-watermarks[visible] |
| दृश्यमान वीडियो प्रोसेसिंग | remove-ai-watermarks[video] |
| वीडियो SynthID हटाना | remove-ai-watermarks[video,diffusion] |
| Torch-मुक्त DWT-DCT पहचान | remove-ai-watermarks[detect] |
| अदृश्य चित्र हटाना (CUDA आवश्यक) | remove-ai-watermarks[qwen-zimage] |
| हर प्रोडक्शन सुविधा | remove-ai-watermarks[all] |