
Watermarks-remover hufanya nini
watermarks-remover ni ujuzi wa wakala na huduma ya Python ya kukagua na kusafisha alama za asili ya AI kutoka kwenye maandishi na miundo ya faili inayotumika. Imelenga faragha, utafiti, na usafi wa maudhui kwenye nyenzo unazomiliki au umeidhinishwa kuzichakata.
Ujuzi wa wakala ni mteja mwembamba wa HTTP. Hauna utekelezaji wa usafishaji ndani yake na hauhitaji Python kwenye mwenyeji wa wakala. Badala yake, hutuma kazi kwenye huduma inayotumika kando iliyojengwa kwa maktaba ya kawaida ya Python.
Mradi hugawanya kazi yake katika maeneo matatu:
- Tabaka A la maandishi: huondoa kwa njia bainifu vibeba Unicode visivyoonekana, nafasi zisizo za kawaida, vidhibiti vya mwelekeo wa pande mbili, na herufi za tagi.
- Tabaka B la maandishi: hutumia uandishi upya wa kiwango kikubwa ili kupunguza alama za watermark za sampuli za tokeni za kitakwimu. Hii ni juhudi ya kadiri ya uwezo na inaweza kubadilisha mtindo au sauti.
- Usafishaji wa faili: huondoa metadata za C2PA, EXIF, XMP, sifa za hati, na kontena zinazotumika kutoka kwenye aina nyingi za faili.
Hakuna zana inayoweza kuhakikisha kuwa kigunduzi cha muuzaji kitaacha kutambua maudhui. Hifadhi faili asili, kagua kila matokeo yaliyosafishwa, na tumia mradi huu tu kwenye maudhui unayomiliki au umepewa ruhusa ya kuyachakata.
Vipengele muhimu na miundo inayotumika
Scripti kuu zinahitaji Python 3.10 au mpya zaidi na hutumia maktaba ya kawaida pekee. Zana za hiari kama c2patool, exiftool, na qpdf hutumika zinapopatikana.
Malengo ya usafishaji yanayotumika
- Picha: PNG, JPEG, WebP, AVIF, HEIC, BMP, GIF, TIFF, na SVG.
- Hati: PDF, DOCX, XLSX, PPTX, EPUB, na ODT.
- Faili za maandishi na wavuti: HTML na Markdown, ikijumuisha metadata inayotumika, JSON-LD, funguo za AI frontmatter, na alama za maandishi za Tabaka A.
- Makontena ya midia: MP4, MOV, M4A, M4V, WAV, MP3, na FLAC.
Miundo isiyotambuliwa haisafishwi kiotomatiki. Amri mahususi za maandishi pia hukataa faili za jozi na kukuelekeza kwenye zana za jumla za faili.
Vikomo muhimu
Usafishaji wa msingi haujumuishi C2PA iliyofungwa kwa njia laini au watermark safi za pikseli, sauti, na video. Usafishaji wa PDF unahitaji qpdf kwa uondoaji wa kimuundo kwa sababu uhariri wa metadata unaoongezwa unaweza kuacha baiti zinazoweza kurejeshwa. Hatua ya hiari ya Ghostscript inaweza kushughulikia metadata iliyo ndani ya picha zilizopachikwa kwenye PDF.
Ugunduzi ni tofauti na usafishaji. Vigunduzi vya hiari vya MarkLLM, keyed-Gumbel, seams za Claude, na upimaji wa SynthID ya picha huwashwa kwa hiari na vimeundwa kushindwa kwa upole vinapokosekana.
Sakinisha ujuzi wa wakala
Clone au pakua hazina, ingia kwenye saraka yake, kisha endesha kisakinishi. Amri ifuatayo husakinisha ujuzi kamili unaotegemea huduma kwa usanidi binafsi wa Claude Code:
python3 install_skill.py --skill remove-ai-marks --target claude-codeMalengo yanayopatikana ya usakinishaji ni pamoja na:
--target claude-codehusakinisha chini ya~/.claude/skills/<skill>.--target claude-project --project-dir PATHhusakinisha chini yaPATH/.claude/skills/<skill>.--target coworkhutengenezadist/<skill>.zipkwa ajili ya kupakia kupitia kiolesura cha Skills cha wingu.--target cursorhusakinisha chini ya~/.cursor/skills/<skill>.
Tumia python3 install_skill.py --list kuorodhesha ujuzi uliosafirishwa. Hazina hutoa ujuzi kamili wa remove-ai-marks na ujuzi wa kujitegemea, wa maandishi pekee wa clean-user-facing-text. Usakinishaji uliopo huhifadhiwa kama nakala rudufu isipokuwa utumie --force. Kwa uhariri wa moja kwa moja kutoka kwenye checkout, ongeza --link.
Sakinisha programu-jalizi ya Claude Code
Watumiaji wa Claude Code wanaweza kusakinisha programu-jalizi ya marketplace moja kwa moja:
/plugin marketplace add guillaumemeyer/watermarks-remover
/plugin install watermarks-remover@watermarks-removerKisha ujuzi hupakiwa kama /watermarks-remover:remove-ai-marks na /watermarks-remover:clean-user-facing-text. Sasisha programu-jalizi kwa:
/plugin marketplace update watermarks-removerUnganisha ujuzi kwa Grok
mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marksAnzisha huduma
Endesha huduma ya HTTP ya ndani kutoka kwenye hazina:
make serveVinginevyo, zindua scripti ya seva moja kwa moja:
python3 service/scripts/server.py --host 127.0.0.1 --port 8765Anwani chaguo-msingi ni http://127.0.0.1:8765. Ikiwa huduma inaendeshwa mahali pengine, weka WATERMARKS_SERVICE_URL kwa ajili ya ujuzi. Seva hufungamana na loopback kwa chaguo-msingi, jambo linalozuia kuifichua moja kwa moja kwa mashine nyingine.
Thibitisha kuwa huduma inajibu:
curl -s http://127.0.0.1:8765/healthKiashiria cha afya hurudisha kitu kilicho na ok na toleo la huduma.
Kagua na safisha faili kutoka kwenye mstari wa amri
Mtiririko salama zaidi ni kukagua faili kwanza, kuandika matokeo yaliyosafishwa kwenye njia mpya, na kulinganisha matokeo na faili asili.
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.docxTumia inspect_file.py na clean_file.py kwa makontena ya maandishi na jozi. Amri hizi huchagua kisafishaji kinachofaa kinachotumika kulingana na faili.
Safisha alama za maandishi za Tabaka A
Kwa ingizo la maandishi wazi, kagua vibeba Unicode visivyoonekana na vinavyotokana na uhariri kwa:
python3 "$SCRIPTS/inspect_text.py" draft.mdKisha unda nakala iliyosafishwa na uchapishe takwimu:
python3 "$SCRIPTS/clean_text.py" draft.md -o draft.cleaned.md --statsLayer A ni ya kiamuzi na imekusudiwa kutopoteza taarifa kuhusu maandishi yanayoonekana. Usipitishie amri hizi za maandishi faili za DOCX, PDF, picha au ingizo lingine la jozi; tumia amri za faili badala yake.
Andaa uandishi upya wa Layer B
Alama za maandishi za kitakwimu zinahitaji kuandika upya badala ya kuondoa herufi tu. Kwa chaguo-msingi, amri ya kuandika upya huchapisha kidokezo:
python3 "$SCRIPTS/rewrite_text.py" draft.md --backend print-prompt --strength paraphraseLayer B ni ya kurudiarudia na hufanya kazi kwa kadiri inavyowezekana. Inaweza kupunguza uaminifu kwa mtindo na sauti ya awali. Ubora unapokuwa muhimu zaidi kuliko usafi wa alama, mradi unapendekeza kutumia Layer A na kusafisha faili huku ukihifadhi maandishi ya awali.
Tumia API ya HTTP
Huduma hutoa ukaguzi, utambuzi, usafishaji, uchakataji wa kundi, ugunduzi wa uwezo na vipimo vya OpenAPI.
GET /healthhuripoti hali na toleo la huduma.GET /capabilitieshuripoti zana na mifumo ya hiari inayopatikana.GET /openapi.jsonhurejesha vipimo vya OpenAPI 3.0.3.POST /inspecthurejesha aina ya ingizo, hali ya kutiliwa shaka na ripoti.POST /detecthurejesha matokeo ya vitambua vilivyosanidiwa.POST /cleanhurejesha data ya base64 iliyosafishwa na ripoti.POST /inspect/batchnaPOST /clean/batchhuchakata hadi faili 50 kwa kila ombi.
Mfano ufuatao husimba faili ya Markdown kuwa base64 na kuituma kwenye kituo cha kusafisha:
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\"}"Weka WATERMARKS_SERVER_API_KEY ili kulazimisha uthibitishaji wa bearer. Ukisambaza nje ya mashine ya ndani ya usanidi, dumisha uthibitishaji na vidhibiti vinavyofaa vya mtandao.
Endesha huduma kwa Docker
Jenga na uendeshe picha ya msingi kwa mfumo wa faili wa kusoma tu na saraka ya muda:
make docker-core-build
docker run --rm -p 127.0.0.1:8765:8765 --read-only --tmpfs /tmp watermarks-removerDocker Compose inasaidia profaili kadhaa:
docker compose up -d
docker compose --profile harness up -d
docker compose --profile heavy up -d- Chaguo-msingi huanzisha huduma ya msingi.
- Profaili ya
harnesshuongeza vipengele vya MarkLLM na MarkDiffusion. - Profaili ya
heavyhuongeza vipengele vya CtrlRegen na SynthID vinavyojengwa ndani.
Picha za Core, MarkLLM na MarkDiffusion huchapishwa kwenye GHCR. CtrlRegen na kipima cha SynthID hubaki vya ndani pekee kwa sababu ya leseni za watengenezaji wa awali. Nakili .env.example kuwa .env kwa usanidi wa hiari; usafishaji wa msingi wa maandishi hauhitaji mipangilio ya ziada.
Washa ukaguzi wa kiotomatiki kwa hook
Ujuzi wa wakala ni maagizo, kwa hiyo modeli huamua iwapo itauita. Hook ni ya kiamuzi zaidi: huendeshwa kila mara simu ya zana inayolingana inapotokea.
Programu-jalizi ya Claude Code husajili hook ya PostToolUse kwa Write, Edit, MultiEdit na NotebookEdit. Huita service/scripts/hook_written_file.py katika mojawapo ya hali mbili:
- check: hali chaguo-msingi huripoti alama lakini haibadilishi faili.
- clean: huondoa alama zinazotumika moja kwa moja kwenye faili na kuujulisha modeli.
Chagua hali kupitia mpangilio wa Hook mode wa programu-jalizi au weka:
WATERMARKS_HOOK_MODE=cleanBila programu-jalizi, unaweza kusajili hook mwenyewe katika ~/.claude/settings.json. Hook hushughulikia faili zilizoandikwa na wakala na kizuizi cha pre-commit, lakini kusafisha maandishi moja kwa moja katika kumbukumbu za mazungumzo hubaki kazi ya kadiri inavyowezekana na hutegemea ujuzi.
Ongeza ukaguzi wa pre-commit
Ili kuzuia faili zenye alama kabla hazijaingia kwenye commit ya Git, ongeza hook ya ukaguzi ya hazina kwenye .pre-commit-config.yaml:
repos:
- repo: https://github.com/guillaumemeyer/watermarks-remover
rev: v0.5.0
hooks:
- id: watermarks-remover-checkHook ya watermarks-remover-check hushindwa alama zinapopatikana. Hook mbadala ya watermarks-remover-clean husafisha faili moja kwa moja na inahitaji kuwashwa kwa hiari.
Vidokezo vya kina
Hifadhi nakala za awali na linganisha matokeo
Andika data iliyosafishwa kwenye njia tofauti ya kutoa kila inapowezekana. Hili ni muhimu hasa kwa uandishi upya wa Layer B na kontena changamano za hati, ambapo uchakataji unaweza kuathiri maandishi, vipengee vilivyopachikwa au sifa maalum za programu.
Sakinisha zana sahihi za PDF
Tumia qpdf unapohitaji uondoaji halisi wa muundo wa PDF. README inaonya kuwa exiftool pekee hufanya sasisho la nyongeza ambalo linaweza kuacha baiti za zamani zikiwa zinaweza kurejeshwa. Tumia hatua ya hiari ya kina ya Ghostscript wakati metadata inaweza kuwa ndani ya picha zilizopachikwa.
Chukulia utambuzi na usafishaji kama shughuli tofauti
Shughuli ya kusafisha huondoa vibebaji na metadata zinazotumika, huku kitambua kikikadiria iwapo mpango wa alama uliosanidiwa upo. Kwa mfano, uthibitishaji wa MarkLLM una maana tu chini ya usanidi uleule, na uchezaji tena wa keyed-Gumbel unahitaji ufunguo wa uzalishaji. Zana hizi si vitambua vya jumla vya wauzaji wote.
Chagua Layer B kwa uangalifu
Ukitumia Layer B, mradi unapendekeza modeli isiyotoka kwenye chanzo asilia ili kupunguza uwezekano wa kutumia tena aina ileile ya alama. Kwa kuwa ubadilishaji mkubwa wa maneno unaweza kuharibu toni na usahihi, uuruke wakati kuhifadhi ubora wa uandishi ndilo jambo la kipaumbele.
Chunguza mifumo ya hiari ya nyuma
Scripti za kuanzisha zilizo chini ya service/scripts/ zinaweza kusanidi reverse-SynthID kwa ajili ya uchanganuzi wa picha, CtrlRegen kwa uondoaji katika kikoa cha pikseli, MarkLLM kwa uthibitishaji wa watermark za maandishi uliosanidiwa, na MarkDiffusion kwa majaribio ya watermark za picha. Mifumo hii ya nyuma ina mahitaji na vikwazo tofauti; soma scripti zake za usanidi kabla ya kuiwasha.
Matumizi yenye uwajibikaji
Tumia watermarks-remover pekee kwa faragha, utafiti, na usafishaji wa maudhui unayomiliki au umeidhinishwa kuyachakata. Haijakusudiwa kwa udanganyifu wa kitaaluma au madai ya uwongo kwamba maudhui yaliyotengenezwa na AI yaliandikwa na binadamu. Zingatia sheria zinazotumika na sera za taasisi.
Mradi huu unapatikana chini ya Leseni ya MIT. Kwa matoleo na msimbo wa chanzo, tembelea hazina ya watermarks-remover kwenye GitHub.
Hitimisho
watermarks-remover huunganisha usafishaji wa maandishi wa kubainika, uondoaji wa metadata katika aina nyingi za kontena za faili, mifumo ya hiari ya utambuzi, ujumuishaji wa mawakala, hooks, na API ya HTTP. Anza kwa ukaguzi, hifadhi nakala ya awali, tumia safu nyembamba zaidi ya usafishaji inayofaa, na kagua matokeo badala ya kuchukulia matokeo yoyote ya kitambua kuwa ya uhakika.
