coze平台实现文生视频和图生视频(阿里云版)工作流

工作流全貌

开始

首先从入参开始:

api_key :来自阿里云百炼平台,自行去申请

prompt:生成视频的文本提示词。支持中英文,长度不超过800个字符,每个汉字/字母占一个字符,超过部分会自动截断。

first_frame_url :首帧图的url,采用首帧图生视频或者首尾帧图生视频时使用
last_frame_url :尾帧图的url,采用首尾帧图生视频时使用
resolution :分辨率,

当文生视频时默认值1280720。其中,1280代表宽度,720代表高度。wanx2.1-t2v-turbo: 支持 480P 和 720P 对应的所有分辨率。 wanx2.1-t2v-plus: 仅支持 720P 对应的所有分辨率。480P档位:不同视频宽高比对应的分辨率如下: 16:9:832 480 9:16:480832 1:1:624 624 720P档位:不同视频宽高比对应的分辨率如下: 16:9:1280720,默认值。 9:16:720 1280 1:1:960960 3:4:832 1088 4:3:1088*832

当图生视频时默认值为720P,当前仅支持720P。 模型会保持输出视频与输入图像的宽高比一致。在宽高比不变的基础上,resolution参数会将输出视频的分辨率调整到指定档位的总像素附近。 720P :视频分辨率通常指 1280×720(约 92万像素),视频宽高比为16:9。 示例:若输入图像的宽高比例为 4:3,且视频分辨率档位为720P ,则输出视频的宽高比会保持4:3,分辨率会调整为接近 92万像素。例如,输出视频的分辨率为 1024×960,总像素 98.3万(此数据仅做参考,以实际输出为准)。

判断

根据入参进行判断采用文生视频还是首帧图生视频,还是首尾帧图生视频

文生视频:当首帧图的url尾帧图的url都为空时

首帧图生视频:当首帧图的url不为空时并且尾帧图的url为空时

首尾帧图生视频:当首帧图的url尾帧图的url都不为空时

阿里云生成视频插件


聚合

将插件返回的任务id状态进行聚合

去除转义代码

因为返回的数据存在转移字符需要手动处理下

python 复制代码
async function main({ params }: Args): Promise<Output> {
    const ret = {
        "id": params.id.replace(/(^")|("$)/g, '') , 
        "status": params.status.replace(/(^")|("$)/g, '') 
    };

    return ret;
}

检验任务生成状态

阿里云提供了生成任务的状态

python 复制代码
PENDING:任务排队中

RUNNING:任务处理中

SUCCEEDED:任务执行成功

FAILED:任务执行失败

CANCELED:任务取消成功

UNKNOWN:任务不存在或状态未知

当任务为:任务排队中 或者 任务处理中 或者 任务执行成功 这三个状态时执行轮询的下一步

其他状态则直接返回错误信息

轮询查询视频生成情况

输出视频生成url

循环体

调用 根据任务ID 查生成情况的插件

入参是: 阿里云百炼的API-Key 和 处理完转移字符输出的id

当生成完成后发现又进行转义了,下一步处理 生成状态的 转义字符

python 复制代码
async function main({ params }: Args): Promise<Output> {
    // 构建输出对象
    const ret = {
       
        "status": params.status.replace(/(^")|("$)/g, '') 
    };

    return ret;
}

校验生成状态(去除转义后的)

当 :

任务状态为 任务排队中 或者 任务处理中 时进行继续循环查询

任务状态为:任务执行成功 时终止循环


继续循环需要调用一个时间等待的插件,作用是间隔多少秒后再重复执行

这里给了50秒,原计划60秒的,但coze好像更新了,60秒等待会报错


获取视频url

轮询结束后获取视频链接,因为轮询会把每次的结果集都返回,(要么在轮询体中处理,要么就是返回后处理,这里是返回后处理的,拿的最后一条)

python 复制代码
async function main({ params }: Args): Promise<Output> {
    var input = params.input || [""]

    const ret = {
        "video_url": input[input.length -1 ]
    };

    return ret;
}

结束

输出视频链接

相关推荐
难受啊马飞2.01 小时前
如何判断 AI 将优先自动化哪些任务?
运维·人工智能·ai·语言模型·程序员·大模型·大模型学习
运器1235 小时前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程
虾条_花吹雪5 小时前
2、Connecting to Kafka
分布式·ai·kafka
DeepSeek大模型官方教程6 小时前
NLP之文本纠错开源大模型:兼看语音大模型总结
大数据·人工智能·ai·自然语言处理·大模型·产品经理·大模型学习
程序员鱼皮7 小时前
Cursor 1.2重磅更新,这个痛点终于被解决了!
ai·程序员·编程·agent·软件开发
我爱一条柴ya9 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程
坤坤爱学习2.010 小时前
求医十年,病因不明,ChatGPT:你看起来有基因突变
人工智能·ai·chatgpt·程序员·大模型·ai编程·大模型学
Imagine Miracle11 小时前
Ubuntu for ARM 更换为阿里云镜像源
arm开发·ubuntu·阿里云
draymond710719 小时前
阿里云-云效自动部署spring boot项目
阿里云
小眼睛FPGA1 天前
【RK3568+PG2L50H开发板实验例程】FPGA部分/紫光同创 IP core 的使用及添加
科技·嵌入式硬件·ai·fpga开发·gpu算力