Version actuelle : 0.5.0.
Prototype gratuit/local pour charger un CBZ de manga, faire de l’OCR local, traduire EN→FR ou JP→FR avec Argos Translate et corriger les blocs dans une interface PySide6. Le but final reste l’édition des bulles dans l’image puis l’export d’un CBZ traduit.
Depuis 0.3.0, la traduction ne passe plus par Hugging Face, Transformers, Helsinki-NLP, SentencePiece ou Sacremoses.
La traduction utilise maintenant :
Argos Translate + packages locaux .argosmodel
Conséquence : tu dois installer localement les modèles Argos nécessaires :
en -> fr
ja -> fr direct si disponible
ou ja -> en + en -> fr pour traduction pivot
Argos Translate est une bibliothèque de traduction offline Python. Ses modèles sont des archives .argosmodel installées localement.
Le projet sait déjà faire :
- ouvrir un
.cbzou.zipcontenant des images ; - afficher les pages dans une GUI PySide6 ;
- lancer EasyOCR localement, CPU ou CUDA si PyTorch GPU est installé ;
- relire les blocs OCR suspects ou tous les blocs avec des variantes de crop renforcées et des moteurs optionnels ;
- traduire avec Argos local intégré ou via serveur local HTTP ;
- préserver
bbox, ordre de lecture, statut manuel, warnings QC et alternatives OCR dans le cache JSON ; - éditer OCR brut, OCR corrigé, texte normalisé et traduction finale ;
- fusionner/séparer des blocs, corriger l’ordre de lecture et valider/ignorer des blocs ;
- exporter une lecture HTML avec image à gauche et traduction à droite.
Ce qu’il ne fait pas encore correctement :
- remplacement propre du texte dans les bulles ;
- inpainting/nettoyage du texte original ;
- export CBZ traduit ;
- détection robuste de toutes les bulles et textes stylisés ;
- traduction fiable de dialogues manga sans correction humaine.
Depuis PowerShell, dans le dossier du projet :
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .Lancer la GUI :
python -m cbz_manga_translator.mainVérifier la version :
python -m cbz_manga_translator.main --versionEasyOCR utilise PyTorch. Pour une RTX/NVIDIA :
.\.venv\Scripts\Activate.ps1
python -m pip uninstall -y torch torchvision torchaudio
python -m pip cache purge
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
python -c "import torch; print('torch:', torch.__version__); print('cuda:', torch.cuda.is_available()); print('gpu:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU only')"Ne relance pas pip install -r requirements.txt après une installation CUDA fonctionnelle.
Méthode recommandée : laisse l’outil télécharger les packages depuis l’index officiel Argos, sans Hugging Face :
.\.venv\Scripts\Activate.ps1
python -m cbz_manga_translator.argos_models --bootstrap-basic
python -m cbz_manga_translator.argos_models --listTu peux aussi demander explicitement des paires :
python -m cbz_manga_translator.argos_models --install-index en:fr ja:enOu installer des fichiers .argosmodel déjà téléchargés :
python -m cbz_manga_translator.argos_models --install C:\models\translate-en_fr.argosmodel C:\models\translate-ja_en.argosmodelPour EN→FR, il faut en -> fr.
Pour JP→FR, l’application essaie :
ja -> fr
puis, si le direct n’est pas installé :
ja -> en -> fr
Donc si aucun modèle direct JP→FR n’est disponible, installe au minimum ja -> en et en -> fr.
Après installation des packages Argos, vérifier les paires disponibles :
python -m cbz_manga_translator.argos_models --listLa commande affiche aussi si MangaTrad peut traduire EN→FR et JP→FR. Le direct ja->fr peut être absent de l’index Argos ; dans ce cas ja->en + en->fr suffit.
Tester rapidement une traduction locale :
python -m cbz_manga_translator.argos_models --test en "hello"
python -m cbz_manga_translator.argos_models --test ja "こんにちは"Terminal 1 :
.\.venv\Scripts\Activate.ps1
python -m cbz_manga_translator.server --host 127.0.0.1 --port 8765 --gpu --preload en jaTerminal 2 :
.\.venv\Scripts\Activate.ps1
python -m cbz_manga_translator.mainDans l’interface :
Modèle local : Serveur local HTTP
URL : http://127.0.0.1:8765
Tester serveur
Si le serveur n’est pas lancé, choisis plutôt le mode intégré.
Fusionner lignes: regroupe les fragments proches pour éviter les traductions mot à mot.Filtrer bruit: ignore artefacts, symboles et fragments sous le seuil de confiance.OCR multi-variantes: relit les crops avec marge, upscale, contraste et seuillage.Fallback OCR local: relit les blocs suspects avec corrections locales, EasyOCR crop variants, Tesseract si installé et PaddleOCR si installé.Relire OCR suspects: applique le fallback sur les blocs marqués par le quality check ou par une confiance faible.Relire OCR tous: applique le fallback sur tous les blocs de la page. Plus lent, mais utile quand toute une page est mal lue.
Les moteurs optionnels sont installables via :
pip install -r requirements-ocr-extra.txtNormaliser EN familier: transformeWHAT YA DOIN',AIN'T AH TOID YA,CLIMBIN',GRAMMA,LOOKY,Inhook, etc. avant traduction.Dico manga intégré: protège des noms, lieux, repas et termes déjà courants en français.Glossaire projet: règles propres à un CBZ/série, sauvegardées dans le cache JSON.
Exemple de glossaire :
Naru
NARL=Naru
NARLI=Naru
Miwa-nee
contrail=traînée de condensation
Le pack de correction humain génère maintenant un classeur .xlsx lisible :
mangatrad_human_review_pack.xlsx
Il contient des filtres, une ligne d'en-tête figée, une liste déroulante pour review_decision, et les colonnes à remplir sont placées juste à côté des colonnes à analyser. Un .tsv est encore généré comme fallback, et les anciens .csv restent acceptés à l'import.
1. Ouvrir le CBZ.
2. Lancer OCR local page ou OCR + trad locale.
3. Relire OCR suspects.
4. Choisir une alternative OCR si elle est meilleure.
5. Fusionner/séparer les blocs si la structure est mauvaise.
6. Corriger OCR corrigé ou texte normalisé.
7. Retraduire sélection.
8. Corriger la traduction finale.
9. Valider ou marquer à revoir.
10. Exporter HTML pour lecture.
L'application écrit maintenant deux fichiers de logs dans le dossier courant :
logs/mangatrad.log
logs/mangatrad_fatal.log
mangatrad.log contient les tâches lancées, erreurs Python et tracebacks. mangatrad_fatal.log est réservé aux crashs natifs possibles de bibliothèques OCR/ML.
Pour afficher les commandes d'installation des OCR optionnels :
python -m cbz_manga_translator.ocr_setup --commandsPour vérifier ce que MangaTrad voit réellement :
python -m cbz_manga_translator.ocr_setup --checkVoir docs/ocr_backends_install.md.
Le bouton Exporter analyse produit un corpus local pour comparer plusieurs dizaines de pages :
mangatrad_review_blocks.csv
mangatrad_review_blocks.jsonl
mangatrad_quality_report.md
mangatrad_learning_report.json
mangatrad_glossary_suggestions.txt
Commande équivalente :
python -m cbz_manga_translator.analysis_export --project C:\chemin\manga.cbz.manga_translate_project.json --out C:\temp\mangatrad_analysisLe mécanisme d’apprentissage reste léger et local : il extrait une mémoire de traductions/corrections depuis les blocs corrigés ou validés, sans fine-tuning et sans service externe.
Détails : docs/analysis_export.md.
Pour construire une base représentative, crée un volumes.txt avec une ligne par dossier de série ou par CBZ/ZIP :
D:\Mangas\Serie A
D:\Mangas\Serie B
Puis :
python -m cbz_manga_translator.corpus_sample `
--input C:\temp\volumes.txt `
--out C:\temp\mangatrad_corpus `
--volumes-per-series 2 `
--pages-per-volume 25 `
--series-mode mixed `
--mode mixed `
--seed 47 `
--overwriteSi les lignes pointent vers des dossiers parents contenant des sous-dossiers de séries, ajoute --recursive. N'utilise pas --require-distinct-parent si tu veux plusieurs tomes par série.
Détails : docs/corpus_sampling.md.
.\.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt
pip install -e .
pytest -q
python -m compileall -q src tests
python -m cbz_manga_translator.main --version
python -m cbz_manga_translator.server --help
python -m cbz_manga_translator.argos_models --listDocker n’est pas le mode recommandé pour la GUI PySide6. Le projet reste d’abord une application Python native.
Docker sert seulement à :
- tester dans un environnement propre ;
- préparer un futur serveur local OCR/traduction isolé ;
- reproduire des validations CI.
Après corpus_sample, lancer OCR + traduction locale sur les pages extraites :
python -m cbz_manga_translator.corpus_process `
--corpus C:\temp\mangatrad_corpus `
--out C:\temp\mangatrad_corpus_run `
--source-lang en `
--limit 30Pour un traitement complet, retirer --limit. Les options lourdes sont volontairement désactivées par défaut. Ajouter seulement après test :
--fallback suspects --include-optional-ocrLes sorties principales sont mangatrad_review_blocks.csv, mangatrad_review_blocks.jsonl, mangatrad_quality_report.md et mangatrad_learning_report.json.
Depuis 0.4.3, corpus_process peut reconstruire un manifest minimal quand le dossier fourni contient déjà des images sous pages/ mais plus de manifest.jsonl/manifest.csv. Le manifest original reste préférable.
Après corpus_process, génère un profil local exploitable :
python -m cbz_manga_translator.corpus_learn `
--analysis C:\temp\mangatrad_corpus_run_30_stratified\analysis `
--out C:\temp\mangatrad_learned_profileSorties :
mangatrad_learned_profile.json: profil structuré ;mangatrad_learned_report.md: résumé lisible ;mangatrad_project_glossary_seed.txt: candidats glossaire ;mangatrad_qc_residue_words.txt: mots source résiduels à surveiller.
Ce n’est pas un fine-tuning lourd : c’est un apprentissage local transparent pour améliorer progressivement OCR, QC et règles de traduction.
Après un traitement corpus, génère un pack de correction humain :
python -m cbz_manga_translator.corpus_review_pack `
--analysis C:\temp\mangatrad_corpus_run_30_stratified_v043\analysis `
--out C:\temp\mangatrad_human_review_pack `
--max-blocks 200Ouvre mangatrad_human_review_pack.xlsx, remplis les colonnes jaunes (review_decision, corrected_ocr, corrected_source, corrected_fr, review_notes), puis réinjecte :
python -m cbz_manga_translator.corpus_apply_review `
--project C:\temp\mangatrad_corpus_run_30_stratified_v043\mangatrad_corpus_project.json `
--review C:\temp\mangatrad_human_review_pack\mangatrad_human_review_pack.xlsx `
--out-project C:\temp\mangatrad_corpus_run_30_stratified_v043\mangatrad_corpus_project.reviewed.jsonVoir docs/human_review_workflow.md.
Pour corriger des lots de blocs plus confortablement qu’avec un TSV/XLSX :
python -m cbz_manga_translator.review_app C:\temp\mangatrad_corpus_run_30_stratified_v043\mangatrad_corpus_project.jsonL’outil affiche la page, la bbox du bloc, les champs OCR/source/traduction, et sauvegarde par défaut dans un *.reviewed.json. Voir docs/review_app.md.
Application séparée pour corriger les résultats du corpus avec image, bbox, OCR, traduction, warnings et notes :
python -m cbz_manga_translator.review_app C:\temp\mangatrad_corpus_run_30_stratified_v043\mangatrad_corpus_project.jsonVoir docs/review_app.md.
Pour corriger un corpus, utilise maintenant le reviewer dédié :
python -m cbz_manga_translator.review_app C:\temp\mangatrad_corpus_run_30_stratified_v043\mangatrad_corpus_project.jsonLa V0.5.0 organise l'écran comme un poste de correction : file de blocs à gauche, image au centre, correction à droite. Les champs sont par paires : le texte à analyser est à gauche, le champ à corriger est à droite. Les modifications non sauvegardées déclenchent une confirmation avant de changer de bloc.