0
stars
647
commits
Python
primary language
Apr 16, 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 59 languages and custom font pack usage.
| Original | Translated (w/ a single click) |
|---|---|
![]() | ![]() |
output/run1, output/run2, etc., preserving original image names.ttf/.otf files; included with portable packageDownload the standalone zip from the releases page: Portable Build
Requirements:
Setup:
setup.bat./setup.sh in terminal./MangaTranslator/:
start-webui.batstart-webui.shIncluded font packs:
[!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.10.0+cu130 torchvision==0.25.0+cu130 --extra-index-url https://download.pytorch.org/whl/cu130
# Example (ROCm 7.1)
pip install torch==2.10.0+rocm7.1 torchvision==0.25.0+rocm7.1 --extra-index-url https://download.pytorch.org/whl/rocm7.1
# Example (XPU)
pip install torch==2.10.0+xpu torchvision==0.25.0+xpu --extra-index-url https://download.pytorch.org/whl/xpu
# Example (MPS/CPU)
pip install torch==2.10.0 torchvision==0.25.0
# Example (Windows, Python 3.13, PyTorch 2.10.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.2.1/nunchaku-1.2.1+cu13.0torch2.10-cp313-cp313-win_amd64.whl
[!NOTE] Nunchaku is not necessary for the use of Flux models via the SDNQ backend.
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/
├─ KOMIKA-HAND.ttf
└─ KOMIKA-HANDBOLD.ttf
GOOGLE_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, ZAI_API_KEY, MOONSHOT_API_KEY, OPENROUTER_API_KEY, OPENAI_COMPATIBLE_API_KEYhttp://localhost:1234/v1[!NOTE] YanoljaNEXT-Rosetta models (e.g.,
yanolja/YanoljaNEXT-Rosetta-4B-2511-GGUF) are automatically detected when used via the OpenAI-Compatible provider and receive optimized prompting. These are text-only models and require two-step + local OCR model. The Special Instructions field is mapped to Rosetta's translation glossary (one entry per line, e.g.,Yanolja NEXT -> 야놀자넥스트).
If you want to use the OSB text pipeline, you need a Hugging Face token with access to the following repositories:
deepghs/AnimeText_yoloblack-forest-labs/FLUX.1-Kontext-dev (only required if using Flux.1 Kontext with Nunchaku backend)hf_token in ConfigHUGGINGFACE_TOKENstart-webui.bat inside the MangaTranslator folder./start-webui.sh inside the MangaTranslator folderpython app.py --open-browserOptions: --models (default ./models), --fonts (default ./fonts), --port (default 7676), --cpu.
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
python main.py --input <image_path> \
--font-dir "fonts/Komika" --provider Google --google-api-key <AI...>
# Batch folder, custom source/target languages, OpenAI-Compatible provider (LM Studio)
python main.py --input <folder_path> --batch \
--font-dir "fonts/Komika" \
--input-language <src_lang> --output-language <tgt_lang> \
--provider OpenAI-Compatible --openai-compatible-url http://localhost:1234/v1
# Folder batch without --output auto-creates output/runN and keeps original filenames
python main.py --input <folder_path> --batch
# Single Image, Japanese → English (Google), OSB text pipeline, custom OSB text font
python main.py --input <image_path> \
--font-dir "fonts/Komika" --provider Google --google-api-key <AI...> \
--osb-enable --osb-font-dir "fonts/Clementine"
# Cleaning-only mode (no translation/text rendering)
python main.py --input <image_path> --cleaning-only
# Upscaling-only mode (no detection/translation, only upscale)
python main.py --input <image_path> --upscaling-only --image-upscale-mode final --image-upscale-factor 2.0
# Test mode (no translation; render placeholder text)
python main.py --input <image_path> --test-mode
# Full options
python main.py --help
update.bat from the portable package root./update.sh from the portable package rootFrom the repo root:
git pull
pip install -r requirements.txt # Or activate venv first if present
Python
97.2%
Shell
2.2%
0
stars
647
commits
Python
primary language
Apr 16, 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 59 languages and custom font pack usage.
| Original | Translated (w/ a single click) |
|---|---|
![]() | ![]() |
output/run1, output/run2, etc., preserving original image names.ttf/.otf files; included with portable packageDownload the standalone zip from the releases page: Portable Build
Requirements:
Setup:
setup.bat./setup.sh in terminal./MangaTranslator/:
start-webui.batstart-webui.shIncluded font packs:
[!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.10.0+cu130 torchvision==0.25.0+cu130 --extra-index-url https://download.pytorch.org/whl/cu130
# Example (ROCm 7.1)
pip install torch==2.10.0+rocm7.1 torchvision==0.25.0+rocm7.1 --extra-index-url https://download.pytorch.org/whl/rocm7.1
# Example (XPU)
pip install torch==2.10.0+xpu torchvision==0.25.0+xpu --extra-index-url https://download.pytorch.org/whl/xpu
# Example (MPS/CPU)
pip install torch==2.10.0 torchvision==0.25.0
# Example (Windows, Python 3.13, PyTorch 2.10.0, CUDA 13.0)
pip install https://github.com/nunchaku-ai/nunchaku/releases/download/v1.2.1/nunchaku-1.2.1+cu13.0torch2.10-cp313-cp313-win_amd64.whl
[!NOTE] Nunchaku is not necessary for the use of Flux models via the SDNQ backend.
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/
├─ KOMIKA-HAND.ttf
└─ KOMIKA-HANDBOLD.ttf
GOOGLE_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, ZAI_API_KEY, MOONSHOT_API_KEY, OPENROUTER_API_KEY, OPENAI_COMPATIBLE_API_KEYhttp://localhost:1234/v1[!NOTE] YanoljaNEXT-Rosetta models (e.g.,
yanolja/YanoljaNEXT-Rosetta-4B-2511-GGUF) are automatically detected when used via the OpenAI-Compatible provider and receive optimized prompting. These are text-only models and require two-step + local OCR model. The Special Instructions field is mapped to Rosetta's translation glossary (one entry per line, e.g.,Yanolja NEXT -> 야놀자넥스트).
If you want to use the OSB text pipeline, you need a Hugging Face token with access to the following repositories:
deepghs/AnimeText_yoloblack-forest-labs/FLUX.1-Kontext-dev (only required if using Flux.1 Kontext with Nunchaku backend)hf_token in ConfigHUGGINGFACE_TOKENstart-webui.bat inside the MangaTranslator folder./start-webui.sh inside the MangaTranslator folderpython app.py --open-browserOptions: --models (default ./models), --fonts (default ./fonts), --port (default 7676), --cpu.
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
python main.py --input <image_path> \
--font-dir "fonts/Komika" --provider Google --google-api-key <AI...>
# Batch folder, custom source/target languages, OpenAI-Compatible provider (LM Studio)
python main.py --input <folder_path> --batch \
--font-dir "fonts/Komika" \
--input-language <src_lang> --output-language <tgt_lang> \
--provider OpenAI-Compatible --openai-compatible-url http://localhost:1234/v1
# Folder batch without --output auto-creates output/runN and keeps original filenames
python main.py --input <folder_path> --batch
# Single Image, Japanese → English (Google), OSB text pipeline, custom OSB text font
python main.py --input <image_path> \
--font-dir "fonts/Komika" --provider Google --google-api-key <AI...> \
--osb-enable --osb-font-dir "fonts/Clementine"
# Cleaning-only mode (no translation/text rendering)
python main.py --input <image_path> --cleaning-only
# Upscaling-only mode (no detection/translation, only upscale)
python main.py --input <image_path> --upscaling-only --image-upscale-mode final --image-upscale-factor 2.0
# Test mode (no translation; render placeholder text)
python main.py --input <image_path> --test-mode
# Full options
python main.py --help
update.bat from the portable package root./update.sh from the portable package rootFrom the repo root:
git pull
pip install -r requirements.txt # Or activate venv first if present
Python
97.2%
Shell
2.2%