跳到正文Skip to content

调试产物索引

当翻译结果异常或需要向开发者报告问题时,开启“详细日志”后,应用会在 BASE_PATH/result/ 下写入调试图片、JSON、JSX 与日志文件。本页汇总这些调试产物的完整清单、触发条件与排查用途,并反向链接到 debugging/ 下的专门页面;单个产物的深入解释不在此展开。

本索引只负责汇总与反向链接。命名规则、目录结构与“基础产物/条件产物”总览见调试目录命名与总览;各产物类别的深入说明分别见输入检测与长图重排OCR 与文本区域蒙版、修复与排版特殊工作流与 WebSocket;清理、脱敏与对外分享见如何阅读和分享一次调试运行

收录内容

  • 这里仅汇总调试产物与触发条件,不重复各 debugging/ 页面的运行机理、参数和文件格式说明。
  • 所有图片级调试产物都受 cli.verbose 总开关控制(UI:详细日志);关闭时不会生成带时间戳的图片级调试子目录。
  • 图片级调试子目录名为 {时间戳毫秒}-{图片 MD5 前 8 位}-{检测尺寸}-{目标语言}-{翻译器},由 _set_image_context() 在每张输入图开始处理时建立,位于 BASE_PATH/result/ 下。
  • 产物分为“基础产物”(verbose 正常流程最常出现)、“条件产物”(只在特定配置、检测器、工作流或模式下生成)和“目录级/回退产物”(log_*.txt 或未带图片级子目录的回退路径)三类。
  • 当前代码搜索未发现仓库内对这些调试文件名的后续读回:它们是启用 verbose 的操作者或问题报告接收者的终端诊断写入。

操作方法

在设置页开启“详细日志”的完整操作步骤见调试目录命名与总览。这里仅记录与本索引直接相关的 UI 文案:

调试产物汇总

下表按“基础产物 / 条件产物 / 目录级与回退产物”分组,列出当前源码在不同模式下可能生成的完整产物集合。同一行中的“深入页面”指向该产物的专门解释页;“生成阶段与触发条件”只记录当前代码的写入点与开关。

基础产物

以下产物在 verbose 正常流程中最常出现;是否真正生成仍取决于检测/OCR 结果与翻译进度:

产物生成阶段与触发条件内容与排查用途深入页面
input.png_translate_until_translation()verbose=True处理前的输入图;检测/OCR 问题排查输入检测与长图重排
mask_raw.png检测后,verbose=True 且检测返回 ctx.mask_raw带颜色条的原始检测置信热图;检测阈值排查输入检测与长图重排
bboxes_unfiltered.png检测后仍有文本行原图上的未过滤文本行框;检测/OCR 过滤排查输入检测与长图重排
bboxes.pngOCR 与文本行合并后存在 ctx.text_regions最终文本块可视化;合并/排序排查OCR 与文本区域
ocrs/<序号>.png各 OCR 实现,且文本区域未被前置过滤透视裁切后的 OCR 输入;垂直文本会旋转OCR 与文本区域
inpaint_input.png翻译完成后存在 ctx.mask修复输入预览蒙版、修复与排版
mask_final.png同上最终用于修复的蒙版;修复范围排查蒙版、修复与排版
inpainted.pngverbose 正常流程修复后修复后的图像;修复结果排查蒙版、修复与排版
final.png_revert_upscale() 被调用、存在 ctx.result 且 verbose最终(或还原尺寸后)的 PIL 输出蒙版、修复与排版

条件产物

以下产物只在特定配置、检测器、工作流或模式下生成,不能描述成每次 verbose 运行必有:

产物触发条件内容与排查用途深入页面
bboxes_unfiltered_labeled.pngocr.merge_special_require_full_wrap=True 且标签绘制器收到非空文本行带序号/标签的文本行框;模型辅助合并排查输入检测与长图重排
bboxes_with_scores.pngmask_binary.png检测器第三返回值为评分框/二值掩码调试元组检测评分框与配套二值掩码输入检测与长图重排
hybrid_detection_boxes.png检测器第三返回值为图像且 detector.use_yolo_obb=True主检测与 YOLO OBB 合并框图;混合检测排查输入检测与长图重排
rearrange_<序号>.png默认/DBConvNext/CTD 检测器触发长图重排计划送入检测网络前的方形补边批次;长图重排排查输入检测与长图重排
yolo_rearrange_<序号>.pnguse_yolo_obb=True 且 YOLO OBB 得到重排计划YOLO OBB 的单个重排 patch输入检测与长图重排
mask_bubble_clip_debug.pnglimit_mask_dilation_to_bubble_mask=True 且成功取得非空气泡掩码气泡、裁剪前后和保护区域的叠加图蒙版、修复与排版
balloon_fill_boxes.pnglayout_mode='balloon_fill' 且渲染器返回非空调试图气泡填充布局的渲染器调试图;排版问题排查蒙版、修复与排版
chinese_linebreak_debug.json同上且累计了非空断句记录中文断句记录;可能含原文/译文,分享前须脱敏蒙版、修复与排版
replace_debug_match.jpgdebug_extracted_text.pnginpainted.png替换翻译工作流且 verbose匹配框/重叠信息、抽取文字与替换流程修复图特殊工作流与 WebSocket
ws_final.pngws_render_in.pngws_render_out.pngws_mask.pngws_inmask.pngws_output.pngWebSocket 模式且 verboseWS 渲染各中间/最终 PNG特殊工作流与 WebSocket
<输入文件名>_photoshop_script.jsxPSD 导出且 verbose 或 script_only=TruePhotoshop 自动化脚本;可含图层文本和文件路径,分享前须脱敏特殊工作流与 WebSocket

目录级与回退产物

以下产物不在图片级子目录内,或走未带图片级子目录的回退路径:

产物触发条件内容与排查用途深入页面
log_<yyyyMMddHHmmss>.txtQt UI 启动或 CLI local 初始化日志应用根级运行日志;不属于单图调试子目录调试目录命名与总览
result/ocrs/<序号>.png直接调用 OCR 实现且环境变量未设置、verbose不带图片级子目录的 OCR 裁切回退路径OCR 与文本区域
result/rearrange_<序号>.png长图重排但未提供 result_path_fn 回调不带图片级子目录的重排回退路径输入检测与长图重排
result/yolo_rearrange_<序号>.pngYOLO OBB 重排但未提供 result_path_fn 回调不带图片级子目录的 YOLO 重排回退路径输入检测与长图重排
flowchart LR
    V["cli.verbose 开启\n(详细日志)"] --> SUB["BASE_PATH/result/ 图片级子目录"]
    SUB --> A["检测与长图重排\ninput / mask_raw / bboxes* / rearrange*"]
    SUB --> B["OCR 与文本区域\nocrs/ / bboxes.png"]
    SUB --> C["蒙版、修复与排版\ninpaint_input / mask_final / inpainted / final"]
    SUB --> D["特殊工作流\n替换翻译 / ws_* / JSX"]
    A --> P1["debugging/input-detection-and-rearrangement"]
    B --> P2["debugging/ocr-and-text-regions"]
    C --> P3["debugging/mask-inpainting-and-rendering"]
    D --> P4["debugging/special-workflows-and-websocket"]
    L["应用级 log_*.txt\n(Qt UI / CLI local)"] --> P5["debugging/folder-naming-and-overview"]

上图只描述“触发条件 -> 产物类别 -> 文档页面”的归属关系,不代表每次 verbose 运行都会生成全部产物;无文本早退、失败/取消与特殊工作流会跳过相应阶段。

触发条件速查

触发条件生成的产物深入页面
cli.verbose 开启图片级调试子目录及其中全部产物调试目录命名与总览
检测器第三返回值为评分框/二值掩码调试元组bboxes_with_scores.pngmask_binary.png输入检测与长图重排
detector.use_yolo_obb=Truehybrid_detection_boxes.pngyolo_rearrange_<序号>.png输入检测与长图重排
长宽比/检测尺寸满足重排计划(默认/DBConvNext/CTD)rearrange_<序号>.png输入检测与长图重排
ocr.merge_special_require_full_wrap=Truebboxes_unfiltered_labeled.png输入检测与长图重排
limit_mask_dilation_to_bubble_mask=True 且取得非空气泡掩码mask_bubble_clip_debug.png蒙版、修复与排版
layout_mode='balloon_fill' 且渲染器返回非空调试图balloon_fill_boxes.pngchinese_linebreak_debug.json蒙版、修复与排版
替换翻译工作流replace_debug_match.jpgdebug_extracted_text.pnginpainted.png特殊工作流与 WebSocket
WebSocket 模式ws_final.pngws_*.png特殊工作流与 WebSocket
PSD 导出(verbose 或 script_only=True<输入文件名>_photoshop_script.jsx特殊工作流与 WebSocket
Qt UI 启动 / CLI local 初始化log_<yyyyMMddHHmmss>.txt调试目录命名与总览

调试页面地图

调试页面承接的产物与主题
调试目录命名与总览子目录命名规则、result/ 目录结构、基础/条件产物总览、log_*.txt
输入检测与长图重排input.pngmask_raw.pngbboxes*hybrid_detection_boxes.pngrearrange_*yolo_rearrange_*
OCR 与文本区域ocrs/bboxes.png、OCR 裁切输入与编号行为
蒙版、修复与排版inpaint_input.pngmask_final.pnginpainted.pngmask_bubble_clip_debug.pngballoon_fill_boxes.pngchinese_linebreak_debug.jsonfinal.png
特殊工作流与 WebSocket替换翻译产物、ws_*.png<输入文件名>_photoshop_script.jsx
如何阅读和分享一次调试运行产物清理、脱敏、日志与目录的对外分享注意事项

使用说明

  • 图片级调试子目录依赖 cli.verbose、图片上下文和 result_sub_folder;三者缺一都会落到不带图片级子目录的路径(BASE_PATH/result/<产物>)。
  • BASE_PATH 在冻结打包运行与源码运行下指向不同位置(可执行文件目录 vs 仓库根目录),跨机器对照时要注意。
  • 上表是当前源码在不同模式下可能生成的完整集合,不是某次运行必然生成的全部文件;条件产物不能写成每次必有。
  • 所有调试图片、OCR 裁切图、断句 JSON、JSX 和日志都可能含用户图像、原文/译文、框坐标或本机路径;对外分享前必须脱敏,不能直接打包上传。
  • 本索引不替代各 debugging/ 页面;参数原理、文件格式与运行机理分别在对应功能页与调试页承接。

开发指南

选项中英对照

UI 调用 keyEnglish 实际值简体中文实际值
GeneralGeneral通用
label_verboseVerbose Logging详细日志
Open log folderOpen log folder打开日志文件夹

desc_cli_verbose 说明面板的完整中英文案(含“开启后会在 result/ 目录生成 …”与实际代码命名规则的差异)已逐字记录在调试目录命名与总览,这里不重复。

关联文件与格式

文件/目录格式与命名说明
BASE_PATH/result/目录verbose 调试产物根目录
BASE_PATH/result/<图片级子目录>/目录每张输入图一个;命名规则见 folder-naming 页
BASE_PATH/result/<图片级子目录>/ocrs/目录OCR 裁切输入,<序号>.png
BASE_PATH/result/log_<yyyyMMddHHmmss>.txtUTF-8 文本日志Qt UI / CLI 运行日志,应用级
图片级产物(input.pngbboxes.pngmask_raw.pnginpaint_input.pngmask_final.pnginpainted.pngfinal.png 等)PNG终端诊断写入,供人工排查
条件产物(JSON/JSX/JPG 等)见各调试页触发条件见“调试产物汇总”

代码位置

层级文件本页核对内容
路径契约manga_translator/manga_translator.py_result_path()_set_image_context()、各写入点)四分支路径、子目录命名与基础/条件产物写入点
检测与长图重排manga_translator/detection/*.pymanga_translator/utils/generic.pydet_rearrange_forward())、manga_translator/detection/yolo_obb.pybboxes*hybrid_detection_boxes.pngrearrange_*yolo_rearrange_* 触发条件
OCRmanga_translator/ocr/model_32px.pymodel_48px.pymodel_48px_ctc.pymodel_manga_ocr.pymodel_paddleocr.pymanga_translator/manga_translator.py_run_ocr()ocrs/ 子目录、编号与 200px 压缩行为
蒙版/修复/排版manga_translator/mask_refinement/__init__.pymanga_translator/manga_translator.pymask_bubble_clip_debug.pnginpaint_input.pngmask_final.pnginpainted.pngballoon_fill_boxes.pngchinese_linebreak_debug.jsonfinal.png
特殊工作流manga_translator/utils/replace_translation.pymanga_translator/mode/ws.pymanga_translator/utils/photoshop_export.py替换翻译、ws_*.png、PSD JSX 产物
应用级日志desktop_qt_ui/main.pymanga_translator/mode/local.pylog_<yyyyMMddHHmmss>.txt 生成
UI/i18ndesktop_qt_ui/ui/main_page/settings_tab_layout.jsondesktop_qt_ui/ui/main_page/dynamic_settings.pydesktop_qt_ui/locales/en_US.jsonzh_CN.jsonlabel_verbosedesc_cli_verboseOpen log folder 实际值
调查基线doc/wiki/research/phase0-debug-artifact-path-trace.mdphase0-related-files-formats-debug-safety.mdphase0-page-coverage-matrix.md产物清单、路径契约与覆盖矩阵