Hệ thống hỗ trợ dịch truyện tranh/manga bán tự động bằng AI. Project thực hiện toàn bộ pipeline từ phát hiện vùng chữ, OCR, dịch nội dung, xóa chữ gốc và chèn bản dịch trở lại lên ảnh truyện.
Project được xây dựng để giảm khối lượng thao tác thủ công trong quy trình scanlation:
- Phát hiện vùng chứa chữ trên trang truyện.
- OCR nội dung tiếng gốc từ từng vùng.
- Dịch sang ngôn ngữ đích bằng mô hình AI.
- Xóa chữ cũ bằng inpainting.
- Render bản dịch lại vào đúng vị trí trên ảnh.
Hệ thống ưu tiên bài toán manga Nhật -> Việt, nhưng kiến trúc đủ mở để mở rộng sang các ngôn ngữ khác.
- Dịch một ảnh đơn lẻ hoặc cả chapter.
- Hỗ trợ nhiều detector:
yolo,craft,opencv. - Hỗ trợ OCR theo ngôn ngữ nguồn:
manga-ocrcho tiếng Nhật.EasyOCRcho các ngôn ngữ khác.
- Hỗ trợ dịch theo batch vùng text với ngữ cảnh giữa các trang.
- Có từ điển/glossary để giữ tên riêng và thuật ngữ nhất quán.
- Có pass bổ sung để bắt text ngoài speech bubble, giảm bỏ sót narration box hoặc chữ nổi.
- Có bước làm sạch text để hạn chế lỗi ký tự ô vuông/ký tự hỏng trước khi render.
- Có cơ chế căn chỉnh chữ trong khung để giảm chồng chéo khi dán bản dịch lên ảnh.
- Hỗ trợ API và CLI để dễ tích hợp hoặc chạy thủ công.
Pipeline xử lý một trang truyện gồm các bước:
- Detect vùng text hoặc speech bubble.
- OCR từng vùng để lấy text gốc.
- Dịch từng vùng sang ngôn ngữ đích.
- Xóa chữ cũ trên ảnh.
- Render bản dịch lên lại đúng vùng tương ứng.
Với chapter nhiều trang, hệ thống có thể xử lý theo batch và truyền ngữ cảnh giữa các trang liên tiếp để cải thiện tính nhất quán của bản dịch.
comic-translation-system/
├── src/
│ ├── app.py
│ ├── cli.py
│ ├── cli_chapter.py
│ ├── config/
│ │ ├── manga_dict.json
│ │ └── settings.py
│ ├── data/
│ │ ├── loaders.py
│ │ └── schemas.py
│ ├── pipelines/
│ │ ├── chapter_pipeline.py
│ │ ├── ocr_pipeline.py
│ │ ├── render_pipeline.py
│ │ └── translation_pipeline.py
│ ├── services/
│ │ ├── craft_detector.py
│ │ ├── dictionary.py
│ │ ├── image_service.py
│ │ ├── inpainting_service.py
│ │ ├── lama_inpainting_service.py
│ │ ├── ocr_service.py
│ │ ├── sam_masker.py
│ │ ├── text_detector.py
│ │ ├── translation_service.py
│ │ ├── vram_manager.py
│ │ └── yolo_detector.py
│ └── utils/
│ └── logger.py
├── tests/
├── output/
├── requirements.txt
├── run_chapter.py
└── README.md
Bạn có thể đính kèm ảnh ví dụ trong thư mục docs/examples/ để README hiển thị demo trực tiếp trên GitHub.
Khuyến nghị đặt tên file như sau:
docs/examples/page-015-before.jpgdocs/examples/page-015-after.jpgdocs/examples/page-dialogue-before.jpgdocs/examples/page-dialogue-after.jpg
Ví dụ hiển thị:
| Before | After |
|---|---|
![]() |
![]() |
git clone <your-repo-url>
cd comic-translation-systempython -m venv .venvWindows:
.venv\Scripts\Activate.ps1Linux/macOS:
source .venv/bin/activatepip install -r requirements.txtProject đọc cấu hình từ file .env.
Ví dụ:
USE_LOCAL_LLM=true
LOCAL_LLM_URL=https://api.minimax.io/v1
LOCAL_LLM_MODEL=MiniMax-M2.5
LOCAL_LLM_API_KEY=your_api_key
OPENROUTER_API_KEY=
GEMINI_API_KEY=Lưu ý:
- Không commit API key thật lên GitHub.
- Nên tạo
.env.examplehoặc xóa key thật trước khi public repo.
python src/cli.py "C:\path\to\page.jpg" --source ja --target vi --detector yolo --inpainter opencvpython run_chapter.py "C:\path\to\chapter_folder"Hoặc chạy bản CLI đầy đủ:
python src/cli_chapter.py "C:\path\to\chapter_folder" --source ja --target vi --detector yolo --inpainter opencv --out "C:\path\to\output"python src/app.pySau đó có thể dùng các endpoint chính:
POST /api/translateGET /api/status/{task_id}GET /api/download/{task_id}GET /api/languagesGET /api/configGET /api/vram
- Python
- FastAPI
- OpenCV
- Pillow
- manga-ocr
- EasyOCR
- YOLO
- CRAFT
- LaMa Inpainting
- MiniMax / Local LLM / các backend LLM tương thích OpenAI-style API
- Pipeline tách lớp rõ ràng, dễ nâng cấp từng bước.
- Có thể thay detector, OCR backend và translator backend.
- Đã bổ sung xử lý text ngoài bubble để giảm bỏ sót.
- Có bước làm sạch text để hạn chế lỗi ký tự xấu khi render.
- Có cải tiến căn chỉnh chữ để giảm chồng chéo trong khung truyện.
- Chất lượng OCR và detect phụ thuộc khá nhiều vào chất lượng ảnh đầu vào.
- Một số trang có SFX phức tạp hoặc chữ nền tối vẫn cần tinh chỉnh thêm.
- Bản dịch vẫn có thể cần hậu kiểm thủ công để tự nhiên hơn trong ngữ cảnh hội thoại.
- Bộ test hiện tại cần tiếp tục cập nhật để phản ánh đúng pipeline mới.
- Cải thiện detect cho text dọc, narration box và SFX.
- Tăng chất lượng typography khi render lại text.
- Tối ưu prompt dịch để thoại tự nhiên hơn.
- Tăng độ ổn định của API và batch pipeline.
- Hoàn thiện test và chuẩn hóa môi trường triển khai.
Project phù hợp cho:
- Demo đồ án AI / Computer Vision / NLP.
- Nghiên cứu OCR và dịch truyện tranh.
- Công cụ hỗ trợ scanlation bán tự động.
- Nền tảng để phát triển hệ thống dịch truyện hoàn chỉnh hơn trong tương lai.
Trước khi đưa repo lên GitHub, nên kiểm tra:
- Xóa toàn bộ API key thật trong
.env. - Bỏ các file output không cần thiết nếu repo muốn gọn.
- Giữ lại một số ảnh demo trước/sau trong
docs/examples/. - Cập nhật link clone và ảnh minh họa theo repo thật.
Bạn có thể dùng MIT License hoặc license phù hợp với mục đích phát hành của project.

