Skip to content

Repository files navigation

ImageTranslate AI v1.0.0

中文简体 | English

Version Python License

ImageTranslate AI 是一个本地优先的图片翻译应用:识别图片中的外语文字,翻译为中文,修复原文字背景,再将译文按原位置、尺寸和方向覆盖回图片。

产品定位

ImageTranslate AI 是“一键汉化的轻量图片翻译工作台”。它负责把单张图片或整个图片文件夹从输入推进到可直接使用的译图:检测文字、OCR、翻译、消除原文、自动嵌字、对比并导出 PNG。

本项目不提供通用文本框编辑、蒙版画笔、富文本、工程文件或其他二次编辑工具;预检中的 OCR 修正和补选仅用于保证一键流程完整。自动结果需要精修时,直接将导出的 PNG 交给专业修图或漫画汉化软件继续处理。

已实现

  • PP-OCRv6 ONNX 本地 OCR,Windows 自动优先使用 DirectML GPU
  • 默认使用轻量 Small 模型,也可切换高精度 Medium 模型
  • 本机默认使用完整版配置;内置本地模型管理,可下载、选择和删除 OCR、日语复核、遮罩、复杂背景修复与 FontCLIP 模型
  • 可选 Comic Text Detector 精确分割原文字形;可选 LaMa Manga 补画被文字遮住的复杂线稿与网点背景
  • 本地 llama.cpp / GGUF 翻译(默认,可自定义主机和端口)
  • 微软免密翻译与 Azure 官方密钥接口
  • 任意 OpenAI Chat Completions 兼容的大模型接口,内置六个常用供应商地址预设
  • 字形级文字遮罩:平坦背景直接取局部真实颜色回填,纹理背景再使用 OpenCV 小范围修复,减少块状痕迹
  • 系统 CJK 字体按语言分组、刷新与常用收藏;预装黑体、宋体、文楷与两款标题字体;按原文字高匹配字号、横排换行、中文竖排、旋转排版和对比色
  • 译文为空或与原文相同的人名、品牌、缩写等区域保留原图,不消字、不重绘
  • 1.5K39K 等独立计数不进入翻译,即使 OCR 读错也保留原图像素
  • 同图重复专名按大小写不敏感归一(如 Codex / codex),通过占位符统一保留
  • 分层保护跨领域术语:识别缩写、常用行业英文和跨文本块重复的非常用词,同时让普通英语词继续翻译
  • 可选翻译前人工预检:在原图中校对 OCR、术语、文字用途与字体,支持修改本任务全局字体和逐区域覆盖
  • 相邻文字行和段落合并排版,同类字号聚类统一,并在原文尺寸边界内只缩小
  • 原图/译图支持分割线和并列对比,单图支持 10%–500% 缩放与任意方向拖动查看;并列视图两张图共享缩放、拖动和适应状态,保持原图分辨率并导出 PNG
  • 支持选择文件、拖入图片,或粘贴本地图片路径及 HTTP/HTTPS 图片地址
  • 内置翻译历史,可查看、下载和删除近期单图任务,换图或重启应用后仍可恢复对比界面
  • 文件夹递归批量汉化,强制指定独立输出目录,保留子目录且不覆盖已有结果
  • 批量任务支持多行 HTTP/HTTPS 图片链接,自动去重、逐条处理并在单条失败时继续
  • 批量任务可先 OCR 全部图片,再统一预览排序、确认跨页术语和输出命名;可保留原文件名、使用自定义前缀 + 序号,或逐张命名
  • 批量 LLM 翻译可参考前后 1–3 页原文(只用于消歧、不作为待翻译数据),并按项目保存人工确认的术语译法供下一话复用
  • 封闭气泡和旁白框会作为译文排版空间;原文字形遮罩仍保持紧致,不会随气泡扩大
  • OCR 主流程先专精英语、日语、韩语;全页小字检测可提高检测尺寸,日语还可用 MangaOCR 自动复核或人工框选后二次识别
  • 漫画 OCR 文本按页面留白递归分栏,日语采用从右到左、从上到下的阅读顺序组织翻译上下文
  • 日语竖排与注音假名按正文关联处理,假名不再被单独翻译,竖排省略号按日文方向旋转
  • 内容与样式确认支持直接编辑 OCR 原文;可选择 PP-OCR、MangaOCR 或视觉模型,在原图拖出遗漏区域触发二次 OCR;按住 Ctrl+左键 拖框可批量选择 OCR 区域
  • 后台任务处理,识别和翻译期间界面不会卡死

图片输入与批量处理

单图除了文件选择和拖放,还可以在上传区的小输入框中粘贴图片的完整本地路径或网络图片地址,例如 https://example.com/page.png。载入图片后,可以直接把新图片拖到“更换”按钮,或打开更换弹窗后拖入“选择或拖入本地图片”区域。网络图片由本地服务下载,仍受单图大小上限约束。

主页上传区提供“批量在线图片(每行一个 URL)”输入框,也可以点击批量入口后填写。填写输入目录或粘贴多行图片链接,再填写输出目录后开始处理;本地运行时两个目录旁的“浏览…”按钮会调用系统文件夹选择器。输出目录为必填项且目录任务不能与输入目录相同。开启人工预检时,可通过缩略图前移/后移手动排序;跨页上下文与序号命名都使用该顺序。输出可保留 原文件名-translated.png,也可使用前缀 + 序号或逐张自定义名称;已有同名结果不会被覆盖。

右上角的图片图标打开“翻译历史”。单图任务完成后会自动记录原图、译图、处理状态和耗时;点击“查看”可重新进入原图/译图对比界面,也可以直接下载或删除任务。记录保存在项目的 .runtime/jobs,默认保留 24 小时,可通过 IMAGETRANSLATE_JOB_TTL_HOURS 调整。

快速启动

要求:Python 3.10–3.13(建议 3.12)。首次安装需要联网下载 Python 依赖;翻译用的 GGUF 模型与 llama.cpp 需另行准备。

Releases 选择:

  • ImageTranslate-AI-v1.0.0-basic.zip:程序与五款字体,OCR 和可选模型按需下载。
  • ImageTranslate-AI-v1.0.0-full.zip:相同程序,预置 PP-OCRv6 Tiny/Small/Medium、方向分类器、Comic Text Detector、LaMa Manga、MangaOCR INT8 与 FontCLIP。其他语言/兼容 OCR 模型仍按需下载。

完整版不捆绑本机虚拟环境。Windows 首次使用先在解压目录运行以下命令,安装 CUDA 12.8 版 PyTorch 和字体匹配依赖,再用下方启动方式打开程序:

powershell -ExecutionPolicy Bypass -File .\install-full.ps1
# 无 NVIDIA GPU 时可加 -Cpu;OCR 的 DirectML 路径仍支持 AMD/Intel。

FontCLIP 源码含非商用许可组件,使用完整版前请查看 第三方许可说明。压缩包不含用户任务、译图、术语库或 API 密钥。

Windows 直接双击:

start.bat

也可以在 PowerShell 中运行:

.\start.ps1

macOS / Linux:

chmod +x start.sh
./start.sh

应用默认打开 http://127.0.0.1:7860。启动脚本会在第一次运行时创建 .venv 并安装依赖。Windows 启动后请保留服务命令行窗口;关闭该窗口或按 Ctrl+C 即会关闭本地服务。若启动失败,窗口会保留错误信息,不会立即消失。

需要永久修改监听端口时,将 .env.example 复制为 .env,然后修改其中的 IMAGETRANSLATE_PORT.env 是本机配置且已被 Git 忽略;重新启动服务后生效。临时设置的系统环境变量优先于 .env

本地 llama.cpp 翻译

使用 llama.cppllama-server 加载任意合适的 GGUF 指令模型:

llama-server -m model.gguf --host 127.0.0.1 --port 8080

界面默认连接 http://127.0.0.1:8080/v1,可直接改为其他主机或端口,例如 http://127.0.0.1:9001/v1。模型别名留空时,应用会从 /v1/models 自动读取 llama-server 当前加载的模型;路由模式下也可以手动填写 --alias 指定的名称。

本地模型不需要严格生成 JSON。应用优先让 llama.cpp 按 [[编号]]译文 逐行返回,并兼容 JSON、Markdown 代码块、Python 风格字典、编号列表、项目符号和普通逐行文本。批量响应无法与 OCR 区域对应时,会自动逐条重试纯文本翻译。

默认启用“翻译前人工预检”。勾选后 OCR 完成即暂停,即使没有候选术语也会进入预检界面;弹窗同时显示完整原图,缩放始终从原始像素图层采样,并支持滚轮或按钮放大、缩小、1:1 原始像素显示、任意倍率自由拖动和一键适应。可在弹窗顶部修改本任务的正文、标题和拟声词全局字体;选中文字区域后,还可修正 OCR、设置用途、覆盖区域字体,或选择 PP-OCR / MangaOCR 后拖出遗漏区域二次识别。MangaOCR 仅用于日语识别;按住 Ctrl+左键 拖出矩形可批量选择框内 OCR 区域,再统一保留原文或合并。检测为日文汉字注音的独立假名小框会自动保留原图,不送往翻译或消字回嵌。保留原文会统一保护该词;自定义翻译会统一替换为指定译法;模型翻译只把当前词单独发给所选翻译服务并回填建议;删除条目则让该词回到完整句子中按上下文翻译。模型完成翻译后会再次暂停在“译文与排版校对”,可逐区域修订译文,并用手动换行固定标题等区域的最终分行;确认后才消字和回嵌。批量任务同样先覆盖全部图片的 OCR/样式确认,再逐图校对译文,确认的译法会保存到 .runtime/project-glossaries.json;关闭预检后则继续无人值守处理。

批量使用 llama.cpp 或自定义 LLM 时,可在高级设置选择前后 0–3 页上下文。相邻页原文与当前页待翻译数据在提示词中严格分开,只用于人物关系、术语和语气消歧;微软翻译不会收到跨页上下文。

在线翻译

切换到“在线接口”后可选择两类服务:

  • 微软:默认调用沉浸式翻译当前使用的 Edge 免密端点;也可切换到 Azure Translator 官方通道。Azure F0 免费层每月包含 200 万字符,需要 Translator Key,区域资源还需填写 Region。
  • 自定义 LLM:填写任意兼容 OpenAI Chat Completions 的接口地址、模型名和 API Key;可选择 OpenAI、DeepSeek、硅基流动、阿里云百炼、Google Gemini 或 OpenRouter,自动填入官方兼容接口地址。

微软 Edge 端点无需密钥,但它不是有稳定性承诺的正式开放 API,可能被服务方调整或限流。需要长期稳定批量处理时,建议切换到 Azure 官方通道或自定义 LLM。Translator Key 和大模型 API Key 仅随当前任务请求使用,不写入浏览器本地设置或服务端配置文件;非敏感的供应商、端点和 Region 会保留在浏览器设置中。

OCR 语言

本项目不包含 Tesseract。现阶段主流程专精英语、日语、韩语,OCR 使用 RapidOCR 加载 PP-OCR ONNX 模型:

  • 自动、英语、日语:PP-OCRv6 对应模型
  • 韩语:korean_PP-OCRv5_mobile_rec

模型会在第一次使用相应语言和配置时下载到项目的 .runtime/models/rapidocr,以后直接从本机加载。

高级设置中的 OCR 配置:

  • PP-OCRv6 Tiny(极速):约 7 MB,适合低配设备和批量处理。
  • PP-OCRv6 Small(推荐):模型约 31 MB,首次启动更快,适合日常图片。
  • PP-OCRv6 Medium(高精度):模型约 136 MB,适合复杂背景或小字图片,首次下载更久。

“全页小字检测”始终扫描完整图片,不会裁掉漫画正文外侧。标准、增强、强力分别把检测最小边提高到 736、1536、2048 像素;增强为默认漫画配置,强力适合页边小字较多的页面,但会增加显存和耗时。

Windows 安装包自带 ONNX Runtime DirectML。高级设置中的“自动”会在 DirectML 可用时使用 GPU,否则回退 CPU;也可以明确指定 GPU 或 CPU。为避免 RapidOCR 的方向分类器触发 DirectML 编码异常,计算量大的检测与识别固定使用 DirectML,小型方向分类器使用 CPU;OCR 引擎会跨任务复用,因此重新翻译和二次 OCR 不会重复整套加载或悄悄降为纯 CPU。NVIDIA、AMD、Intel 显卡均通过同一套 DirectML 后端运行,不需要安装 PaddlePaddle CUDA 包。

点击右上角的模型图标可进入“本地模型管理”。下载任务会显示实时字节进度;删除操作只处理 .runtime/models/rapidocr 中对应模型文件,不会影响图片或任务结果。FontCLIP 会在“匹配原文字形”时按原图视觉特征重排系统字体和预装字体候选。

同一入口也管理 Comic Text Detector(遮罩分割),文件位于 .runtime/models/rapidocr/comic_text。它使用 Apache-2.0 模型权重,未安装时自动回退到内置的局部颜色/连通域算法;建议漫画场景下载后再处理。

复杂线稿背景可额外下载 LaMa Manga(复杂背景修复)(约 197 MB,Apache-2.0)。安装后程序只对复杂背景自动调用它:GPU 上的大标题最高以 1024 px 动态分辨率修复,小文字维持 512 px;纯色气泡仍使用快速颜色填充。未安装或推理不可用时会自动回退 OpenCV 修复,不影响基本处理。

日语漫画可额外下载 MangaOCR INT8(日语复核)(约 112 MB,Apache-2.0)。它会自动复核 PP-OCR 置信度低于 0.72 的日语文字块,也可在人工预检中主动用于合并框或手动画出的区域;它是识别模型,不负责自动检测无框文字,因此漏检小字先用“全页小字检测”,仍遗漏时再框选调用。模型优先使用 CUDA/DirectML、失败后回退 CPU。

倾斜、弯曲、变形或多字号重叠的漫画 Logo 不适合普通 OCR。内容与样式确认中的“视觉模型(艺术字)”会把用户框选区域和 PP-OCR 碎片一起交给当前 llama.cpp 或自定义视觉大模型重建原文;本地 llama.cpp 必须加载支持图片输入的视觉模型及对应 mmproj。该模式只用于少量疑难区域,不会逐框增加普通任务耗时。

首次下载时任务进度会持续显示已等待时间。后续模型从本机缓存加载,不需要重复下载。

手动安装与运行

python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
python -m pip install -e .
python -m app.cli

配置

“语言与识别”中的“左键框选矩形”可指定单张或批量图片共用的 OCR 范围;画完一次自动恢复拖动图片,再点“重画”才进入框选。人工预检中点击已有 OCR 区域,可删除或选择三种引擎单独再次识别。

“译文与排版校对”支持逐行模型重译、字体和粗体等属性确认,并可退回翻译前确认后按新设置重新翻译。右上角性能面板显示 CPU/GPU 型号、利用率、内存/显存和可用的温度传感器;传感器缺失时显示“不可用”。

服务端通过项目根目录的 .env 或系统环境变量配置。首次可复制 .env.example.env;系统环境变量优先级更高。

变量 默认值 说明
IMAGETRANSLATE_HOST 127.0.0.1 监听地址(仅允许本机回环地址)
IMAGETRANSLATE_PORT 7860 监听端口
IMAGETRANSLATE_MAX_UPLOAD_MB 25 单图上限
IMAGETRANSLATE_MAX_IMAGE_MEGAPIXELS 50 解码后单图最大像素数(百万像素)
IMAGETRANSLATE_JOB_TTL_HOURS 24 临时任务保留时间
IMAGETRANSLATE_WORKERS 2 后台任务线程数

架构

app/
├── main.py                 # FastAPI 与任务接口
├── domain/models.py        # 配置、文本区域、任务状态
├── services/
│   ├── ocr.py              # PP-OCRv6 ONNX / DirectML 适配器
│   ├── translation.py      # llama.cpp / 微软 / 自定义 LLM 适配器
│   ├── compositor.py       # 背景修复与译文排版
│   ├── masking.py          # 紧致文字遮罩与纯色/纹理背景修复
│   ├── mask_model.py       # Comic Text Detector ONNX 适配器
│   ├── manga_ocr.py        # MangaOCR 低置信度日语复核
│   ├── layout.py           # 气泡边界与分栏阅读顺序
│   ├── glossary.py         # 项目级持久术语库
│   ├── pipeline.py         # 主处理流水线
│   ├── image_sources.py    # 本地路径、网络图片与目录扫描
│   ├── jobs.py             # 单图后台任务管理
│   └── batches.py          # 文件夹批处理任务管理
└── static/                 # 无构建步骤的本地 Web UI

模块之间只传递 TextRegionTranslateOptions,因此可以单独更换 OCR、翻译或图像修复实现。

验证

python -m pip install -e ".[dev]"
pytest

变更日志

v1.0.0(2026-09-03)

  • 新增:翻译前 OCR/术语预检与译文排版校对两阶段流程,支持返回、逐行重译、字体及文字样式确认。
  • 新增:全局 OCR 范围、单区域三引擎二次 OCR、区域删除/合并与明显的选中提示。
  • 新增:五款预装字体、FontCLIP 字体匹配、MangaOCR、Comic Text Detector、LaMa Manga 和实时性能面板。
  • 新增:批量网址、逐页排序与命名、跨页上下文及项目术语库;发布基础包和预置模型包。
  • 修复:DirectML 失败原因不清、白色背景消字变黑、空控件访问、框选后无法拖图,以及预检旧条目导致确认返回 409。
  • 版本:相较首版,工作流与模型集成发生较大扩展,升级主版本;本地任务、模型和设置不打入发行包。

v0.1.0

  • 新增:PP-OCR ONNX 本地识别,Windows 支持 DirectML GPU 加速与模型管理。
  • 新增:支持 llama.cpp、微软及常用 OpenAI 兼容接口,并提供翻译前术语预检。
  • 新增:完成单图与文件夹批量的一键识别、翻译、背景修复、横竖排嵌字和历史管理。
  • 优化:漫画竖排文本使用紧凑排版和粗体中文字体,字号按原文字形与可用区域自适应。

许可证

本项目使用 MIT License

About

Local-first AI image translation workbench with PP-OCR, llama.cpp and automatic text replacement

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages