Yeqa uye kokuyinhloko
Izifundo ze-AI

Susa Izimpawu Zemvelaphi Ye-AI Embhalweni Nakumafayela Akho

Lesi sifundo sichaza ukuthi ungayifaka kanjani futhi uyisebenzise kanjani i-watermarks-remover, isevisi ye-Python nekhono le-ejenti lokuhlola nokususa abathwali be-Unicode, imethadatha yamadokhumenti, kanye nezimpawu zemvelaphi ezisekelwayo kokuqukethwe okungokwakho noma ogunyazwe ukukucubungula.

Susa Izimpawu Zemvelaphi Ye-AI Embhalweni Nakumafayela Akho

Okwenziwa yi-watermarks-remover

watermarks-remover iyikhono le-ejenti kanye nensizakalo ye-Python yokuhlola nokususa izimpawu zemvelaphi ye-AI emibhalweni nakumafomethi amafayela asekelwayo. Yenzelwe ubumfihlo, ucwaningo, nokugcina okuqukethwe kuhlanzekile ezintweni okungezakho noma ogunyaziwe ukuzicubungula.

Ikhono le-ejenti liyiklayenti le-HTTP elincane. Alinalo uhlelo lokuhlanza ngaphakathi futhi alidingi i-Python emshinini osebenzisa i-ejenti. Kunalokho, lithumela umsebenzi kusevisi esebenza ngokwehlukana eyakhiwe kusetshenziswa umtapo wolwazi ojwayelekile we-Python.

Iphrojekthi ihlukanisa umsebenzi wayo ube yizindawo ezintathu:

  • Umbhalo Isendlalelo A: isusa ngendlela enqunyiwe abathwali be-Unicode abangabonakali, izikhala ezingajwayelekile, izilawuli zokuqondiswa kwamabhidi, nezinhlamvu zamathegi.
  • Umbhalo Isendlalelo B: isebenzisa ukubhalwa kabusha okukhulu ukuze inciphise izimpawu zamanzi zokukhetha amathokheni ngokwezibalo. Lokhu kwenziwa ngokuzama futhi kungashintsha isitayela noma izwi.
  • Ukuhlanza amafayela: kususa imethadatha esekelwayo ye-C2PA, EXIF, XMP, izakhiwo zemibhalo, kanye ne-container ezinhlotsheni eziningi zamafayela.

Alikho ithuluzi elingaqinisekisa ukuthi umtshina womkhiqizi uzoyeka ukuhlonza okuqukethwe. Gcina amafayela okuqala, buyekeza yonke imiphumela ehlanziwe, futhi sebenzisa iphrojekthi kuphela kokuqukethwe okungokwakho noma ogunyaziwe ukukucubungula.

Izici ezibalulekile namafomethi asekelwayo

Imibhalo eyinhloko idinga Python 3.10 noma entsha futhi isebenzisa kuphela umtapo wolwazi ojwayelekile. Amathuluzi okuzikhethela afana ne-c2patool, exiftool, ne-qpdf asetshenziswa uma etholakala.

Okuhlosiwe kokuhlanza okusekelwayo

  • Izithombe: PNG, JPEG, WebP, AVIF, HEIC, BMP, GIF, TIFF, ne-SVG.
  • Imibhalo: PDF, DOCX, XLSX, PPTX, EPUB, ne-ODT.
  • Imibhalo namafayela ewebhu: HTML ne-Markdown, kuhlanganise nemethadatha esekelwayo, i-JSON-LD, okhiye be-AI frontmatter, kanye nezimpawu zombhalo zeSendlalelo A.
  • Amakhonteyna emidiya: MP4, MOV, M4A, M4V, WAV, MP3, ne-FLAC.

Amadomethi angaziwa awahlanzwa ngokuzenzakalelayo. Imiyalo eqondene nombhalo nayo iyawenqaba amafayela kanambambili futhi ikuqondise kumathuluzi amafayela ajwayelekile.

Imikhawulo ebalulekile

Ukuhlanza okuyinhloko akubandakanyi i-C2PA eboshwe ngokuthambile noma izimpawu zamanzi ezimsulwa zamaphikseli, umsindo, nevidiyo. Ukuhlanza i-PDF kudinga i-qpdf ukuze kususwe isakhiwo, ngoba ukuhlela imethadatha ngokwengeza kungashiya amabhayithi angabuyiselwa. Ukudlula okukhethwayo kwe-Ghostscript kungabhekana nemethadatha engaphakathi kwezithombe ezifakiwe ze-PDF.

Ukuthola izimpawu kwehlukile ekuhlanzeni. Abatholi bokuzikhethela be-MarkLLM, keyed-Gumbel, Claude seams, kanye nokulinganisa kwe-SynthID yezithombe bakhethwa uma kudingeka futhi baklanyelwe ukwehluleka ngobumnene uma bengatholakali.

Faka ikhono le-ejenti

Clone-a noma landa inqolobane, ngena kufolda yayo, bese usebenzisa isifaki. Umyalo olandelayo ufaka ikhono eliphelele elisekelwa yisevisi ekucushweni komuntu siqu kwe-Claude Code:

python3 install_skill.py --skill remove-ai-marks --target claude-code

Okuhlosiwe kokufaka okutholakalayo kufaka:

  • --target claude-code ifaka ngaphansi kwe-~/.claude/skills/<skill>.
  • --target claude-project --project-dir PATH ifaka ngaphansi kwe-PATH/.claude/skills/<skill>.
  • --target cowork ikhiqiza i-dist/<skill>.zip ukuze ilayishwe ngesixhumi esibonakalayo se-Cloud Skills.
  • --target cursor ifaka ngaphansi kwe-~/.cursor/skills/<skill>.

Sebenzisa python3 install_skill.py --list ukuze ubhale amakhono athunyelwe. Inqolobane inikeza ikhono eliphelele le-remove-ai-marks kanye nekhono elizimele, eligxile embhalweni kuphela, le-clean-user-facing-text. Okufakiwe okukhona kugcinelwa ikhophi eyisipele ngaphandle kokuthi usebenzise i---force. Ukuze uhlele bukhoma usuka ekhophi yokuhlola, engeza i---link.

Faka i-plugin ye-Claude Code

Abasebenzisi be-Claude Code bangafaka i-plugin ye-marketplace ngokuqondile:

/plugin marketplace add guillaumemeyer/watermarks-remover
/plugin install watermarks-remover@watermarks-remover

Amakhono azobe eselayisha njenge-/watermarks-remover:remove-ai-marks kanye ne-/watermarks-remover:clean-user-facing-text. Buyekeza i-plugin ngalo myalo:

/plugin marketplace update watermarks-remover

Xhumanisa ikhono ne-Grok

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

Qalisa isevisi

Qalisa isevisi ye-HTTP yasendaweni usuka enqolobaneni:

make serve

Ngenye indlela, qalisa umbhalo weseva ngokuqondile:

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

Ikheli elizenzakalelayo ngu-http://127.0.0.1:8765. Uma isevisi isebenza kwenye indawo, setha i-WATERMARKS_SERVICE_URL yekhono. Iseva ibophezela ku-loopback ngokuzenzakalelayo, okusiza ukuyigcina ingavezwa ngokuqondile kwamanye amakhompyutha.

Hlola ukuthi isevisi iyaphendula:

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

I-endpoint yezempilo ibuyisa into equkethe i-ok kanye nenguqulo yesevisi.

Hlola futhi uhlanze amafayela emugqeni womyalo

Indlela ephephe kunazo zonke ukuhlola ifayela kuqala, ubhale umphumela ohlanziwe endleleni entsha, bese uqhathanisa umphumela nefayela lokuqala.

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

Sebenzisa i-inspect_file.py ne-clean_file.py kuzo zombili iziqukathi zombhalo nezinambambili. Le miyalo ikhetha isihlanzi esifanele esisekelwayo ngokuya ngefayela.

Hlanza izimpawu zombhalo zeSendlalelo A

Kokufakwayo kombhalo ongenalutho, hlola abathwali be-Unicode abangabonakali nabasuselwa ekuhleleni usebenzisa:

python3 "$SCRIPTS/inspect_text.py" draft.md

Bese udala ikhophi ehlanziwe bese uphrinta izibalo:

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

I-Layer A inqunywa ngokuqondile futhi yakhelwe ukuthi ingalahlekelwa lutho ngokuphathelene nombhalo obonakalayo. Ungadluliseli i-DOCX, i-PDF, izithombe, noma okunye okufakwayo okuyibhinari kule miyalo yombhalo; sebenzisa imiyalo yamafayela esikhundleni salokho.

Lungiselela ukubhalwa kabusha kwe-Layer B

Izimpawu zamanzi zombhalo ezisekelwe ezibalweni zidinga ukubhalwa kabusha, hhayi ukususa izinhlamvu nje. Ngokuzenzakalelayo, umyalo wokubhala kabusha uphrinta umbuzo:

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

I-Layer B iyinqubo ephindaphindwayo futhi isebenza ngokuzama konke okusemandleni. Inganciphisa ukufana nesitayela nezwi lombhalo wokuqala. Uma ikhwalithi ibaluleke kakhulu kunokuhlanzeka kwezimpawu zamanzi, iphrojekthi incoma ukusebenzisa i-Layer A nokuhlanza amafayela, ugcine umbhalo wokuqala.

Sebenzisa i-HTTP API

Le sevisi inikeza ukuhlola, ukuthola, ukuhlanza, ukucubungula ngamaqoqo, ukuthola amakhono, kanye nesicaciso se-OpenAPI.

  • GET /health ibika impilo yesevisi nenguqulo.
  • GET /capabilities ibika amathuluzi angakhethwa nama-backend atholakalayo.
  • GET /openapi.json ibuyisa isicaciso se-OpenAPI 3.0.3.
  • POST /inspect ibuyisa uhlobo lokufakwayo, isimo sokusoliseka, nombiko.
  • POST /detect ibuyisa imiphumela yezitholi ezilungiselelwe.
  • POST /clean ibuyisa idatha ehlanziwe ye-base64 nombiko.
  • POST /inspect/batch kanye ne-POST /clean/batch kucubungula amafayela afinyelela kwangu-50 ngesicelo ngasinye.

Isibonelo esilandelayo siguqula ifayela le-Markdown libe yi-base64 bese silithumela endaweni yokugcina yokuhlanza:

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

Setha i-WATERMARKS_SERVER_API_KEY ukuze kudingeke ukuqinisekiswa nge-bearer. Uma usebenzisa isevisi ngaphandle komshini wokuthuthukisa wasendaweni, gcina ukuqinisekiswa nezilawuli zenethiwekhi ezifanele.

Qalisa isevisi nge-Docker

Yakha bese uqalisa isithombe esiyisisekelo ngohlelo lwamafayela lokufunda kuphela kanye nohlu lwesikhashana:

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

I-Docker Compose isekela amaphrofayela amaningana:

docker compose up -d
docker compose --profile harness up -d
docker compose --profile heavy up -d
  • Okuzenzakalelayo kuqalisa isevisi eyisisekelo.
  • Iphrofayela ye-harness ingeza izingxenye ze-MarkLLM ne-MarkDiffusion.
  • Iphrofayela ye-heavy ingeza izingxenye ze-CtrlRegen ne-SynthID ezakhiwe endaweni.

Izithombe ze-Core, MarkLLM, ne-MarkDiffusion zishicilelwa ku-GHCR. I-CtrlRegen kanye nomhloli we-SynthID kusala kungokwendawo kuphela ngenxa yamalayisensi avela kubanikazi bokuqala. Kopisha i-.env.example uye ku-.env ukuze uthole ukulungiselelwa okungakhethwa; ukuhlanza umbhalo okuyisisekelo akudingi ezinye izilungiselelo.

Nika amandla ukuhlola okuzenzakalelayo nge-hook

Ikhono le-ejenti liwumyalo, ngakho imodeli inquma ukuthi izolisebenzisa yini. I-hook inquma ngokungaguquguquki: iyasebenza njalo lapho kwenzeka ucingo lwethuluzi olufanayo.

I-plugin ye-Claude Code ibhalisa i-hook ye-PostToolUse ye-Write, Edit, MultiEdit, ne-NotebookEdit. Ibiza i-service/scripts/hook_written_file.py kwenye yezindlela ezimbili:

  • check: indlela ezenzakalelayo ibika izimpawu kodwa ayiguquli ifayela.
  • clean: isusa izimpawu ezisekelwayo endaweni futhi yazise imodeli.

Khetha indlela ngesilungiselelo se-plugin esithi Hook mode noma usethe:

WATERMARKS_HOOK_MODE=clean

Ngaphandle kwe-plugin, ungabhalisa i-hook mathupha ku-~/.claude/settings.json. Ama-hook ahlanganisa amafayela abhalwe yi-ejenti kanye nesango le-pre-commit, kodwa ukuhlanza umbhalo ngokuqondile emibhalweni yengxoxo kusala kuwumsebenzi wokuzama konke okusemandleni futhi kuncike ekhonweni.

Engeza ukuhlola kwe-pre-commit

Ukuze uvimbele amafayela anezimpawu ngaphambi kokuba angene ku-Git commit, engeza i-check hook yendawo yokugcina ku-.pre-commit-config.yaml:

repos:
  - repo: https://github.com/guillaumemeyer/watermarks-remover
    rev: v0.5.0
    hooks:
      - id: watermarks-remover-check

I-hook ye-watermarks-remover-check iyehluleka uma kutholakala izimpawu. Enye i-hook, i-watermarks-remover-clean, ihlanza amafayela endaweni futhi idinga ukukhethwa ngokusobala.

Amathiphu athuthukile

Gcina okwangempela bese uqhathanisa imiphumela

Bhala idatha ehlanziwe endleleni yokukhipha ehlukile noma nini lapho kungenzeka. Lokhu kubaluleke kakhulu ekubhalweni kabusha kwe-Layer B naseziqukathini zamadokhumenti eziyinkimbinkimbi, lapho ukucubungula kungathinta khona umbhalo, amafa ashumekiwe, noma izakhiwo eziqondene nohlelo lokusebenza.

Faka amathuluzi afanele e-PDF

Sebenzisa i-qpdf uma udinga ukususa isakhiwo sangempela se-PDF. I-README ixwayisa ngokuthi i-exiftool iyodwa yenza isibuyekezo esengeza idatha, esingashiya amabhayithi amadala esengatholwa. Sebenzisa i-pass ejulile ye-Ghostscript ongayikhetha lapho imethadatha ingase ibe ngaphakathi kwezithombe ezishumekiwe.

Phatha ukuthola nokuhlanza njengemisebenzi ehlukene

Umsebenzi wokuhlanza ususa izithwali ezisekelwayo nemethadatha, kanti isitholi silinganisela ukuthi uhlelo lwe-watermark olulungiselelwe lukhona yini. Isibonelo, ukuqinisekiswa kwe-MarkLLM kunencazelo kuphela ngaphansi kokulungiselelwa okufanayo, futhi ukudlalwa kabusha kwe-keyed-Gumbel kudinga ukhiye wokukhiqiza. Lawa mathuluzi awawona ama-oracle ajwayelekile abo bonke abathengisi.

Khetha i-Layer B ngokucophelela

Uma usebenzisa i-Layer B, iphrojekthi incoma imodeli engeyona eyomthombo wokuqala ukuze kuncishiswe amathuba okusebenzisa uhlobo olufanayo lwesimpawu futhi. Njengoba ukubeka ngamanye amazwi kakhulu kungalimaza ithoni nokunemba, kweqe lapho ukugcina ikhwalithi yokubhala kuyinto ebaluleke kakhulu.

Hlola ama-backend ongawakhetha

Izikripthi zokuqalisa eziku-service/scripts/ zingalungiselela i-reverse-SynthID yokulinganisa izithombe, i-CtrlRegen yokususa esizindeni samaphikseli, i-MarkLLM yokuqinisekisa ama-watermark ombhalo alungiselelwe, kanye ne-MarkDiffusion yokuhlola ama-watermark ezithombe. Lawa ma-backend anezidingo nemikhawulo ehlukene; bheka izikripthi zawo zokusetha ngaphambi kokuwavula.

Ukusetshenziswa okunomthwalo wemfanelo

Sebenzisa i-watermarks-remover kuphela ngobumfihlo, ucwaningo, nokuhlanza okuqukethwe okungokwakho noma ogunyazwe ukukucubungula. Ayihloselwe ukukhwabanisa kwezemfundo noma izimangalo ezingamanga zokuthi okuqukethwe okukhiqizwe yi-AI kwabhalwa umuntu. Landela imithetho esebenzayo nezinqubomgomo zesikhungo.

Le phrojekthi itholakala ngaphansi kwe-MIT License. Ukuze uthole ukukhishwa kwezinhlobo nekhodi yomthombo, vakashela inqolobane ye-watermarks-remover ku-GitHub.

Isiphetho

i-watermarks-remover ihlanganisa ukuhlanzwa kombhalo okunqunywe kusengaphambili, ukususwa kwemethadatha kuzo zonke iziqukathi zamafayela eziningi, ama-backend okuthola ongawakhetha, ukuhlanganiswa nama-agent, ama-hook, kanye ne-HTTP API. Qala ngokuhlola, gcina okwangempela, sebenzisa ungqimba lokuhlanza oluncane nolufanele kakhulu, bese ubuyekeza umphumela esikhundleni sokuthatha noma yimuphi umphumela womtholi njengesiqinisekiso.