跳到正文Skip to content

工作流矩阵

本页是翻译页“翻译流程模式:”九种工作流的参考索引:用一张矩阵汇总每种工作流的输入、跳过阶段和输出,并反向链接到对应页面。需要某种工作流的完整操作、参数边界、文件格式和跳过条件时,从矩阵行进入对应的工作流页面;九种模式的选择、开始按钮文案、输出目录控件和互斥写入见输出目录与工作流,添加文件与列表状态见文件列表与输入,模式对参数的强制覆盖见模式专用工作流与模板对齐

这里仅负责汇总和反向链接,不替代各工作流页面与设置页面;检测、OCR、翻译、蒙版、修复、排版、超分与上色的参数算法见对应设置页,不在本页重复。

选择器与工作流字段

索引English简体中文开始按钮(English / 简体中文)
0Normal Translation正常翻译流程Start Translation / 开始翻译
1Export Translation导出翻译Export Translation / 导出翻译
2Export Original Text导出原文Generate Original Text Template / 仅生成原文模板
3Translate JSON Only仅翻译(JSON)Start JSON Translation / 开始仅翻译(JSON)
4Import Translation and Render导入翻译并渲染Import Translation and Render / 导入翻译并渲染
5Colorize Only仅上色Start Colorizing / 开始上色
6Upscale Only仅超分Start Upscaling / 开始超分
7Inpaint Only仅修复Start Inpainting / 开始修复
8Replace Translation替换翻译Start Replace Translation / 开始替换翻译

工作流汇总矩阵

下表汇总九种工作流的输入、跳过阶段和输出。“条件执行”表示阶段由常规参数决定(例如 colorizer.colorizer != noneupscale.upscale_ratio 为真或检测到了文本),不是工作流强制开启;“跳过阶段”只列该工作流路径不调用或明确跳过的部分。详细发现规则、文件命名和跳过条件见矩阵行链接的工作流页面。

工作流输入与前置跳过阶段输出详细页面
正常翻译主输入图片;无工作流副文件前置无强制跳过;检测无文本行或 OCR 无文本时提前返回主输出图;save_text=true 时写工程 JSON,修复完成时还写修复图;启用上色或超分时写编辑器底图正常翻译流程
导出翻译主输入图片与可读取的导出模板修复、渲染、主输出图保存工程 JSON 与 translations/<stem>_translated.<模板格式>导出翻译
导出原文主输入图片与可读取的导出模板翻译、修复、渲染、主输出图保存工程 JSON 与 originals/<stem>_original.<模板格式>导出原文
仅翻译(JSON)主输入图片必须能找到工程 JSON上色、超分、检测、OCR、合并、蒙版、修复、渲染回写工程 JSON;成功后删除同图原文副文件;不写主输出图仅翻译(JSON)
导入翻译并渲染主输入图片必须有工程 JSON;开始前优先原文副文件,否则用译文副文件上色、超分、检测、OCR、翻译、文本行合并(JSON 无蒙版且导入 YOLO 标签时检测除外)主输出图与更新后的工程 JSON;重新修复时写修复图导入翻译并渲染
仅上色主输入图片;是否上色由 colorizer.colorizer 决定超分、检测、OCR、合并、翻译、蒙版、修复、渲染主输出图;上色器有效时写编辑器底图仅上色
仅超分主输入图片;实际倍率来自 upscale.upscale_ratio检测、OCR、合并、翻译、蒙版、修复、渲染主输出图;启用上色或倍率时写编辑器底图仅超分
仅修复主输入图片OCR、翻译、渲染主输出图;该分支清空 text_regions,不以翻译文本渲染仅修复
替换翻译主输入为生肉图;同图工作目录 translated_images/ 下必须有同名翻译图翻译服务调用主输出图;非直接粘贴且 save_text=true 时另写修复图和工程 JSON,直接粘贴时不写二者也不导出 PSD替换翻译

互斥、并发与参数边界

  • GUI 切换保证八个工作流布尔字段互斥,但不校验手工 JSON、服务请求或其他入口提供的组合。sync_workflow_mode_from_config() 读取已有组合时的显示优先级为:替换翻译、仅修复、仅超分、仅上色、导入翻译、仅翻译 JSON、导出原文、导出翻译、正常。translate_batch() 的入口先执行 load_text 的 TXT 预导入,再按 replace_translationload_texttranslate_json_only → 常规预处理(colorize_onlyupscale_only/inpaint_only 更早返回)→ 导出原文 → 导出翻译的顺序分派;手工叠加模式没有“同时执行”的契约。
  • batch_concurrent 仅正常翻译可进入并发管线;其余八种模式在桌面控制层和核心 translate_batch() 中都被视为不兼容,前端会把本次局部变量改为非并发,核心分支也只在“无不兼容模式”时构建 ConcurrentPipeline
  • render.enable_template_alignment(“启用直接粘贴模式”)是替换翻译专用:开启时走直接粘贴,不写 JSON、修复图或 PSD;关闭时以 OCR 得到的配对区域重新渲染。
页面与本页的关系
输出目录与工作流九种模式的选择操作、按钮文案、输出目录控件与互斥写入的总览入口
文件列表与输入所有工作流共用的主输入发现规则(递归、自然排序、跳过 manga_translator_work
进度、停止与任务状态所有工作流共用的开始、停止、取消与进度状态
模式专用工作流与模板对齐替换翻译等模式的强制参数覆盖与模板对齐
CLI 批量与输出batch_size/batch_concurrent 与输出格式,并发只对正常模式开放
超分与上色条件上色/超分的前置参数(上色器、倍率)

九个工作流页面的反向链接位于矩阵“详细页面”列;各工作流页面之间还互相链接(例如模板/JSON 家族与旁路工作流)。

开发指南

选项中英对照

“翻译流程模式:”下拉框按索引建立,索引同时是 on_workflow_mode_changed() 写入配置的映射依据。切换模式时,GUI 先把八个互斥的 cli 工作流字段全部清为 false,再只设置所选模式对应的字段并保存配置,因此 GUI 的一次选择是互斥的;“导出原文”另外依赖 cli.save_text,见互斥、并发与参数边界

索引English简体中文存储值开始按钮(English / 简体中文)
0Normal Translation正常翻译流程八个工作流字段均为 falseStart Translation / 开始翻译
1Export Translation导出翻译generate_and_export=trueExport Translation / 导出翻译
2Export Original Text导出原文template=trueGenerate Original Text Template / 仅生成原文模板
3Translate JSON Only仅翻译(JSON)translate_json_only=trueStart JSON Translation / 开始仅翻译(JSON)
4Import Translation and Render导入翻译并渲染load_text=trueImport Translation and Render / 导入翻译并渲染
5Colorize Only仅上色colorize_only=trueStart Colorizing / 开始上色
6Upscale Only仅超分upscale_only=trueStart Upscaling / 开始超分
7Inpaint Only仅修复inpaint_only=trueStart Inpainting / 开始修复
8Replace Translation替换翻译replace_translation=trueStart Replace Translation / 开始替换翻译

九个模式的调用 key 与 English 实际值相同(都是运行时代码传给 _t() 的字符串,不是 label_* 设置项 key);简体中文列核对自 desktop_qt_ui/locales/zh_CN.json。下拉框没有独立 userData,索引就是模式值。

跨模式参数对工作流分支的边界如下表:

参数生效/被忽略的边界
cli.save_textGUI/发行默认值为 true;是“导出原文”进入导出分支的必要条件,还控制普通工作流的 JSON、修复图和编辑器工程写入;仅翻译 JSON 自己无条件回写 JSON
colorizer.colorizer不是“仅上色”的强制值;正常、仅超分、仅修复和替换翻译也会在其不为 none 时先上色
upscale.upscale_ratio不是“仅超分”的强制值;为空时仅超分原样通过(或保留前置上色结果);正常、仅修复和替换翻译也会在其为真时先超分
detector.import_yolo_labels导出原文/导出翻译跳过蒙版细化和蒙版保存;导入翻译且 JSON 无蒙版时触发检测补蒙版
render.paste_mask_dilation_pixels只消费在替换翻译的直接粘贴分支,膨胀粘贴蒙版
cli.overwriteGUI 开始前按工作流检查既有副文件或主输出图:导出原文/翻译检查对应 TXT,仅翻译 JSON 检查原文副文件,其他模式检查主输出图

仅翻译 JSON 的“原文副文件不存在则跳过”条件方向与通常覆盖检查不同,需在实际环境中确认;九种模式的真实 GUI 弹窗、取消后文件保留和错误提示也以研究资料的未验证清单为准。

关联文件与格式

每图工作目录与文件命名

除主输出图外,各工作流的副文件都以输入图片的原始路径和不含扩展名的 <stem> 为基准定位到每图工作目录;JSON 查找先用新位置,再回退旧的图片同级位置。模板导出/导入的副文件扩展名取 config/translation_template.json 首个 output_format: 行,合法值为安全的 1–32 字符扩展名;缺失或非法时回退 json

资源新位置 / 文件名兼容或优先级
译文工程 JSONmanga_translator_work/json/<stem>_translations.json回退 <图片目录>/<stem>_translations.json
原文导出manga_translator_work/originals/<stem>_original.<模板格式>模板未指定或不可读时格式为 json
译文导出manga_translator_work/translations/<stem>_translated.<模板格式>同上
修复图manga_translator_work/inpainted/<stem>_inpainted.<原扩展名>无其他查找位置
上色/超分编辑器底图manga_translator_work/editor_base/<原文件名>兼容旧工作目录根部的同名底图
替换翻译配对图manga_translator_work/translated_images/<stem><扩展名>先同扩展名,后遍历 SUPPORTED_IMAGE_EXTENSIONS

主输出图由 MangaTranslator._calculate_output_path() 决定:正常输出目录保留输入文件夹名与相对层级;save_to_source_dir=true 时改为原图同级 manga_translator_work/result/cli.format 为空或 none 时保留原扩展名,否则使用给定扩展名。

代码位置

层级文件本页核对内容
UI 布局desktop_qt_ui/ui/main_page/pages/translation_page.py:27翻译页、工作流下拉、开始按钮及事件连接
工作流状态与写入desktop_qt_ui/ui/main_page/runtime.py:21,151-238九个索引、提示、互斥字段写入、配置同步优先级和按钮文本
i18ndesktop_qt_ui/locales/en_US.json:488; desktop_qt_ui/locales/zh_CN.json:486工作流、开始按钮、提示与设置实际值
输入与发现desktop_qt_ui/services/file_service.py:31主输入扩展名验证、递归发现、自然排序和工作目录排除
控制层desktop_qt_ui/app_logic.py:3094主输出路径传递、覆盖前检查和特殊模式并发禁用
Qt 配置desktop_qt_ui/core/config_models.py:123工作流字段与 save_text 默认值
核心分派manga_translator/manga_translator.py:504,3399,4236,5206主输出、JSON 写入、模板导出、TXT 导入和九种运行时分派
路径/模板manga_translator/utils/path_manager.py:12; manga_translator/utils/translation_template.py:10每图工作目录、副文件发现和 output_format 回退
替换翻译manga_translator/utils/replace_translation.py:128,726双图处理、配对、直接粘贴和输出边界
研究资料doc/wiki/research/workflow-matrix-source-evidence.md九个工作流的输入、阶段、输出与未验证清单