基于manga-image-translator 实现的开源漫画AI翻译桌面工具。支持日、韩、英文漫画自动处理,集成OpenAl、Gemini等多翻译引擎;实现OCR文字检测、原文擦除、AI翻译、图像修复、译文排版完整链路,自带可视化编辑器,支持自定义文本样式,一键部署开箱即用。
This report summarizes scanner evidence for hgmzhn/manga-translator-ui, a Python project with 2,981 GitHub stars. SynthScan examined 288,989 lines of code across 972 source files, recording 4652 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 21.8 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2262 finding(s).
Are imports declared and package/API names verified? 424 finding(s).
Are wrappers, guards, and repeated structures necessary? 3688 finding(s).
Which changes need focused human review? 4652 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 4652 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/launch.py | 106 | def is_official_pytorch_index_url(url): | CODE |
| LOW | packaging/launch.py | 130 | def get_pytorch_index_candidates(primary_index_url): | CODE |
| LOW | packaging/launch.py | 472 | def is_pytorch_source_package(pkg_name): | CODE |
| LOW | packaging/launch.py | 504 | def run_pip_packages_fallback(packages, primary_index_url, desc=None): | CODE |
| LOW | packaging/launch.py | 662 | def ensure_git_safe_directory(): | CODE |
| LOW | packaging/launch.py | 816 | def check_nvidia_cuda_version(): | CODE |
| LOW | packaging/launch.py | 1194 | def print_supported_amd_gpu_types(): | CODE |
| LOW | packaging/launch.py | 1205 | def choose_when_amd_unsupported(): | CODE |
| LOW | packaging/launch.py | 1234 | def detect_installed_pytorch_version(): | CODE |
| LOW | packaging/launch.py | 1305 | def get_requirements_file_from_env(): | CODE |
| LOW | packaging/launch.py | 1340 | def repair_broken_pytorch_runtime(pytorch_type, detail, *, allow_reinstall=True): | CODE |
| LOW | packaging/launch.py | 1397 | def detect_nvidia_compute_capability(gpu_name=None): | CODE |
| LOW | packaging/launch.py | 1457 | def select_nvidia_dependency_variant(cuda_major, compute_capability=None, gpu_name=None): | CODE |
| LOW | packaging/launch.py | 1475 | def ensure_pytorch_runtime_ready(): | CODE |
| LOW | packaging/launch.py | 2317 | def git_fetch_with_mirror_prompt(fetch_args=None, desc=None): | CODE |
| LOW | packaging/launch.py | 2648 | def update_dependencies_selective(args, missing_packages): | CODE |
| LOW | packaging/launch.py | 2941 | def update_runtime_dependencies(args, req_file, missing_packages, *, full_sync=False): | CODE |
| LOW | packaging/launch.py | 2980 | def cleanup_runtime_dependencies(req_file): | CODE |
| LOW | packaging/launch.py | 1292 | def dependency_variant_from_pytorch(pytorch_type, detail): | STRING |
| LOW⚡ | packaging/build_utils/package_checker.py | 191 | def get_missing_packages_from_file(requirements_file: str) -> List[str]: | CODE |
| LOW | test/test_export_rotated_rich_text_alignment.py | 69 | def test_export_without_saved_center_uses_editor_white_frame_anchor(): | CODE |
| LOW | test/test_combo_popup_lifetime.py | 11 | def test_stop_popup_animation_tolerates_deleted_qt_animation(): | CODE |
| LOW | test/editor_region_regressions.py | 15 | def test_async_region_update_uses_region_id_on_main_thread() -> None: | CODE |
| LOW | test/editor_region_regressions.py | 72 | def test_legacy_white_frame_is_normalized_to_render_box() -> None: | CODE |
| LOW | test/test_upscaler_temp_cleanup.py | 19 | def test_upscaler_removes_temp_directories_when_process_fails( | CODE |
| LOW | test/test_concurrent_pipeline_progress.py | 17 | def set_cancel_check_callback(self, callback): | CODE |
| LOW | test/test_concurrent_pipeline_progress.py | 24 | def test_concurrent_pipeline_reports_render_progress(): | CODE |
| LOW | test/test_mask_refinement_split.py | 24 | def test_textline_straddling_rearrange_seam_is_assigned_to_both_stripes(): | CODE |
| LOW | test/test_mask_refinement_split.py | 40 | def test_seam_textline_is_reconstructed_from_an_uncut_context_crop(monkeypatch): | CODE |
| LOW | test/test_api_slot_reorder.py | 12 | def test_api_slot_reorder_moves_complete_credentials_as_one_unit() -> None: | CODE |
| LOW | test/test_api_slot_reorder.py | 49 | def test_api_slot_reorder_preserves_empty_fields() -> None: | CODE |
| LOW | test/test_api_slot_reorder.py | 71 | def test_api_slot_drop_target_respects_before_and_after_positions() -> None: | CODE |
| LOW | test/test_api_slot_reorder.py | 79 | def test_api_slot_reorder_persists_one_batch_and_refreshes_page() -> None: | CODE |
| LOW | test/test_api_slot_reorder.py | 120 | def _refresh_api_feature_selectors(self): | CODE |
| LOW | test/test_api_slot_reorder.py | 138 | def test_flush_all_pending_env_vars_saves_visible_values_before_refresh() -> None: | CODE |
| LOW | test/test_editor_display_identity.py | 22 | def test_graphics_layers_reject_a_late_payload_from_the_previous_document(): | CODE |
| LOW | test/test_editor_display_identity.py | 37 | def test_queued_clear_cannot_erase_a_newly_installed_document(): | CODE |
| LOW | test/test_editor_export_executor.py | 65 | def test_serial_executor_keeps_only_latest_pending_auto_export(): | CODE |
| LOW | test/test_editor_export_executor.py | 100 | def test_different_images_run_fifo_with_single_concurrency(): | CODE |
| LOW | test/test_editor_export_executor.py | 139 | def test_failed_job_does_not_block_the_next_export(): | CODE |
| LOW | test/test_editor_export_executor.py | 167 | def test_shutdown_drains_all_accepted_exports(): | CODE |
| LOW | test/test_editor_export_executor.py | 213 | def test_backend_inpaint_failure_does_not_write_output(monkeypatch, tmp_path): | CODE |
| LOW | test/test_editor_export_executor.py | 239 | def test_ai_renderer_cannot_bypass_required_backend_inpaint(monkeypatch, tmp_path): | CODE |
| LOW | test/test_editor_export_executor.py | 269 | def test_backend_inpaint_success_persists_and_returns_generated_artifact( | CODE |
| LOW | test/test_editor_export_executor.py | 313 | def test_export_job_wraps_generated_image_with_snapshot_identity( | CODE |
| LOW | test/test_app_version.py | 6 | def test_get_app_version_reads_only_packaging_version(monkeypatch): | CODE |
| LOW | test/test_code_scanning_security.py | 29 | def test_remote_image_urls_are_rejected_without_fetching(): | CODE |
| LOW | test/test_code_scanning_security.py | 38 | def test_data_uri_and_shared_json_image_round_trip(): | CODE |
| LOW | test/test_code_scanning_security.py | 60 | def test_api_key_status_fingerprint_is_keyed_and_stable(): | CODE |
| LOW | test/test_code_scanning_security.py | 69 | def test_resolve_path_within_rejects_traversal(): | CODE |
| LOW | test/test_code_scanning_security.py | 82 | def test_hq_regex_fallback_handles_escaped_quotes(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 52 | def get_committed_inpaint_artifact(self): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 55 | def get_ready_inpaint_artifact(self): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 92 | def test_inpaint_key_rejects_stale_document_and_mask_results(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 109 | def test_region_change_does_not_reject_same_inpaint_key(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 137 | def test_session_identity_changes_only_for_document_or_effective_mask(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 165 | def test_ready_artifact_is_rejected_after_document_or_mask_change(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 178 | def test_undo_to_committed_mask_rekeys_and_reuses_its_artifact(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 199 | def test_repair_request_reprocesses_pixels_already_in_committed_mask(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 230 | def test_mask_brush_submits_repair_when_binary_mask_is_unchanged(): | CODE |
| 1587 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packaging/launch.py | 499 | except Exception: | CODE |
| HIGH | packaging/launch.py | 671 | except Exception: | CODE |
| HIGH | packaging/launch.py | 1097 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2180 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2202 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2684 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2065 | except: | CODE |
| HIGH | packaging/launch.py | 2198 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2325 | except Exception: | CODE |
| HIGH | packaging/launch.py | 837 | except: | CODE |
| HIGH | packaging/launch.py | 949 | except ValueError: | CODE |
| HIGH | packaging/launch.py | 963 | except Exception: | CODE |
| HIGH | packaging/launch.py | 971 | except Exception: | CODE |
| HIGH | packaging/launch.py | 979 | except Exception: | CODE |
| HIGH | packaging/launch.py | 987 | except Exception: | CODE |
| HIGH | packaging/launch.py | 1074 | except: | CODE |
| HIGH | packaging/launch.py | 1702 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2598 | except Exception: | CODE |
| HIGH | packaging/launch.py | 2697 | except Exception: | CODE |
| HIGH | packaging/launch.py | 1012 | except (ImportError, Exception): | CODE |
| HIGH | packaging/launch.py | 1066 | except Exception: | CODE |
| HIGH | packaging/launch.py | 1082 | except: | CODE |
| HIGH | packaging/launch.py | 1059 | except Exception: | CODE |
| HIGH | test/test_code_scanning_security.py | 76 | except ValueError: | CODE |
| HIGH | test/chinese_linebreak_debug_ui.py | 986 | except Exception: | CODE |
| HIGH | test/_bootstrap.py | 37 | except ImportError: | CODE |
| HIGH | manga_translator/manga_translator.py | 406 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 2413 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 676 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 2226 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 3232 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 1785 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 1793 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 2295 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 2371 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 2390 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 1632 | except (ValueError, TypeError): | CODE |
| HIGH | manga_translator/manga_translator.py | 4209 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 4308 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 4377 | except Exception: | CODE |
| HIGH | manga_translator/manga_translator.py | 4405 | except Exception: | CODE |
| HIGH | manga_translator/api_key_rotation.py | 214 | except (TypeError, ValueError): | CODE |
| HIGH | manga_translator/api_key_rotation.py | 220 | except (TypeError, ValueError): | CODE |
| HIGH | manga_translator/__main__.py | 29 | except ImportError: | CODE |
| HIGH | manga_translator/translators/gemini_hq.py | 209 | except Exception: | CODE |
| HIGH | manga_translator/translators/gemini.py | 181 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai_hq.py | 173 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai_hq.py | 253 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai_hq.py | 275 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai.py | 142 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai.py | 222 | except Exception: | CODE |
| HIGH | manga_translator/translators/openai.py | 244 | except Exception: | CODE |
| HIGH | manga_translator/translators/common.py | 1029 | except Exception: | CODE |
| HIGH | manga_translator/translators/common.py | 2538 | except Exception: | CODE |
| HIGH | manga_translator/translators/common.py | 2651 | except Exception: | CODE |
| HIGH | manga_translator/mode/ws.py | 49 | except Exception: | CODE |
| HIGH | manga_translator/mode/ws.py | 243 | except Exception: | CODE |
| HIGH | manga_translator/ocr/paddleocr_vl_patcher.py | 224 | except Exception: | CODE |
| HIGH | manga_translator/ocr/model_manga_ocr.py | 106 | except ImportError: | CODE |
| HIGH | manga_translator/ocr/common.py | 150 | except Exception: | CODE |
| 195 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packaging/launch.py | 154 | # ============================================================ | COMMENT |
| MEDIUM | packaging/launch.py | 157 | # ============================================================ | COMMENT |
| MEDIUM | packaging/launch.py | 2152 | # ============================================================ | STRING |
| MEDIUM | packaging/launch.py | 2154 | # ============================================================ | STRING |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 401 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 403 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 546 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 548 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 556 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 558 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | test/test_rich_text_rendering.py | 1679 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | test/test_rich_text_rendering.py | 1681 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 221 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 223 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 543 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 545 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 340 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 342 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/core/config_manager.py | 383 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/core/config_manager.py | 385 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 437 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 439 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 109 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 111 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 465 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 467 | # ======================================================================== | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 254 | # ======================================================================== | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 256 | # ======================================================================== | COMMENT |
| MEDIUM | manga_translator/server/core/cleanup_service.py | 222 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/cleanup_service.py | 224 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/task_manager.py | 277 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/task_manager.py | 279 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/files.py | 32 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/files.py | 34 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/files.py | 83 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/files.py | 85 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 26 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 28 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 68 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 70 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 584 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 586 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 804 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 806 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 986 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 988 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 198 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 200 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 875 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 877 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 1004 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 1006 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/audit.py | 24 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/audit.py | 26 | # ============================================================================ | COMMENT |
| 345 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packaging/build_packages.py | 41 | except Exception as e: | CODE |
| MEDIUM⚡ | packaging/build_packages.py | 44 | print(f"Error executing command: {e}") | CODE |
| MEDIUM⚡ | packaging/build_packages.py | 46 | print(f"Error executing command (ascii representation): {repr(e)}") | CODE |
| MEDIUM | packaging/build_packages.py | 108 | print(f"Error: Spec file '{spec_file}' not found.") | CODE |
| MEDIUM | packaging/launch.py | 2164 | def load_maint_config(): | CODE |
| MEDIUM | packaging/launch.py | 2173 | def save_maint_config(**updates): | CODE |
| LOW⚡ | packaging/launch.py | 963 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 971 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 979 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 987 | except Exception: | CODE |
| LOW | packaging/launch.py | 195 | except Exception: | CODE |
| LOW | packaging/launch.py | 206 | except Exception: | CODE |
| LOW | packaging/launch.py | 431 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 499 | except Exception: | CODE |
| LOW | packaging/launch.py | 546 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 671 | except Exception: | CODE |
| LOW | packaging/launch.py | 842 | except Exception: | CODE |
| LOW | packaging/launch.py | 1002 | except Exception: | CODE |
| LOW | packaging/launch.py | 1059 | except Exception: | CODE |
| LOW | packaging/launch.py | 1066 | except Exception: | CODE |
| LOW | packaging/launch.py | 1097 | except Exception: | CODE |
| LOW | packaging/launch.py | 1369 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 1412 | except Exception: | CODE |
| LOW | packaging/launch.py | 2198 | except Exception: | CODE |
| LOW | packaging/launch.py | 2202 | except Exception: | CODE |
| LOW | packaging/launch.py | 2325 | except Exception: | CODE |
| LOW | packaging/launch.py | 2464 | except Exception: | CODE |
| LOW | packaging/launch.py | 2598 | except Exception: | CODE |
| LOW | packaging/launch.py | 2643 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 2684 | except Exception: | CODE |
| LOW | packaging/launch.py | 2697 | except Exception: | CODE |
| LOW | packaging/launch.py | 2715 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 2738 | except Exception: | CODE |
| LOW | packaging/launch.py | 2745 | except Exception: | CODE |
| LOW | packaging/launch.py | 2761 | except Exception: | CODE |
| LOW | packaging/launch.py | 2773 | except Exception: | CODE |
| LOW | packaging/launch.py | 2786 | except Exception: | CODE |
| LOW | packaging/launch.py | 2900 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 1288 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 1702 | except Exception: | STRING |
| LOW | packaging/launch.py | 2052 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 2108 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 2169 | except Exception: | STRING |
| LOW | packaging/launch.py | 2180 | except Exception: | STRING |
| LOW | packaging/check_version.py | 35 | except Exception as e: | CODE |
| LOW | packaging/check_version.py | 53 | except Exception: | CODE |
| LOW | packaging/check_version.py | 67 | except Exception: | CODE |
| LOW | packaging/check_version.py | 147 | except Exception as e: | CODE |
| LOW | packaging/check_version.py | 168 | except Exception: | CODE |
| LOW | packaging/build_utils/package_checker.py | 157 | except Exception: | CODE |
| LOW⚡ | packaging/build_utils/package_checker.py | 186 | except Exception as e: | CODE |
| LOW⚡ | packaging/build_utils/package_checker.py | 196 | except Exception as e: | CODE |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 85 | except Exception as e: | CODE |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 149 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 32 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 40 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 46 | except Exception as e: | CODE |
| LOW⚡ | test/chinese_linebreak_debug_ui.py | 149 | except Exception: | CODE |
| LOW⚡ | test/chinese_linebreak_debug_ui.py | 155 | except Exception: | CODE |
| LOW | test/chinese_linebreak_debug_ui.py | 563 | except Exception as exc: | CODE |
| 1090 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/launch.py | 504 | CODE | |
| LOW | packaging/launch.py | 740 | CODE | |
| LOW | packaging/launch.py | 1205 | CODE | |
| LOW | packaging/launch.py | 1234 | CODE | |
| LOW | packaging/launch.py | 1312 | CODE | |
| LOW | packaging/launch.py | 1543 | CODE | |
| LOW | packaging/launch.py | 2317 | CODE | |
| LOW | packaging/launch.py | 2523 | CODE | |
| LOW | packaging/launch.py | 2648 | CODE | |
| LOW | packaging/launch.py | 2720 | CODE | |
| LOW | packaging/launch.py | 3109 | CODE | |
| LOW | packaging/launch.py | 845 | CODE | |
| LOW | packaging/check_version.py | 70 | CODE | |
| LOW | packaging/detect_torch_type.py | 9 | CODE | |
| LOW | packaging/detect_torch_type.py | 40 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 104 | CODE | |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 55 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 942 | CODE | |
| LOW | manga_translator/manga_translator.py | 274 | CODE | |
| LOW | manga_translator/manga_translator.py | 551 | CODE | |
| LOW | manga_translator/manga_translator.py | 729 | CODE | |
| LOW | manga_translator/manga_translator.py | 931 | CODE | |
| LOW | manga_translator/manga_translator.py | 1201 | CODE | |
| LOW | manga_translator/manga_translator.py | 1248 | CODE | |
| LOW | manga_translator/manga_translator.py | 1380 | CODE | |
| LOW | manga_translator/manga_translator.py | 1500 | CODE | |
| LOW | manga_translator/manga_translator.py | 1813 | CODE | |
| LOW | manga_translator/manga_translator.py | 1869 | CODE | |
| LOW | manga_translator/manga_translator.py | 2202 | CODE | |
| LOW | manga_translator/manga_translator.py | 2279 | CODE | |
| LOW | manga_translator/manga_translator.py | 2346 | CODE | |
| LOW | manga_translator/manga_translator.py | 2491 | CODE | |
| LOW | manga_translator/manga_translator.py | 2591 | CODE | |
| LOW | manga_translator/manga_translator.py | 2695 | CODE | |
| LOW | manga_translator/manga_translator.py | 3066 | CODE | |
| LOW | manga_translator/manga_translator.py | 3218 | CODE | |
| LOW | manga_translator/manga_translator.py | 3321 | CODE | |
| LOW | manga_translator/manga_translator.py | 3601 | CODE | |
| LOW | manga_translator/manga_translator.py | 4468 | CODE | |
| LOW | manga_translator/manga_translator.py | 4852 | CODE | |
| LOW | manga_translator/manga_translator.py | 5166 | CODE | |
| LOW | manga_translator/manga_translator.py | 5277 | CODE | |
| LOW | manga_translator/manga_translator.py | 5562 | CODE | |
| LOW | manga_translator/manga_translator.py | 5715 | CODE | |
| LOW | manga_translator/manga_translator.py | 5784 | CODE | |
| LOW | manga_translator/manga_translator.py | 5830 | CODE | |
| LOW | manga_translator/api_key_rotation.py | 380 | CODE | |
| LOW | manga_translator/__main__.py | 32 | CODE | |
| LOW | manga_translator/translators/gemini_hq.py | 315 | CODE | |
| LOW | manga_translator/translators/gemini.py | 285 | CODE | |
| LOW | manga_translator/translators/openai_hq.py | 287 | CODE | |
| LOW | manga_translator/translators/openai.py | 255 | CODE | |
| LOW | manga_translator/translators/common.py | 1172 | CODE | |
| LOW | manga_translator/translators/common.py | 1355 | CODE | |
| LOW | manga_translator/translators/common.py | 2870 | CODE | |
| LOW | manga_translator/translators/common.py | 2959 | CODE | |
| LOW | manga_translator/translators/common.py | 3075 | CODE | |
| LOW | manga_translator/translators/common.py | 3390 | CODE | |
| LOW | manga_translator/translators/common.py | 1476 | CODE | |
| LOW | manga_translator/translators/common.py | 1521 | CODE | |
| 403 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/launch.py | 1559 | CODE | |
| LOW | packaging/launch.py | 1560 | CODE | |
| LOW | packaging/launch.py | 1562 | CODE | |
| LOW | packaging/launch.py | 1570 | CODE | |
| LOW | packaging/launch.py | 1571 | CODE | |
| LOW | packaging/launch.py | 1573 | CODE | |
| LOW | packaging/launch.py | 1579 | CODE | |
| LOW | packaging/launch.py | 1580 | CODE | |
| LOW | packaging/launch.py | 1582 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 10 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 11 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | test/test_export_rotated_rich_text_alignment.py | 1 | CODE | |
| LOW | test/test_curl_cffi_windows_path_encoding.py | 1 | CODE | |
| LOW | test/test_combo_popup_lifetime.py | 1 | CODE | |
| LOW | test/editor_region_regressions.py | 1 | CODE | |
| LOW | test/test_upscaler_temp_cleanup.py | 1 | CODE | |
| LOW | test/test_concurrent_pipeline_progress.py | 1 | CODE | |
| LOW | test/test_mask_refinement_split.py | 1 | CODE | |
| LOW | test/test_api_slot_reorder.py | 1 | CODE | |
| LOW | test/test_editor_display_identity.py | 1 | CODE | |
| LOW | test/test_editor_export_executor.py | 1 | CODE | |
| LOW | test/test_app_version.py | 1 | CODE | |
| LOW | test/test_editor_inpaint_cache_reset.py | 1 | CODE | |
| LOW | test/test_chinese_linebreak_spaces.py | 7 | CODE | |
| LOW | test/test_editor_file_dialog_paths.py | 1 | CODE | |
| LOW | test/test_state_manager.py | 1 | CODE | |
| LOW | test/test_app_logic_file_sources.py | 1 | CODE | |
| LOW | test/test_paste_overlay_command.py | 1 | CODE | |
| LOW | test/test_epub_extractor.py | 5 | CODE | |
| LOW | test/test_editor_document_prefetch.py | 1 | CODE | |
| LOW | test/test_rich_text_popup_pin_config.py | 1 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 1 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 11 | CODE | |
| LOW | test/check_char_tables.py | 7 | CODE | |
| LOW | test/test_editor_image_lifetime.py | 1 | CODE | |
| LOW | test/test_dotenv_utils.py | 1 | CODE | |
| LOW | test/_bootstrap.py | 20 | CODE | |
| LOW | test/_bootstrap.py | 36 | CODE | |
| LOW | test/test_preset_service.py | 1 | CODE | |
| LOW | test/test_paste_overlay_document.py | 1 | CODE | |
| LOW | test/test_editor_save_state.py | 1 | CODE | |
| LOW | test/test_update_fetch_failure.py | 4 | CODE | |
| LOW | test/test_rich_text_editing.py | 1 | CODE | |
| LOW | test/test_batch_skip_planning.py | 1 | CODE | |
| LOW | test/test_hayai_ocr.py | 4 | CODE | |
| LOW | test/test_editor_document_state.py | 1 | CODE | |
| LOW | test/test_editor_inpainted_fallback.py | 1 | CODE | |
| LOW | test/test_flux_inpainter.py | 1 | CODE | |
| LOW | test/test_editor_region_reorder.py | 1 | CODE | |
| LOW | test/repro_seam_dilution.py | 8 | CODE | |
| LOW | test/test_editor_region_clipboard.py | 1 | CODE | |
| LOW | test/test_system_proxy.py | 1 | CODE | |
| LOW | test/test_rich_text_strikethrough.py | 1 | CODE | |
| LOW | test/test_editor_engine_config.py | 1 | CODE | |
| LOW | test/test_paddleocr_vl_patcher.py | 1 | CODE | |
| LOW | test/test_panel_line_shapes.py | 1 | CODE | |
| LOW | test/test_runtime_files.py | 1 | CODE | |
| 347 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/build_utils/__init__.py | 13 | __all__ = [ | CODE |
| LOW | test/chinese_linebreak_debug_ui.py | 723 | def _set_mask_preview(self, mask: dict) -> None: | CODE |
| LOW | test/_bootstrap.py | 40 | __all__ = ["ROOT"] | CODE |
| LOW | test/test_rich_text_strikethrough.py | 29 | def _set_test_font() -> None: | CODE |
| LOW⚡ | manga_translator/manga_translator.py | 1361 | def set_preloaded_load_text_payload(self, image_name: str, payload: Optional[dict]) -> None: | STRING |
| LOW | manga_translator/translators/common.py | 2605 | def _update_stream_inline(self, prefix: str, delta_text: str) -> None: | CODE |
| LOW | manga_translator/server/__init__.py | 19 | __all__ = [ | CODE |
| LOW | manga_translator/server/core/group_service.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/translation_integration.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/persistence.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/cleanup_scheduler.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ga_translator/server/core/config_management_service.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/history_service.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …nga_translator/server/core/group_management_service.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_migration.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/quota_service.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/account_service.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_service.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/__init__.py | 110 | __all__ = [ | CODE |
| LOW | manga_translator/server/core/system_init.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/session_service.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/resource_service.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_service_v2.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/quota_scheduler.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/audit_service.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/search_service.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/env_service.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_calculator.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/middleware.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_integration.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ga_translator/server/repositories/config_repository.py | 71 | def set_user_config(self, user_id: str, config: UserConfig) -> None: | CODE |
| LOW | …anslator/server/repositories/translation_repository.py | 133 | def _update_index(self, session_token: str, user_id: str) -> None: | CODE |
| LOW | manga_translator/server/repositories/__init__.py | 18 | __all__ = [ | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 41 | def set_global_permissions(self, permissions: dict) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 52 | def set_group_permissions(self, group_id: str, permissions: dict) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 65 | def set_user_permissions(self, user_id: str, permissions: UserPermission) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 138 | def update_last_modified(self) -> None: | CODE |
| LOW | …nga_translator/server/repositories/quota_repository.py | 26 | def set_user_quota(self, user_id: str, quota: QuotaLimit) -> None: | CODE |
| LOW | …nga_translator/server/repositories/group_repository.py | 183 | def update_last_modified(self) -> None: | CODE |
| LOW | manga_translator/server/models/__init__.py | 14 | __all__ = [ | CODE |
| LOW | manga_translator/server/routes/quota.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/routes/__init__.py | 31 | __all__ = [ | CODE |
| LOW | manga_translator/server/routes/translation_auth.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/routes/resources.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | manga_translator/server/routes/history.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/photoshop_export.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/onnx_runtime.py | 16 | def set_onnx_gpu_disabled(disabled: bool) -> None: | CODE |
| LOW | manga_translator/utils/system_proxy.py | 8 | def set_system_proxy_enabled(enabled: bool) -> None: | CODE |
| LOW | manga_translator/utils/replace_translation.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/replace_translation.py | 1219 | __all__ = [ | CODE |
| LOW | manga_translator/utils/translation_template.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/upscaling/realcugan_arch/__init__.py | 4 | __all__ = ['upcunet_v3'] | CODE |
| LOW | manga_translator/rendering/chinese_linebreak.py | 1101 | def set_cost(position: int, cost: int) -> None: | CODE |
| LOW | manga_translator/rendering/text_replacements.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/rendering/rich_text_sync.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/rendering/text_render/_fonts.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …inpainting/ldm/models/diffusion/dpm_solver/__init__.py | 3 | __all__ = ["DPMSolverSampler"] | CODE |
| LOW | …r/inpainting/ldm/modules/image_degradation/__init__.py | 8 | __all__ = ["degradation_fn_bsr", "degradation_fn_bsr_light"] | CODE |
| LOW | manga_translator/detection/ctd_utils/__init__.py | 12 | __all__ = [ | CODE |
| LOW | desktop_qt_ui/ui/theme.py | 19 | logger = logging.getLogger(__name__) | CODE |
| 90 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manga_translator/translators/common.py | 948 | 验证OpenAI API响应对象的有效性 Args: response: API返回的响应对象 logger: 日志记录器(可选) Returns: | STRING |
| HIGH | manga_translator/translators/common.py | 971 | 验证Gemini API响应对象的有效性 Args: response: API返回的响应对象 logger: 日志记录器(可选) Returns: | STRING |
| HIGH | manga_translator/server/core/account_service.py | 41 | 创建新用户 Args: username: 用户名 password: 密码(明文) role: 角色('admin | STRING |
| HIGH | manga_translator/server/core/account_service.py | 154 | 更新用户信息 Args: username: 用户名 updates: 要更新的字段字典 Returns: | STRING |
| HIGH | manga_translator/server/core/account_service.py | 218 | 删除用户 Args: username: 用户名 Returns: bool: 删除是否成功 | STRING |
| HIGH | manga_translator/server/core/account_service.py | 260 | 修改密码 Args: username: 用户名 new_password: 新密码(明文) Return | STRING |
| HIGH | manga_translator/server/core/permission_service.py | 163 | 过滤参数,只保留用户有权限的参数 Args: username: 用户名 parameters: 原始参数字典 | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 54 | 上传提示词文件 Args: user_id: 用户ID file: 上传的文件对象 (FastAPI UploadFile) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 121 | 上传字体文件 Args: user_id: 用户ID file: 上传的文件对象 (FastAPI UploadFile) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 218 | 删除提示词资源 Args: resource_id: 资源ID user_id: 用户ID(用于验证所有权) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 236 | 删除字体资源 Args: resource_id: 资源ID user_id: 用户ID(用于验证所有权) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 260 | 删除资源的通用方法 Args: resource_id: 资源ID user_id: 用户ID repo: 资源仓库 | STRING |
| HIGH | manga_translator/server/core/response_utils.py | 79 | 解析用户提供的环境变量,并检查策略 如果用户没有提供 API Keys,尝试从用户选择的预设中获取 **重要**: 此函数会将用户 API Key 设置到 config.translator 中, | STRING |
| HIGH | manga_translator/server/core/middleware.py | 97 | FastAPI 依赖函数:要求用户认证(管理员或普通用户) 验证会话令牌并返回会话对象。如果令牌无效或缺失,抛出 401 错误。 Args: x_session_token: 从 | STRING |
| HIGH | manga_translator/server/core/middleware.py | 178 | FastAPI 依赖函数:要求管理员认证 验证用户是否为管理员。如果不是管理员,抛出 403 错误。 Args: session: 从 require_auth 获取的会话对象 | STRING |
| HIGH | manga_translator/server/core/middleware.py | 269 | FastAPI 依赖函数:检查并过滤参数权限 过滤用户提交的参数,只保留用户有权限调整的参数。 不会抛出错误,而是静默过滤掉未授权的参数。 Args: parameter | STRING |
| HIGH | manga_translator/server/routes/translation_auth.py | 227 | Verify authentication and permissions for translation request This function: 1. Extracts and validates | STRING |
| HIGH | manga_translator/server/routes/resources.py | 69 | 上传提示词文件 需求: 1.1, 1.5 Args: file: 上传的文件 session: 用户会话 resource_service: 资源 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 152 | 删除提示词 需求: 1.4 Args: resource_id: 资源ID session: 用户会话 resource_service: 资源管 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 216 | 上传字体文件 需求: 2.1, 2.5 Args: file: 上传的文件 session: 用户会话 resource_service: 资源管 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 309 | 删除字体 需求: 2.4 Args: resource_id: 资源ID session: 用户会话 resource_service: 资源管理 | STRING |
| HIGH | manga_translator/server/routes/history.py | 195 | 获取用户的翻译历史(支持筛选) 需求: 3.2, 12.2 Args: start_date: 开始日期 end_date: 结束日期 statu | STRING |
| HIGH | manga_translator/server/routes/history.py | 436 | 搜索翻译历史 需求: 13.1-13.5 Args: q: 搜索查询 start_date: 开始日期 end_date: 结束日期 | STRING |
| HIGH | manga_translator/inpainting/flux_inpaint_pipeline.py | 691 | Function invoked when calling the pipeline for generation. Args: image (`torch.Tensor`, `P | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/test_paste_overlay_command.py | 46 | stack.push(PasteOverlaysReplaceCommand(model, before=[], after=target)) | CODE |
| HIGH⚡ | test/test_paste_overlay_command.py | 68 | stack.push(PasteOverlaysReplaceCommand(model, before=[], after=target)) | CODE |
| HIGH⚡ | test/test_paste_overlay_command.py | 78 | stack.push(PasteOverlaysReplaceCommand(model, before=[], after=target)) | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 65 | if (!fontName) return null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 117 | return null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 178 | positions.push([i, i + 1]); | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 212 | var originalLayer = null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 225 | if (!originalLayer && doc.layers.length > 0) {{ | CODE |
| HIGH | manga_translator/utils/generic.py | 1240 | return self * (1. / self.length()) | CODE |
| HIGH | manga_translator/utils/generic.py | 1268 | da = a.length() | CODE |
| HIGH | manga_translator/utils/generic.py | 1269 | db = b.length() | CODE |
| HIGH | manga_translator/utils/generic.py | 1298 | return d.length() | CODE |
| HIGH | desktop_qt_ui/services/history_service.py | 68 | QUndoStack.push() 会立即调用 command.redo()。 | STRING |
| HIGH | desktop_qt_ui/services/history_service.py | 72 | self.undo_stack.push(command) | CODE |
| HIGH | doc/wiki/verify_phase0_ui_parameter_fields.py | 160 | fail("release font_color is no longer null; update the catalog") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/ocr/model_48px_ctc.py | 252 | CODE | |
| LOW | manga_translator/ocr/common.py | 120 | CODE | |
| LOW | manga_translator/server/models/session_models.py | 48 | CODE | |
| LOW | manga_translator/server/routes/audit.py | 44 | CODE | |
| LOW | manga_translator/server/routes/admin.py | 134 | CODE | |
| LOW | manga_translator/server/routes/history.py | 345 | CODE | |
| LOW | manga_translator/utils/photoshop_export.py | 430 | CODE | |
| LOW | manga_translator/utils/textblock.py | 100 | CODE | |
| LOW | manga_translator/utils/replace_translation.py | 701 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 304 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 320 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 447 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 32 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 87 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 129 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 425 | CODE | |
| LOW | manga_translator/mask_refinement/__init__.py | 184 | CODE | |
| LOW | …zation/manga_colorization_v2_utils/denoising/models.py | 68 | CODE | |
| LOW | …tion/manga_colorization_v2_utils/networks/extractor.py | 71 | CODE | |
| LOW | manga_translator/rendering/auto_linebreak.py | 1481 | CODE | |
| LOW | manga_translator/rendering/text_render/_layout.py | 514 | CODE | |
| LOW | manga_translator/rendering/text_render/_render.py | 830 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 195 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 198 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 415 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 419 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 530 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 535 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 597 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 673 | CODE | |
| LOW | manga_translator/inpainting/inpainting_attn.py | 59 | CODE | |
| LOW | manga_translator/inpainting/inpainting_attn.py | 167 | CODE | |
| LOW | manga_translator/inpainting/flux_inpaint_pipeline.py | 668 | CODE | |
| LOW | manga_translator/inpainting/inpainting_aot.py | 95 | CODE | |
| LOW | manga_translator/inpainting/guided_ldm_inpainting.py | 23 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 802 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 919 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 924 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 986 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 1093 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 1158 | CODE | |
| LOW | manga_translator/inpainting/ldm/util.py | 91 | CODE | |
| LOW | manga_translator/inpainting/ldm/models/autoencoder.py | 23 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 76 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 144 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 202 | CODE | |
| LOW | …translator/inpainting/ldm/models/diffusion/__init__.py | 28 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 62 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 121 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 181 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 63 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 541 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1031 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1062 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1118 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1169 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1226 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1470 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1630 | CODE | |
| LOW | …painting/ldm/models/diffusion/dpm_solver/dpm_solver.py | 162 | CODE | |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manga_translator/ocr/model_ocr_large.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | manga_translator/ocr/model_48px_ctc.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | manga_translator/ocr/model_32px.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| HIGH | manga_translator/inpainting/ldm/modules/midas/api.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| HIGH | …_translator/inpainting/ldm/modules/encoders/modules.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/mode/__init__.py | 89 | if np.max(rawmask) == 0: # Check if mask is completely black | CODE |
| LOW | manga_translator/ocr/model_48px.py | 818 | finished = (out_idx[:, -1] == end_tok) # Check if the last token is the end token | STRING |
| LOW⚡ | …ga_translator/server/core/config_management_service.py | 457 | # Check if key contains sensitive keywords | COMMENT |
| LOW | …ga_translator/server/core/config_management_service.py | 280 | # Check if preset with same name exists | COMMENT |
| LOW | …ga_translator/server/core/config_management_service.py | 443 | # Check if key contains sensitive keywords | COMMENT |
| LOW | …nga_translator/server/core/session_security_service.py | 163 | # Check if user has exceeded limit | COMMENT |
| LOW | …nga_translator/server/core/session_security_service.py | 255 | # Check if user is admin | COMMENT |
| LOW | manga_translator/server/core/search_service.py | 114 | # Check if any file matches the query | COMMENT |
| LOW | manga_translator/utils/textblock.py | 786 | # Assign panel_index to each region | COMMENT |
| LOW | manga_translator/upscaling/realcugan.py | 168 | # Check if model exists | COMMENT |
| LOW | manga_translator/mask_refinement/text_mask_utils.py | 90 | if np.max(rawmask) == 0: # Check if mask is completely black | CODE |
| LOW⚡ | manga_translator/detection/panel_finder.py | 58 | # Check if the polygon contains any of the other polygons. | COMMENT |
| LOW⚡ | manga_translator/detection/panel_finder.py | 61 | # Check if the polygon contains the other polygon and that the polygons | COMMENT |
| LOW⚡ | manga_translator/detection/panel_finder.py | 66 | # Check if rect2 is completely within rect1 | COMMENT |
| LOW | manga_translator/detection/panel_finder.py | 240 | # Check if range1 is before range2 | COMMENT |
| LOW | manga_translator/detection/panel_finder.py | 243 | # Check if range1 is after range2 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | manga_translator/translators/config_gpt.py | 11 | # Define the schema for the response | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 215 | # Create a backup of current state before restoring | COMMENT |
| MEDIUM | manga_translator/upscaling/__init__.py | 26 | # Create a cache key that includes the upscaler type and its parameters | COMMENT |
| MEDIUM⚡ | manga_translator/detection/panel_finder.py | 53 | # Create a new list to store the filtered polygons. | COMMENT |
| MEDIUM | desktop_qt_ui/services/__init__.py | 110 | # This method is now mostly obsolete as ShortcutManager and DragDropService are removed. | COMMENT |
| MEDIUM | desktop_qt_ui/services/workflow_service.py | 201 | # Define the item_template from the first found item line | COMMENT |
| MEDIUM | dict/glossary_extraction_prompt.yaml | 43 | ## Creating a New Entry | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/translators/common.py | 2141 | return False, f"Translation count mismatch: expected {len(queries)}, got {len(translations)}" | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 321 | G.add_node(idx) | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 341 | # if points[3][1] > points[2][1]: | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 361 | # while v < len(bboxes) - removed_counter: | COMMENT |
| LOW | manga_translator/ocr/model_48px_ctc.py | 501 | _, preds_index = logprobs.max(2) | COMMENT |
| LOW | manga_translator/server/to_json.py | 1 | import struct | COMMENT |
| LOW | manga_translator/utils/bubble.py | 321 | new_mask_thresh = cv2.erode(new_mask_thresh, kernel) | COMMENT |
| LOW | manga_translator/rendering/text_replacements.py | 21 | COMMENT | |
| LOW | manga_translator/inpainting/flux_inpaint_pipeline.py | 1 | # Copyright 2025 Black Forest Labs and The HuggingFace Team. All rights reserved. | COMMENT |
| LOW | manga_translator/detection/ctd.py | 181 | mask = postprocess_mask(mask) | COMMENT |
| LOW | manga_translator/detection/ctd_utils/yolov5/yolo.py | 121 | COMMENT | |
| LOW | desktop_qt_ui/services/batch_edit_schemes.py | 61 | # match.conditions[].field 见批量管理页的字段下拉;op 随字段类型变化 | COMMENT |
| LOW | dict/prompt_example.yaml | 1 | # 自定义翻译提示词模板 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | manga_translator/manga_translator.py | 4615 | # Step 1: 检测 - 获取textlines(检测框)和mask_raw(原始蒙版) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4638 | # Step 2: 填充文本 - 跳过OCR,为每个textline填充占位文本 | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4643 | # Step 3: Textline Merge - 将textlines合并成text_regions(大框) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4719 | # Step 5: Inpainting - 使用优化后的mask进行修复 | STRING |
| LOW | manga_translator/manga_translator.py | 4696 | # Step 4: Mask Refinement - 使用text_regions和mask_raw优化蒙版 | STRING |
| LOW⚡ | doc/en/CLI_USAGE.md | 1443 | # Step 1: export original text | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1453 | # Step 2: unzip export.zip; by default it contains translation.json and original.json | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1455 | # Step 3: manually translate original.json and save it as translated.json | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1457 | # Step 4: import the translation and render | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | manga_translator/translators/common.py | 232 | api_key="your-api-key", | STRING |
| HIGH⚡ | manga_translator/translators/common.py | 554 | api_key="your-api-key", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/translators/common.py | 1384 | # If it is a list it will simply return the language code as is. | COMMENT |
| LOW | manga_translator/server/routes/config.py | 966 | # Don't save to server, just return success (actually temporary use) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | manga_translator/manga_translator.py | 4615 | # Step 1: 检测 - 获取textlines(检测框)和mask_raw(原始蒙版) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4638 | # Step 2: 填充文本 - 跳过OCR,为每个textline填充占位文本 | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4643 | # Step 3: Textline Merge - 将textlines合并成text_regions(大框) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4719 | # Step 5: Inpainting - 使用优化后的mask进行修复 | STRING |
| LOW | manga_translator/manga_translator.py | 4696 | # Step 4: Mask Refinement - 使用text_regions和mask_raw优化蒙版 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/utils/threading.py | 55 | async def my_function(arg): | STRING |