diff --git a/apps/worker/worker_app/tasks/generation.py b/apps/worker/worker_app/tasks/generation.py index fb0079eb2..e422739e9 100644 --- a/apps/worker/worker_app/tasks/generation.py +++ b/apps/worker/worker_app/tasks/generation.py @@ -1123,6 +1123,7 @@ def _render_video( resolution: str = "", bgm_config: dict | None = None, voice_ids: list[str] | None = None, + custom_title: str = "", ) -> tuple[Path, float]: """渲染视频(含配音混音)。 @@ -1169,6 +1170,20 @@ def _render_video( merged_bgm.get("source", ""), ) + # 用户自定义标题覆盖模板标题(用户指定优先级最高) + if custom_title and custom_title.strip(): + plan_cfg = dict(virtual_plan.config or {}) + title_cfg = dict(plan_cfg.get("title", {}) or {}) + title_cfg["text"] = custom_title.strip() + title_cfg["enabled"] = True + plan_cfg["title"] = title_cfg + virtual_plan.config = plan_cfg + logger.info( + "[task_id=%s] [渲染] 用户自定义标题已注入: title=%s", + task_id, + custom_title[:50], + ) + # 确保输出分辨率配置存在 # 优先级:用户指定 > 模板配置 > 默认 1280x720 # 预览模式:强制 854x480 + 低码率 @@ -1529,6 +1544,7 @@ def generate_video(self, task_id: str) -> dict: resolution=_resolved_resolution, bgm_config=task_info.get("bgm_config", {}), voice_ids=task_info.get("voice_ids", []), + custom_title=task_info.get("custom_title", ""), ) if gen_task: