Asosiy kontentga o‘tish
AI qo‘llanmalari

watermarks-remover yordamida matn va fayllardagi AI kelib chiqish belgilarini olib tashlash

O‘zingizga tegishli kontentda watermarks-remover’dan foydalanishni o‘rganing. Ushbu qo‘llanmada lokal va Docker sozlamalari, matn va fayllarni tozalash, HTTP so‘rovlari, ixtiyoriy aniqlash va qayta yozish, paketli qayta ishlash, autentifikatsiya hamda tasvirlar bilan ishlashning ilg‘or vositalari yoritiladi.

watermarks-remover yordamida matn va fayllardagi AI belgilarini olib tashlash

watermarks-remover nima?

watermarks-remover matn va fayllardagi qo‘llab-quvvatlanadigan AI kelib chiqish belgilarini tekshirish va olib tashlash uchun mo‘ljallangan Python xizmati hamda agent ko‘nikmasidir. U sizga tegishli materiallarning maxfiyligi va kontent tozaligi uchun yaratilgan.

Loyiha tozalash jarayonini bir nechta qatlamga ajratadi. A qatlamida ko‘rinmas Unicode belgilar, noodatiy bo‘shliqlar, ikki yo‘nalishli belgilar, teg belgilari va boshqa shu kabi matn artefaktlari deterministik tarzda olib tashlanadi. B qatlamida statistik token tanlashga asoslangan watermarklar agent orqali qayta yozish yoki ixtiyoriy rewrite_text.py hook’i yordamida qayta ishlanadi. Fayl tozalagichlari C2PA, EXIF, XMP va ofis hujjatlari metama’lumotlari kabi qo‘llab-quvvatlanadigan metama’lumotlar va hujjat xususiyatlarini qayta ishlaydi.

Loyihadan faqat o‘zingizga tegishli yoki o‘zgartirishga vakolatingiz bo‘lgan kontentda foydalaning. Aniqlash va tozalash alohida amallardir; ayrim ixtiyoriy aniqlagichlar nufuzli vendor tekshiruv tizimlari emas, balki tadqiqot vositalaridir.

Asosiy imkoniyatlar

  • Standart kutubxonaga asoslangan yadro: mahalliy HTTP xizmati va asosiy skriptlar Python 3.10 yoki undan yangiroq versiyasini talab qiladi hamda majburiy Python bog‘liqliklariga ega emas.
  • Keng fayl yo‘naltirish: qo‘llab-quvvatlanadigan formatlarga text, HTML, Markdown, PNG, JPEG, WebP, AVIF, HEIC, BMP, GIF, TIFF, SVG, PDF, DOCX, XLSX, PPTX, EPUB, ODT, MP4, MOV, M4A, M4V, WAV va MP3 kiradi.
  • Yagona buyruqlar: inspect_file.py va clean_file.py qo‘llab-quvvatlanadigan formatlarni aniqlaydi va tegishli pipeline’ni tanlaydi.
  • HTTP integratsiyasi: Python implementatsiyasini loyihaga qo‘shmasdan tekshirish, aniqlash, tozalash va ommaviy qayta ishlash endpointlari mavjud.
  • Xavfsizroq format bilan ishlash: matn vositalari ehtimoliy ikkilik fayllarni rad etadi, tanilmagan formatlar esa unknown sifatida tasniflanadi va avtomatik tozalanmaydi.
  • Ixtiyoriy aniqlash: sozlangan matn aniqlagichlari va SynthID tasvir baholashi mustaqil ravishda yoki tozalashdan oldin va keyin ishga tushirilishi mumkin.
  • Ixtiyoriy kengaytirilgan backendlar: loyiha alohida o‘rnatishlar orqali MarkLLM tekshiruv harness’i, reverse-SynthID baholashi va CtrlRegen piksel-domenli tasvirni qayta ishlashni qo‘llab-quvvatlaydi.

Xizmatni o‘rnatish va ishga tushirish

1. Repozitoriyni klonlash

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

2. Standart kutubxonaga asoslangan HTTP serverni ishga tushirish

Eng tezkor sozlash mahalliy Python xizmatidan foydalanadi. U sukut bo‘yicha loopback manzilida tinglaydi:

make serve

Uni to‘g‘ridan-to‘g‘ri ham ishga tushirishingiz mumkin:

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

Xizmat mavjudligini tekshiring:

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

Javobda ok: true va xizmat versiyasi bo‘ladi. Qaysi ixtiyoriy vositalar va backendlar mavjudligini ko‘rish uchun GET /capabilities dan, yaratilgan OpenAPI 3.0.3 spetsifikatsiyasi uchun esa GET /openapi.json dan foydalaning.

3. Ixtiyoriy agent ko‘nikmasini o‘rnatish

Agent ko‘nikmasi xizmat implementatsiyasini o‘z ichiga olmaydi. U HTTP serverga murojaat qiladigan yengil mijozdir, shuning uchun ko‘nikmadan foydalanishdan oldin xizmatni ishga tushiring.

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

Grok’ning foydalanuvchi-global o‘rnatilishi uchun havolani uy katalogingizda yarating:

mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marks
/remove-ai-marks buyrug‘i bilan ishga tushiring yoki agentdan qo‘llab-quvvatlanadigan AI watermarklari yoki kelib chiqish metama’lumotlarini olib tashlashni so‘rang. Agar xizmat http://127.0.0.1:8765 manzilida bo‘lmasa, WATERMARKS_SERVICE_URL ni sozlang.

4. Ixtiyoriy Cursor faqat matn bilan ishlovchi ko‘nikmasini o‘rnatish

Repozitoriyda vakolatli qo‘lyozmalar, hujjatlar va veb-matnlar uchun o‘zini o‘zi ta’minlaydigan Cursor ko‘nikmasi ham mavjud. U fayl metama’lumotlari, tasvirlar, C2PA, HTTP xizmati va tashqi model vositalarini qamrab olmaydi.

python3 install_skill.py

Windows’da py install_skill.py dan foydalaning. Mavjud o‘rnatishlar --force berilmaguncha saqlanadi.

Buyruqlar satridan fayllarni tekshirish va tozalash

Yagona fayl vositalaridan foydalanish

Skriptlar katalogi uchun qisqa o‘zgaruvchi belgilang, so‘ng qo‘llab-quvvatlanadigan fayllarni tekshiring yoki tozalang:

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 kiritilgan faylni o‘zgartirmagan holda aniqlangan tur va shubhali kontent haqida hisobot beradi. clean_file.py faylni tegishli tozalagichga yo‘naltiradi va natijani -o bilan berilgan yo‘lga yozadi.

A qatlamidagi matn artefaktlarini tozalash

Ma’lum matn fayllari uchun maxsus matn buyruqlaridan foydalaning:

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

--stats parametri deterministik matn tozalash jarayonida nimalar o‘zgartirilganini ko‘rsatadi.

Ikkilik fayllarni matn vositalariga bermang

Matn skriptlari ZIP konteynerlari, PDF fayllar, tasvirlar yoki boshqa ikkilik ma’lumotlarga o‘xshaydigan fayllarni rad etadi. Bu siqilgan baytlarning dekodlanib, buzilgan matn sifatida qayta yozilishining oldini oladi.

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

Bunday fayllar uchun inspect_file.py yoki clean_file.py dan foydalaning. --force-text himoyani chetlab o‘tsa-da, undan faqat xom baytlarni ataylab skanerlashni xohlaganingizda foydalanish kerak.

Xuddi shuningdek, yagona tozalagich unknown sifatida tasniflangan fayllarni rad etadi. Zarur bo‘lganda tanilgan fayl nomi kengaytmasini ko‘rsating yoki --as text yoxud --force-text orqali matn bilan ishlashni aniq yoqing.

Layer B qayta yozish ilgagidan foydalaning

Statistik matn suv belgilari Unicode tozalashni emas, qayta yozishni talab qiladi. Odatiy holatda qayta yozish skripti so‘rovni chiqaradi va modelni chaqirmaydi:

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

Ixtiyoriy mahalliy Ollama backend’i qayta yozilgan chiqishni yaratishi mumkin:

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

Loopback endpointlariga sukut bo‘yicha ruxsat beriladi. Masofaviy model endpointlari uchun WATERMARKS_REWRITE_ALLOW_REMOTE=1 yoki --allow-remote talab qilinadi. API hisob ma’lumotlari buyruq qatori argumentlari sifatida emas, WATERMARKS_REWRITE_API_KEY orqali berilishi kerak.

HTTP API’ni chaqirish

Bitta faylni tozalash

API Base64 formatida kodlangan fayl baytlarini qabul qiladi va formatni aniqlashga yordam berish uchun berilgan fayl nomidan foydalanadi:

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\"}"

Muvaffaqiyatli javob aniqlangan kind, Base64 formatida kodlangan cleaned fayl va tozalash reportini o‘z ichiga oladi.

Tozalamasdan tekshirish yoki aniqlash

Tuzilmaviy tekshirish uchun POST /inspectdan, sozlangan suv belgisi detektorlari uchun esa POST /detectdan foydalaning. Aniqlash ixtiyoriy va tozalashdan alohida; xizmat so‘ralmasa va sozlanmasa, vendor yoki tashqi detektor API’larini chaqirmaydi.

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

Oldingi va keyingi o‘lchovlar uchun tozalash opsiyalarida detect_before va detect_afterni yuboring:

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

Detektor xatolari yumshoq tarzda qayta ishlanadi. Detektor mavjud bo‘lmasa, vaqti tugasa yoki xato qaytarsa, hisobotda available: false qayd etiladi va tozalash davom etadi.

To‘plamni qayta ishlash

POST /inspect/batch va POST /clean/batch bir nechta yozuvni har bir fayl uchun bir xil pipeline orqali qayta ishlaydi. Standart so‘rov limiti 50 ta fayl bo‘lib, uni WATERMARKS_MAX_BATCH_FILES orqali o‘zgartirish mumkin.

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

Noto‘g‘ri formatdagi to‘plam yozuvi ok: false va xato xabarini oladi, qolgan yozuvlar esa to‘xtatilmaydi.

Loyihani Docker bilan ishga tushirish

Nashr etilgan core image xizmat, tozalagichlar, ExifTool, qpdf va c2patool’ni o‘z ichiga oladi. Mahalliy core image’ni yarating va uni faqat loopback’da oching:

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

Tozalagichni bevosita konteyner ichida ham ishga tushirishingiz mumkin:

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

Docker Compose sukut bo‘yicha faqat core xizmatini ishga tushiradi. Ixtiyoriy profillar tadqiqot harness’lari yoki og‘ir image backend’larini qo‘shadi:

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

Ishlayotgan stekni make compose-check bilan tekshiring. U core health endpoint’ini tekshiradi va yoqilgan ixtiyoriy xizmatlar yordam buyruqlarini bajara olishini tasdiqlaydi.

Konfiguratsiya va xavfsizlik

Oddiy matnni tozalash uchun muhit o‘zgaruvchilari talab qilinmaydi. Ixtiyoriy sozlamalarni repository darajasidagi .env fayliga ko‘chirishingiz mumkin; Docker Compose uni avtomatik yuklaydi:

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

Bu fayl gitignore qilingan va hech qachon commit qilinmasligi kerak. Muhim sozlamalar:

  • WATERMARKS_SERVER_API_KEY HTTP API uchun bearer autentifikatsiyasini talab qiladi.
  • WATERMARKS_SERVICE_URL mijozlarga xizmatga qayerdan ulanishni bildiradi.
  • WATERMARKS_REWRITE_BACKEND, WATERMARKS_REWRITE_MODEL va tegishli o‘zgaruvchilar Layer B model chaqiruvlarini to‘g‘ridan-to‘g‘ri sozlaydi.
  • WATERMARKS_SYNTHID_SCORER_URL core xizmatini ixtiyoriy SynthID image-scoring sidecar’iga ulaydi.
  • HF_TOKEN yopiq modellardan foydalanadigan ixtiyoriy backend’larga faqat muhit orqali Hugging Face tokenini taqdim etadi.

Server sukut bo‘yicha loopback’ga bog‘lanadi va ishonchli tarmoq uchun mo‘ljallangan. Uni mahalliy kompyuterdan tashqariga ochish uchun --hostni o‘zgartirsangiz, WATERMARKS_SERVER_API_KEYni sozlang va tegishli tarmoq himoyalarini qo‘shing.

Kengaytirilgan maslahatlar

Hostda ishga tushirish uchun ixtiyoriy metadata vositalarini o‘rnating

Core Python skriptlari standart kutubxonadan foydalanadi, ammo tashqi vositalar ayrim jarayonlarni yaxshilaydi. c2patool C2PA manifestlarini tekshiradi, exiftool qoldiq metadata’ni, ayniqsa PDF fayllardan, olib tashlaydi, qpdf esa PDF tuzilmasini haqiqiy tarzda tozalash uchun talab qilinadi. Bu vositalar core Docker image’ida allaqachon mavjud.

SynthID sinfidagi image signallarini baholash

Ixtiyoriy reverse-SynthID integratsiyasi piksel domenida ishonchlilik bahosini hosil qilishi mumkin. U faqat aniqlash uchun xizmat qiladi va piksel suv belgilarini olib tashlamaydi. Uning upstream checkout’i paketga kiritilmagan, chunki u notijoriy tadqiqot litsenziyasidan foydalanadi.

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

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

Og‘ir Compose profili ushbu baholagichni HTTP sidecar sifatida ishga tushirishi mumkin. WATERMARKS_SYNTHID_SCORER_URL va umumiy WATERMARKS_SYNTHID_SCORER_API_KEY ni sozlang, so‘ng tozalashdan oldin va keyin aniqlashni so‘rang.

Piksel domenida ishlov berish uchun CtrlRegen’dan foydalaning

CtrlRegen — SynthID sinfidagi, StegaStamp, Tree-Ring va StableSignature piksel-domen belgilarini qayta ishlash uchun ixtiyoriy tashqi backend. U paketga kiritilmagan va nashr etilmagan, chunki uning upstream repozitoriyasida litsenziya fayli mavjud emas. Uning sozlamasi tadqiqot davridagi, versiyalari qat’iy belgilangan bog‘liqliklarga ega alohida muhit yaratadi.

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

Standart kuch darajasi ehtiyotkorona 0.25. Hujjatlashtirilgan presetlar minimal regeneratsiya uchun 0.15 dan maksimal kuch uchun 0.7 gacha. Yuqoriroq qiymatlar signalning ko‘proq qismini olib tashlashi mumkin, biroq tasvir mazmunining ham kattaroq qismini qayta generatsiya qiladi.

CtrlRegen tabiiy ravishda 512 ga 512 piksel o‘lchamida ishlaydi. Kattaroq kirish tasvirlari avtomatik ravishda bo‘laklarga ajratiladi, shuning uchun ishlov berish vaqti va xotira sarfi bo‘laklar soni bilan ortadi. GPU’dan foydalanish qat’iy tavsiya etiladi, model fayllari uchun taxminan 10 GB yuklab olinadi va juda katta tasvirlarni imkon bo‘lsa avval kichraytirish kerak.

MarkLLM yordamida boshqariladigan matn tajribalarini tekshiring

Ixtiyoriy MarkLLM harness mos KGW yoki SynthID sxemasi konfiguratsiyalaridan foydalanib, test matnini hosil qilishi va qayta aniqlashi mumkin. U boshqariladigan tajribalar uchun foydali, biroq vendor oracli emas va vendor detektori qayta yozilgan matnni rad etishini isbotlay olmaydi.

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

Ma’noli natijalar uchun generatsiya va aniqlashda bir xil sxema konfiguratsiyasi hamda kalitlardan foydalaning.

Xulosa

watermarks-remover ruxsat berilgan kontentdan qo‘llab-quvvatlanadigan provenance sirtlarini tozalash uchun ehtiyotkor va formatni hisobga oluvchi ish jarayonini taqdim etadi. Yagona inspeksiya buyruqlaridan boshlang, imkon qadar deterministik Layer A tozalashdan foydalaning, Layer B qayta yozishni faqat zarur bo‘lganda qo‘shing hamda tashqi detektorlar yoki piksel backendlarini tanlab yoqing. Ilova integratsiyasi uchun mahalliy HTTP API va yaratiladigan OpenAPI spetsifikatsiyasi eng moslashuvchan interfeysni taqdim etadi.