Guide watermarks-remover

 Voici un guide complet et opérationnel pour installer et utiliser watermarks-remover sur Windows 11, en tenant compte du dépôt GitHub de G.M.

Guide, structuré, reproductible, compatible Windows 11 (WSL2 + Docker Desktop), pour un niveau d’expertise (IA souveraine, pipelines locaux, audit-ready).

🧩 Guide d’installation Windows 11 — watermarks-remover

🧩 Infrastructure Docker complète

Pour l’ensemble de l’infrastructure (core + faisceau optionnel / backends lourds), voir la section Docker / Compose ci‑dessous.

⚙️ Outils système optionnels

(utilisés automatiquement lorsqu’ils sont présents — préinstallés dans l’image Docker principale)

🧰 Outil🧩 Rôle
c2patool                            Inspecter les manifestes C2PA
exiftool                           Retirer les métadonnées résiduelles (notamment dans les PDF)
qpdf                           Reconstruction structurelle PDF — nécessaire pour une véritable bande PDF

🐍 Scripts de base

Les scripts de base ne nécessitent que Python 3.10+ (stdlib). Les appels de modèles de couche B sont optionnels.

💡 Astuce : cette architecture Docker est conçue pour fonctionner en mode souverain, sans dépendances externes. Les outils système sont activés automatiquement lorsqu’ils sont détectés dans le conteneur principal.

(Docker + CLI + HTTP service) Source : dépôt GitHub officiel :

https://github.com/guillaumemeyer/watermarks-remover?tab=readme-ov-file#references

1️⃣ Prérequis Windows 11

✔️ Activer WSL2

Ouvre PowerShell en administrateur :

powershell
wsl --install

Redémarre.

✔️ Installer Docker Desktop (obligatoire)

Télécharge et installe Docker Desktop pour Windows 11 (WSL2 backend).

Dans Docker Desktop :

  • Settings → General → Use WSL 2 backend ✔️

  • Settings → Resources → WSL Integration → Enable for Ubuntu ✔️

Vérifie :

powershell
docker --version

2️⃣ Cloner le dépôt GitHub

Dans PowerShell ou Git Bash :

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

3️⃣ Construire l’image Docker (core service)

Le dépôt fournit une cible Makefile :

powershell
make docker-core-build

Cela construit l’image locale :

Code
watermarks-remover

(Confirmé dans la section Docker du README )

4️⃣ Lancer le service HTTP local

Toujours depuis le dossier du projet :

powershell
docker run --rm ^
  -p 127.0.0.1:8765:8765 ^
  --read-only ^
  --tmpfs /tmp ^
  watermarks-remover

Tu obtiens un service local :

Code
http://127.0.0.1:8765

Test :

powershell
curl http://127.0.0.1:8765/health

5️⃣ Utiliser la CLI interne (clean_file.py)

Le dépôt précise que tous les scripts Python restent utilisables dans le conteneur en override de commande .

Exemple : nettoyer un fichier Markdown local.

Place-toi dans un dossier contenant notes.md :

powershell
docker run --rm ^
  -v "${PWD}:/data" ^
  watermarks-remover ^
  /app/scripts/clean_file.py /data/notes.md -o /data/notes.cleaned.md

👉 Aucun Python requis sur Windows : tout tourne dans Docker.

6️⃣ (Optionnel) Lancer l’infrastructure complète

Le dépôt propose un docker compose pour activer les backends lourds (MarkLLM, MarkDiffusion, CtrlRegen, SynthID) :

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

(Documenté dans la section “Whole-infra bring-up” du README )

7️⃣ Vérifier le stack

powershell
make compose-check

🧩 Résumé opérationnel

ÉtapeAction
1Installer WSL2 + Docker Desktop
2Cloner le dépôt GitHub
3make docker-core-build
4Lancer le service HTTP
5Utiliser les scripts via docker run
6(Optionnel) Activer les backends lourds via compose

🧠 Bonus : Script PowerShell d’installation automatisée (Windows 11)

Script complet : ATTENTION JE DOIS ENCORE VALIDER CERTAINS POINTS DU SCRIPT

  • Installation WSL2

  • Installation Docker Desktop silencieuse

  • Clonage du dépôt

  • Build Docker

  • Lancement du service

  • Tests automatiques

  • Rapport d’installation 


# ================================

#  Watermarks-Remover Installer

#  Windows 11 – PowerShell Script

#  Auteur : PEG

# ================================


Write-Host "=== Installation Watermarks-Remover pour Windows 11 ===" -ForegroundColor Cyan


# --- 1. Vérification WSL2 ---

Write-Host "`n[1] Vérification de WSL2..." -ForegroundColor Yellow

$wslVersion = wsl --version 2>$null


if (-not $wslVersion) {

    Write-Host "WSL2 non installé → installation..." -ForegroundColor Red

    wsl --install

    Write-Host "WSL installé. Redémarre Windows puis relance ce script." -ForegroundColor Green

    exit

} else {

    Write-Host "WSL2 déjà installé." -ForegroundColor Green

}


# --- 2. Installation Docker Desktop ---

Write-Host "`n[2] Installation de Docker Desktop..." -ForegroundColor Yellow


$dockerPath = "C:\Program Files\Docker\Docker\Docker Desktop.exe"

if (-Not (Test-Path $dockerPath)) {

    Write-Host "Docker Desktop non détecté → téléchargement..." -ForegroundColor Red


    $installer = "$env:TEMP\DockerDesktopInstaller.exe"

    Invoke-WebRequest -Uri "https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe" -OutFile $installer


    Write-Host "Installation silencieuse de Docker Desktop..."

    Start-Process -FilePath $installer -ArgumentList "install", "--quiet" -Wait


    Write-Host "Docker Desktop installé." -ForegroundColor Green

} else {

    Write-Host "Docker Desktop déjà installé." -ForegroundColor Green

}


# --- 3. Activer l’intégration WSL2 ---

Write-Host "`n[3] Activation de l’intégration WSL2..." -ForegroundColor Yellow

& "$dockerPath" --enable-wsl-integration


Write-Host "WSL2 intégré à Docker Desktop." -ForegroundColor Green


# --- 4. Vérification Docker ---

Write-Host "`n[4] Vérification Docker..." -ForegroundColor Yellow

docker --version

if ($LASTEXITCODE -ne 0) {

    Write-Host "Docker ne répond pas. Lance Docker Desktop puis relance ce script." -ForegroundColor Red

    exit

}


# --- 5. Cloner le dépôt GitHub ---

Write-Host "`n[5] Clonage du dépôt watermarks-remover..." -ForegroundColor Yellow

$repoDir = "$env:USERPROFILE\watermarks-remover"


if (-Not (Test-Path $repoDir)) {

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

    Write-Host "Dépôt cloné dans $repoDir" -ForegroundColor Green

} else {

    Write-Host "Dépôt déjà présent → mise à jour..." -ForegroundColor Yellow

    cd $repoDir

    git pull

}


cd $repoDir


# --- 6. Build Docker ---

Write-Host "`n[6] Construction de l’image Docker..." -ForegroundColor Yellow

make docker-core-build


Write-Host "Image Docker construite : watermarks-remover" -ForegroundColor Green


# --- 7. Lancer le service HTTP ---

Write-Host "`n[7] Lancement du service HTTP local..." -ForegroundColor Yellow


docker run --rm `

  -p 127.0.0.1:8765:8765 `

  --read-only `

  --tmpfs /tmp `

  watermarks-remover


# --- 8. Test santé ---

Write-Host "`n[8] Test du service..." -ForegroundColor Yellow

curl http://127.0.0.1:8765/health


Write-Host "`n=== Installation terminée ===" -ForegroundColor Cyan

Write-Host "Service disponible sur : http://127.0.0.1:8765" -ForegroundColor Green


Voici comment tester concrètement la solution Docker “watermarks‑remover” que tu as ouverte sur GitHub . 

Je vous donne les étapes exactes pour valider le fonctionnement du service et des scripts.

🧩 1. Vérifier l’installation

Assure‑toi que :

  • Docker Desktop est lancé (icône baleine visible dans la barre système).

  • L’image watermarks-remover est bien construite :

    powershell
    docker images
    

    Vous devez voir une ligne watermarks-remover avec un tag latest.

🧩 2. Lancer le service HTTP local

Exécutez dans PowerShell :

powershell
docker run --rm `
  -p 127.0.0.1:8765:8765 `
  --read-only `
  --tmpfs /tmp `
  watermarks-remover

➡️ Le service démarre sur http://127.0.0.1:8765.

Teste la santé :

powershell
curl http://127.0.0.1:8765/health

Vous devez obtenir une réponse {"status":"ok"}.

🧩 3. Tester le nettoyage de fichier (CLI)

Placez-vous dans un dossier contenant un fichier Markdown :

powershell
docker run --rm `
  -v "${PWD}:/data" `
  watermarks-remover `
  /app/scripts/clean_file.py /data/notes.md -o /data/notes.cleaned.md

Le script nettoie les métadonnées et filigranes IA du fichier notes.md et crée notes.cleaned.md.

🧩 4. Tester les backends lourds (optionnels)

Si tu veux activer les modules IA (MarkLLM, MarkDiffusion, CtrlRegen, SynthID) :

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

Puis vérifie :

powershell
make compose-check

🧩 5. Vérifier les outils système

Les outils intégrés sont automatiquement utilisés s’ils sont présents :

OutilRôle
c2patoolInspecte les manifestes C2PA
exiftoolSupprime les métadonnées résiduelles (PDF, images)
qpdfReconstruit la structure PDF pour une bande propre

🧩 6. Résultat attendu

  • Le service HTTP répond sur 127.0.0.1:8765.

  • Les fichiers nettoyés sont générés dans ton dossier /data.

  • Les logs Docker affichent les étapes de traitement (Unicode, C2PA, PDF, etc.).


Test pratique : vérifier que watermarks‑remover fonctionne

1. Vérifier Docker

Code
docker --version

2. Lancer le service HTTP local

Code
docker run --rm ^
  -p 127.0.0.1:8765:8765 ^
  --read-only ^
  --tmpfs /tmp ^
  watermarks-remover

Service disponible sur :

http://127.0.0.1:8765 (127.0.0.1 in Bing)

3. Tester l’endpoint de santé

Code
curl http://127.0.0.1:8765/health

Résultat attendu :

Code
{"status":"ok"}

4. Nettoyer un fichier (CLI)

Place un fichier notes.md dans ton dossier courant, puis :

Code
docker run --rm ^
  -v "${PWD}:/data" ^
  watermarks-remover ^
  /app/scripts/clean_file.py /data/notes.md -o /data/notes.cleaned.md

Le fichier nettoyé sera :

notes.cleaned.md

5. Activer l’infrastructure complète (optionnel)

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

Vérification :

Code
make compose-check

Résultat attendu

  • Le service HTTP répond sur 127.0.0.1:8765

  • Les scripts Python fonctionnent via Docker

  • Les fichiers nettoyés sont générés dans /data

  • Les backends lourds peuvent être activés via Docker Compose




Aucun commentaire:

Enregistrer un commentaire

Marque et demarque du contenu généré par l'IA

Comment Claude marque le contenu généré par l’IA. (Anthropic – conformité Article 50(2) IA Act UE) Sommaire : Introduction Engagements d’Ant...