一键克隆任何动作!基于 Coze 搭建可灵 3.0 动作迁移工作流“保姆级”教程
本文详细介绍了如何利用可灵(Kling)动作迁移3.0版本工作流实现精准AI视频生成。作者分享了在Coze平台上搭建自动化工作流的完整教程,包括获取API密钥、配置输入参数、设置循环查询逻辑等关键步骤。该工作流通过异步处理和智能路由技术,显著提高了动作迁移的准确性和稳定性,有效解决了人物动作扭曲和崩坏问题。教程提供了详细的节点配置说明和代码片段,帮助用户以最低成本实现高质量AI视频生成。最终成果可
在 AI 视频圈子里玩久了,大家可能都有个痛点:让人物动起来不难,但想让人物完全听从指令、精准还原一段特定的舞蹈或动作,往往就是在疯狂“抽卡”和“开盲盒”。
为了解决动作一致性和精准控制的问题,我私下死磕了很久。经过无数次调优和推倒重来,今天,我决定把手里最成熟、最丝滑的 可灵(Kling)动作迁移 3.0 版本工作流 首次拿出来,毫无保留地分享给大家!

这个 3.0 工作流有什么特别之处?这套方案我全部搬到了 Coze(扣子) 上搭建。核心主打一个自动化、低门槛、高可用:
内置了相关插件和一整套异步处理逻辑,你只需要输入简单的指令和参考素材,剩下的交给工作流。深度适配了可灵的最新能力,大幅度降低了人物动作迁移时的肢体扭曲和崩坏率。
搭建这套工作流的教程和配置我是完全免费公开的。我会一步步教你怎么捏出这个超级 Agent。
虽然工作流和搭建不要钱,但调用可灵官方 API 生成视频是需要消耗实打实的 Token 的(需自费充值 API)。因此,我也会在教程里教大家如何用最少的测试成本,跑出最满意的效果。
体验地址:https://www.coze.cn/s/UBK3GE6-j8E/
可以看看下面👇生成出来的效果视频:
https://krillinai-videos.oss-cn-shanghai.aliyuncs.com/keling_motion_control.mp4
如果你一直苦于做不出高质量的 AI 动作视频,或者想给自己的业务接入一套稳定的视频生成能力,今天这篇建议直接收藏。废话不多说,接下来我将开启“保姆级实战教程”模式,手把手教你如何在 Coze 平台上,利用我的插件和超低价的 API,搭建出这套完整的工作流!
第一步:获取 API Key
想要跑通这个工作流,我们需要一把“钥匙”来唤醒可灵动作迁移 3.0 的强大能力。由于官方接口直接申请的门槛较高且流程繁琐,为了省去不必要的折腾,我们直接采用更聪明、高性价比的方案:使用中转 API。
为了保证视频生成的稳定性和极速响应,我们直接使用 LinoAPI提供的官方直连稳定通道。
点击下方链接进入官网注册(新人注册通常会送体验金,用来跑通前期的测试打样完全够用了):
👉 注册地址:https://linoapi.com/register?aff=28jK
进入后点击右上角的 “登录/注册” 即可。如果后续开始批量跑视频,可以在“钱包”里按需适当充值。

登录成功后,首先点击主页顶部的【控制台】,接着点击左侧菜单栏的【API 令牌】,然后点击【+ 添加令牌】。
在弹出的“创建新的令牌”窗口中,请按照以下技巧进行设置:
名称: 建议填写 keling_motion_control_video(如图所示),方便后续你在控制台一眼认出它是专门用来跑视频和动作迁移的专属通道。
分组优先级选择 🔴【极其重要】:使用 default 分组。
💡 为什么要多选? 这相当于给你的专属 AI 视频渲染器上了“多重保险”。视频生成非常吃算力,在大家都在疯狂跑视频的高峰期,多选分组意味着系统会自动为你进行智能路由和灾备切换。哪怕某个生成节点临时拥堵,也会瞬间无缝切换到其他可用节点,全方位保证视频生成极度稳定,彻底告别渲染到一半进度条卡死或报错的崩溃瞬间!
💰 温馨提示: 不同通道的计费倍率可能有所不同(如图中下拉框显示的 1x, 1.5x 等),但这换来的是无需折腾、纯净丝滑的沉浸式创作体验。用这种智能路由的方式跑视频,成功率更高,避免了废片带来的损耗,性价比绝对拉满。
额度设置: 你可以像图中一样直接保持默认(实际消耗受你账户总余额限制,不用担心跑超),或者手动输入一个防刷上限额度。
设置好后,点击底部的【提交】。




提交成功后,页面会自动回到令牌列表页。找到你刚刚创建的 keling_motion_control_video 这条记录,在“密钥”这一列,你会看到一串以 sk- 开头的长字符。直接点击右侧的复制图标,将这串 API Key 复制下来并找个地方妥善保存。

第二步:在 Coze 创建你的专属工作流
看上面的截图,跟着我的红框框一步一步来,闭着眼睛都不会迷路:登录并进入你的 Coze(扣子)操作后台,在左侧的导航栏中找到并点击 【资源库】。接着,把视线移到页面的右上角,点击那个显眼的蓝色按钮 【+ 资源】。在弹出的下拉列表里,精准点击 【工作流】。
这就好比我们要盖一栋大楼,现在地基已经划好,马上就要开始铺设自动化的“流水线”啦!

点击【工作流】后,屏幕中央会弹出一个“创建工作流”的设置窗口。
在这里,我们需要给即将诞生的“流水线”上个户口,按照图片里的示例照抄即可:
工作流名称: 填入 motion_control
工作流描述: 简单写上 动作迁移工作流。
信息填好之后,果断点击右下角的蓝色 【确认】 按钮。
伴随着点击,我们将正式进入工作流的画布界面,真正硬核又好玩的“连连看”搭建环节,马上开始!

整体的工作流如下:

点击确认后,我们就正式进入了 Coze 的工作流画布界面。别被满屏幕的点阵吓到,其实把它想象成搭乐高就行,非常简单!
画布的最左侧,你会看到一个系统默认建好的 【开始】 节点。这个节点的作用,就是告诉系统:“在开始干活之前,你需要向用户索要哪些基本材料?”
点击这个【开始】节点,看页面右侧弹出的配置面板。我们需要点击右上角的 “+” 号,手动添加三个至关重要的输入变量(照着图片的红框和右侧面板抄就行):
添加第一个变量:api_key
变量类型选择: str. String (字符串),必填项: 勾选 ✅
作用: 这就是用来接收我们刚才第一步注册拿到的那串 sk- 密钥的。
变量类型选择: 下拉找到并选择 Video,必填项: 勾选 ✅
作用: 这是用来接收你上传的“动作参考视频”(比如一段丝滑的街舞视频)。
添加第三个变量:image,变量类型选择: 下拉找到并选择 Array<Image> (图片数组),必填项: 勾选 ✅
作用: 用来接收你想要让它动起来的“主角人物图片”。
这三个参数配置好,就等于我们在流水线的入口摆好了三个漏斗:一个装钱(API Key),一个装动作(视频),一个装人(图片)。

流水线的入口和参数都备齐了,接下来就是把负责干脏活累活的“核心引擎”请出场。
搜索并添加插件:在画布底部,点击蓝色的 【+ 添加节点】 按钮。在弹出的面板左侧栏点击 【全部】,然后在左上角的搜索框里,直接搜索 Kling视频动作迁移。找到那个带有芭蕾舞者图标、由“李同学Lino”发布的插件合集。点击右侧的展开箭头(向下的小箭头),在展开的列表中找到名为 motion_control 的具体插件,点击右侧的 【添加】。

连接“入口”与“引擎”:插件添加到画布后,用鼠标按住左侧【开始】节点右侧的小圆点,拉出一条线,直接连到刚刚添加的【可灵视频动作迁移】节点左侧的小圆点上。
这条线的意义在于:把用户在入口填写的参数,精准投递给这个动作迁移引擎。
配置引擎的输入参数(划重点!):单击画布上的【可灵视频动作迁移】节点,看右侧弹出的参数配置面板。我们需要让引擎知道该用什么材料干活。
请严格按照以下对应关系,点击输入框右侧的 “引用”(小圆圈带箭头图标),或者进行 手动输入:api_token(API 密钥): 引用选择 👉 开始 - api_key。
character_orientation(人物朝向): 手动输入 👉 image(告诉系统我们依据图片来确定人物)。
image_urls(图片素材): 引用选择 👉 开始 - image(喂给它我们要让其动起来的人物图)。
mode(生成模式): 这里决定了出图质量和 API 消耗成本。建议先手动输入 👉 std(标准模式,性价比高,适合前期打样)。当你想要最高画质出片时,可以改填 pro(专家模式)。
video_url(动作参考视频): 引用选择 👉 开始 - video(喂给它用来提取动作的参考视频)。
prompt(提示词): 简单手动输入 👉 dancing(或者根据你的实际动作需求填写简短的英文描述)。
搞定这一步,你相当于给可灵 3.0 的大脑下达了最清晰的指令:“拿着这笔钱(API Key),看着这段视频(video),让这张图里的人(image)跟着跳舞(mode & prompt)!

生成视频不是变魔术,后台渲染需要时间。当我们把任务提交给可灵后,它通常不会立刻把视频丢给我们,而是先返回一个“任务状态”。这时候,我们就需要一个“分流路口”来判断下一步该往哪走。
添加选择器节点:继续在画布底部点击 【+ 添加节点】,这次我们选择 【选择器】(有的版本叫“条件”或“If/Else”)。把这个节点改个直白的名字,比如 选择器_判断状态是否完成。
连接节点:按住上一步【可灵视频动作迁移】节点右侧的小圆点,拉出一条线,连到刚刚新建的【选择器】节点左侧。
配置判断条件(看图抄作业):单击这个【选择器】节点,在右侧的配置面板中设置“条件分支”。
在“如果”这一栏: * 点击第一个输入框,下拉找到并引用上一节点的输出结果:可灵视频动作迁移 - task_status(任务状态)。中间的判断符号选择 =(等于)。右侧的输入框手动输入英文:succeed(切记,纯小写,不要有空格)。
💡 这步是啥意思?我给你翻译一下: 系统走到这里会问一句:“可灵大哥,视频跑完了吗(succeed)?”
如果 等于 succeed:说明万事大吉,视频直接生成好了(虽然刚提交时极少出现这种情况),我们后续可以直接连线去“提取视频”。
否则(不等于 succeed):说明视频还在苦哈哈地渲染中。这时候,流水线就会走“否则”这条路。

如果是极小概率的“秒出图”(succeed 分支),流水线会直接走向最终的输出节点。但绝大多数情况下,视频都需要渲染时间,流水线会走入【否则】这个分支。
这时候,我们就需要派出一个不知疲倦的“监工”,让它每隔几秒钟就去后台查一次岗,直到视频真正做出来为止。在 Coze 里,承担这个职责的就是“循环”节点。
添加与连线:在画布下方点击 【+ 添加节点】,选择 【循环】 节点。为了清晰,把它重命名为 循环_查询任务。
连线(重点): 鼠标按住上一步【选择器】节点 “否则” 这一栏右侧的小圆点,拉出一条线,连到咱们刚建好的【循环】节点左侧。
配置循环参数(看右侧面板):
循环类型: 下拉选择 无限循环。(别慌!虽然叫无限循环,但我们一会儿会在它“肚子里”设置一个停止条件,一旦视频做好了它就会自动停下,绝对不会把你的钱刷爆。)
中间变量: 留空,不用管。
输出(重点): 点击右上角的“+”号添加一个输出变量。
变量名 填写:videoURLs(用来装最后拿到手的视频链接)。
变量类型 选择:Array<Object>。
变量值 引用:下拉选择 任务查询 - data。(注意:这个“任务查询”是我们马上要在循环体内部建立的节点,如果你现在找不到它,可以等把循环体内部建好之后,再回过头来这里选上)。
好了,这个“监工”的外壳已经搭好了。现在,我们要深入它的“肚子”(也就是那根向下的连线),去给它制定具体的查岗流程了。

现在,我们要在这个巨大的“循环体”框框内部,给我们的“监工”配上一部对讲机,让它知道怎么去后台问进度。
添加“任务查询”插件:注意,我们现在操作的是循环体内部的画布。点击下方的 【+ 添加节点】,再次选择 【插件】。和第四步一样,搜索 Kling视频动作迁移。但在这次展开的列表里,我们要找的不是刚才那个动作迁移引擎了,而是排在它上面的 Task_Query(任务查询),点击右侧的 【添加】。

连入循环流水线:插件加好后,你会看到循环体内部最左侧有一个蓝色的小圆点。按住它,拉出一条线,连到刚刚添加的【任务查询】节点左侧。这代表每次循环开始的第一件事,就是去查岗。
配置查询参数(非常关键,拿着“取件码”去问):单击这个【任务查询】节点,看右侧的面板。要想查岗,系统得知道两件事:用谁的账号查?查哪个视频?
api_key(身份凭证): 再次点击引用,下拉选择 👉 开始 - api_key。
task_id(取件码): 这个极其重要!我们刚才提交任务时,可灵后台给了一个唯一的任务 ID。点击引用,在下拉列表里找到并选择 👉 可灵视频动作迁移 - task_id。

“监工”拿着号码牌去后台问了,但万一遇到网络波动,或者你的 API 账户余额不足被拦截了怎么办?为了防止程序“死磕”变成无限死循环,我们需要在这里加一道基本的安全判断。
添加选择器节点:依然在循环体内部,点击【+ 添加节点】,再次选择 【选择器】。你可以照着图把它的名字改成 选择器_检查VideoConcatStatus是否成功(名字长点没关系,清楚就行)。
顺手连线:把上一步【任务查询】节点右侧的小圆点拉出一条线,连到这个新【选择器】左侧。
配置判断条件(紧盯右侧面板):在“如果”这一栏的条件设置里:第一个框点击引用,找到上一层的查询结果:选择 👉 任务查询 - code。中间的判断符号选择 👉 =。右侧的输入框手动敲入数字 👉 0(系统会自动识别为 int. 整数类型)。
💡 这里的核心逻辑是啥? 在 API 调用的世界里,返回码(code)是 0 通常代表着“接口通信正常,没有报错”。 这就好比监工去问话,对方正常回复了(不管视频做没做好,至少理人了)。只要 code 是 0,流水线就会走“如果”这条路继续往下查;如果不是 0(比如返回个 401 提示你欠费了),流水线就会走向“否则”直接掐断报错,帮你及时止损。

上一步我们确认了接口通信没毛病,监工顺利拿到了后台的最新情报。现在,我们要根据情报来做最终的判断了!同时,我们顺手把上一步的“异常情况”做一个收尾。
先给异常情况“踩刹车”(连接下方的“终止循环”):看图下方,先在画布里添加一个 【终止循环】 节点(也可以重命名为 终止循环_失败)。把上一步(第八步)那个判断 code 是否为 0 的选择器的 “否则” 分支,拉条线连到这个终止节点上。
作用: 万一接口报错(比如欠费了),立马踩刹车停止循环,防止程序“发疯”无限死循环。
添加最终状态判断“选择器”:继续点击【+ 添加节点】,再加一个 【选择器】,照着图改名为 选择器_判断任务是否完成。把上一步那个判断 code 的选择器的 “如果” 分支(代表通信正常),连到这个新节点的左侧。
配置“真出锅”条件(紧盯右侧面板):单击这个新的【选择器】,在右侧配置“如果”的条件:第一个框点击引用,找到最新的任务状态:选择 👉 任务查询 - task_status。中间的判断符号选择 👉 =。右侧的输入框手动敲入英文 👉 succeed(再次强调,一定要纯小写,不要有空格)。
💡 这里的逻辑非常直白: 监工跑去一问,如果老板回答 succeed(成功了),那就太棒了,视频已经生成完毕,我们下一步就可以直接去“提货”了!

接着上一步的逻辑:如果老板回答说“还没做好,还在排队/渲染”(也就是走入“否则”分支),我们能让程序立马再去问一遍吗?
绝对不行! 如果一秒钟去查岗十几次,这种疯狂的刷接口行为不仅会白白浪费服务器资源,还极容易触发官方 API 的风控,直接把你的号给封了。
所以,我们需要在这里加入一段简单的代码,强制让“监工”原地休息一会儿(比如等个 50 秒)再去查岗。
先把成功的出口封好:看图的左上方,在画布里添加一个 【终止循环】 节点,重命名为 终止循环_成功。将上一步那个判断是否 succeed 的选择器的 “如果” 分支,连到这里。这代表:一旦视频做好了,这个查岗的无限循环就彻底结束了,监工下班!
给“否则”分支添加等待节点:点击下方的【+ 添加节点】,选择 【代码】(Code)。照着图把它重命名为 代码_等待视频合成。把上一步选择器的 “否则” 分支,连到这个代码节点的左侧。
写下“强制睡觉”的代码:点击这个代码节点,看右侧的面板。输入区域什么都不用管(保持未配置输入)。在中间的代码编辑区,直接把里面的默认代码删掉,复制粘贴我为你准备的这段“防封号延时代码”:
// 下面是一个等待时间的代码:
async function main({ params }: Args): Promise<Output> {
console.log(params);
await sleep(50 * 1000);
// 构建输出对象
const ret = {
"output": "",
};
return ret;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
配置输出:在代码面板最下方的“输出”区域,点击“+”号。
变量名填入 output。
变量类型选择 str. String。
💡 到这里,整个循环体(监工的查岗流程)就完美闭环了! 它的完整逻辑是:进去问一嘴 ➔ 没好 ➔ 睡 50 秒 ➔ 醒了又回到开头进去问一嘴 ➔ 没好 ➔ 再睡 50 秒 ➔ …… ➔ 直到问出来状态是 succeed ➔ 触发“终止循环_成功” ➔ 拿着视频从循环体里走出来。

当“监工”拿到 succeed 的结果后,他会把后台给的一大坨数据(也就是我们之前在循环输出里设置的 videoURLs)带出来。但请注意,官方 API 返回的通常是一个结构非常复杂的嵌套“包裹”(JSON 数据),里面有很多我们不需要的代码字符,真正的视频 .mp4 链接藏得很深。
为了把这个链接干干净净地抠出来,我们需要加一个简单的代码节点来做“清洗”。
添加与连线:这次是在循环体外部(整个大框框的右侧),点击【+ 添加节点】,选择 【代码】。把节点重命名为 代码_去除空字符(或者叫“提取视频链接”更直白)。将前面【循环_查询任务】大框框最右侧的小圆点拉出一条线,连到这个代码节点的左侧。
配置输入参数:单击这个节点,在右侧面板的“输入”区域点击“+”号。
变量名填入:input
变量值点击引用,下拉找到并选择 👉 循环_查询任务 - videoURLs
植入提取代码:在中间的代码编辑区,删掉默认代码,直接复制粘贴我写的这段“递归暴力提取提取器”。它的作用是不管视频链接藏在第几层,直接钻进去把它揪出来:
function main(input) {
// 1. 内部定义一个递归查找函数
// 它的作用是:不管数据藏在第几层,一直钻下去找
function findMp4Url(obj) {
// 如果是空的,跳过
if (!obj) return null;
// 【特征识别 1】如果当前值直接就是个字符串,且包含 .mp4 和 http
if (typeof obj === 'string') {
if (obj.startsWith('http') && (obj.includes('.mp4') || obj.includes('ksc2'))) {
return obj;
}
return null;
}
// 【特征识别 2】如果当前是个对象,且有 url 字段
if (typeof obj === 'object' && obj.url && typeof obj.url === 'string') {
if (obj.url.startsWith('http')) {
return obj.url;
}
}
// 【继续深挖】如果是数组或对象,遍历它的每一个子元素
if (typeof obj === 'object') {
const values = Object.values(obj);
for (const val of values) {
// 递归调用自己
const result = findMp4Url(val);
// 如果在子元素里找到了,立马层层返回,不再犹豫
if (result) return result;
}
}
return null;
}
// 2. 处理输入可能是字符串的情况
let rootData = input;
if (typeof input === 'string') {
try {
rootData = JSON.parse(input);
} catch (e) {
// 如果解析不了,就把它当做普通字符串查
}
}
// 3. 启动搜索
const foundUrl = findMp4Url(rootData);
// 4. 返回结果
// 如果找到了就是 URL,没找到就是空字符串
return {
video_url: foundUrl || ""
};
}
配置输出:在最下方的“输出”区域,点击“+”号。
变量名填入:video_url
变量类型选择:String

漫长的“流水线”搭建终于来到了最后一步!前面所有的辛苦,都是为了此刻能把那个干干净净的、能直接播放的视频链接,稳稳地递交到用户(或者你自己的 Agent)手里。
找到“结束”节点:在画布的最右侧,通常系统会默认预置好一个 【结束】 节点(如果你之前不小心删了,就在底部再添加一个)。
连上最后一条线:把上一步【代码_去除空字符】节点右侧的小圆点拉出一条线,直接连到这个【结束】节点的左侧。完成这最后一次“牵手”。
配置交付物(看右侧面板):顶部的输出类型,确保选择的是 👉 返回变量。在下方的“输出变量”区域,点击“+”号添加。
变量名填入:video_url。
变量值点击引用,在下拉列表中找到并选择上一步清洗好的果实 👉 代码_去除空字符 - video_url。

经过前面一顿硬核的“疯狂连线”,我们的自动化流水线已经组装完毕。现在,是骡子是马咱们拉出来溜溜!
唤醒测试面板:点击画布正下方的绿色 【试运行】 按钮,页面的右侧会立刻弹出一个“试运行输入”面板。
喂入真实物料(看图照做):
api_key: 把你在第一步(LinoAPI 控制台)复制的那串 sk-... 开头的密钥,原封不动地粘贴进去。这是启动机器的燃料。
image: 点击上传区,把你准备好的“静态人物图片”传上去(也就是你想让他动起来的主角)。
video: 点击上传区,把你作为动作参考的视频传上去(比如一段你想复刻的丝滑街舞 .mp4 视频)。
物料全部就位后,深呼吸,点击面板最下方的绿色大按钮 【▶ 试运行】!
💡 接下来会发生什么? 此时,你的工作流就会像一台精密的机器一样开始运转。节点会依次亮起蓝色的运行状态。因为我们在“监工”环节设置了每 50 秒查一次岗,而可灵的高质量视频渲染确实需要一点时间,所以请耐心等待。在这个过程中,你可以点击右上角的“查看日志”,看着代码按照你设定的逻辑,一次次去后台询问进度,这感觉会非常解压!
当绿色的进度条跑到终点,【结束】节点吐出一个干净的 http://...mp4 视频链接时,恭喜你,大功告成!复制这个链接到浏览器打开,就能看到你的人物完美还原了视频里的动作。

视频生成效果如下:
https://krillinai-videos.oss-cn-shanghai.aliyuncs.com/5%E6%9C%8811%E6%97%A5%20%285%29.mp4
第三步:写到最后
AI 视频发展到今天,已经过了那个天天“开盲盒”碰运气的阶段。如何把最新、最强的模型能力,通过工作流封装成稳定、可控、低门槛的生产力工具,才是咱们真正要发力的地方。
今天分享的这套可灵 3.0 动作迁移工作流,就是一次把“高门槛技术”转化为“自动化流水线”的实战。希望这篇教程不仅能帮你搞定精准的动作迁移,更能帮你打通搭建复杂 Agent 的底层思路。
附免费工作流(在文档最下方下载):https://my.feishu.cn/wiki/SY5zwR8FRiM0YskUjmacMWcOn6f?from=from_copylink
赶紧去动手捏一个专属于你的 AI 动作导演吧!如果你跑出了惊艳的成片,或者在搭建中遇到任何卡壳的地方,随时在评论区找我交流。
更多推荐


所有评论(0)