Skip to content

Latest commit

 

History

History
431 lines (332 loc) · 15 KB

File metadata and controls

431 lines (332 loc) · 15 KB

工作流程说明

本文档介绍程序的 7 种工作流程和相关功能。


📋 翻译流程模式

程序提供了一个"翻译流程模式"下拉菜单,包含 8 种工作流程:


1. 正常翻译流程(默认)

用途:直接翻译图片

步骤

  1. 添加图片文件或文件夹
  2. 选择翻译器和目标语言
  3. 点击"开始翻译"
  4. 翻译完成后,结果保存在输出文件夹

2. 导出翻译

用途:翻译后导出翻译结果到 TXT 文件

步骤

  1. 选择"导出翻译"模式
  2. 勾选"图片可编辑"(自动生成 JSON 文件)
  3. 开始翻译
  4. 程序会:
    • 完整翻译图片
    • 生成 _translations.json 文件
    • 生成 _translated.txt 文件(包含翻译结果)

3. 导出原文

用途:仅检测和识别文本,导出原文到 TXT 文件,不进行翻译

步骤

  1. 选择"导出原文"模式
  2. 勾选"图片可编辑"(自动生成 JSON 文件)
  3. 点击"仅生成原文模板"
  4. 程序会:
    • 检测文本区域
    • OCR 识别原文
    • 生成 _translations.json 文件
    • 生成 _original.txt 文件(包含原文)
    • 不进行翻译,直接停止

后续手动翻译

  1. 打开 manga_translator_work/originals/图片名_original.txt 文件
  2. 将原文翻译成目标语言
  3. 直接在 _original.txt 文件中修改(或直接修改 JSON 文件的 translation 字段)

TXT 文件优先级(在"导入翻译并渲染"模式中):

  • 优先使用 _original.txt(原文文件,用于手动翻译后导入)⭐ 最高优先级
  • 如果不存在,使用 _translated.txt(翻译文件)
  • 如果都不存在,直接使用 JSON 文件中的翻译

4. 导入翻译并渲染

用途:从 TXT 或 JSON 文件导入翻译内容,重新渲染图片,不进行翻译

步骤

  1. 选择"导入翻译并渲染"模式
  2. 添加之前翻译过的图片(确保有对应的 _translations.json 文件)
  3. 点击"导入翻译并渲染"
  4. 程序会:
    • 预处理:如果存在 _translated.txt_original.txt 文件,先将 TXT 内容导入到 JSON 文件
    • 加载翻译:从 JSON 文件加载翻译内容
    • 渲染图片:使用加载的翻译内容渲染图片
    • 不进行翻译,直接渲染

TXT 文件导入优先级

  • 优先使用 _original.txt(原文文件,用于手动翻译后导入)⭐ 最高优先级
    • 位置:manga_translator_work/originals/图片名_original.txt
    • 说明:将手动翻译的内容替换此文件中的原文内容
  • 如果不存在,使用 _translated.txt(翻译文件)
    • 位置:manga_translator_work/translations/图片名_translated.txt
  • 如果都不存在,直接使用 JSON 文件中的翻译

使用场景

  • 修改了 TXT 文件中的翻译内容,需要导入并重新渲染
  • 修改了 JSON 文件中的翻译内容,需要重新渲染
  • 修改了渲染参数(字体、颜色、排版等),需要重新渲染

5. 仅上色(Colorize Only)

用途:仅对黑白图片进行上色处理,不进行文本检测和翻译

步骤

  1. 选择"仅上色"模式
  2. 在"高级设置"中配置上色参数:
    • 上色模型:选择上色器类型
    • 上色大小:设置处理尺寸
    • 降噪强度:控制降噪程度
  3. 点击"开始翻译"
  4. 程序会:
    • 跳过文本检测
    • 跳过 OCR 识别
    • 跳过翻译
    • 仅执行上色处理
    • 保存上色后的图片

使用场景

  • 为黑白漫画添加颜色
  • 单纯上色处理,不需要翻译

6. 仅超分(Upscale Only)

用途:仅对图片进行超分辨率处理,不进行文本检测和翻译

步骤

  1. 选择"仅超分"模式
  2. 在"高级设置"中配置超分参数:
    • 超分模型:选择 waifu2xrealcugan(推荐)或 mangajanai(效果最好)
    • 超分倍数:选择 2x、3x 或 4x
    • Real-CUGAN 模型:选择合适的预训练模型(如 3x-denoise3x
    • 分块大小:如果显存不足,设置分块大小(如 400)
  3. 点击"开始翻译"
  4. 程序会:
    • 跳过文本检测
    • 跳过 OCR 识别
    • 跳过翻译
    • 仅执行超分处理
    • 保存放大后的图片

使用场景

  • 单纯提高图片分辨率,不需要翻译
  • 放大低分辨率漫画图片
  • 图片降噪处理(使用 Real-CUGAN 降噪模型)

推荐配置

  • 高质量放大realcugan + 3x-denoise3x3x-denoise3x-pro
  • 最佳效果mangajanai(自动选择最佳模型)
  • 快速放大waifu2x + 2x/3x/4x
  • 显存不足:设置 tile_size=400(或更小)

7. 仅修复(Inpaint Only)

用途:仅检测文字并擦除(修复图片),不进行翻译和渲染,输出擦除文字后的干净图片

步骤

  1. 选择"仅修复"模式
  2. 在"高级设置"中配置修复参数:
    • 修复模型:选择 lama_large(推荐)或 lama_mpe
    • 修复大小:设置处理尺寸
    • 修复精度:选择 fp32fp16bf16
  3. 点击"开始修复"
  4. 程序会:
    • 检测文本区域
    • 生成文本蒙版
    • 执行图像修复(擦除文字)
    • 跳过翻译
    • 跳过渲染
    • 保存擦除文字后的干净图片

使用场景

  • 获取无文字的干净漫画图片
  • 为后续手动编辑准备素材
  • 去除图片中的文字水印
  • 配合其他工具进行二次创作

输出文件

  • 修复后的图片保存在输出文件夹
  • 文件名格式:原文件名_inpainted.png

推荐配置

  • 高质量修复lama_large + fp32bf16
  • 快速修复lama_mpe + fp16
  • 显存不足:降低"修复大小"参数

8. 替换翻译(Replace Translation)

用途:从已翻译图片提取翻译数据并应用到生肉图片,适合已有翻译图但需要重新处理的场景

前提条件

  • 需要准备生肉图和对应的翻译图
  • 生肉图和翻译图的文件名需要对应(例如:page1.jpgpage1.jpg
  • 翻译图需要放在 原图目录/manga_translator_work/translated_images/ 目录下

步骤

  1. 准备文件结构:

    原图目录/
    ├── page1.jpg                              # 生肉图
    ├── page2.jpg
    └── manga_translator_work/
        └── translated_images/                 # 翻译图文件夹
            ├── page1.jpg                      # 对应的翻译图(文件名相同)
            └── page2.jpg
    
  2. 在界面中勾选"替换翻译"选项

  3. 添加生肉图片(page1.jpgpage2.jpg 等)

  4. 点击"开始翻译"

  5. 程序会:

    • 从翻译图提取 OCR 结果(识别翻译后的文本)
    • 从生肉图提取 OCR 结果(识别原文文本)
    • 自动匹配区域(根据位置和重叠率匹配)
    • 执行蒙版优化和修复(擦除生肉图的文字)
    • 渲染翻译文本(将翻译图的文字渲染到生肉图)
    • 保存结果

匹配逻辑

  • 计算生肉框和翻译框的重叠率(以小框为基准)
  • 重叠率 ≥ 30% 时认为匹配成功
  • 支持多对一匹配(多个生肉框对应一个翻译框)
  • 未匹配的区域会在日志中显示警告

使用场景

  • 已有翻译图,但需要重新处理生肉图
  • 需要修改翻译内容但保留原有翻译结果
  • 从其他翻译工具迁移到本程序
  • 批量应用已有的翻译数据

优势

  • 无需重新翻译,节省 API 调用费用
  • 保留原有翻译质量
  • 自动保存优化后的蒙版,Qt 编辑器加载时跳过蒙版优化
  • 支持导出可编辑 PSD 文件

注意事项

  • 不支持并行处理(自动使用顺序处理)
  • 生肉图和翻译图的分辨率应该相同或相近
  • 翻译图必须放在 manga_translator_work/translated_images/ 目录下
  • 翻译图的文件名必须与生肉图相同(扩展名可以不同)
  • 如果匹配失败,检查文件名是否对应
  • 可以在日志中查看匹配详情和警告信息

📝 图片可编辑选项

作用:勾选后,程序会生成 _translations.json 文件,包含:

  • 检测到的文本区域
  • OCR 识别的原文
  • 翻译结果
  • 文本框位置信息

用途

  • 方便后续修改翻译内容
  • 可以在编辑器中打开图片进行可视化编辑
  • 可以使用"导入翻译并渲染"模式重新渲染

🤖 AI 断句功能

支持范围:支持 OpenAI、Gemini 翻译器(包括高质量模式)

作用:使用 AI 智能断句,自动优化文本换行

工作原理

  • 在翻译请求中添加 [Original regions: X] 前缀
  • 告诉 AI 原文有多少个文本区域
  • AI 根据原文区域数量智能断句
  • 不会增加 API 调用次数,只是在同一次调用中添加额外信息

启用方法

  1. 选择支持的翻译器(OpenAI、Gemini、高质量翻译 OpenAI、高质量翻译 Gemini)
  2. 在渲染设置中勾选"AI断句"
  3. 开始翻译

📚 自动提取新术语功能

支持范围:支持 OpenAI、Gemini 翻译器(包括高质量模式)

作用:自动从翻译结果中提取专有名词(人名、地名、组织名等),并添加到术语表中,确保后续翻译的一致性

工作原理

  1. 翻译阶段:AI 在翻译时识别原文中的专有名词
  2. 提取阶段:翻译完成后,AI 自动提取识别到的术语及其译法
  3. 保存阶段:提取的术语自动添加到当前使用的提示词文件的 glossary 字段中
  4. 应用阶段:后续翻译时,AI 会参考术语表,保持翻译一致性

术语分类

  • Person:人名(角色名、作者名等)
  • Location:地名(城市、国家、虚构地点等)
  • Org:组织名(公司、学校、团体等)
  • Item:物品名(道具、装备、物品等)
  • Skill:技能名(魔法、招式、能力等)
  • Creature:生物名(怪物、种族、动物等)

启用方法

  1. 选择支持的翻译器(OpenAI、Gemini、高质量翻译 OpenAI、高质量翻译 Gemini)
  2. 在"基础设置"中选择或创建自定义提示词文件
  3. 勾选"自动提取新术语"选项
  4. 开始翻译

使用场景

  • 长篇漫画连续翻译:自动积累术语表,确保角色名等专有名词前后一致
  • 系列作品翻译:在同一个提示词文件中积累术语,跨作品保持一致性
  • 团队协作:共享提示词文件,统一翻译标准

注意事项

  • 术语会自动保存到当前选择的提示词文件中
  • 建议为每个作品创建独立的提示词文件
  • 可以随时打开提示词文件手动编辑或删除术语
  • 提取的术语不会覆盖已存在的术语(相同原文会跳过)

示例流程

  1. 创建新提示词文件 dict/my_manga.yaml(也支持 .json
  2. 在界面中选择该提示词文件
  3. 勾选"自动提取新术语"
  4. 翻译第一话:AI 提取到角色名"ましろ" → "真白"
  5. 翻译第二话:AI 自动使用术语表,将"ましろ"统一翻译为"真白"
  6. 继续翻译后续章节,术语表自动积累和应用

📂 自定义导出原文模版

用途:自定义导出原文的格式,方便使用外部工具翻译

模版文件位置examples/translation_template.json

工作原理

  • 模版定义了一组文本框的格式
  • 导出时,程序会按照模版中的条目数量分组
  • 重复的是文本框部分,而不是整个 JSON 结构
  • 例如:模版有 3 个占位符对,则每 3 个文本框作为一组输出

示例模版(3 个文本框一组):

{
    "<original>": "<translated>",
    "<original>": "<translated>",
    "<original>": "<translated>"
}

导出效果示例: 假设检测到 6 个文本框,使用上述 3 个占位符的模版,导出结果如下:

{
    "你好": "Hello",
    "世界": "World",
    "欢迎": "Welcome",
    "再见": "Goodbye",
    "谢谢": "Thank you",
    "早安": "Good morning"
}

使用说明

  1. 编辑 examples/translation_template.json 文件
  2. 定义一组文本框的格式(可以是 1 个、3 个或任意数量)
  3. 使用 <original><translated> 作为占位符
  4. 导出原文时,每组文本框会重复使用这个格式
  5. 手动翻译后,使用"导入翻译并渲染"功能导入

注意事项

  • 模版中有几个占位符对,就会每几个文本框分为一组
  • 如果文本框总数不是模版条目数的整数倍,最后一组会包含剩余的所有文本框

💾 工作文件路径(自动生成)

程序会在图片所在目录创建 manga_translator_work 文件夹,包含:

  • JSON 文件manga_translator_work/json/图片名_translations.json

    • 包含文本区域、原文、翻译、位置信息
    • 替换翻译模式下包含 mask_is_refined: true 标志
  • 编辑器底图manga_translator_work/editor_base/图片名.原扩展名

    • 保存上色/超分后的底图
    • 仅供编辑器的“原图层”与 PSD 的原图层使用
    • 不替代修复图,不参与后端修复结果保存
  • 原文 TXTmanga_translator_work/originals/图片名_original.txt

    • 导出原文时生成
  • 翻译 TXTmanga_translator_work/translations/图片名_translated.txt

    • 手动翻译后保存在此
  • 修复图片manga_translator_work/inpainted/图片名_inpainted.原扩展名

    • 擦除文字后的图片
    • 用于 Qt 编辑器加载和编辑
    • 保存 JSON 会直接更新这张图,不再额外调用后端修复
    • 导入翻译并渲染 检测到该图时会直接复用,不再重复跑修复
  • 翻译结果manga_translator_work/result/图片名.png

    • 开启"输出到原图目录"功能时,翻译完成的图片输出到此目录
    • 编辑器“导出图片”会直接使用当前修复图渲染,不再重复执行上色/超分
  • PSD 文件manga_translator_work/psd/图片名.psd

    • 开启"导出可编辑 PSD"功能时,导出的分层 PSD 文件
    • 包含原图层、修复图层、可编辑文本图层
    • 原图层优先使用 editor_base/ 底图,修复图层优先使用当前会话修复图
  • PSD 脚本manga_translator_work/psd/图片名_photoshop_script.jsx

    • 开启"仅生成 PSD 脚本"功能时生成
    • 不会自动启动 Photoshop,也不会直接生成 PSD
  • 翻译图片manga_translator_work/translated_images/图片名.jpg

    • 替换翻译模式使用:存放已翻译的图片
    • 程序会从这些图片中提取翻译数据

目录说明

  • json/:存储翻译数据的 JSON 文件
  • editor_base/:存储编辑器专用的上色/超分底图
  • originals/:存储导出的原文 TXT 文件
  • translations/:存储翻译后的 TXT 文件
  • inpainted/:存储修复后的图片(擦除文字)
  • result/:存储最终翻译结果图片
  • psd/:存储可编辑的 PSD 文件
  • translated_images/:存储已翻译的图片(替换翻译模式使用)