مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

watermarks-remover کے ذریعے متن اور فائلوں سے AI ماخذ کے نشانات ہٹائیں

اپنے زیرِ ملکیت مواد پر watermarks-remover استعمال کرنے کا طریقہ سیکھیں۔ اس ٹیوٹوریل میں مقامی اور Docker سیٹ اپ، متن اور فائلوں کی صفائی، HTTP درخواستیں، اختیاری شناخت اور دوبارہ تحریر، بیچ پروسیسنگ، توثیق، اور جدید تصویری ٹولز شامل ہیں۔

watermarks-remover کے ذریعے متن اور فائلوں سے AI ماخذ کے نشانات ہٹائیں

watermarks-remover کیا ہے؟

watermarks-remover ایک Python سروس اور ایجنٹ اسکل ہے جو متن اور فائلوں میں معاونت یافتہ AI ماخذی نشانات کا معائنہ اور انہیں ہٹانے کے لیے استعمال ہوتی ہے۔ یہ ان مواد کی رازداری اور صفائی کے لیے بنائی گئی ہے جن کے آپ مالک ہیں۔

یہ منصوبہ صفائی کے عمل کو کئی تہوں میں تقسیم کرتا ہے۔ تہہ A غیر مرئی Unicode، غیر معمولی اسپیسز، دو طرفہ حروف، ٹیگ حروف اور متن سے متعلق دیگر باقیات کو قطعی طور پر ہٹا دیتی ہے۔ تہہ B شماریاتی ٹوکن سیمپلنگ واٹرمارکس کو ایجنٹ کی دوبارہ تحریر یا اختیاری rewrite_text.py ہُک کے ذریعے حل کرتی ہے۔ فائل کلینرز معاونت یافتہ میٹا ڈیٹا اور دستاویزی خصوصیات کو سنبھالتے ہیں، جن میں C2PA، EXIF، XMP اور آفس دستاویز کا میٹا ڈیٹا شامل ہے۔

اس منصوبے کو صرف ایسے مواد پر استعمال کریں جس کے آپ مالک ہوں یا جس میں ترمیم کرنے کی اجازت رکھتے ہوں۔ شناخت اور صفائی الگ الگ کارروائیاں ہیں، اور کچھ اختیاری ڈیٹیکٹرز تحقیقی ٹولز ہیں، مستند وینڈر تصدیقی نظام نہیں۔

اہم خصوصیات

  • معیاری لائبریری پر مبنی بنیادی نظام: مقامی HTTP سروس اور بنیادی اسکرپٹس کے لیے Python 3.10 یا اس کے بعد کا ورژن درکار ہے، جبکہ Python کی کوئی لازمی انحصاری ضرورت نہیں۔
  • وسیع فائل روٹنگ: معاونت یافتہ فارمیٹس میں text، HTML، Markdown، PNG، JPEG، WebP، AVIF، HEIC، BMP، GIF، TIFF، SVG، PDF، DOCX، XLSX، PPTX، EPUB، ODT، MP4، MOV، M4A، M4V، WAV اور MP3 شامل ہیں۔
  • متحد کمانڈز: inspect_file.py اور clean_file.py معاونت یافتہ فارمیٹس کی شناخت کرتے ہیں اور مناسب پائپ لائن منتخب کرتے ہیں۔
  • HTTP انضمام: Python implementation کو پیکیج کیے بغیر inspect، detect، clean اور batch اینڈ پوائنٹس دستیاب ہیں۔
  • محفوظ فارمیٹ ہینڈلنگ: ٹیکسٹ ٹولز ممکنہ بائنری فائلوں کو مسترد کرتے ہیں، جبکہ غیر شناخت شدہ فارمیٹس کو unknown قرار دے کر خودکار صفائی نہیں کی جاتی۔
  • اختیاری شناخت: تشکیل دیے گئے ٹیکسٹ ڈیٹیکٹرز اور SynthID امیج اسکورنگ الگ سے یا صفائی سے پہلے اور بعد میں چل سکتے ہیں۔
  • اختیاری جدید بیک اینڈز: یہ منصوبہ الگ تنصیبات کے ذریعے MarkLLM verification harness، reverse-SynthID scoring اور CtrlRegen pixel-domain image processing کو سپورٹ کرتا ہے۔

سروس انسٹال اور شروع کریں

1. ریپوزٹری کلون کریں

git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover

2. معیاری لائبریری والا HTTP سرور شروع کریں

تیز ترین سیٹ اپ مقامی Python سروس استعمال کرتا ہے۔ یہ پہلے سے loopback پر سنتی ہے:

make serve

آپ اسے براہِ راست بھی شروع کر سکتے ہیں:

python3 service/scripts/server.py --host 127.0.0.1 --port 8765

سروس کی دستیابی کی تصدیق کریں:

curl -s http://127.0.0.1:8765/health

جواب میں ok: true اور سروس ورژن شامل ہوتا ہے۔ دستیاب اختیاری ٹولز اور بیک اینڈز دیکھنے کے لیے GET /capabilities، یا تیار کردہ OpenAPI 3.0.3 specification کے لیے GET /openapi.json استعمال کریں۔

3. اختیاری ایجنٹ اسکل انسٹال کریں

ایجنٹ اسکل میں سروس کی implementation شامل نہیں۔ یہ ایک مختصر کلائنٹ ہے جو HTTP سرور کو کال کرتا ہے، اس لیے اسکل استعمال کرنے سے پہلے سروس شروع کریں۔

mkdir -p .grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" .grok/skills/remove-ai-marks

صارف کی سطح پر Grok انسٹالیشن کے لیے اپنے home directory کے تحت لنک بنائیں:

mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marks

اسے /remove-ai-marks کے ذریعے چلائیں، یا ایجنٹ سے کہیں کہ معاونت یافتہ AI واٹرمارکس یا ماخذی میٹا ڈیٹا ہٹا دے۔ اگر سروس http://127.0.0.1:8765 پر موجود نہ ہو تو WATERMARKS_SERVICE_URL سیٹ کریں۔

4. اختیاری Cursor text-only skill انسٹال کریں

ریپوزٹری میں مجاز مسودات، دستاویزات اور ویب کاپی کے لیے ایک خود کفیل Cursor اسکل بھی شامل ہے۔ اس میں فائل میٹا ڈیٹا، تصاویر، C2PA، HTTP سروس اور بیرونی ماڈل ٹولنگ شامل نہیں ہیں۔

python3 install_skill.py

Windows پر py install_skill.py استعمال کریں۔ موجودہ تنصیبات برقرار رہتی ہیں، جب تک کہ --force فراہم نہ کیا جائے۔

کمانڈ لائن سے فائلوں کا معائنہ اور صفائی کریں

متحد فائل ٹولز استعمال کریں

اسکرپٹس کی ڈائریکٹری کے لیے ایک مختصر متغیر مقرر کریں، پھر معاونت یافتہ فائلوں کا معائنہ یا صفائی کریں:

SCRIPTS=service/scripts

python3 "$SCRIPTS/inspect_file.py" draft.md
python3 "$SCRIPTS/clean_file.py" draft.md -o draft.cleaned.md
python3 "$SCRIPTS/clean_file.py" photo.png -o photo.cleaned.png
python3 "$SCRIPTS/clean_file.py" notes.docx -o notes.cleaned.docx

inspect_file.py شناخت شدہ قسم اور مشتبہ مواد کی رپورٹ کرتا ہے، ان پٹ میں کوئی ترمیم نہیں کرتا۔ clean_file.py فائل کو مناسب کلینر تک بھیجتا ہے اور -o کے ساتھ فراہم کردہ راستے پر نتیجہ لکھتا ہے۔

تہہ A کے متنی باقیات صاف کریں

معلوم ٹیکسٹ فائلوں کے لیے مخصوص ٹیکسٹ کمانڈز استعمال کریں:

python3 "$SCRIPTS/inspect_text.py" draft.md
python3 "$SCRIPTS/clean_text.py" draft.md -o draft.cleaned.md --stats

--stats آپشن قطعی ٹیکسٹ صفائی سے ہونے والی تبدیلیوں کی رپورٹ دیتا ہے۔

بائنری فائلیں ٹیکسٹ ٹولز کو دینے سے گریز کریں

ٹیکسٹ اسکرپٹس ان فائلوں کو مسترد کرتے ہیں جو ZIP کنٹینرز، PDFs، تصاویر یا دیگر بائنری ڈیٹا معلوم ہوں۔ اس سے کمپریس شدہ بائٹس کو ڈی کوڈ کر کے خراب ٹیکسٹ کے طور پر دوبارہ لکھنے سے بچا جا سکتا ہے۔

python3 "$SCRIPTS/inspect_text.py" report.docx

ایسی فائلوں کے لیے inspect_file.py یا clean_file.py استعمال کریں۔ اگرچہ --force-text تحفظ کو غیر فعال کر دیتا ہے، اسے صرف اس وقت استعمال کرنا چاہیے جب آپ جان بوجھ کر خام بائٹس اسکین کرنا چاہتے ہوں۔

اسی طرح، متحدہ کلینر ان فائلوں کو مسترد کر دیتا ہے جنہیں unknown کے طور پر درجہ بند کیا گیا ہو۔ جہاں مناسب ہو، فائل نام کی تسلیم شدہ توسیع فراہم کریں، یا --as text یا --force-text کے ذریعے واضح طور پر متنی ہینڈلنگ اختیار کریں۔

Layer B ری رائٹ ہُک استعمال کریں

شماریاتی متنی واٹرمارکس کے لیے یونیکوڈ کی صفائی کے بجائے دوبارہ تحریر ضروری ہے۔ پہلے سے طے شدہ طور پر، ری رائٹ اسکرپٹ ایک پرامپٹ دکھاتی ہے اور کسی ماڈل کو کال نہیں کرتی:

python3 "$SCRIPTS/rewrite_text.py" draft.md \
  --backend print-prompt \
  --strength paraphrase

اختیاری مقامی Ollama بیک اینڈ دوبارہ تحریر شدہ آؤٹ پٹ تیار کر سکتا ہے:

WATERMARKS_REWRITE_BACKEND=ollama \
WATERMARKS_REWRITE_MODEL=llama3.2 \
python3 "$SCRIPTS/rewrite_text.py" draft.md -o draft.rewritten.md

لوپ بیک اینڈ پوائنٹس پہلے سے اجازت یافتہ ہیں۔ ریموٹ ماڈل اینڈ پوائنٹس کے لیے WATERMARKS_REWRITE_ALLOW_REMOTE=1 یا --allow-remote درکار ہے۔ API اسناد WATERMARKS_REWRITE_API_KEY کے ذریعے فراہم کی جائیں، کمانڈ لائن آرگیومینٹس کے طور پر کبھی نہیں۔

HTTP API کال کریں

ایک فائل صاف کریں

API Base64 میں انکوڈ کیے گئے فائل بائٹس قبول کرتی ہے اور فارمیٹ روٹنگ میں مدد کے لیے فراہم کردہ فائل نام استعمال کرتی ہے:

WM="http://127.0.0.1:8765"
curl -s -X POST "$WM/clean" \
  -H 'Content-Type: application/json' \
  -d "{\"file\": \"$(base64 < notes.md | tr -d '\n')\", \"name\": \"notes.md\"}"

کامیاب جواب میں شناخت شدہ kind، Base64 میں انکوڈ شدہ cleaned فائل، اور صفائی کی report شامل ہوتی ہے۔

صفائی کے بغیر معائنہ یا شناخت کریں

ساختی معائنے کے لیے POST /inspect اور ترتیب دیے گئے واٹرمارک ڈیٹیکٹرز کے لیے POST /detect استعمال کریں۔ شناخت اختیاری ہے اور صفائی سے الگ ہے؛ سروس وینڈر یا بیرونی ڈیٹیکٹر APIs کو اس وقت تک کال نہیں کرتی جب تک ان کی درخواست اور ترتیب نہ دی جائے۔

curl -s -X POST "$WM/inspect" \
  -H 'Content-Type: application/json' \
  -d "{\"file\": \"$(base64 < notes.md | tr -d '\n')\", \"name\": \"notes.md\", \"detect\": true}"

صفائی سے پہلے اور بعد کی پیمائش کے لیے صفائی کے اختیارات میں detect_before اور detect_after شامل کریں:

{"file":"BASE64_DATA","name":"notes.md","options":{"detect_before":true,"detect_after":true}}

ڈیٹیکٹر کی ناکامیاں سافٹ فیل انداز میں نمٹائی جاتی ہیں۔ اگر کوئی ڈیٹیکٹر دستیاب نہ ہو، ٹائم آؤٹ ہو جائے، یا خرابی واپس کرے تو رپورٹ میں available: false درج ہوتا ہے اور صفائی جاری رہتی ہے۔

بیچ پر کارروائی کریں

POST /inspect/batch اور POST /clean/batch متعدد اندراجات پر فی فائل اسی پائپ لائن کے ذریعے کارروائی کرتے ہیں۔ درخواست کی پہلے سے طے شدہ حد 50 فائلیں ہے، جسے WATERMARKS_MAX_BATCH_FILES کے ذریعے تبدیل کیا جا سکتا ہے۔

{"files":[
  {"file":"BASE64_DATA_1","name":"notes.md"},
  {"file":"BASE64_DATA_2","name":"photo.png","options":{}}
]}

غلط ساخت والے بیچ اندراج کو ok: false اور ایک خرابی کا پیغام ملتا ہے، جبکہ باقی اندراجات کی کارروائی نہیں رکتی۔

Docker کے ساتھ پروجیکٹ چلائیں

شائع شدہ بنیادی امیج میں سروس، کلینرز، ExifTool، qpdf، اور c2patool شامل ہیں۔ مقامی بنیادی امیج بنائیں اور اسے صرف لوپ بیک پر ظاہر کریں:

make docker-core-build
docker run --rm \
  -p 127.0.0.1:8765:8765 \
  --read-only \
  --tmpfs /tmp \
  watermarks-remover

آپ کنٹینر کے اندر براہ راست کلینر بھی چلا سکتے ہیں:

docker run --rm -v "$(pwd):/data" watermarks-remover \
  /app/scripts/clean_file.py /data/notes.md \
  -o /data/notes.cleaned.md

Docker Compose پہلے سے طے شدہ طور پر صرف بنیادی سروس شروع کرتا ہے۔ اختیاری پروفائلز تحقیقی ہارنسز یا بھاری امیج بیک اینڈز شامل کرتے ہیں:

docker compose up -d
docker compose --profile harness up -d
docker compose --profile heavy up -d
docker compose --profile harness --profile heavy up -d

make compose-check کے ذریعے چلنے والے اسٹیک کی توثیق کریں۔ یہ بنیادی ہیلتھ اینڈ پوائنٹ چیک کرتا ہے اور تصدیق کرتا ہے کہ فعال اختیاری سروسز اپنے مدد کے کمانڈز چلا سکتی ہیں۔

ترتیب اور سیکیورٹی

عام متنی صفائی کے لیے کسی ماحولاتی متغیر کی ضرورت نہیں۔ اختیاری ترتیبات کو ریپوزٹری کی سطح پر موجود .env فائل میں نقل کیا جا سکتا ہے، جسے Docker Compose خودکار طور پر لوڈ کرتا ہے:

cp .env.example .env
docker compose up -d

یہ فائل gitignore میں شامل ہے اور اسے کبھی commit نہیں کرنا چاہیے۔ اہم ترتیبات میں شامل ہیں:

  • WATERMARKS_SERVER_API_KEY HTTP API کے لیے بیئرر توثیق لازم کرتا ہے۔
  • WATERMARKS_SERVICE_URL کلائنٹس کو بتاتا ہے کہ سروس تک کہاں پہنچنا ہے۔
  • WATERMARKS_REWRITE_BACKEND، WATERMARKS_REWRITE_MODEL، اور متعلقہ متغیرات براہ راست Layer B ماڈل کالز ترتیب دیتے ہیں۔
  • WATERMARKS_SYNTHID_SCORER_URL بنیادی سروس کو اختیاری SynthID امیج اسکورنگ سائیڈ کار سے جوڑتا ہے۔
  • HF_TOKEN گیٹڈ ماڈلز استعمال کرنے والے اختیاری بیک اینڈز کو صرف ماحول کے ذریعے Hugging Face ٹوکن فراہم کرتا ہے۔

سرور پہلے سے طے شدہ طور پر لوپ بیک سے منسلک ہوتا ہے اور قابل اعتماد نیٹ ورک کے لیے بنایا گیا ہے۔ اگر اسے مقامی مشین سے باہر ظاہر کرنے کے لیے --host تبدیل کریں تو WATERMARKS_SERVER_API_KEY ترتیب دیں اور مناسب نیٹ ورک تحفظات شامل کریں۔

اعلیٰ درجے کی تجاویز

میزبان پر چلانے کے لیے اختیاری میٹا ڈیٹا ٹولز انسٹال کریں

بنیادی Python اسکرپٹس معیاری لائبریری استعمال کرتی ہیں، لیکن بیرونی ٹولز مخصوص ورک فلو کو بہتر بناتے ہیں۔ c2patool C2PA مینی فیسٹس کا معائنہ کرتا ہے، exiftool باقی ماندہ میٹا ڈیٹا، خصوصاً PDFs سے، ہٹاتا ہے، اور حقیقی ساختی PDF اسٹرپ کے لیے qpdf درکار ہے۔ یہ ٹولز بنیادی Docker امیج میں پہلے سے موجود ہیں۔

SynthID درجے کے امیج سگنلز کا اسکور کریں

اختیاری reverse-SynthID انٹیگریشن پکسل ڈومین کا اعتماد اسکور تیار کر سکتی ہے۔ یہ صرف شناخت کرتی ہے اور پکسل واٹرمارکس حذف نہیں کرتی۔ اس کا upstream checkout شامل نہیں ہے کیونکہ یہ غیر تجارتی تحقیقی لائسنس استعمال کرتا ہے۔

SCRIPTS=service/scripts
"$SCRIPTS/setup_synthid.sh"

REVERSE_SYNTHID_DIR=~/reverse-SynthID \
~/reverse-SynthID/.venv/bin/python \
"$SCRIPTS/inspect_image.py" shot.png

بھاری Compose پروفائل اس scorer کو HTTP sidecar کے طور پر چلا سکتا ہے۔ WATERMARKS_SYNTHID_SCORER_URL اور مشترکہ WATERMARKS_SYNTHID_SCORER_API_KEY ترتیب دیں، پھر صفائی سے پہلے اور بعد میں detection کی درخواست کریں۔

پکسل ڈومین پروسیسنگ کے لیے CtrlRegen استعمال کریں

CtrlRegen، SynthID-class، StegaStamp، Tree-Ring، اور StableSignature کے پکسل ڈومین مارکس کے لیے ایک اختیاری بیرونی backend ہے۔ اسے شامل یا شائع نہیں کیا گیا کیونکہ اس کے upstream repository میں license file موجود نہیں ہے۔ اس کا setup، تحقیق کے دور کی مقررہ dependencies کے ساتھ ایک الگ ماحول بناتا ہے۔

SCRIPTS=service/scripts
"$SCRIPTS/setup_ctrlregen.sh"

NOAI_WATERMARK_DIR=~/noai-watermark \
~/noai-watermark/.venv/bin/python \
"$SCRIPTS/clean_image.py" shot.png \
-o shot.cleaned.png --remove-pixel ctrlregen

پہلے سے طے شدہ strength ایک محتاط 0.25 ہے۔ دستاویزی presets کم سے کم regeneration کے لیے 0.15 سے زیادہ سے زیادہ strength کے لیے 0.7 تک ہیں۔ زیادہ values سگنل کا بڑا حصہ حذف کر سکتی ہیں، لیکن اس کے ساتھ تصویر کے زیادہ مواد کو بھی دوبارہ تیار کرتی ہیں۔

CtrlRegen بنیادی طور پر 512 بائی 512 pixels پر کام کرتا ہے۔ بڑی inputs کو خودکار طور پر tiles میں تقسیم کیا جاتا ہے، اس لیے processing time اور memory use، tile count کے ساتھ بڑھتے ہیں۔ GPU کی بھرپور سفارش کی جاتی ہے، تقریباً 10 GB کے model downloads متوقع ہیں، اور بہت بڑی تصاویر کو ممکن ہو تو پہلے downscale کرنا چاہیے۔

MarkLLM کے ساتھ controlled text experiments کی تصدیق کریں

اختیاری MarkLLM harness، مماثل KGW یا SynthID scheme configurations استعمال کرتے ہوئے test text تیار اور دوبارہ detect کر سکتا ہے۔ یہ controlled experiments کے لیے مفید ہے، لیکن vendor oracle نہیں ہے اور یہ ثابت نہیں کر سکتا کہ کوئی vendor detector دوبارہ تحریر کردہ text کو مسترد کرے گا۔

SCRIPTS=service/scripts
"$SCRIPTS/setup_markllm.sh"

بامعنی نتائج کے لیے generation اور detection میں ایک ہی scheme configuration اور keys استعمال کریں۔

نتیجہ

watermarks-remover مجاز مواد سے معاونت یافتہ provenance surfaces صاف کرنے کے لیے ایک محتاط، format-aware workflow فراہم کرتا ہے۔ متحدہ inspection commands سے شروع کریں، جہاں ممکن ہو deterministic Layer A cleaning استعمال کریں، ضرورت پڑنے پر ہی Layer B rewriting شامل کریں، اور بیرونی detectors یا pixel backends کو منتخب طور پر فعال کریں۔ application integration کے لیے مقامی HTTP API اور تیار کردہ OpenAPI specification سب سے زیادہ لچک دار interface فراہم کرتے ہیں۔