590 lines
17 KiB
YAML
590 lines
17 KiB
YAML
app:
|
||
description: 通用剧本创作工作流 - 同时生成大纲、写作、拆解并导出DOCX
|
||
icon: 🎞️
|
||
icon_background: '#E8F5E9'
|
||
mode: workflow
|
||
name: 剧本创作通用工作流-v2
|
||
use_icon_as_answer_icon: false
|
||
dependencies:
|
||
- current_identifier: null
|
||
type: marketplace
|
||
value:
|
||
marketplace_plugin_unique_identifier: bowenliang123/md_exporter:2.2.0@9f39c2c2c1cd09180e2cc053090adc9886019483f502727467f136712b8b9639
|
||
version: null
|
||
- current_identifier: null
|
||
type: marketplace
|
||
value:
|
||
marketplace_plugin_unique_identifier: langgenius/deepseek:0.0.11@35bcd3f233f99d07bdadef8b326945df3bda5e8f773330144bc90d84800336b9
|
||
version: null
|
||
kind: app
|
||
version: 0.5.0
|
||
workflow:
|
||
conversation_variables: []
|
||
environment_variables: []
|
||
features:
|
||
file_upload:
|
||
enabled: false
|
||
opening_statement: '输入项目设定后,将自动同时生成:项目大纲、单集草稿、拆解素材,并导出为DOCX。'
|
||
retriever_resource:
|
||
enabled: false
|
||
sensitive_word_avoidance:
|
||
enabled: false
|
||
speech_to_text:
|
||
enabled: false
|
||
suggested_questions: []
|
||
suggested_questions_after_answer:
|
||
enabled: false
|
||
text_to_speech:
|
||
enabled: false
|
||
language: ''
|
||
voice: ''
|
||
graph:
|
||
edges:
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: start
|
||
targetType: llm
|
||
id: 2040748800000-source-2040748800001-target
|
||
source: '2040748800000'
|
||
sourceHandle: source
|
||
target: '2040748800001'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: llm
|
||
targetType: llm
|
||
id: 2040748800001-source-2040748800002-target
|
||
source: '2040748800001'
|
||
sourceHandle: source
|
||
target: '2040748800002'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: start
|
||
targetType: llm
|
||
id: 2040748800000-source-2040748800003-target
|
||
source: '2040748800000'
|
||
sourceHandle: source
|
||
target: '2040748800003'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: llm
|
||
targetType: code
|
||
id: 2040748800001-source-2040748800004-target
|
||
source: '2040748800001'
|
||
sourceHandle: source
|
||
target: '2040748800004'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: llm
|
||
targetType: code
|
||
id: 2040748800002-source-2040748800004-target
|
||
source: '2040748800002'
|
||
sourceHandle: source
|
||
target: '2040748800004'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: llm
|
||
targetType: code
|
||
id: 2040748800003-source-2040748800004-target
|
||
source: '2040748800003'
|
||
sourceHandle: source
|
||
target: '2040748800004'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: code
|
||
targetType: tool
|
||
id: 2040748800004-source-2040748800005-target
|
||
source: '2040748800004'
|
||
sourceHandle: source
|
||
target: '2040748800005'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: tool
|
||
targetType: end
|
||
id: 2040748800005-source-2040748800006-target
|
||
source: '2040748800005'
|
||
sourceHandle: source
|
||
target: '2040748800006'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
nodes:
|
||
- data:
|
||
selected: false
|
||
title: 开始
|
||
type: start
|
||
variables:
|
||
- default: ''
|
||
hint: ''
|
||
label: 项目名
|
||
max_length: 120
|
||
options: []
|
||
placeholder: ''
|
||
required: true
|
||
type: text-input
|
||
variable: project_name
|
||
- default: ''
|
||
hint: ''
|
||
label: 核心一句话
|
||
max_length: 500
|
||
options: []
|
||
placeholder: ''
|
||
required: true
|
||
type: paragraph
|
||
variable: core_idea
|
||
- default: ''
|
||
hint: ''
|
||
label: 时代与世界观
|
||
max_length: 1200
|
||
options: []
|
||
placeholder: ''
|
||
required: true
|
||
type: paragraph
|
||
variable: world_setting
|
||
- default: ''
|
||
hint: ''
|
||
label: 角色设定
|
||
max_length: 2500
|
||
options: []
|
||
placeholder: ''
|
||
required: true
|
||
type: paragraph
|
||
variable: character_setup
|
||
- default: ''
|
||
hint: ''
|
||
label: 风格参考
|
||
max_length: 1200
|
||
options: []
|
||
placeholder: ''
|
||
required: false
|
||
type: paragraph
|
||
variable: style_reference
|
||
- default: ''
|
||
hint: ''
|
||
label: 当前任务目标
|
||
max_length: 1200
|
||
options: []
|
||
placeholder: ''
|
||
required: false
|
||
type: paragraph
|
||
variable: task_goal
|
||
- default: 第1集
|
||
hint: ''
|
||
label: 目标集数(用于单集生成)
|
||
max_length: 32
|
||
options: []
|
||
placeholder: 例如:第1集 / 第10集
|
||
required: true
|
||
type: text-input
|
||
variable: target_episode
|
||
- default: ''
|
||
hint: ''
|
||
label: 已有文本(用于拆解)
|
||
max_length: 8000
|
||
options: []
|
||
placeholder: ''
|
||
required: false
|
||
type: paragraph
|
||
variable: existing_text
|
||
height: 250
|
||
id: '2040748800000'
|
||
position:
|
||
x: 80
|
||
y: 260
|
||
positionAbsolute:
|
||
x: 80
|
||
y: 260
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
context:
|
||
enabled: false
|
||
variable_selector: []
|
||
desc: 生成项目总纲和分集卡点
|
||
model:
|
||
completion_params:
|
||
temperature: 0.7
|
||
max_tokens: 3200
|
||
mode: chat
|
||
name: deepseek-chat
|
||
provider: langgenius/deepseek/deepseek
|
||
prompt_template:
|
||
- id: sys-001
|
||
role: system
|
||
text: |
|
||
你是资深剧集编剧统筹。输出务必具体、可执行。
|
||
|
||
输出格式(Markdown):
|
||
# A. 项目总纲
|
||
## 核心卖点(3条)
|
||
## 世界观规则(5条)
|
||
## 主角成长弧(起点-转折-代价-终局)
|
||
## 关键配角弧(至少3人)
|
||
## 三幕式结构(每幕目标、冲突、爆点)
|
||
## 20集分集卡点(每集2-3句,含结尾钩子)
|
||
## 风险与修正建议(至少5条)
|
||
- id: usr-001
|
||
role: user
|
||
text: |
|
||
项目名:{{#2040748800000.project_name#}}
|
||
核心一句话:{{#2040748800000.core_idea#}}
|
||
时代与世界观:{{#2040748800000.world_setting#}}
|
||
角色设定:{{#2040748800000.character_setup#}}
|
||
风格参考:{{#2040748800000.style_reference#}}
|
||
当前任务目标:{{#2040748800000.task_goal#}}
|
||
selected: false
|
||
title: 大纲统筹AI
|
||
type: llm
|
||
variables: []
|
||
height: 98
|
||
id: '2040748800001'
|
||
position:
|
||
x: 420
|
||
y: 80
|
||
positionAbsolute:
|
||
x: 420
|
||
y: 80
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
context:
|
||
enabled: false
|
||
variable_selector: []
|
||
desc: 基于A总纲生成指定集数的单集草稿
|
||
model:
|
||
completion_params:
|
||
temperature: 0.72
|
||
max_tokens: 3200
|
||
mode: chat
|
||
name: deepseek-chat
|
||
provider: langgenius/deepseek/deepseek
|
||
prompt_template:
|
||
- id: sys-002
|
||
role: system
|
||
text: |
|
||
你是影视剧本执笔编剧。你的唯一依据是输入的“A.项目总纲”,必须严格对齐,不得偏离。
|
||
|
||
输出格式(Markdown):
|
||
# B. 单集剧本草稿
|
||
## 对齐检查(先输出)
|
||
- 目标集数:
|
||
- 对应总纲卡点原文:
|
||
- 本集承接上集/推进主线说明:
|
||
## 集标题
|
||
## 本集主题与冲突
|
||
## 场景列表(8-12场)
|
||
每场格式:场次编号 / 时空标记 / 画面动作 / 关键对白 / 场尾钩子
|
||
## 节奏检查
|
||
- 前10%钩子
|
||
- 中段升级
|
||
- 结尾不可逆变化
|
||
|
||
硬性约束:
|
||
1. 仅生成“目标集数”对应内容
|
||
2. 不得新增会破坏总纲主线的关键设定
|
||
3. 角色关系与能力边界必须与总纲一致
|
||
4. 信息不足时,只做最小补全并显式标注“补全假设”
|
||
- id: usr-002
|
||
role: user
|
||
text: |
|
||
A.项目总纲全文:
|
||
{{#2040748800001.text#}}
|
||
|
||
项目名:{{#2040748800000.project_name#}}
|
||
目标集数:{{#2040748800000.target_episode#}}
|
||
核心一句话:{{#2040748800000.core_idea#}}
|
||
时代与世界观:{{#2040748800000.world_setting#}}
|
||
角色设定:{{#2040748800000.character_setup#}}
|
||
风格参考:{{#2040748800000.style_reference#}}
|
||
当前任务目标:{{#2040748800000.task_goal#}}
|
||
selected: false
|
||
title: 剧本写作AI
|
||
type: llm
|
||
variables: []
|
||
height: 98
|
||
id: '2040748800002'
|
||
position:
|
||
x: 420
|
||
y: 280
|
||
positionAbsolute:
|
||
x: 420
|
||
y: 280
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
context:
|
||
enabled: false
|
||
variable_selector: []
|
||
desc: 将已有剧本拆解为短视频与图文素材
|
||
model:
|
||
completion_params:
|
||
temperature: 0.65
|
||
max_tokens: 3200
|
||
mode: chat
|
||
name: deepseek-chat
|
||
provider: langgenius/deepseek/deepseek
|
||
prompt_template:
|
||
- id: sys-003
|
||
role: system
|
||
text: |
|
||
你是内容拆解与改编总监。
|
||
|
||
输出格式(Markdown):
|
||
# C. 剧本拆解包
|
||
## 剧情主线摘要(150字内)
|
||
## 关键角色卡(主角+2配角)
|
||
## 分镜提纲(6-10镜头)
|
||
## 60秒口播稿
|
||
## 小红书笔记版文案(220-320字)
|
||
## 标题10条(悬念/反差/结论)
|
||
## 封面文案3组(主+副)
|
||
|
||
约束:不改变原剧情核心事件,不凭空新增关键设定。
|
||
- id: usr-003
|
||
role: user
|
||
text: |
|
||
项目名:{{#2040748800000.project_name#}}
|
||
风格参考:{{#2040748800000.style_reference#}}
|
||
当前任务目标:{{#2040748800000.task_goal#}}
|
||
已有文本:{{#2040748800000.existing_text#}}
|
||
selected: false
|
||
title: 剧本拆解AI
|
||
type: llm
|
||
variables: []
|
||
height: 98
|
||
id: '2040748800003'
|
||
position:
|
||
x: 420
|
||
y: 480
|
||
positionAbsolute:
|
||
x: 420
|
||
y: 480
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
code: |
|
||
function main({project_name, outline_text, writing_text, breakdown_text}) {
|
||
const md = `# ${project_name} - 剧本创作输出包\n\n${outline_text}\n\n---\n\n${writing_text}\n\n---\n\n${breakdown_text}`;
|
||
return {
|
||
merged_markdown: md,
|
||
output_name: `${project_name}-剧本创作输出包`
|
||
};
|
||
}
|
||
code_language: javascript
|
||
outputs:
|
||
merged_markdown:
|
||
children: null
|
||
type: string
|
||
output_name:
|
||
children: null
|
||
type: string
|
||
selected: false
|
||
title: 合并Markdown
|
||
type: code
|
||
variables:
|
||
- value_selector:
|
||
- '2040748800000'
|
||
- project_name
|
||
value_type: string
|
||
variable: project_name
|
||
- value_selector:
|
||
- '2040748800001'
|
||
- text
|
||
value_type: string
|
||
variable: outline_text
|
||
- value_selector:
|
||
- '2040748800002'
|
||
- text
|
||
value_type: string
|
||
variable: writing_text
|
||
- value_selector:
|
||
- '2040748800003'
|
||
- text
|
||
value_type: string
|
||
variable: breakdown_text
|
||
height: 52
|
||
id: '2040748800004'
|
||
position:
|
||
x: 780
|
||
y: 280
|
||
positionAbsolute:
|
||
x: 780
|
||
y: 280
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
is_team_authorization: true
|
||
paramSchemas:
|
||
- auto_generate: null
|
||
default: null
|
||
form: llm
|
||
human_description:
|
||
en_US: Markdown text
|
||
zh_Hans: Markdown格式文本
|
||
label:
|
||
en_US: Markdown text
|
||
zh_Hans: Markdown格式文本
|
||
llm_description: ''
|
||
max: null
|
||
min: null
|
||
name: md_text
|
||
options: []
|
||
placeholder: null
|
||
precision: null
|
||
required: true
|
||
scope: null
|
||
template: null
|
||
type: string
|
||
- auto_generate: null
|
||
default: null
|
||
form: llm
|
||
human_description:
|
||
en_US: Optional docx template file for styling
|
||
zh_Hans: 可选的docx模板文件,用于样式控制
|
||
label:
|
||
en_US: DOCX Template File
|
||
zh_Hans: DOCX 模板文件
|
||
llm_description: ''
|
||
max: null
|
||
min: null
|
||
name: docx_template_file
|
||
options: []
|
||
placeholder: null
|
||
precision: null
|
||
required: false
|
||
scope: null
|
||
template: null
|
||
type: file
|
||
- auto_generate: null
|
||
default: null
|
||
form: llm
|
||
human_description:
|
||
en_US: Optional custom output file name
|
||
zh_Hans: 可选的自定义输出文件名
|
||
label:
|
||
en_US: Output Filename
|
||
zh_Hans: 输出文件名
|
||
llm_description: ''
|
||
max: null
|
||
min: null
|
||
name: output_filename
|
||
options: []
|
||
placeholder: null
|
||
precision: null
|
||
required: false
|
||
scope: null
|
||
template: null
|
||
type: string
|
||
params:
|
||
docx_template_file: ''
|
||
md_text: ''
|
||
output_filename: ''
|
||
plugin_id: bowenliang123/md_exporter
|
||
plugin_unique_identifier: bowenliang123/md_exporter:2.2.0@9f39c2c2c1cd09180e2cc053090adc9886019483f502727467f136712b8b9639
|
||
provider_icon: /console/api/workspaces/current/plugin/icon
|
||
provider_id: bowenliang123/md_exporter/md_exporter
|
||
provider_name: bowenliang123/md_exporter/md_exporter
|
||
provider_type: builtin
|
||
selected: false
|
||
title: Markdown 转 DOCX 文件
|
||
tool_configurations: {}
|
||
tool_description: 将 Markdown 转换为 DOCX 文件的工具
|
||
tool_label: Markdown 转 DOCX 文件
|
||
tool_name: md_to_docx
|
||
tool_node_version: '2'
|
||
tool_parameters:
|
||
docx_template_file:
|
||
type: constant
|
||
value: null
|
||
md_text:
|
||
type: mixed
|
||
value: '{{#2040748800004.merged_markdown#}}'
|
||
output_filename:
|
||
type: mixed
|
||
value: '{{#2040748800004.output_name#}}'
|
||
type: tool
|
||
height: 52
|
||
id: '2040748800005'
|
||
position:
|
||
x: 1140
|
||
y: 280
|
||
positionAbsolute:
|
||
x: 1140
|
||
y: 280
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|
||
- data:
|
||
outputs:
|
||
- value_selector:
|
||
- '2040748800004'
|
||
- merged_markdown
|
||
value_type: string
|
||
variable: merged_markdown
|
||
- value_selector:
|
||
- '2040748800005'
|
||
- files
|
||
value_type: array[file]
|
||
variable: docx_files
|
||
selected: false
|
||
title: 输出
|
||
type: end
|
||
height: 114
|
||
id: '2040748800006'
|
||
position:
|
||
x: 1460
|
||
y: 280
|
||
positionAbsolute:
|
||
x: 1460
|
||
y: 280
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 260
|