利用 AI 大模型和自动化工作流,根据主题或关键词一键生成高清短视频。Generate HD short videos from a topic or keyword with an automated AI workflow.
This report presents the forensic synthetic code analysis of harry0703/MoneyPrinterTurbo, a Python project with 117,975 GitHub stars. SynthScan v2.0 examined 56,724 lines of code across 136 source files, recording 1261 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 21.4 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1261 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli.py | 645 | def _resolve_subtitle_enabled(args: argparse.Namespace, ui_config) -> bool: | STRING |
| LOW | cli.py | 880 | def _validate_batch_entry_fields( | STRING |
| LOW | cli.py | 915 | def _resolve_batch_entry_paths( | STRING |
| LOW | cli.py | 939 | def _validate_batch_task_params( | STRING |
| LOW | cli.py | 1157 | def _path_is_within_directory(file_path: str, directory: str) -> bool: | STRING |
| LOW | cli.py | 1167 | def _resolve_managed_resource_file( | STRING |
| LOW | cli.py | 1296 | def _remove_cli_material_copies(created_paths: Sequence[str]) -> None: | CODE |
| LOW | app/asgi.py | 56 | def validation_exception_handler(request: Request, e: RequestValidationError): | CODE |
| LOW | app/asgi.py | 89 | async def protect_generated_task_files(request: Request, call_next): | CODE |
| LOW | app/config/config.py | 91 | def update_config_nonblocking(config_section, key, value): | CODE |
| LOW | app/config/config.py | 127 | def delete_config_nonblocking(config_section, key): | CODE |
| LOW | app/config/config.py | 153 | def _apply_pending_config_updates_locked(): | CODE |
| LOW | app/config/config.py | 168 | def snapshot_config_with_pending(config_section): | CODE |
| LOW | app/config/config.py | 189 | def _flush_pending_config_locked(*, suppress_save_errors): | CODE |
| LOW | app/config/config.py | 215 | def _run_deferred_config_flush(): | CODE |
| LOW | app/config/config.py | 234 | def _schedule_deferred_config_flush(): | CODE |
| LOW | app/config/config.py | 348 | def _decode_linux_route_gateway(hex_gateway: str) -> str: | CODE |
| LOW | app/config/config.py | 361 | def get_container_default_gateway_ip(route_path: str = "/proc/net/route") -> str: | CODE |
| LOW | app/config/config.py | 395 | def get_default_ollama_base_url() -> str: | CODE |
| LOW | app/utils/utils.py | 250 | def time_convert_seconds_to_hmsm(seconds) -> str: | CODE |
| LOW | app/utils/utils.py | 281 | def split_string_by_punctuations(s): | STRING |
| LOW | app/utils/utils.py | 323 | def normalize_script_for_subtitle_matching(video_script: str) -> str: | STRING |
| LOW | app/utils/file_security.py | 4 | def resolve_path_within_directory( | CODE |
| LOW | app/utils/logging_utils.py | 63 | def configure_terminal_logger(sink, level: str, colorize: bool = True) -> int: | CODE |
| LOW | app/models/llm_provider.py | 66 | def endpoint_selector_label_key(self) -> str: | CODE |
| LOW | app/models/llm_provider.py | 70 | def endpoint_selector_help_key(self) -> str: | CODE |
| LOW⚡ | app/models/llm_provider.py | 115 | def international_service_endpoint(self) -> LLMProviderEndpoint | None: | CODE |
| LOW⚡ | app/models/llm_provider.py | 120 | def effective_default_base_url(self) -> str: | CODE |
| LOW⚡ | app/models/llm_provider.py | 125 | def preferred_service_endpoint( | CODE |
| LOW | app/models/llm_provider.py | 436 | def normalize_provider_override(value: str | None, default_value: str | None) -> str: | CODE |
| LOW | app/controllers/v1/llm.py | 59 | def generate_video_social_metadata( | CODE |
| LOW | app/controllers/v1/video.py | 72 | def _sanitize_upload_filename(filename: str, request_id: str) -> str: | CODE |
| LOW | app/controllers/v1/video.py | 85 | def _resolve_path_within_directory(base_dir: str, unsafe_path: str, request_id: str) -> str: | CODE |
| LOW | app/controllers/v1/video.py | 424 | def upload_video_material_file(request: Request, file: UploadFile = File(...)): | CODE |
| LOW⚡ | app/services/task.py | 122 | def _register_cross_post_future(task_id: str, future: Future) -> None: | CODE |
| LOW⚡ | app/services/task.py | 128 | def _unregister_cross_post_future(task_id: str, future: Future | None = None) -> None: | CODE |
| LOW⚡ | app/services/task.py | 137 | def _is_cross_post_active_in_process(task_id: str) -> bool: | CODE |
| LOW⚡ | app/services/task.py | 144 | def _is_windows_process_alive(process_id: int) -> bool: | CODE |
| LOW⚡ | app/services/task.py | 1142 | def _run_cross_post_with_slot(*args) -> None: | CODE |
| LOW | app/services/task.py | 197 | def _is_cross_post_owner_alive(owner: str | None) -> bool: | CODE |
| LOW | app/services/task.py | 360 | def resolve_custom_audio_file( | CODE |
| LOW | app/services/task.py | 418 | def _resolve_reusable_voice_preview( | CODE |
| LOW | app/services/task.py | 752 | def _record_loomloom_run_reference( | CODE |
| LOW | app/services/task.py | 928 | def _record_cross_post_failure( | CODE |
| LOW | app/services/task.py | 945 | def _ensure_cross_post_terminal_state(task_id: str) -> None: | CODE |
| LOW | app/services/task.py | 971 | def recover_interrupted_cross_posts(page_size: int = 100) -> int | None: | CODE |
| LOW | app/services/task.py | 1157 | def _finalize_cross_post_future(task_id: str, future: Future) -> None: | CODE |
| LOW⚡ | app/services/material.py | 1052 | def _search_videos_with_cache( | CODE |
| LOW | app/services/material.py | 112 | def _persist_material_sources( | CODE |
| LOW | app/services/material.py | 265 | def _filter_materials_by_aspect( | CODE |
| LOW | app/services/material.py | 656 | def _is_wavespeed_retryable_error(error: Exception) -> bool: | CODE |
| LOW | app/services/material.py | 678 | def _wavespeed_duration_bounds() -> tuple[int, int]: | CODE |
| LOW | app/services/material.py | 699 | def generate_videos_wavespeed( | CODE |
| LOW | app/services/material.py | 853 | def _wait_for_wavespeed_prediction( | CODE |
| LOW | app/services/material.py | 954 | def _save_generated_video_with_retry( | CODE |
| LOW | app/services/material.py | 1290 | def _download_videos_wavespeed_on_demand( | CODE |
| LOW | app/services/material.py | 1362 | def _download_videos_seedance_on_demand( | CODE |
| LOW | app/services/material.py | 1475 | def _download_videos_by_script_order( | CODE |
| LOW | app/services/elevenlabs_music.py | 161 | def validate_generation_access() -> None: | CODE |
| LOW | app/services/cache_manager.py | 57 | def _iter_video_cache_entries() -> Iterator[_VideoCacheEntry]: | CODE |
| 922 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | config.example.toml | 141 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | config.example.toml | 143 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | config.example.toml | 345 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | config.example.toml | 347 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | config.example.toml | 384 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 386 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 395 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 397 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 463 | # ── Model & Pricing Notice ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | config.example.toml | 469 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 471 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 5 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 7 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 28 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 30 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 61 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 63 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 296 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 298 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 320 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 322 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 367 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 369 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 452 | # ── Voice selection ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/models/schema.py | 237 | # --------------------------- | COMMENT |
| MEDIUM | app/models/schema.py | 239 | # --------------------------- | COMMENT |
| MEDIUM | app/services/llm.py | 707 | # ============================================================================= | STRING |
| MEDIUM | app/services/llm.py | 712 | # ============================================================================= | STRING |
| MEDIUM⚡ | webui/Main.py | 2252 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | webui/Main.py | 2254 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | webui/Main.py | 3058 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | webui/Main.py | 3060 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 207 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 209 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 563 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 565 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 1548 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 1550 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 2565 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | webui/Main.py | 2567 | # ----------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli.py | 1119 | except Exception: | STRING |
| LOW | cli.py | 1365 | except Exception: | CODE |
| LOW | cli.py | 1398 | except Exception as exc: | CODE |
| LOW | cli.py | 1481 | except Exception as exc: | CODE |
| LOW | app/config/config.py | 204 | except Exception as exc: | CODE |
| LOW | app/utils/utils.py | 57 | except Exception as e: | CODE |
| LOW | app/utils/utils.py | 176 | except Exception as exc: | CODE |
| LOW | app/utils/utils.py | 221 | except Exception as exc: | CODE |
| LOW | app/utils/utils.py | 242 | except Exception as e: | CODE |
| MEDIUM | app/utils/utils.py | 29 | def to_json(obj): | CODE |
| MEDIUM | app/utils/utils.py | 239 | def run(): | CODE |
| LOW | app/controllers/v1/video.py | 220 | except Exception: | CODE |
| LOW | app/controllers/manager/base_manager.py | 34 | except Exception: | CODE |
| LOW | app/controllers/manager/base_manager.py | 87 | except Exception: | CODE |
| LOW | app/services/webui_task.py | 88 | except Exception as exc: | CODE |
| LOW | app/services/webui_task.py | 157 | except Exception as exc: | CODE |
| LOW⚡ | app/services/task.py | 1135 | except Exception as exc: | CODE |
| LOW⚡ | app/services/task.py | 1146 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 249 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 769 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 907 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 949 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 986 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 1173 | except Exception as exc: | CODE |
| LOW | app/services/task.py | 1529 | except Exception as exc: | CODE |
| MEDIUM | app/services/material.py | 1073 | def load_cache_safely() -> List[MaterialInfo] | None: | CODE |
| LOW⚡ | app/services/material.py | 1033 | except Exception as e: | CODE |
| LOW⚡ | app/services/material.py | 1037 | except Exception as remove_error: | CODE |
| LOW⚡ | app/services/material.py | 1045 | except Exception as close_error: | CODE |
| LOW | app/services/material.py | 133 | except Exception as exc: | CODE |
| LOW | app/services/material.py | 369 | except Exception as e: | CODE |
| LOW | app/services/material.py | 494 | except Exception as e: | CODE |
| LOW | app/services/material.py | 599 | except Exception as e: | CODE |
| LOW | app/services/material.py | 755 | except Exception as e: | CODE |
| LOW | app/services/material.py | 773 | except Exception as e: | CODE |
| LOW | app/services/material.py | 841 | except Exception as e: | CODE |
| LOW | app/services/material.py | 904 | except Exception as e: | CODE |
| LOW | app/services/material.py | 969 | except Exception as e: | CODE |
| LOW | app/services/material.py | 1076 | except Exception as exc: | CODE |
| LOW | app/services/material.py | 1137 | except Exception as exc: | CODE |
| LOW | app/services/material.py | 1264 | except Exception as source_error: | CODE |
| LOW | app/services/material.py | 1279 | except Exception as e: | CODE |
| LOW | app/services/material.py | 1337 | except Exception as source_error: | CODE |
| LOW | app/services/material.py | 1451 | except Exception as source_error: | CODE |
| LOW | app/services/material.py | 1552 | except Exception as source_error: | CODE |
| LOW | app/services/material.py | 1565 | except Exception as e: | CODE |
| LOW | app/services/version_checker.py | 179 | except Exception: | CODE |
| LOW | app/services/task_artifacts.py | 90 | except Exception as exc: | CODE |
| LOW | app/services/llm.py | 406 | except Exception as e: | CODE |
| LOW | app/services/llm.py | 571 | except Exception as e: | STRING |
| LOW | app/services/llm.py | 685 | except Exception as e: | STRING |
| LOW | app/services/llm.py | 692 | except Exception as e: | STRING |
| LOW | app/services/llm.py | 879 | except Exception: | STRING |
| LOW | app/services/llm.py | 957 | except Exception as e: | STRING |
| LOW | app/services/bgm.py | 215 | except Exception as exc: | CODE |
| LOW | app/services/subtitle.py | 40 | except Exception as e: | CODE |
| LOW | app/services/material_upload.py | 221 | except Exception as exc: | CODE |
| MEDIUM | app/services/voice.py | 752 | def _produce_chunks(): | CODE |
| LOW | app/services/voice.py | 196 | except Exception as e: | CODE |
| LOW | app/services/voice.py | 757 | except Exception as e: | CODE |
| 59 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli.py | 681 | CODE | |
| LOW | cli.py | 1196 | CODE | |
| LOW | cli.py | 1309 | CODE | |
| LOW | cli.py | 1370 | CODE | |
| LOW | app/config/config.py | 476 | CODE | |
| LOW | app/utils/utils.py | 29 | CODE | |
| LOW | app/utils/utils.py | 407 | CODE | |
| LOW | app/utils/utils.py | 32 | CODE | |
| LOW | app/controllers/manager/redis_manager.py | 50 | CODE | |
| LOW | app/services/material.py | 296 | CODE | |
| LOW | app/services/material.py | 378 | CODE | |
| LOW | app/services/material.py | 992 | CODE | |
| LOW | app/services/material.py | 1145 | CODE | |
| LOW | app/services/material.py | 1475 | CODE | |
| LOW | app/services/elevenlabs_music.py | 292 | CODE | |
| LOW | app/services/upload_post.py | 44 | CODE | |
| LOW | app/services/cache_manager.py | 57 | CODE | |
| LOW | app/services/llm.py | 142 | CODE | |
| LOW | app/services/llm.py | 599 | CODE | |
| LOW | app/services/bgm.py | 169 | CODE | |
| LOW | app/services/subtitle.py | 22 | CODE | |
| LOW | app/services/subtitle.py | 147 | CODE | |
| LOW | app/services/subtitle.py | 202 | CODE | |
| LOW | app/services/material_upload.py | 91 | CODE | |
| LOW | app/services/material_upload.py | 171 | CODE | |
| LOW | app/services/voice.py | 455 | CODE | |
| LOW | app/services/voice.py | 733 | CODE | |
| LOW | app/services/voice.py | 833 | CODE | |
| LOW | app/services/voice.py | 888 | CODE | |
| LOW | app/services/voice.py | 1004 | CODE | |
| LOW | app/services/voice.py | 1235 | CODE | |
| LOW | app/services/voice.py | 1566 | CODE | |
| LOW | app/services/sonilo.py | 271 | CODE | |
| LOW | app/services/loomloom.py | 784 | CODE | |
| LOW | app/services/material_cache.py | 383 | CODE | |
| LOW | app/services/video.py | 453 | CODE | |
| LOW | app/services/video.py | 538 | CODE | |
| LOW | app/services/video.py | 991 | CODE | |
| LOW | test/services/test_sonilo.py | 194 | CODE | |
| LOW | test/services/test_sonilo.py | 229 | CODE | |
| LOW | test/services/test_sonilo.py | 375 | CODE | |
| LOW | test/services/test_sonilo.py | 480 | CODE | |
| LOW | test/services/test_material_upload.py | 147 | CODE | |
| LOW | test/services/test_material_upload.py | 168 | CODE | |
| LOW | test/services/test_task.py | 752 | CODE | |
| LOW | test/services/test_task.py | 834 | CODE | |
| LOW | test/services/test_llm.py | 513 | CODE | |
| LOW | test/services/test_bgm.py | 134 | CODE | |
| LOW | test/services/test_bgm.py | 292 | CODE | |
| LOW | test/services/test_controller_video.py | 67 | CODE | |
| LOW | test/services/test_controller_video.py | 357 | CODE | |
| LOW | test/services/test_controller_video.py | 543 | CODE | |
| LOW | test/services/test_video.py | 572 | CODE | |
| LOW | test/services/test_video.py | 806 | CODE | |
| LOW | test/services/test_schema.py | 24 | CODE | |
| LOW | test/services/test_config.py | 195 | CODE | |
| LOW | test/services/test_volcengine_seedance.py | 70 | CODE | |
| LOW | test/services/test_volcengine_seedance.py | 177 | CODE | |
| LOW | test/services/test_volcengine_seedance.py | 253 | CODE | |
| LOW | test/services/test_volcengine_seedance.py | 460 | CODE | |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | config.example.toml | 134 | # Create a key at https://platform.sonilo.com/dashboard. The WebUI can also save | COMMENT |
| MEDIUM⚡ | config.example.toml | 350 | # Create an account and API key at https://upload-post.com/ | COMMENT |
| MEDIUM | config.example.toml | 100 | # Create an Ark API key at: | COMMENT |
| MEDIUM | config.example.toml | 120 | # Create an API key at https://playground.twelvelabs.io/ | COMMENT |
| MEDIUM | app/utils/utils.py | 31 | # Define a helper function to handle different types of objects | COMMENT |
| MEDIUM | app/services/video.py | 1364 | # Create an image clip and set its duration to 3 seconds | COMMENT |
| MEDIUM⚡ | test/services/test_cli.py | 353 | # Create a minimal valid video file for testing | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README-ja.md | 433 | upload_post_api_key = "your-api-key" | CODE |
| HIGH | README.md | 450 | upload_post_api_key = "your-api-key" | CODE |
| HIGH | README-en.md | 455 | upload_post_api_key = "your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config.example.toml | 1 | # MoneyPrinterTurbo configuration example. | COMMENT |
| LOW | config.example.toml | 21 | # 配置后客户端必须通过 x-api-key 请求头传入同一个值。 | COMMENT |
| LOW | config.example.toml | 61 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | config.example.toml | 81 | pixabay_api_keys = [] | COMMENT |
| LOW | config.example.toml | 121 | twelvelabs_api_keys = [] | COMMENT |
| LOW | config.example.toml | 301 | mimo_tts_model_name = "mimo-v2.5-tts" | COMMENT |
| LOW | config.example.toml | 361 | # Maximum number of running and queued cross-post jobs per process. When the | COMMENT |
| LOW | config.example.toml | 381 | # Leave empty to disable. | COMMENT |
| LOW | config.example.toml | 441 | # Voice names exposed by the configured Chatterbox server. | COMMENT |
| LOW | config.example.toml | 461 | voices = [] | COMMENT |
| LOW | config.example.toml | 481 | # The WebUI writes the remaining preferences automatically. Uncomment values | COMMENT |
| LOW | config.example.toml | 501 | # bgm_type = "random" | COMMENT |
| LOW | docker-compose.gpu.yml | 1 | # GPU override file | COMMENT |
| LOW | app/config/__init__.py | 21 | # rotation="00:00", | COMMENT |
| LOW | test/services/__init__.py | 1 | # Unit test package for services | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli.py | 1 | CODE | |
| LOW | app/services/task_artifacts.py | 3 | CODE | |
| LOW | app/services/cache_manager.py | 3 | CODE | |
| LOW | app/services/loomloom.py | 8 | CODE | |
| LOW | app/services/material_cache.py | 3 | CODE | |
| LOW | docs/skill/mpt_agent.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | test/services/test_voice.py | 1347 | result = vs.get_elevenlabs_voices("fake-key") | CODE |
| LOW⚡ | test/services/test_voice.py | 1383 | mock_config.elevenlabs.get.return_value = "fake-key" | CODE |
| LOW | …loom/moneyprinterturbo-script-candidates.template.json | 36 | "placeholder": "例如:普通人如何用 AI 提高工作效率" | CODE |
| LOW | …loom/moneyprinterturbo-script-candidates.template.json | 48 | "placeholder": "输出语言:zh-CN\n目标时长(秒):60\n风格或附加要求:开头制造反差" | CODE |
| LOW | …oom/moneyprinterturbo-ai-video-materials.template.json | 44 | "placeholder": "例如:现代办公室中的工作人员使用 AI 助手,自然光,缓慢推进镜头" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | webui.sh | 3 | # If you could not download the model from the official site, you can use the mirror site. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/controllers/manager/base_manager.py | 54 | def execute_task(self, func: Callable, *args: Any, **kwargs: Any): | CODE |
| LOW | app/controllers/manager/base_manager.py | 60 | def run_task(self, func: Callable, *args: Any, **kwargs: Any): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/utils/utils.py | 320 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config.example.toml | 269 | # Set model_name to a model installed by `ollama pull` or shown by `ollama list`. | COMMENT |