app: description: 通用剧本创作工作流 - 一套流程覆盖大纲、写作、拆解三种模式 icon: 🎞️ icon_background: '#E8F5E9' mode: workflow name: 剧本创作通用工作流-v1 use_icon_as_answer_icon: false kind: app version: 0.1.2 workflow: conversation_variables: [] environment_variables: [] features: file_upload: enabled: false opening_statement: '输入项目设定并选择模式:大纲模式 / 写作模式 / 拆解模式。' retriever_resource: enabled: false sensitive_word_avoidance: enabled: false speech_to_text: enabled: false suggested_questions_after_answer: enabled: false text_to_speech: enabled: false graph: edges: - data: isInIteration: false sourceType: start targetType: if-else id: 1940748800000-source-1940748800004-target source: '1940748800000' sourceHandle: source target: '1940748800004' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: if-else targetType: llm id: 1940748800004-true-1940748800001-target source: '1940748800004' sourceHandle: 'true' target: '1940748800001' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: if-else targetType: if-else id: 1940748800004-false-1940748800008-target source: '1940748800004' sourceHandle: 'false' target: '1940748800008' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: llm targetType: answer id: 1940748800001-source-1940748800005-target source: '1940748800001' sourceHandle: source target: '1940748800005' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: if-else targetType: llm id: 1940748800008-true-1940748800002-target source: '1940748800008' sourceHandle: 'true' target: '1940748800002' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: if-else targetType: llm id: 1940748800008-false-1940748800003-target source: '1940748800008' sourceHandle: 'false' target: '1940748800003' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: llm targetType: answer id: 1940748800002-source-1940748800006-target source: '1940748800002' sourceHandle: source target: '1940748800006' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false sourceType: llm targetType: answer id: 1940748800003-source-1940748800007-target source: '1940748800003' sourceHandle: source target: '1940748800007' targetHandle: target type: custom zIndex: 0 nodes: - data: desc: '' selected: false title: 开始 type: start variables: - label: 项目名 max_length: 120 options: [] required: true type: text-input variable: project_name - label: 核心一句话 max_length: 500 options: [] required: true type: paragraph variable: core_idea - label: 时代与世界观 max_length: 1200 options: [] required: true type: paragraph variable: world_setting - label: 角色设定 max_length: 2000 options: [] required: true type: paragraph variable: character_setup - label: 风格参考 max_length: 1200 options: [] required: false type: paragraph variable: style_reference - label: 当前任务目标 max_length: 1200 options: [] required: false type: paragraph variable: task_goal - label: 已有文本(拆解时必填) max_length: 8000 options: [] required: false type: paragraph variable: existing_text - label: 输出模式 max_length: 24 options: - 大纲模式 - 写作模式 - 拆解模式 required: true type: select variable: output_mode height: 220 id: '1940748800000' position: x: 80 y: 280 selected: false sourcePosition: right targetPosition: left type: custom width: 260 - data: cases: - case_id: 'true' conditions: - comparison_operator: contains id: condition-001 value: 大纲模式 varType: string variable_selector: - '1940748800000' - output_mode id: 'true' logical_operator: and - case_id: 'false' conditions: - comparison_operator: not contains id: condition-002 value: 大纲模式 varType: string variable_selector: - '1940748800000' - output_mode id: 'false' logical_operator: and desc: 先判断是否走大纲模式 selected: false title: 模式判断A type: if-else height: 140 id: '1940748800004' position: x: 390 y: 280 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: cases: - case_id: 'true' conditions: - comparison_operator: contains id: condition-003 value: 写作模式 varType: string variable_selector: - '1940748800000' - output_mode id: 'true' logical_operator: and - case_id: 'false' conditions: - comparison_operator: not contains id: condition-004 value: 写作模式 varType: string variable_selector: - '1940748800000' - output_mode id: 'false' logical_operator: and desc: 非大纲后,区分写作与拆解 selected: false title: 模式判断B type: if-else height: 140 id: '1940748800008' position: x: 700 y: 420 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: context: enabled: false desc: 生成可执行的剧本全局规划 model: completion_params: max_tokens: 3600 temperature: 0.7 mode: chat name: deepseek-reasoner provider: langgenius/deepseek/deepseek prompt_template: - id: system-001 role: system text: | 你是资深剧集编剧统筹,擅长长剧结构设计。 任务:基于输入生成“可持续连载”的剧本大纲,不空泛。 输出格式(Markdown): # 项目总纲 ## 1) 核心卖点(3条) ## 2) 世界观规则(5条) ## 3) 主角成长弧(起点-转折-代价-终局) ## 4) 关键配角弧(至少3人) ## 5) 三幕式结构(每幕目标、冲突、爆点) ## 6) 20集分集卡点(每集2-3句,含结尾钩子) ## 7) 风险与修正建议(至少5条) 约束: - 每集必须有“目标-阻碍-变化” - 不要模板化鸡汤句 - 允许爽点,但必须包含代价 - id: user-001 role: user text: | 项目名:{{#1940748800000.project_name#}} 核心一句话:{{#1940748800000.core_idea#}} 时代与世界观:{{#1940748800000.world_setting#}} 角色设定:{{#1940748800000.character_setup#}} 风格参考:{{#1940748800000.style_reference#}} 当前任务目标:{{#1940748800000.task_goal#}} selected: false title: 大纲统筹AI type: llm variables: [] height: 98 id: '1940748800001' position: x: 700 y: 120 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: context: enabled: false desc: 生成单集可拍剧本草稿 model: completion_params: max_tokens: 3800 temperature: 0.72 mode: chat name: deepseek-reasoner provider: langgenius/deepseek/deepseek prompt_template: - id: system-001 role: system text: | 你是影视剧本执笔编剧。 任务:根据项目设定与当前任务,输出一集可拍的场景剧本草稿。 输出格式(Markdown): # 单集剧本草稿 ## 集标题 ## 本集主题与冲突 ## 场景列表(8-12场) 每场按以下格式: - 场次编号 - 时空标记(内/外 + 日/夜 + 地点) - 画面动作 - 关键对白(2-6句) - 场尾钩子 ## 节奏检查 - 前10%钩子是否成立 - 中段是否升级 - 结尾是否有不可逆变化 约束: - 避免百科式解释 - 角色对白要有身份区分 - 保留类型爽点,同时写出代价 - id: user-001 role: user text: | 项目名:{{#1940748800000.project_name#}} 核心一句话:{{#1940748800000.core_idea#}} 时代与世界观:{{#1940748800000.world_setting#}} 角色设定:{{#1940748800000.character_setup#}} 风格参考:{{#1940748800000.style_reference#}} 当前任务目标:{{#1940748800000.task_goal#}} selected: false title: 剧本写作AI type: llm variables: [] height: 98 id: '1940748800002' position: x: 1020 y: 350 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: context: enabled: false desc: 将已有剧本拆解为生产资料(分镜/口播/发布文案) model: completion_params: max_tokens: 3800 temperature: 0.65 mode: chat name: deepseek-reasoner provider: langgenius/deepseek/deepseek prompt_template: - id: system-001 role: system text: | 你是内容拆解与改编总监。 任务:把输入的剧本文本拆解为短视频与图文生产资料。 输出格式(Markdown): # 剧本拆解包 ## 1) 剧情主线摘要(150字内) ## 2) 关键角色卡(主角+2配角) ## 3) 分镜提纲(6-10镜头) 每条含:镜头目的 / 画面 / 台词要点 / 情绪 ## 4) 60秒口播稿 ## 5) 小红书笔记版文案(220-320字) ## 6) 标题10条(悬念/反差/结论各至少3条) ## 7) 封面文案3组(主+副) 约束: - 不改变原剧情核心事件 - 可优化节奏与表达,但不凭空新增关键设定 - id: user-001 role: user text: | 项目名:{{#1940748800000.project_name#}} 风格参考:{{#1940748800000.style_reference#}} 当前任务目标:{{#1940748800000.task_goal#}} 已有文本:{{#1940748800000.existing_text#}} selected: false title: 剧本拆解AI type: llm variables: [] height: 98 id: '1940748800003' position: x: 1020 y: 520 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: answer: '{{#1940748800001.text#}}' desc: 输出项目总纲与分集卡点 selected: false title: 大纲模式输出 type: answer variables: [] height: 102 id: '1940748800005' position: x: 1330 y: 120 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: answer: '{{#1940748800002.text#}}' desc: 输出单集可拍剧本草稿 selected: false title: 写作模式输出 type: answer variables: [] height: 102 id: '1940748800006' position: x: 1330 y: 350 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: answer: '{{#1940748800003.text#}}' desc: 输出剧本拆解资料包 selected: false title: 拆解模式输出 type: answer variables: [] height: 102 id: '1940748800007' position: x: 1330 y: 520 selected: false sourcePosition: right targetPosition: left type: custom width: 244