Manga translation app powered by AI
307
stars
843
commits
Python
primary language
Sep 5, 2026
updated
Gradio-based web application for automating the translation of manga/comic page images using AI. Targets speech bubbles and text outside of speech bubbles. Supports 60 languages and custom font pack usage.
| Original | Translated (w/ a single click) |
|---|---|
![]() | ![]() |
.ttf/.otf files; included with portable packageDownload the standalone zip from the releases page: Portable Build
Requirements:
[!TIP] In the event that you need to transfer to a fresh portable package:
- You can safely move the
fonts,models, andoutputdirectories to the new portable package- You might be able to move the
runtimedirectory over, assuming the same setup configuration is wanted
git clone https://github.com/meangrinch/MangaTranslator.git
cd MangaTranslator
python -m venv venv
# Windows PowerShell/CMD
.\venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
# Example (CUDA 13.0)
pip install torch==2.11.0+cu130 torchvision==0.26.0+cu130 --extra-index-url https://download.pytorch.org/whl/cu130
# Example (ROCm 7.1)
pip install torch==2.11.0+rocm7.1 torchvision==0.26.0+rocm7.1 --extra-index-url https://download.pytorch.org/whl/rocm7.1
# Example (XPU)
pip install torch==2.11.0+xpu torchvision==0.26.0+xpu --extra-index-url https://download.pytorch.org/whl/xpu
# Example (MPS/CPU)
pip install torch==2.11.0 torchvision==0.26.0
# Example (Windows, Python 3.13, PyTorch 2.11.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.3.0dev20260213/nunchaku-1.3.0.dev20260213+cu13.0torch2.11-cp313-cp313-win_amd64.whl
# Example (Linux, Python 3.13, PyTorch 2.11.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.3.0dev20260213/nunchaku-1.3.0.dev20260213+cu13.0torch2.11-cp313-cp313-linux_x86_64.whl
[!NOTE] Nunchaku is not necessary for the use of Flux models via the sd.cpp/SDNQ backends.
pip install -r requirements.txt
fonts/ with .otf/.ttf filesitalic/bold or both so variants are detectedfonts/
├─ CC Wild Words/
│ ├─ CCWildWords-Regular.otf
│ ├─ CCWildWords-Italic.otf
│ ├─ CCWildWords-Bold.otf
│ └─ CCWildWords-BoldItalic.otf
└─ Komika Hand/
├─ KOMIKA-HAND.ttf
└─ KOMIKA-HANDBOLD.ttf
GOOGLE_API_KEY / GEMINI_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, SPACEXAI_API_KEY / XAI_API_KEY, META_MODEL_API_KEY / META_API_KEY, DEEPSEEK_API_KEY, ZAI_API_KEY, MOONSHOT_API_KEY, MIMO_API_KEY, QWENCLOUD_API_KEY / QWEN_API_KEY, OPENCODE_API_KEY / OPENCODE_ZEN_API_KEY / OPENCODE_GO_API_KEY, OPENROUTER_API_KEY, OPENAI_COMPATIBLE_API_KEYhttp://localhost:8080/v1), and Azure OpenAI endpoints (e.g., https://<resource>.openai.azure.com)[!NOTE] The following models are automatically detected when used via the OpenAI-Compatible provider and receive optimized prompting. They are text-only and require two-step translation + local OCR. The
special_instructionsfield maps to their corresponding glossary/terminology (one entry per line, e.g.,term -> translation).
- YanoljaNEXT-Rosetta (e.g.,
yanolja/YanoljaNEXT-Rosetta-4B-2511-GGUF)- Hy-MT2 (e.g.,
tencent/Hy-MT2-7B). Also pre-fills the model's recommended sampling parameters
If you want to use the OSB text pipeline, you need a Hugging Face token with access to the following repositories:
deepghs/AnimeText_yolohf_token in ConfigHF_TOKENstart-webui.bat (Windows) or ./start-webui.sh (Linux/macOS), located in MangaTranslator/python app.py --open-browserRun python app.py --help for launch options.
First launch can take ~1–2 minutes.
Once launched, configure your LLM provider in the Config tab, then upload images and click Translate.
Examples:
# Single image, Japanese → English, Google provider, OSB text pipeline, custom OSB text font
python main.py --input <image_path> \
--font-dir "fonts/Komika Hand" --provider Google --google-api-key <...> \
--osb-enable --osb-font-dir "fonts/Comicka"
# Batch folder, Japanese → Chinese (Simplified), OpenAI-Compatible provider (llama.cpp), OSB text pipeline, custom OSB text font
python main.py --input <folder_path> --batch \
--font-dir "fonts/Noto Sans SC" --output-language "Chinese (Simplified)" \
--provider OpenAI-Compatible --openai-compatible-url http://localhost:8080/v1 \
--output ./output --osb-enable --osb-font-dir "fonts/Noto Sans SC"
# Cleaning-only mode (no translation)
python main.py --input <image_path> --cleaning-only
# Upscaling-only mode (no translation)
python main.py --input <image_path> --upscaling-only --image-upscale-mode final --image-upscale-factor 2.0
# Full options
python main.py --help
update.bat (Windows) or ./update.sh (Linux/macOS) from the portable package rootFrom the repo root:
git pull
pip install -r requirements.txt # Or activate venv first if present
Python
99.6%
Manga translation app powered by AI
307
stars
843
commits
Python
primary language
Sep 5, 2026
updated
Gradio-based web application for automating the translation of manga/comic page images using AI. Targets speech bubbles and text outside of speech bubbles. Supports 60 languages and custom font pack usage.
| Original | Translated (w/ a single click) |
|---|---|
![]() | ![]() |
.ttf/.otf files; included with portable packageDownload the standalone zip from the releases page: Portable Build
Requirements:
[!TIP] In the event that you need to transfer to a fresh portable package:
- You can safely move the
fonts,models, andoutputdirectories to the new portable package- You might be able to move the
runtimedirectory over, assuming the same setup configuration is wanted
git clone https://github.com/meangrinch/MangaTranslator.git
cd MangaTranslator
python -m venv venv
# Windows PowerShell/CMD
.\venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
# Example (CUDA 13.0)
pip install torch==2.11.0+cu130 torchvision==0.26.0+cu130 --extra-index-url https://download.pytorch.org/whl/cu130
# Example (ROCm 7.1)
pip install torch==2.11.0+rocm7.1 torchvision==0.26.0+rocm7.1 --extra-index-url https://download.pytorch.org/whl/rocm7.1
# Example (XPU)
pip install torch==2.11.0+xpu torchvision==0.26.0+xpu --extra-index-url https://download.pytorch.org/whl/xpu
# Example (MPS/CPU)
pip install torch==2.11.0 torchvision==0.26.0
# Example (Windows, Python 3.13, PyTorch 2.11.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.3.0dev20260213/nunchaku-1.3.0.dev20260213+cu13.0torch2.11-cp313-cp313-win_amd64.whl
# Example (Linux, Python 3.13, PyTorch 2.11.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.3.0dev20260213/nunchaku-1.3.0.dev20260213+cu13.0torch2.11-cp313-cp313-linux_x86_64.whl
[!NOTE] Nunchaku is not necessary for the use of Flux models via the sd.cpp/SDNQ backends.
pip install -r requirements.txt
fonts/ with .otf/.ttf filesitalic/bold or both so variants are detectedfonts/
├─ CC Wild Words/
│ ├─ CCWildWords-Regular.otf
│ ├─ CCWildWords-Italic.otf
│ ├─ CCWildWords-Bold.otf
│ └─ CCWildWords-BoldItalic.otf
└─ Komika Hand/
├─ KOMIKA-HAND.ttf
└─ KOMIKA-HANDBOLD.ttf
GOOGLE_API_KEY / GEMINI_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, SPACEXAI_API_KEY / XAI_API_KEY, META_MODEL_API_KEY / META_API_KEY, DEEPSEEK_API_KEY, ZAI_API_KEY, MOONSHOT_API_KEY, MIMO_API_KEY, QWENCLOUD_API_KEY / QWEN_API_KEY, OPENCODE_API_KEY / OPENCODE_ZEN_API_KEY / OPENCODE_GO_API_KEY, OPENROUTER_API_KEY, OPENAI_COMPATIBLE_API_KEYhttp://localhost:8080/v1), and Azure OpenAI endpoints (e.g., https://<resource>.openai.azure.com)[!NOTE] The following models are automatically detected when used via the OpenAI-Compatible provider and receive optimized prompting. They are text-only and require two-step translation + local OCR. The
special_instructionsfield maps to their corresponding glossary/terminology (one entry per line, e.g.,term -> translation).
- YanoljaNEXT-Rosetta (e.g.,
yanolja/YanoljaNEXT-Rosetta-4B-2511-GGUF)- Hy-MT2 (e.g.,
tencent/Hy-MT2-7B). Also pre-fills the model's recommended sampling parameters
If you want to use the OSB text pipeline, you need a Hugging Face token with access to the following repositories:
deepghs/AnimeText_yolohf_token in ConfigHF_TOKENstart-webui.bat (Windows) or ./start-webui.sh (Linux/macOS), located in MangaTranslator/python app.py --open-browserRun python app.py --help for launch options.
First launch can take ~1–2 minutes.
Once launched, configure your LLM provider in the Config tab, then upload images and click Translate.
Examples:
# Single image, Japanese → English, Google provider, OSB text pipeline, custom OSB text font
python main.py --input <image_path> \
--font-dir "fonts/Komika Hand" --provider Google --google-api-key <...> \
--osb-enable --osb-font-dir "fonts/Comicka"
# Batch folder, Japanese → Chinese (Simplified), OpenAI-Compatible provider (llama.cpp), OSB text pipeline, custom OSB text font
python main.py --input <folder_path> --batch \
--font-dir "fonts/Noto Sans SC" --output-language "Chinese (Simplified)" \
--provider OpenAI-Compatible --openai-compatible-url http://localhost:8080/v1 \
--output ./output --osb-enable --osb-font-dir "fonts/Noto Sans SC"
# Cleaning-only mode (no translation)
python main.py --input <image_path> --cleaning-only
# Upscaling-only mode (no translation)
python main.py --input <image_path> --upscaling-only --image-upscale-mode final --image-upscale-factor 2.0
# Full options
python main.py --help
update.bat (Windows) or ./update.sh (Linux/macOS) from the portable package rootFrom the repo root:
git pull
pip install -r requirements.txt # Or activate venv first if present
Python
99.6%