本文详细介绍 StartExecution - 提交媒体处理任务接口中的动态输入 Schema 功能。通过此功能,您可以构建复杂、自动化的媒体处理流水线,将多个任务节点无缝串联起来。
在传统的媒体处理中,如果您需要对一个视频执行多个连续操作(例如先进行视频生成,再对生成结果进行画质增强),通常需要分两步操作:
动态输入 Schema 功能允许您在单次任务提交中,预先定义好工作流内部不同节点之间的数据依赖关系。工作流引擎会自动处理节点间的数据传递和执行调度,实现全自动的任务串联。
说明
Schema 接收动态输入。FileId 模式的输入不支持通过 Schema 动态指定。动态输入 Schema 的工作原理基于 Go Template 语法。
Input 对象中,将 Schema 字段的值设为 Template。Input 对象的其他字段(如 Vid 或 DirectUrl.FileName)中,使用 Go Template 语法来引用上游节点的输出。StartExecution 接口提交整个工作流后,系统会:
map 中。Input 字段中的模板字符串,从上下文中查找并动态注入所需的数据。模板字符串的基本语法结构如下:"{{.Output.<上游节点名称>.<输出参数路径>}}"
语法部分 | 说明 | 示例 |
|---|---|---|
| Go Template 的固定语法边界,用于包裹表达式。 | 无 |
| 代表模板的根对象,即工作流的执行上下文。 | 无 |
| 一个固定的 | 无 |
| 您在工作流中为上游节点设置的节点名称 ( |
|
| 您想要引用的、上游节点输出结果中的具体字段路径,支持多层级访问。 |
|
假设您需要通过 AI 生成一个视频,并立即对其进行超分处理。您可以在 StartExecution 接口的 Operation.Workflow.Nodes 数组中定义如下两个节点:
Name: "VideoGeneration"Operation: 配置视频生成任务,例如使用 doubao-seedance-lite 模型生成一个视频。Name: "Enhance"Dependence: ["VideoGeneration"],声明此节点依赖于上游节点。Input: 配置动态输入。
Schema: "Template",启用动态输入功能。Input.Vid: {{.Output.VideoGeneration.Video.Vid}},引用上游节点的输出 Vid。完整请求如下:
POST open.volcengineapi.com/?Action=StartExecution&Version=2025-01-01 Content-Type: application/json { "SpaceName" : "your-test-space", "Operation" : { "Type" : "Workflow", "Workflow" : { "Nodes" : [ { "Name" : "VideoGeneration", "Operation" : { "Type" : "Task", "Task" : { "Type" : "VideoGeneration", "VideoGeneration" : { "NewVid" : true, "Prompt" : "一个女人在大轮船旁边冲浪,慢镜头", "VideoOption" : { "Model" : "doubao-seedance-lite", "Resolution" : "720p" } } } } }, { "Name" : "Enhance", "Input" : { "Type": "Vid", "Vid": "{{.Output.VideoGeneration.Video.Vid}}", "Schema": "Template" }, "Operation" : { "Type" : "Task", "Task" : { "Type" : "Enhance", "Enhance" : { "Type": "Moe", "MoeEnhance": { "Config": "aigc", "Target": { "Res": "1080p" } } } } }, "Dependence":["VideoGeneration"] } ] } } }