AI课件 - AIGC - 片尾曲生产入口
这是知识库中的旧 DSL 案例。DSL 本身是机器文件,下面保留原始 YAML,供后续迭代、对照和排错使用。
文件大小
79702 bytes
来源路径
/Users/ljn/Desktop/自动化搭建/AI生产线知识库/raw/old_dsl/AI课件 - AIGC - 片尾曲生产入口.yml
app:
description: AI课件 - AIGC - 片尾曲生产入口
icon: 🤖
icon_background: '#E3E5E8'
icon_type: emoji
mode: workflow
name: AI课件 - AIGC - 片尾曲生产入口
use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
type: package
value:
plugin_unique_identifier: aict/ai_hub:3.3.1@4e71d8262fbecb133fd6801e8b0a4c141f0bf4f0d6b68cec1b5c254a65365e96
kind: app
version: 0.3.1
workflow:
conversation_variables: []
environment_variables: []
features:
file_upload:
allowed_file_extensions: []
allowed_file_types: []
allowed_file_upload_methods:
- local_file
- cs_file
audio:
enabled: false
number_limits: 1
transfer_methods:
- local_file
enabled: false
fileUploadConfig:
audio_file_size_limit: 100
batch_count_limit: 5
file_size_limit: 50
image_file_size_limit: 20
video_file_size_limit: 100
workflow_file_upload_limit: 10
image:
enabled: false
number_limits: 3
transfer_methods:
- local_file
- cs_file
number_limits: 3
video:
enabled: false
number_limits: 1
transfer_methods:
- local_file
opening_statement: ''
retriever_resource:
enabled: true
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: code
id: 1773816706773-source-1773820241990-target
source: '1773816706773'
sourceHandle: source
target: '1773820241990'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: code
id: 1773820241990-source-1773820841661-target
source: '1773820241990'
sourceHandle: source
target: '1773820841661'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: tool
id: 1773820841661-source-1773821559278-target
source: '1773820841661'
sourceHandle: source
target: '1773821559278'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: tool
targetType: code
id: 1773821559278-source-1773821583353-target
source: '1773821559278'
sourceHandle: source
target: '1773821583353'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: tool
id: 1773821583353-source-1773824094544-target
source: '1773821583353'
sourceHandle: source
target: '1773824094544'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: tool
targetType: code
id: 1773824094544-source-1773824143580-target
source: '1773824094544'
sourceHandle: source
target: '1773824143580'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: tool
id: 1773824143580-source-1773826338168-target
source: '1773824143580'
sourceHandle: source
target: '1773826338168'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: tool
targetType: code
id: 1773826338168-source-1773826563953-target
source: '1773826338168'
sourceHandle: source
target: '1773826563953'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: tool
id: 1773826563953-source-1773827411724-target
source: '1773826563953'
sourceHandle: source
target: '1773827411724'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: tool
targetType: end
id: 1773827411724-source-1773824813141-target
source: '1773827411724'
sourceHandle: source
target: '1773824813141'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: iteration
targetType: llm
id: 1773904007769-source-1773903860409-target
source: '1773904007769'
sourceHandle: source
target: '1773903860409'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: true
isInLoop: false
iteration_id: '1773904007769'
sourceType: iteration-start
targetType: tool
id: 1773904007769start-source-1773904041803-target
source: 1773904007769start
sourceHandle: source
target: '1773904041803'
targetHandle: target
type: custom
zIndex: 1002
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: code
id: 1773903860409-source-1773904234772-target
source: '1773903860409'
sourceHandle: source
target: '1773904234772'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: start
targetType: if-else
id: 1773816706773-source-1773905967062-target
source: '1773816706773'
sourceHandle: source
target: '1773905967062'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: iteration
id: 1773905967062-true-1773904007769-target
source: '1773905967062'
sourceHandle: 'true'
target: '1773904007769'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: code
id: 1773905967062-false-1773906025707-target
source: '1773905967062'
sourceHandle: 'false'
target: '1773906025707'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: variable-aggregator
id: 1773904234772-source-1773906072206-target
source: '1773904234772'
sourceHandle: source
target: '1773906072206'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: variable-aggregator
id: 1773906025707-source-1773906072206-target
source: '1773906025707'
sourceHandle: source
target: '1773906072206'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: variable-aggregator
targetType: code
id: 1773906072206-source-1773820841661-target
source: '1773906072206'
sourceHandle: source
target: '1773820841661'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: start
targetType: if-else
id: 1773816706773-source-1773906147952-target
source: '1773816706773'
sourceHandle: source
target: '1773906147952'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: tool
id: 1773906147952-true-1773905942059-target
source: '1773906147952'
sourceHandle: 'true'
target: '1773905942059'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: tool
targetType: llm
id: 1773905942059-source-1773906244777-target
source: '1773905942059'
sourceHandle: source
target: '1773906244777'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: code
id: 1773906244777-source-1773906529735-target
source: '1773906244777'
sourceHandle: source
target: '1773906529735'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: code
id: 1773906147952-false-1773906577314-target
source: '1773906147952'
sourceHandle: 'false'
target: '1773906577314'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: variable-aggregator
id: 1773906529735-source-1773906619924-target
source: '1773906529735'
sourceHandle: source
target: '1773906619924'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: variable-aggregator
id: 1773906577314-source-1773906619924-target
source: '1773906577314'
sourceHandle: source
target: '1773906619924'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: variable-aggregator
targetType: code
id: 1773906619924-source-1773820841661-target
source: '1773906619924'
sourceHandle: source
target: '1773820841661'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
desc: ''
selected: false
title: 开始
type: start
variables:
- label: session_id
max_length: 200
options: []
required: false
type: text-input
variable: session_id
- label: 项目名称(必填)
max_length: 256
options: []
required: true
type: text-input
variable: project_name
- label: 歌曲语言(默认:中文。可选:英文、日文、中英混合等)
max_length: 200
options: []
required: false
type: text-input
variable: song_language
- label: 演唱者性别(默认:由 AI 推断。可选:男 / 女)
max_length: 50
options: []
required: false
type: text-input
variable: singer_gender
- default: '16:9'
label: 画面比例(默认:16:9。可选:9:16、1:1)
max_length: 50
options:
- '16:9'
- '21:9'
- '3:2'
- '4:3'
- '1:1'
- '3:4'
- '2:3'
- '9:16'
required: false
type: select
variable: aspect_ratio
- label: 主题与情感(必填)
max_length: 20000
options: []
required: true
type: paragraph
variable: theme_and_emotion
- label: 风格(默认:流行 Pop。可选:电子流行、民谣摇滚、Lo-fi Hip-hop、古风、R&B 等)
max_length: 256
options: []
required: false
type: text-input
variable: music_style
- label: 节奏感(默认:中速。可选:快/慢)
max_length: 256
options: []
required: false
type: text-input
variable: music_tempo
- label: 情绪关键词(默认:从主题与情感中推断。可选:忧伤、治愈、燃、梦幻、孤独、温暖等)
max_length: 256
options: []
required: false
type: text-input
variable: music_emotion_keywords
- label: 参考曲目(默认:不指定。如有可列出歌名和艺术家)
max_length: 20000
options: []
required: false
type: paragraph
variable: music_reference_songs
- label: 画面风格(默认:写实电影感。可选:赛博朋克、水墨风、动漫风、极简主义等)
max_length: 256
options: []
required: false
type: text-input
variable: visual_style
- label: 色调倾向(默认:自然色调。可选:冷色调蓝紫、暖色调橙黄、黑白对比、霓虹色彩等)
max_length: 256
options: []
required: false
type: text-input
variable: visual_color_tone
- label: 参考视觉(默认:不指定。如有可描述参考的 MV、电影、画作风格)
max_length: 20000
options: []
required: false
type: paragraph
variable: visual_reference
- label: 特殊要求
max_length: 10000000000000000000
options: []
required: false
type: paragraph
variable: special_requirements
- label: 参考图说明(#N,类型:锁定/参考,标签:xxx,说明:xxx;)
max_length: 1000000000000000000
options: []
required: false
type: paragraph
variable: reference_image_description
- allowed_file_extensions: []
allowed_file_types:
- image
allowed_file_upload_methods:
- local_file
label: 参考图文件
max_length: 6
options: []
required: false
type: file-list
variable: reference_image_files
- allowed_file_extensions: []
allowed_file_types:
- image
allowed_file_upload_methods:
- local_file
label: IP形象图
max_length: 48
options: []
required: false
type: file
variable: ip_character_file
- label: IP形象说明(类型:锁定/参考,名称:xxx,人设描述:xxx,年龄设定:xxx,出镜率:xx%)
max_length: 100000000000000000
options: []
required: false
type: paragraph
variable: ip_character_description
height: 532
id: '1773816706773'
position:
x: 30
y: 466
positionAbsolute:
x: 30
y: 466
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({ session_id }) {\n let new_session_id = null;\n if\
\ (session_id) {\n new_session_id = session_id;\n } else {\n // 当前时间(年月日时分秒)加上一个随机数,生成一个新的\
\ session_id\n const now = new Date();\n const timestamp = now.getFullYear().toString()\
\ + (now.getMonth() + 1).toString().padStart(2, '0') +\n now.getDate().toString().padStart(2,\
\ '0') +\n now.getHours().toString().padStart(2, '0') +\n now.getMinutes().toString().padStart(2,\
\ '0') +\n now.getSeconds().toString().padStart(2, '0');\n const\
\ randomNum = Math.floor(Math.random() * 10000).toString().padStart(4, '0');\n\
\ new_session_id = `${timestamp}_${randomNum}`;\n }\n\n const projectKey\
\ = \"mv_team\";\n\n return {\n session_id: new_session_id,\n projectKey:\
\ projectKey,\n };\n}\n"
code_language: javascript
desc: ''
outputs:
projectKey:
children: null
type: string
session_id:
children: null
type: string
selected: false
title: 基础参数处理
type: code
variables:
- value_selector:
- '1773816706773'
- session_id
value_type: string
variable: session_id
height: 54
id: '1773820241990'
position:
x: 2055
y: 466
positionAbsolute:
x: 2055
y: 466
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({\n session_id,\n project_name,\n song_language,\n\
\ singer_gender,\n aspect_ratio,\n theme_and_emotion,\n music_style,\n\
\ music_tempo,\n music_emotion_keywords,\n music_reference_songs,\n \
\ visual_style,\n visual_color_tone,\n visual_reference,\n special_requirements,\n\
\ reference_images,\n ip_character,\n}) {\n const payload = {\n session_id,\n\
\ phase: \"song\",\n project_name,\n };\n if (song_language) {\n\
\ payload.song_language = song_language;\n }\n if (singer_gender) {\n\
\ payload.singer_gender = singer_gender;\n }\n if (aspect_ratio) {\n\
\ payload.aspect_ratio = aspect_ratio;\n }\n if (theme_and_emotion)\
\ {\n payload.theme_and_emotion = theme_and_emotion;\n }\n if (music_style)\
\ {\n payload.music_style = music_style;\n }\n if (music_tempo) {\n\
\ payload.music_tempo = music_tempo;\n }\n if (music_emotion_keywords)\
\ {\n payload.music_emotion_keywords = music_emotion_keywords;\n }\n\
\ if (music_reference_songs) {\n payload.music_reference_songs = music_reference_songs;\n\
\ }\n if (visual_style) {\n payload.visual_style = visual_style;\n\
\ }\n if (visual_color_tone) {\n payload.visual_color_tone = visual_color_tone;\n\
\ }\n if (visual_reference) {\n payload.visual_reference = visual_reference;\n\
\ }\n if (Array.isArray(reference_images) && reference_images.length >\
\ 0) {\n payload.reference_images = reference_images;\n }\n if (ip_character\
\ && ip_character.url) {\n payload.ip_character = ip_character;\n }\n\
\ if (special_requirements) {\n payload.special_requirements = special_requirements;\n\
\ }\n\n return {\n payload,\n payload_str: JSON.stringify(payload),\n\
\ timeoutMs: 40 * 60 * 1000, // 40分钟\n };\n}\n"
code_language: javascript
desc: ''
outputs:
payload:
children: null
type: object
payload_str:
children: null
type: string
timeoutMs:
children: null
type: number
selected: false
title: 第一阶段AI执行参数
type: code
variables:
- value_selector:
- '1773820241990'
- session_id
value_type: string
variable: session_id
- value_selector:
- '1773816706773'
- project_name
value_type: string
variable: project_name
- value_selector:
- '1773816706773'
- song_language
value_type: string
variable: song_language
- value_selector:
- '1773816706773'
- singer_gender
value_type: string
variable: singer_gender
- value_selector:
- '1773816706773'
- aspect_ratio
value_type: string
variable: aspect_ratio
- value_selector:
- '1773816706773'
- theme_and_emotion
value_type: string
variable: theme_and_emotion
- value_selector:
- '1773816706773'
- music_style
value_type: string
variable: music_style
- value_selector:
- '1773816706773'
- music_tempo
value_type: string
variable: music_tempo
- value_selector:
- '1773816706773'
- music_emotion_keywords
value_type: string
variable: music_emotion_keywords
- value_selector:
- '1773816706773'
- music_reference_songs
value_type: string
variable: music_reference_songs
- value_selector:
- '1773816706773'
- visual_style
value_type: string
variable: visual_style
- value_selector:
- '1773816706773'
- visual_color_tone
value_type: string
variable: visual_color_tone
- value_selector:
- '1773816706773'
- visual_reference
value_type: string
variable: visual_reference
- value_selector:
- '1773816706773'
- special_requirements
value_type: string
variable: special_requirements
- value_selector:
- '1773906072206'
- output
value_type: array[object]
variable: reference_images
- value_selector:
- '1773906619924'
- output
value_type: object
variable: ip_character
height: 54
id: '1773820841661'
position:
x: 2389
y: 603
positionAbsolute:
x: 2389
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_team_authorization: true
output_schema: null
outputs:
- type: object
value_selector:
- '1773815446902'
- json_result
value_type: object
variable: json_result
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: projectKey
ja_JP: projectKey
pt_BR: projectKey
zh_Hans: projectKey
llm_description: ''
max: null
min: null
name: projectKey
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 业务 ID
ja_JP: 业务 ID
pt_BR: 业务 ID
zh_Hans: 业务 ID
llm_description: ''
max: null
min: null
name: bizId
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 幂等键
ja_JP: 幂等键
pt_BR: 幂等键
zh_Hans: 幂等键
llm_description: ''
max: null
min: null
name: idempotencyKey
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: prompt
ja_JP: prompt
pt_BR: prompt
zh_Hans: prompt
llm_description: ''
max: null
min: null
name: prompt
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: payload
ja_JP: payload
pt_BR: payload
zh_Hans: payload
llm_description: ''
max: null
min: null
name: payload
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: assets
ja_JP: assets
pt_BR: assets
zh_Hans: assets
llm_description: ''
max: null
min: null
name: assets
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: timeoutMs
ja_JP: timeoutMs
pt_BR: timeoutMs
zh_Hans: timeoutMs
llm_description: ''
max: null
min: null
name: timeoutMs
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: number
params:
assets: ''
bizId: ''
idempotencyKey: ''
payload: ''
projectKey: ''
prompt: ''
timeoutMs: ''
provider_id: 07bcb809-11aa-4339-a9e8-496225d02783
provider_name: AI课件-AIGC-TEAM
provider_type: workflow
retry_config:
max_retries: 1
retry_enabled: true
retry_interval: 1000
selected: true
title: 第一阶段-AIGC-TEAM
tool_configurations: {}
tool_description: "AIGC-TEAM任务接口调用\n\n字段说明:\n\n- projectKey:必填\n- bizId:可选,可为\
\ null\n- idempotencyKey:可选;如果同一个 projectKey 下已存在相同 idempotencyKey 的任务,则直接返回旧任务,不会重复创建\n\
- prompt:可选,可为 null\n- payload:可选,键值对象\n- assets:可选,AssetItem 数组。每个元素包含:\n\
\ - type:必填,`image` 或 `document`\n - url:必填,资源的 HTTP/HTTPS URL\n - name:可选,资源名称(仅用于标识)\n\
\ \n assets 会在 transform 阶段按 type 拆分为 `images` 和 `documents` URL 数组,传递给\
\ ai-code 下载到工作区供 Agent 使用。若 transform 未处理 assets,系统会发出 warn 级别事件提醒。\n-\
\ timeoutMs:可选,正整数或 null;当项目 transform 未返回 timeoutMs 时,此值会作为任务执行超时\n- executionMode:可选,work\
\ 或 workStream"
tool_label: AI课件-AIGC-TEAM
tool_name: aic_aigc_team
tool_node_version: '2'
tool_parameters:
assets:
type: mixed
value: null
bizId:
type: mixed
value: '{{#1773820241990.session_id#}}'
idempotencyKey:
type: mixed
value: null
payload:
type: mixed
value: '{{#1773820841661.payload_str#}}'
projectKey:
type: mixed
value: '{{#1773820241990.projectKey#}}'
prompt:
type: mixed
value: null
timeoutMs:
type: variable
value:
- '1773820841661'
- timeoutMs
type: tool
height: 124
id: '1773821559278'
position:
x: 2723
y: 603
positionAbsolute:
x: 2723
y: 603
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({ json_result }) {\n let result = null;\n let error\
\ = null;\n if (json_result && json_result.result) {\n result = json_result.result;\n\
\ }\n\n if (!result) {\n error = \"Result is null or undefined.\";\n\
\ } else {\n if (result.error) {\n error = result.error;\n }\n\
\ }\n\n\n if (error) {\n throw new Error(error);\n }\n\n const {\n\
\ output,\n resultPackageUrl,\n } = result;\n\n if (!output) {\n\
\ error = \"Output is null or undefined.\";\n }\n if (!resultPackageUrl)\
\ {\n error = (error ? error + \", \" : \"\") + \"Result package URL\
\ is null or undefined.\";\n }\n\n if (error) {\n throw new Error(error);\n\
\ }\n\n return {\n phase1_output: output,\n phase1_output_str: JSON.stringify(output),\n\
\ phase1_result_package_url: resultPackageUrl,\n };\n}\n"
code_language: javascript
desc: ''
outputs:
phase1_output:
children: null
type: object
phase1_output_str:
children: null
type: string
phase1_result_package_url:
children: null
type: string
selected: false
title: 第一阶段结果处理
type: code
variables:
- value_selector:
- '1773821559278'
- json_result
value_type: object
variable: json_result
height: 54
id: '1773821583353'
position:
x: 3057
y: 603
positionAbsolute:
x: 3057
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_team_authorization: true
output_schema: null
outputs:
- type: string
value_selector:
- '1773216146094'
- phase2_input
value_type: string
variable: phase2_input
- type: string
value_selector:
- '1773214662729'
- json
value_type: string
variable: timeline
- type: string
value_selector:
- '1773212909752'
- url
value_type: string
variable: url
- type: object
value_selector:
- '1773214662729'
- timeline
value_type: object
variable: timeline_obj
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 第一阶段产出JSON
ja_JP: 第一阶段产出JSON
pt_BR: 第一阶段产出JSON
zh_Hans: 第一阶段产出JSON
llm_description: ''
max: null
min: null
name: phase1_output_json
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
params:
phase1_output_json: ''
provider_id: 7c6af460-c278-49dc-a7be-7575802da0e0
provider_name: AI课件 - AIGC - 片尾曲歌曲制作阶段
provider_type: workflow
selected: false
title: AI课件 - AIGC - 片尾曲歌曲制作阶段
tool_configurations: {}
tool_description: AI课件 - AIGC - 片尾曲歌曲制作阶段
tool_label: AI课件 - AIGC - 片尾曲歌曲制作阶段
tool_name: aic_aigc_ending_song_phase2
tool_node_version: '2'
tool_parameters:
phase1_output_json:
type: mixed
value: '{{#1773821583353.phase1_output_str#}}'
type: tool
height: 94
id: '1773824094544'
position:
x: 3391
y: 603
positionAbsolute:
x: 3391
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({ session_id, phase2_input, url, timeline_obj, phase1_result_package_url\
\ }) {\n const payload = {\n session_id,\n phase: \"mv\",\n song_url:\
\ url,\n phase1_result_package_url,\n timeline: timeline_obj,\n }\n\
\n return {\n prompt: phase2_input,\n payload,\n payload_str:\
\ JSON.stringify(payload),\n timeoutMs: 2.5 * 60 * 60 * 1000, // 2.5小时\n\
\ };\n}\n"
code_language: javascript
desc: ''
outputs:
payload:
children: null
type: object
payload_str:
children: null
type: string
prompt:
children: null
type: string
timeoutMs:
children: null
type: number
selected: false
title: 第二阶段AI执行参数
type: code
variables:
- value_selector:
- '1773820241990'
- session_id
value_type: string
variable: session_id
- value_selector:
- '1773824094544'
- phase2_input
value_type: string
variable: phase2_input
- value_selector:
- '1773824094544'
- url
value_type: string
variable: url
- value_selector:
- '1773824094544'
- timeline_obj
value_type: object
variable: timeline_obj
- value_selector:
- '1773821583353'
- phase1_result_package_url
value_type: string
variable: phase1_result_package_url
height: 54
id: '1773824143580'
position:
x: 3725
y: 603
positionAbsolute:
x: 3725
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
outputs:
- value_selector:
- '1773827411724'
- url
value_type: string
variable: url
- value_selector:
- '1773827411724'
- storyboards
value_type: array[object]
variable: storyboards
selected: false
title: 结束
type: end
height: 116
id: '1773824813141'
position:
x: 5061
y: 603
positionAbsolute:
x: 5061
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_team_authorization: true
output_schema: null
outputs:
- type: object
value_selector:
- '1773815446902'
- json_result
value_type: object
variable: json_result
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: projectKey
ja_JP: projectKey
pt_BR: projectKey
zh_Hans: projectKey
llm_description: ''
max: null
min: null
name: projectKey
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 业务 ID
ja_JP: 业务 ID
pt_BR: 业务 ID
zh_Hans: 业务 ID
llm_description: ''
max: null
min: null
name: bizId
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 幂等键
ja_JP: 幂等键
pt_BR: 幂等键
zh_Hans: 幂等键
llm_description: ''
max: null
min: null
name: idempotencyKey
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: prompt
ja_JP: prompt
pt_BR: prompt
zh_Hans: prompt
llm_description: ''
max: null
min: null
name: prompt
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: payload
ja_JP: payload
pt_BR: payload
zh_Hans: payload
llm_description: ''
max: null
min: null
name: payload
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: assets
ja_JP: assets
pt_BR: assets
zh_Hans: assets
llm_description: ''
max: null
min: null
name: assets
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: timeoutMs
ja_JP: timeoutMs
pt_BR: timeoutMs
zh_Hans: timeoutMs
llm_description: ''
max: null
min: null
name: timeoutMs
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: number
params:
assets: ''
bizId: ''
idempotencyKey: ''
payload: ''
projectKey: ''
prompt: ''
timeoutMs: ''
provider_id: 07bcb809-11aa-4339-a9e8-496225d02783
provider_name: AI课件-AIGC-TEAM
provider_type: workflow
retry_config:
max_retries: 1
retry_enabled: true
retry_interval: 1000
selected: false
title: 第二阶段-AIGC-TEAM
tool_configurations: {}
tool_description: "AIGC-TEAM任务接口调用\n\n字段说明:\n\n- projectKey:必填\n- bizId:可选,可为\
\ null\n- idempotencyKey:可选;如果同一个 projectKey 下已存在相同 idempotencyKey 的任务,则直接返回旧任务,不会重复创建\n\
- prompt:可选,可为 null\n- payload:可选,键值对象\n- assets:可选,AssetItem 数组。每个元素包含:\n\
\ - type:必填,`image` 或 `document`\n - url:必填,资源的 HTTP/HTTPS URL\n - name:可选,资源名称(仅用于标识)\n\
\ \n assets 会在 transform 阶段按 type 拆分为 `images` 和 `documents` URL 数组,传递给\
\ ai-code 下载到工作区供 Agent 使用。若 transform 未处理 assets,系统会发出 warn 级别事件提醒。\n-\
\ timeoutMs:可选,正整数或 null;当项目 transform 未返回 timeoutMs 时,此值会作为任务执行超时\n- executionMode:可选,work\
\ 或 workStream"
tool_label: AI课件-AIGC-TEAM
tool_name: aic_aigc_team
tool_node_version: '2'
tool_parameters:
assets:
type: mixed
value: null
bizId:
type: mixed
value: '{{#1773820241990.session_id#}}'
idempotencyKey:
type: mixed
value: null
payload:
type: mixed
value: '{{#1773824143580.payload_str#}}'
projectKey:
type: mixed
value: '{{#1773820241990.projectKey#}}'
prompt:
type: mixed
value: '{{#1773824143580.prompt#}}'
timeoutMs:
type: variable
value:
- '1773824143580'
- timeoutMs
type: tool
height: 124
id: '1773826338168'
position:
x: 4059
y: 603
positionAbsolute:
x: 4059
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({ json_result }) {\n let result = null;\n let error\
\ = null;\n if (json_result && json_result.result) {\n result = json_result.result;\n\
\ }\n\n if (!result) {\n error = \"Result is null or undefined.\";\n\
\ } else {\n if (result.error) {\n error = result.error;\n }\n\
\ }\n\n\n if (error) {\n throw new Error(error);\n }\n\n const {\n\
\ output,\n resultPackageUrl,\n } = result;\n\n if (!output) {\n\
\ error = \"Output is null or undefined.\";\n }\n if (!resultPackageUrl)\
\ {\n error = (error ? error + \", \" : \"\") + \"Result package URL\
\ is null or undefined.\";\n }\n\n if (error) {\n throw new Error(error);\n\
\ }\n\n return {\n phase2_output: output,\n phase2_output_str: JSON.stringify(output),\n\
\ phase2_result_package_url: resultPackageUrl,\n };\n}\n"
code_language: javascript
desc: ''
outputs:
phase2_output:
children: null
type: object
phase2_output_str:
children: null
type: string
phase2_result_package_url:
children: null
type: string
selected: false
title: 第二阶段结果处理
type: code
variables:
- value_selector:
- '1773826338168'
- json_result
value_type: object
variable: json_result
height: 54
id: '1773826563953'
position:
x: 4393
y: 603
positionAbsolute:
x: 4393
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_team_authorization: true
output_schema: null
outputs:
- type: string
value_selector:
- '1773219360493'
- url
value_type: string
variable: url
- type: array[object]
value_selector:
- '1773147042506'
- output
value_type: array[object]
variable: storyboards
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: JSON
ja_JP: JSON
pt_BR: JSON
zh_Hans: JSON
llm_description: ''
max: null
min: null
name: JSON
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
- auto_generate: null
default: '3.5'
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: jimeng_version
ja_JP: jimeng_version
pt_BR: jimeng_version
zh_Hans: jimeng_version
llm_description: ''
max: null
min: null
name: jimeng_version
options:
- icon: null
label:
en_US: '3.5'
ja_JP: '3.5'
pt_BR: '3.5'
zh_Hans: '3.5'
value: '3.5'
- icon: null
label:
en_US: '3.0'
ja_JP: '3.0'
pt_BR: '3.0'
zh_Hans: '3.0'
value: '3.0'
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: select
params:
JSON: ''
jimeng_version: ''
provider_id: dcaef937-21e7-439d-afb0-ad2179cbe7f3
provider_name: AI课件 - AIGC - 片尾曲MV制作阶段
provider_type: workflow
selected: false
title: AI课件 - AIGC - 片尾曲MV制作阶段
tool_configurations: {}
tool_description: AI课件 - AIGC - 片尾曲MV制作阶段
tool_label: AI课件 - AIGC - 片尾曲MV制作阶段
tool_name: aic_aigc_ending_song_mv
tool_node_version: '2'
tool_parameters:
JSON:
type: mixed
value: '{{#1773826563953.phase2_output_str#}}'
aspect_ratio:
type: variable
value:
- '1773816706773'
- aspect_ratio
jimeng_version:
type: constant
value: '3.5'
type: tool
height: 94
id: '1773827411724'
position:
x: 4727
y: 603
positionAbsolute:
x: 4727
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
audio:
configs:
variable_selector: []
enabled: false
context:
enabled: false
variable_selector: []
desc: ''
document:
configs:
variable_selector: []
enabled: false
model:
completion_params:
max_completion_tokens: 128000
mode: chat
name: gpt-5.4-2026-03-05
provider: aict/ai_hub/ai_hub
prompt_template:
- id: 2f6d856b-69e0-46a1-a916-4821f9d20af2
role: system
text: "你是一个参考图数据解析器。将用户的「参考图说明文本」与「图片URL列表」合并为结构化 JSON 数组。\n\n## 输入\n\n\
1. **参考图说明**(字符串):用户对每张图的描述。标准格式为 `#N,类型:锁定/参考,标签:xxx,说明:xxx`,多张图用分号或换行分隔。\n\
2. **图片URL列表**(字符串数组):有序的图片地址,`#1` 对应第一个 URL,`#2` 对应第二个,依此类推。\n\n## 输出\n\
\n严格只输出一个 JSON 数组,不要有任何其他文字。每个元素:\n\n```json\n{\"url\": \"图片URL\", \"\
type\": \"reference 或 locked\", \"label\": \"标签\", \"usage\": \"说明\"}\n\
```\n\n## 解析规则\n\n### 标准格式(优先按此解析)\n\n```\n#1,类型:锁定,标签:女主角,说明:确保人物外貌一致;#2,类型:参考,标签:暖色氛围,说明:色调参考\n\
```\n\n按 `#N` 分块,每块提取「类型」「标签」「说明」三个键值对。\n\n### 字段映射\n\n| 字段 | 键名识别 | 值映射\
\ | 默认值 |\n|------|---------|--------|--------|\n| type | `类型` | `参考`\
\ → `\"reference\"`;`锁定` → `\"locked\"` | `\"reference\"` |\n| label |\
\ `标签` | 原文 | `\"图N\"` |\n| usage | `说明` | 原文 | `\"\"` |\n\n### 容错处理\n\
\n用户输入可能偏离标准格式,需兼容以下情况:\n\n- **序号变体**:`#1` / `第1张` / `第一张图` / `图1` / `1.`\
\ / `1、` 等均视为第 1 张图\n- **中文数字**:一二三…转为 1 2 3…\n- **标点混用**:中英文逗号(`,` `,`)、分号(`;`\
\ `;`)、冒号(`:` `:`)互通\n- **字段缺失**:未写的字段用默认值补全\n- **字段顺序不固定**:如 `#1,标签:女主角,类型:锁定,说明:...`\
\ 也合法\n- **口语化**:如 `第一张是女主角,锁定,确保一致`,需推断 label 和 usage\n- **无序号分段**:无明确序号时按出现顺序依次对应第\
\ 1、2、3… 张图\n\n### 通用规则\n\n1. 若说明中图片数少于 URL 列表,未描述的图片补默认值。\n2. 忽略序号超出\
\ URL 列表范围的描述。\n3. 输出顺序与 URL 列表一致。\n4. 若说明为空或无法解析,所有图片均用默认值。\n\n## 示例\n\
\n### 示例1:标准格式\n\n**输入:**\n\n- 说明:`#1,类型:锁定,标签:女主角,说明:所有出现女主角的分镜都用此图确保人物外貌一致;#2,类型:参考,标签:暖色氛围,说明:整体色调参考这张图的暖黄色氛围`\n\
- URL列表:`[\"https://a.com/1.jpg\", \"https://a.com/2.jpg\"]`\n\n**输出:**\n\
\n```json\n[\n {\"url\": \"https://a.com/1.jpg\", \"type\": \"locked\"\
, \"label\": \"女主角\", \"usage\": \"所有出现女主角的分镜都用此图确保人物外貌一致\"},\n {\"url\"\
: \"https://a.com/2.jpg\", \"type\": \"reference\", \"label\": \"暖色氛围\"\
, \"usage\": \"整体色调参考这张图的暖黄色氛围\"}\n]\n```\n\n### 示例2:字段缺失 + 部分图片无说明\n\n\
**输入:**\n\n- 说明:`#1,类型:锁定,标签:女主角;#2,标签:暖色氛围`\n- URL列表:`[\"https://a.com/1.jpg\"\
, \"https://a.com/2.jpg\", \"https://a.com/3.jpg\"]`\n\n**输出:**\n\n```json\n\
[\n {\"url\": \"https://a.com/1.jpg\", \"type\": \"locked\", \"label\"\
: \"女主角\", \"usage\": \"\"},\n {\"url\": \"https://a.com/2.jpg\", \"\
type\": \"reference\", \"label\": \"暖色氛围\", \"usage\": \"\"},\n {\"url\"\
: \"https://a.com/3.jpg\", \"type\": \"reference\", \"label\": \"图3\"\
, \"usage\": \"\"}\n]\n```\n\n### 示例3:口语化输入\n\n**输入:**\n\n- 说明:`第一张图是女主角的脸,锁定,所有分镜要保持一致。第二张是参考氛围用的,暖色调`\n\
- URL列表:`[\"https://a.com/1.jpg\", \"https://a.com/2.jpg\"]`\n\n**输出:**\n\
\n```json\n[\n {\"url\": \"https://a.com/1.jpg\", \"type\": \"locked\"\
, \"label\": \"女主角\", \"usage\": \"所有分镜要保持一致\"},\n {\"url\": \"https://a.com/2.jpg\"\
, \"type\": \"reference\", \"label\": \"暖色氛围\", \"usage\": \"暖色调\"}\n\
]\n```"
- id: 89324d16-9efa-4fa2-a5d8-b24c2d5c7fb4
role: user
text: '现在请处理以下输入:
**参考图说明:**
{{#1773816706773.reference_image_description#}}
**图片URL列表:**
{{#1773904007769.output#}}'
selected: false
title: 解析参考图LLM
type: llm
variables: []
video:
configs:
variable_selector: []
enabled: false
vision:
enabled: false
height: 122
id: '1773903860409'
position:
x: 1387
y: 603
positionAbsolute:
x: 1387
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
error_handle_mode: terminated
height: 214
is_parallel: false
iterator_input_type: array[file]
iterator_selector:
- '1773816706773'
- reference_image_files
output_selector:
- '1773904041803'
- url
output_type: array[string]
parallel_nums: 10
selected: false
start_node_id: 1773904007769start
title: 遍历
type: iteration
width: 508
height: 214
id: '1773904007769'
position:
x: 789
y: 603
positionAbsolute:
x: 789
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 508
zIndex: 1
- data:
desc: ''
isInIteration: true
selected: false
title: ''
type: iteration-start
draggable: false
height: 48
id: 1773904007769start
parentId: '1773904007769'
position:
x: 60
y: 83
positionAbsolute:
x: 849
y: 686
selectable: false
sourcePosition: right
targetPosition: left
type: custom-iteration-start
width: 44
zIndex: 1002
- data:
desc: ''
isInIteration: true
isInLoop: false
is_team_authorization: true
iteration_id: '1773904007769'
output_schema: null
outputs:
- type: string
value_selector:
- '1772431478571'
- url
value_type: string
variable: url
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源地址
ja_JP: 资源地址
pt_BR: 资源地址
zh_Hans: 资源地址
llm_description: ''
max: null
min: null
name: url
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源类型
ja_JP: 资源类型
pt_BR: 资源类型
zh_Hans: 资源类型
llm_description: ''
max: null
min: null
name: type
options:
- icon: null
label:
en_US: jpg/image
ja_JP: jpg/image
pt_BR: jpg/image
zh_Hans: jpg/image
value: jpg/image
- icon: null
label:
en_US: mp4/video
ja_JP: mp4/video
pt_BR: mp4/video
zh_Hans: mp4/video
value: mp4/video
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: select
- auto_generate: null
default: 'false'
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源是否传cs
ja_JP: 资源是否传cs
pt_BR: 资源是否传cs
zh_Hans: 资源是否传cs
llm_description: ''
max: null
min: null
name: isCs
options:
- icon: null
label:
en_US: 'true'
ja_JP: 'true'
pt_BR: 'true'
zh_Hans: 'true'
value: 'true'
- icon: null
label:
en_US: 'false'
ja_JP: 'false'
pt_BR: 'false'
zh_Hans: 'false'
value: 'false'
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: select
- auto_generate: null
default: 是
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 是否返回CDN地址(默认:是)
ja_JP: 是否返回CDN地址(默认:是)
pt_BR: 是否返回CDN地址(默认:是)
zh_Hans: 是否返回CDN地址(默认:是)
llm_description: ''
max: null
min: null
name: isCdn
options:
- icon: null
label:
en_US: 是
ja_JP: 是
pt_BR: 是
zh_Hans: 是
value: 是
- icon: null
label:
en_US: 否
ja_JP: 否
pt_BR: 否
zh_Hans: 否
value: 否
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: select
params:
isCdn: ''
isCs: ''
type: ''
url: ''
provider_id: 8e9ef31b-83d5-4a5a-a717-1e7d86250a62
provider_name: AI课件-资源转存
provider_type: workflow
selected: false
title: 参考图-资源转存
tool_configurations: {}
tool_description: 把外网的资源转存的ndr上
tool_label: AI课件-资源转存
tool_name: aic_resource_storage
tool_node_version: '2'
tool_parameters:
isCdn:
type: constant
value: 否
isCs:
type: constant
value: 'true'
type:
type: constant
value: jpg/image
url:
type: mixed
value: '{{#1773904007769.item.url#}}'
type: tool
height: 94
id: '1773904041803'
parentId: '1773904007769'
position:
x: 204
y: 60
positionAbsolute:
x: 993
y: 663
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
zIndex: 1002
- data:
code: "function main({ llm_result }) {\n let format_llm_result = llm_result;\n\
\ if (format_llm_result.indexOf(\"```json\") >= 0) {\n // 深度思考结果\n \
\ // 取出json代码块\n const startIndex = format_llm_result.indexOf(\"```json\"\
);\n const endIndex = format_llm_result.indexOf(\"```\", startIndex +\
\ 7);\n if (startIndex >= 0 && endIndex > startIndex) {\n // 提取json字符串\n\
\ format_llm_result = format_llm_result.substring(startIndex + 7, endIndex);\n\
\ // 去掉代码块的换行(\\r\\n)\n format_llm_result = format_llm_result.replace(/[\\\
r\\n]/g, \"\");\n }\n }\n\n const parseResult = JSON.parse(format_llm_result);\n\
\ return {\n reference_images: parseResult,\n };\n}\n"
code_language: javascript
desc: ''
outputs:
reference_images:
children: null
type: array[object]
selected: false
title: 解析参考图结果处理
type: code
variables:
- value_selector:
- '1773903860409'
- text
value_type: string
variable: llm_result
height: 54
id: '1773904234772'
position:
x: 1721
y: 603
positionAbsolute:
x: 1721
y: 603
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_team_authorization: true
output_schema: null
outputs:
- type: string
value_selector:
- '1772431478571'
- url
value_type: string
variable: url
paramSchemas:
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源地址
ja_JP: 资源地址
pt_BR: 资源地址
zh_Hans: 资源地址
llm_description: ''
max: null
min: null
name: url
options: []
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: string
- auto_generate: null
default: null
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源类型
ja_JP: 资源类型
pt_BR: 资源类型
zh_Hans: 资源类型
llm_description: ''
max: null
min: null
name: type
options:
- icon: null
label:
en_US: jpg/image
ja_JP: jpg/image
pt_BR: jpg/image
zh_Hans: jpg/image
value: jpg/image
- icon: null
label:
en_US: mp4/video
ja_JP: mp4/video
pt_BR: mp4/video
zh_Hans: mp4/video
value: mp4/video
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: true
scope: null
template: null
type: select
- auto_generate: null
default: 'false'
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 资源是否传cs
ja_JP: 资源是否传cs
pt_BR: 资源是否传cs
zh_Hans: 资源是否传cs
llm_description: ''
max: null
min: null
name: isCs
options:
- icon: null
label:
en_US: 'true'
ja_JP: 'true'
pt_BR: 'true'
zh_Hans: 'true'
value: 'true'
- icon: null
label:
en_US: 'false'
ja_JP: 'false'
pt_BR: 'false'
zh_Hans: 'false'
value: 'false'
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: select
- auto_generate: null
default: 是
form: llm
human_description:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
label:
en_US: 是否返回CDN地址(默认:是)
ja_JP: 是否返回CDN地址(默认:是)
pt_BR: 是否返回CDN地址(默认:是)
zh_Hans: 是否返回CDN地址(默认:是)
llm_description: ''
max: null
min: null
name: isCdn
options:
- icon: null
label:
en_US: 是
ja_JP: 是
pt_BR: 是
zh_Hans: 是
value: 是
- icon: null
label:
en_US: 否
ja_JP: 否
pt_BR: 否
zh_Hans: 否
value: 否
placeholder:
en_US: ''
ja_JP: ''
pt_BR: ''
zh_Hans: ''
precision: null
required: false
scope: null
template: null
type: select
params:
isCdn: ''
isCs: ''
type: ''
url: ''
provider_id: 8e9ef31b-83d5-4a5a-a717-1e7d86250a62
provider_name: AI课件-资源转存
provider_type: workflow
selected: false
title: IP形象图-资源转存
tool_configurations: {}
tool_description: 把外网的资源转存的ndr上
tool_label: AI课件-资源转存
tool_name: aic_resource_storage
tool_node_version: '2'
tool_parameters:
isCdn:
type: constant
value: 否
isCs:
type: constant
value: 'true'
type:
type: constant
value: jpg/image
url:
type: mixed
value: '{{#1773816706773.ip_character_file.url#}}'
type: tool
height: 94
id: '1773905942059'
position:
x: 921
y: 991
positionAbsolute:
x: 921
y: 991
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: not empty
id: 4cad36a9-734e-42b1-973a-32cf99ee3219
value: ''
varType: array[file]
variable_selector:
- '1773816706773'
- reference_image_files
id: 'true'
logical_operator: and
desc: ''
selected: false
title: 是否有参考图
type: if-else
height: 126
id: '1773905967062'
position:
x: 364
y: 780
positionAbsolute:
x: 364
y: 780
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "\nfunction main() {\n return {\n reference_images: []\n \
\ }\n}\n"
code_language: javascript
desc: ''
outputs:
reference_images:
children: null
type: array[object]
selected: false
title: 无参考图空数据
type: code
variables: []
height: 54
id: '1773906025707'
position:
x: 1721
y: 800
positionAbsolute:
x: 1721
y: 800
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
output_type: array[object]
selected: false
title: 参考图聚合
type: variable-aggregator
variables:
- - '1773904234772'
- reference_images
- - '1773906025707'
- reference_images
height: 136
id: '1773906072206'
position:
x: 2055
y: 562
positionAbsolute:
x: 2055
y: 562
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: not empty
id: 3fccb584-751c-4788-9837-ce1a72c45a8b
value: ''
varType: file
variable_selector:
- '1773816706773'
- ip_character_file
- url
id: 'true'
logical_operator: and
desc: ''
selected: false
title: 是否有IP形象图
type: if-else
height: 126
id: '1773906147952'
position:
x: 364
y: 1062
positionAbsolute:
x: 364
y: 1062
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
audio:
configs:
variable_selector: []
enabled: false
context:
enabled: false
variable_selector: []
desc: ''
document:
configs:
variable_selector: []
enabled: false
model:
completion_params:
max_completion_tokens: 128000
mode: chat
name: gpt-5.4-2026-03-05
provider: aict/ai_hub/ai_hub
prompt_template:
- id: 26a76d3a-4479-4e05-8e38-d3e7d74fcfd4
role: system
text: "你是一个 IP 形象数据解析器。将用户的「IP 形象说明文本」与「IP 形象图片 URL」合并为结构化 JSON 对象。当前版本仅支持\
\ 1 个 IP 形象。\n\n## 输入\n\n1. **IP 形象说明**(字符串):用户对 IP 角色的描述。标准格式为 `类型:锁定/参考,名称:xxx,人设描述:xxx,年龄设定:xxx,出镜率:xx%`,字段之间用逗号或分号分隔。\n\
2. **IP 形象图片 URL**(字符串):IP 角色的图片地址。\n\n## 输出\n\n严格只输出一个 JSON 对象,不要有任何其他文字:\n\
\n```json\n{\n \"url\": \"图片URL\",\n \"type\": \"reference 或 locked\"\
,\n \"name\": \"IP 名称\",\n \"characterDescription\": \"人设描述\",\n \"\
ageSetting\": \"年龄设定\",\n \"screenRatio\": 50\n}\n```\n\n## 解析规则\n\n\
### 标准格式(优先按此解析)\n\n```\n类型:锁定,名称:星际猫咪 Momo,人设描述:一只穿着宇航服的橘猫,性格好奇又勇敢,出镜率:60%\n\
```\n\n提取「类型」「名称」「人设描述」「年龄设定」「出镜率」五个键值对。\n\n### 字段映射\n\n| 字段 | 键名识别 |\
\ 值映射 | 默认值 |\n|------|---------|--------|--------|\n| type | `类型` | `参考`\
\ → `\"reference\"`;`锁定` → `\"locked\"` | `\"locked\"` |\n| name | `名称`、`名字`、`角色名`\
\ | 原文 | `\"IP角色\"` |\n| characterDescription | `人设描述`、`人设`、`描述`、`角色描述`、`性格`\
\ | 原文 | `\"\"` |\n| ageSetting | `年龄设定`、`年龄`、`体型` | 原文 | `\"不限\"` |\n\
| screenRatio | `出镜率`、`出镜`、`占比` | 提取数字(去掉%),范围 20-80 | `50` |\n\n### 类型说明\n\
\n- **参考**(`reference`):使用图中 IP 对象,但用 MV 目标画风重新渲染(如 3D→2D 风格转换)\n- **锁定**(`locked`):直接使用图中\
\ IP 对象并保留原图风格(适合品牌 IP 必须原样呈现的场景)\n\n### 容错处理\n\n- **标点混用**:中英文逗号(`,`\
\ `,`)、分号(`;` `;`)、冒号(`:` `:`)互通\n- **字段缺失**:未写的字段用默认值补全\n- **字段顺序不固定**:如\
\ `名称:Momo,类型:锁定,人设描述:...` 也合法\n- **出镜率格式**:`60%` / `60` / `百分之六十` / `六十`\
\ 均识别为 60;超出 20-80 范围则钳位到最近边界\n- **口语化**:如 `锁定,叫星际猫咪,是一只穿宇航服的橘猫,出镜60%`,需推断各字段\n\
\n### 通用规则\n\n1. 若说明为空或无法解析,所有字段使用默认值。\n2. `screenRatio` 必须为 20-80 之间的整数。\n\
\n## 示例\n\n### 示例1:标准格式\n\n**输入:**\n\n- 说明:`类型:锁定,名称:星际猫咪 Momo,人设描述:一只穿着宇航服的橘猫,性格好奇又勇敢,总是率先探索未知领域,年龄设定:成年体,出镜率:60%`\n\
- 图片URL:`\"https://a.com/momo.png\"`\n\n**输出:**\n\n```json\n{\n \"url\"\
: \"https://a.com/momo.png\",\n \"type\": \"locked\",\n \"name\": \"\
星际猫咪 Momo\",\n \"characterDescription\": \"一只穿着宇航服的橘猫,性格好奇又勇敢,总是率先探索未知领域\"\
,\n \"ageSetting\": \"成年体\",\n \"screenRatio\": 60\n}\n```\n\n### 示例2:字段缺失\n\
\n**输入:**\n\n- 说明:`名称:小火苗,类型:参考,人设描述:品牌吉祥物,活泼可爱`\n- 图片URL:`\"https://a.com/flame.png\"\
`\n\n**输出:**\n\n```json\n{\n \"url\": \"https://a.com/flame.png\",\n\
\ \"type\": \"reference\",\n \"name\": \"小火苗\",\n \"characterDescription\"\
: \"品牌吉祥物,活泼可爱\",\n \"ageSetting\": \"不限\",\n \"screenRatio\": 50\n\
}\n```\n\n### 示例3:口语化输入\n\n**输入:**\n\n- 说明:`锁定风格,角色叫妙妙,是个粉色猫咪精灵,幼年体,出镜要多一些大概70%`\n\
- 图片URL:`\"https://a.com/miaomiao.png\"`\n\n**输出:**\n\n```json\n{\n \"\
url\": \"https://a.com/miaomiao.png\",\n \"type\": \"locked\",\n \"\
name\": \"妙妙\",\n \"characterDescription\": \"粉色猫咪精灵\",\n \"ageSetting\"\
: \"幼年体\",\n \"screenRatio\": 70\n}\n```"
- id: d0516c64-4bac-4136-b42c-04adb02dff41
role: user
text: '现在请处理以下输入:
**IP 形象说明:**
{{#1773816706773.ip_character_description#}}
**IP 形象图片 URL:**
{{#1773905942059.url#}}'
selected: false
title: 解析IP形象LLM
type: llm
variables: []
video:
configs:
variable_selector: []
enabled: false
vision:
enabled: false
height: 122
id: '1773906244777'
position:
x: 1387
y: 931
positionAbsolute:
x: 1387
y: 931
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "function main({ llm_result }) {\n let format_llm_result = llm_result;\n\
\ if (format_llm_result.indexOf(\"```json\") >= 0) {\n // 深度思考结果\n \
\ // 取出json代码块\n const startIndex = format_llm_result.indexOf(\"```json\"\
);\n const endIndex = format_llm_result.indexOf(\"```\", startIndex +\
\ 7);\n if (startIndex >= 0 && endIndex > startIndex) {\n // 提取json字符串\n\
\ format_llm_result = format_llm_result.substring(startIndex + 7, endIndex);\n\
\ // 去掉代码块的换行(\\r\\n)\n format_llm_result = format_llm_result.replace(/[\\\
r\\n]/g, \"\");\n }\n }\n\n const parseResult = JSON.parse(format_llm_result);\n\
\ return {\n reference_images: parseResult,\n };\n}\n"
code_language: javascript
desc: ''
outputs:
ip_character:
children: null
type: object
selected: false
title: 解析IP形象结果处理
type: code
variables:
- value_selector:
- '1773906244777'
- text
value_type: string
variable: llm_result
height: 54
id: '1773906529735'
position:
x: 1721
y: 931
positionAbsolute:
x: 1721
y: 931
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "\nfunction main() {\n return {\n ip_character: {}\n }\n\
}\n"
code_language: javascript
desc: ''
outputs:
ip_character:
children: null
type: object
selected: false
title: 无IP形象空数据
type: code
variables: []
height: 54
id: '1773906577314'
position:
x: 1721
y: 1082
positionAbsolute:
x: 1721
y: 1082
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
output_type: object
selected: false
title: IP形象聚合
type: variable-aggregator
variables:
- - '1773906529735'
- ip_character
- - '1773906577314'
- ip_character
height: 136
id: '1773906619924'
position:
x: 2055
y: 890
positionAbsolute:
x: 2055
y: 890
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
viewport:
x: -301.7967417062482
y: -120.65103776223145
zoom: 1.0610015965572792