【Coze智能体实战二】一键生成儿歌背单词视频

目录

一、需求与流程设计

二、实现智能体工作流

[2.1 创建工作流](#2.1 创建工作流)

[2.2 开始节点](#2.2 开始节点)

[2.3 中英文单词文案大模型](#2.3 中英文单词文案大模型)

输入

系统提示词

用户提示词

[2.4 歌词格式处理-代码节点[只能用py和js]](#2.4 歌词格式处理-代码节点[只能用py和js])

输入

代码

输出

[2.5 生成图片文案-代码节点](#2.5 生成图片文案-代码节点)

输入

代码

输出

[2.6 循环生图文案-循环节点 + 大模型节点](#2.6 循环生图文案-循环节点 + 大模型节点)

循环节点

大模型节点

输入

系统提示词

用户提示词

循环节点输出

[2.7 循环生成图片-循环节点+插件节点](#2.7 循环生成图片-循环节点+插件节点)

[2.8 循环生成音频-循环节点+插件节点](#2.8 循环生成音频-循环节点+插件节点)

生产音频插件

获取音频时长插件

循环生成音频节点输出

[2.9 视频创作前-代码节点](#2.9 视频创作前-代码节点)

输入

代码

输出

[2.10 后续使用剪映小助手--生成视频](#2.10 后续使用剪映小助手--生成视频)

创建草稿

添加图片

添加字幕

添加特效

添加背景音

添加语音

保存草稿

[2.11 结束节点](#2.11 结束节点)


一、需求与流程设计

python 复制代码
# 1 用户输入一个主题---》生成中英文儿歌,方便小朋友记忆不同主题的单词
	-动物--》10个动物单词儿歌
    -蔬菜--》10种蔬菜单词儿歌
python 复制代码
# 1 开始节点
	-用户输入 某个主题
    	-动物
        -蔬菜
        -水果
        -家用电器
        。。。
        
# 2 大模型
	-根据用户输入的主题,生成文案
    -10个英文单词,带中文
# 3 代码节点:处理大模型型生成的文案
# 4 代码节点:图片生成前处理
# 5 循环10次
##  5.1 大模型:生成  图片  文案

# 6 循环10次
## 6.1 生成图片

# 7 循环10次
## 6.1 文字生成语音
## 6.2 获取语言长度

# 8 代码处理前面所有数据
	-后续使用剪映小助手
    -需要很多变量:提前处理好,统一输出,给后面用
-------------固定的---生成其他视频:老黄历,历史人物讲解,书籍讲解,历史典故------------------------  
# 9  创建草稿
# 10 添加图片
# 11 添加字幕
# 12 添加特效
# 13 添加音频--背景音乐
# 14 添加音频--朗读音频
# 15 保存草稿
	-链接地址

二、实现智能体工作流

2.1 创建工作流

2.2 开始节点

2.3 中英文单词文案大模型

python 复制代码
# 1 作用--帮我们生成中英文文案--->用于视频的字幕和语言朗读
	猫 猫 Cat
    Cat Cat Cat
    狗 狗 Dog
    Dog Dog Dog
	.....
输入
系统提示词
python 复制代码
# 角色
你是一个优秀的歌词编曲家,擅长给启蒙儿歌作词

# 要求
如果用户输入了主题,则根据用户输入的主题随机生成10个儿歌句子

# 格式限制
请严格按照下方案例输出的格式
"中文 中文 英文
英文 英文 英文"
为一个动物句子,请严格按照我的要求,不要出现数字等不必要的文案

## 案例输出
猫 猫 Cat
Cat Cat Cat
狗 狗 Dog
Dog Dog Dog
兔子 兔子 Rabbit
Rabbit Rabbit Rabbit
鸟 鸟 Bird
Bird Bird Bird
鱼 鱼 Fish
Fish Fish Fish
用户提示词
python 复制代码
{{input}}

2.4 歌词格式处理-代码节点[只能用py和js]

python 复制代码
# 1 作用---》对大模型生成的歌词--进行拆分
# 大模型生成的:如下---》字符串--》\n表示换行
电视 电视 Television\nTelevision Television Television\n冰箱 冰箱 Refrigerator\nRefrigerator Refrigerator Refrigerator\n空调 空调 Air conditioner\nAir conditioner Air conditioner Air conditioner\n洗衣机 洗衣机 Washing machine\nWashing machine Washing machine Washing machine\n微波炉 微波炉 Microwave oven\nMicrowave oven Microwave oven Microwave oven\n吸尘器 吸尘器 Vacuum cleaner\nVacuum cleaner Vacuum cleaner Vacuum cleaner\n电饭煲 电饭煲 Rice cooker\nRice cooker Rice cooker Rice cooker\n电扇 电扇 Electric fan\nElectric fan Electric fan Electric fan\n吹风机 吹风机 Hair dryer\nHair dryer Hair dryer Hair dryer\n电灯 电灯 Electric light\nElectric light Electric light Electric light
# 处理成-列表格式--放多个元素
["电视 电视 Television",
 "Television Television Television",
 "冰箱 冰箱 Refrigerator",
 "Refrigerator Refrigerator Refrigerator",
 。。。。。
]
# 如果使用大模型--》写好提示词--》是可以处理成我们想要的格式
	-缺点:1 收费  2 大模型耗时更长
    -处理数据时候[固定格式]--》最好使用代码
输入

代码

python 复制代码
async def main(args: Args) -> Output:
    # ##############以后代码都写在这里面---开始##############
    # 1 代码节点的输入---》params---》包裹:包裹里有我们输入的变量     params['content']
    params = args.params
    # 2 直接使用列表推导式--》处理文案--》笔记解释content
    infos = [info for info in params['content'].split('\n') if info.strip() != '']

    # 3 返回的对象----》这个代码节点的输出:大模型有输出---插件有输出--》代码也有输出
    ret: Output = {
        "infos": infos
    }
    return ret
    # ##############以后代码都写在这里面---结束##############

输出

2.5 生成图片文案-代码节点

python 复制代码
# 1 作用:
# 对上一个节点的歌词进行拆分
["电视 电视 Television",
 "Television Television Television",
 "冰箱 冰箱 Refrigerator",
 "Refrigerator Refrigerator Refrigerator",
 。。。。。
]
# 处理成如下
[
 "电视",
 "冰箱"
]
输入

代码

python 复制代码
async def main(args: Args) -> Output:
    params = args.params
    # 把第一种形式,隔一行取一个,做成下面形式
    '''
    ["电视 电视 Television",
    "Television Television Television",
    "冰箱 冰箱 Refrigerator",
    "Refrigerator Refrigerator Refrigerator",
    。。。。。
    ]
    --------------
    [
    "电视",
    "冰箱"
    ]

    '''
    infos=params['infos']
    words=[]
    for index,info in enumerate(infos):
         if index % 2 == 0: 
            word=info.split(' ')[0]
            words.append(word)

    # 构建输出对象
    ret: Output = {
        "words": words
        
    }
    return ret

输出

2.6 循环生图文案-循环节点 + 大模型节点

python 复制代码
# 1 作用--->扩写文案--》通过扩写的文案,生成图片
-根据上一个节点---》返回数据:如下,让大模型循环生成丰富一点的文案
    [
    "电视",
    "冰箱"
     。。。
    ]
-生成:
	[
        小朋友,再客厅里,开心的看电视,
        小朋友,打开冰箱,取出一瓶可乐
    ]
	小朋友,再客厅里,开心的看电视---》图片1
    小朋友,打开冰箱,取出一瓶可乐---》图片2
    ....
    
    
# 2 循环节点
	-1 使用数组循环---》如下,是同一个东西,叫法不一样
         [
        "电视",
        "冰箱"
         。。。
        ]

循环节点

大模型节点

输入
python 复制代码
# 1 大模型的输入
	word-->循环输入的是words:如下--》循环会每次拿出一个--》比如拿出:电视---》交个大模型
        [
        "电视",
        "冰箱"
         。。。
        ]
        
   word--》循环的:item
系统提示词
python 复制代码
# 角色
你是一个优秀的AI绘画描述词生成家,擅长把输入的文字{{word}}生成一份适用于AI绘画的描述词

# 要求
一个文字只需要生成一份描述词,不要同一个文字生成多份,需要根据文字,自由描述当前文字,此描述词用来绘制启蒙儿歌图片,需要适用于小孩观众的特性,不要出现案例输出文案,输出只针对文字内容,请严格按照我的要求回答

# 格式要求
一定要是角色+场景+角色的行为

## 案例输出:
狗,在院子中中,在快乐的玩耍
马,在草地上中,快乐的奔跑
用户提示词
python 复制代码
{{word}}

循环节点输出

2.7 循环生成图片-循环节点+插件节点

python 复制代码
# 1 作用
	根据上一个循环节点生成的文案---》循环生成图片
    [
        小朋友,再客厅里,开心的看电视,
        小朋友,打开冰箱,取出一瓶可乐
    ]
    
    生成一张张图片
python 复制代码
# 正向提示词
细腻的细节处理,主体突出, 高光,强光,水灵灵,丰富可爱的微笑表情,背景虚化,8K,高品质,高分辨率,3D效果,3D卡通风格,{{prompt}}

2.8 循环生成音频-循环节点+插件节点

python 复制代码
# 1 作用--》把中英文文案,转成语音---》取出每个语音的长度[拼成视频]
# 把下面--》转成语音--》每一行一个语音
["电视 电视 Television",
 "Television Television Television",
 "冰箱 冰箱 Refrigerator",
 "Refrigerator Refrigerator Refrigerator",
 。。。。。
]

生产音频插件

获取音频时长插件

循环生成音频节点输出

2.9 视频创作前-代码节点

python 复制代码
#1  作用
	-剪映小助手--》制作视频--》使用时--》需要很多变量:音频,图片,背景音,动画效果。。。
    -使用代码,生成,组装成固定格式---》剪映小助手对格式有要求
输入

代码

python 复制代码
import json
async def main(args: Args) -> Output:
    params = args.params
    audios = []
    images = []
    texts = []
    start = 0

    # 1 添加音频和字幕素材
    for index,_ in enumerate(params['mp3_urls']):
        end=start+ params['mp3_durations'][index] * 1000000
        #增加音频
        audios.append({ "audio_url": params['mp3_urls'][index], "duration": params['mp3_durations'][index] * 1000000,"volume":10, "start": start, "end": end })
        texts.append({ "text": params['texts'][index], "start": start, "end": end, "in_animation": '', "out_animation": '' })
        start = end

    image_start = 0

    # 添加图片素材
    for index,_ in enumerate(params['images']):
        end = image_start + (params['mp3_durations'][index * 2] + params['mp3_durations'][index * 2 + 1]) * 1000000
        images.append({
            "image_url": params['images'][index],
            "width": 1920,
            "height": 1080,
            "start": image_start,
            "end": end,
            "in_animation": "展开",  #对应剪映的入场动画名字   可选
            "out_animation": "烟雾弹", #对应剪映的出场动画名字。可选
            "loop_animation": "",  #对应剪映的组合动画名字    可选
            "in_animation_duration": 20000, #对应剪映的入场动画时长  可选
            "out_animation_duration": 20000 #对应剪映的出场动画时长  可选
        })
        image_start = end



    effect_infos = [{
        "effect_title": "金粉闪闪",
        "start": 0,
        "end": start
    }]

    bg_mp3 = [
        {
            "audio_url": " https://ve-template-0920.oss-cn-shanghai.aliyuncs.com/output_video/fewrwer3245467fgg345.mp3",
            "duration": start,
            "volume":0.5,#音量
            "start": 0,
            "end": start
        }
    ]

    # 构建输出对象
    ret: Output = {
        'audios': json.dumps(audios),
        'images': json.dumps(images),
        'texts': json.dumps(texts),
        'effect_infos': json.dumps(effect_infos),
        'bg_mp3': json.dumps(bg_mp3)

    }
    return ret

输出

python 复制代码
# 输出
audios         # 音频--》有了
images         #视频图片--》生成了
texts          # 字幕----》大模型生成了
effect_infos   # 特效--》没有
bg_mp3         #背景音--》没有

2.10 后续使用剪映小助手--生成视频

python 复制代码
# 创建草稿 create_draft


# 添加图片 add_images
# 添加字幕 add_cations
# 添加样式 add_effects
# 添加音频:add_audios  背景音频
# 添加音频:add_audios  字幕音频



# 保存草稿:save_draft 

创建草稿

添加图片

python 复制代码
# 输入:
	draf_url:草稿地址----draft_url
    image_infos:前面代码节点输出的图像信息--》images
    alpha:透明度不填
    scale_x:1
    scale_y:1   --》x,y轴缩放比例 1:1 原始值
    scale_x:2
    scale_y:2   --》x,y轴缩放比例 2:2 x轴和y轴缩放因子为2,不会改变图形的形状比例,仅按统一比例调整大小
    x,y轴不平移
# 输出:
	默认

添加字幕

添加特效

添加背景音

添加语音

保存草稿

2.11 结束节点

相关推荐
杰米不放弃2 小时前
AI大模型应用开发学习-26【20251227】
人工智能·学习
一个会的不多的人2 小时前
人工智能基础篇:概念性名词浅谈(第八讲)
人工智能·制造·数字化转型
weixin_446260852 小时前
Robin: AI驱动的暗网OSINT工具
人工智能
Coder_Boy_2 小时前
基于SpringAI的智能运维平台(AI驱动)
大数据·运维·人工智能
圆号本昊3 小时前
RimWorld AI记忆系统深度技术分析
人工智能
Francek Chen3 小时前
【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
java·开发语言·人工智能·ai编程·飞算
Hello娃的3 小时前
【神经网络】人工神经网络ANN
人工智能·深度学习·神经网络
RockHopper20253 小时前
一种认知孪生xLLM架构的原理说明
人工智能·llm·数字孪生·认知孪生
weixin199701080164 小时前
哔哩哔哩 item_get_video - 获取视频详情接口对接全攻略:从入门到精通
人工智能·音视频