掘金 人工智能 07月10日
100 个 Coze 精品案例:Coze 全自动情感治愈视频混剪。用 Coze 工作流帮您节约 99% 的时间,从此告别手动!!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何使用Coze工作流快速制作情感治愈类短视频。通过结合DeepSeek生成文案、文案转语音、视频片段混剪、字幕添加等步骤,用户可以在Coze平台上高效完成视频创作。文章详细阐述了工作流的搭建过程,包括关键参数设置、插件使用、Python代码编写等,并提供了完整的提示词、代码和工作流链接,方便读者实践。

🎤 通过Coze工作流,用户只需输入文案主题,即可快速生成情感治愈类短视频,大大缩短了制作时间。

✍️ 工作流利用DeepSeek生成情感文案,并将其转化为语音,随后根据语音时长匹配视频片段。

🎬 工作流支持自定义视频片段,并使用Python代码构建剪映草稿,实现字幕、音频、视频的精准同步和编辑。

⚙️ 整个工作流包含多个关键环节,如文案生成、语音转换、音频对齐、视频片段选取、剪映草稿构建等,每个环节都有详细的说明和技术实现。

💡 文章提供了完整的提示词、代码和工作流链接,方便读者学习和实践,降低了AI短视频制作的门槛。

大家好,我是大明哥,目前专注 AI 智能体。


相信大家都刷到过这类视频:它们以情绪化、人生感悟、心灵治愈的文案,配上一些简单的视频。这类视频非常容易引发共鸣。制作也相对容易些,如果你用剪映来做的话,制作一个视频应该要花几十分钟。

但是,如果你用 Coze 工作流的花,几十秒就可以搞定。你只需要输入文案主题,Coze 工作流就可以对多个视频片段进行混剪(支持自定义上传视频),同时生成文案、配音。

整体思路

完整工作流:

搭建工作流

整个工作流接收三个参数:

利用 DeepSeek 来生成文案,提示词如下:

# 角色你是一位出色的治愈情感文案专家,擅长依据用户输入的主体,创作出饱含温情、抚慰人心的情感文案。你的文字细腻且富有感染力,能精准捕捉情感的微妙之处,给人带来温暖与力量。## 技能### 技能 1: 创作情感文案1. 接收用户输入的主体后,深入剖析主体蕴含的情感元素。2. 围绕主体展开丰富联想,从多维度挖掘相关情感脉络。3. 使用电影旁白的深情风格,文案需能够引起用户的情感共鸣,精炼简短,字数在 150 字左右===回复示例===[情感文案内容]===示例结束===### 输出格式最后直接输出创作好的文案,无需额外说明。## 限制:- 仅围绕用户输入的主体创作情感文案,拒绝回答与创作情感文案无关的话题。- 所输出的情感文案须逻辑清晰、语句通顺,符合情感表达要求。- 情感文案应紧密围绕用户输入的主体,不得偏离主题创作。 - 最后直接输出文案,文案字数 150字左右。

生成文案后就将文案转换为语音,同时获取它的时长:

由于生成的文案是一整段的,所以需要将其进行分割处理,主要是按照标点符号来分割:

由于文案是切割的,但是音频是一整段,所以需要利用插件将文案和音频对齐,这里采用插件[字幕音频对齐]:

注意:这个插件是收费的。当然,这里也有不收费的方式,就是先将文案分割,然后在批量将其合成音频,最后利用代码来进行时间线的处理。这种方案实现起来也不难(大明哥前面大部分工作流都是这么处理的),就是稍微繁琐了点。

文案和音频处理完成后就需要来处理视频了。

如果输入了自定义视频的话,需要先获取自定义视频的时长,因为需要根据自定义视频时长和音频长度进行补齐处理:

再就是挑选视频片段了,由于代码比较多就比贴出来了。挑选完视频后,还需要再次对挑选的视频时长再次进行下计算,主要目的是为了构建视频的时间线:

再然后就是利用 Python 代码来构建剪映草稿的数据了。输入参数:

输出参数:

Python 代码:

import jsonasync def main(args: Args) -> Output:    params = args.params        video_url = params["video_url"]    time_lines = params["time_lines"]    audio_url = params["audio_url"]    text_list = params["text_list"]    audio_duration = params["audio_duration"]    title = params["title"]    video_duration = params["video_duration"]    # 处理视频    video_start = 0    video_end = 0    video_infos = []        for index,item in enumerate(video_url):        duration = convert_to_seconds(video_duration[index]["duration"])        video_end = video_start + duration * 1000000        if (video_end >= audio_duration):            video_end = audio_duration        video_infos.append({            "video_url": item,            "start": video_start,            "end": video_end,            "width":576,            "height":1024,            "transition": "叠化",            "transition_duration": 1000000        })        video_start = video_end        if (video_start >= audio_duration):            break    # 背景音乐    bg_audio = [{        "audio_url":"https://houht.oss-cn-shanghai.aliyuncs.com/public/mp3/qingroubgm.MP3",        "start":0,        "end":video_end    }]    # 配音和字幕    ## 配音    audio_infos = [{        "audio_url": audio_url,        "duration": audio_duration,        "start":0,        "end":audio_duration    }]    ## 字幕    start = 0    end = 0    caption_infos = []    for index,item in enumerate(time_lines):        start = item["start"]        end = item["end"]        text = text_list[index]        caption_infos.append({            'text': text,            'start': start,            'end': end,            "in_animation":"渐显",            "out_animation":"渐隐"        })    captions_title = [{        'text': title,        'start': 0,        'end': 2000000,        "in_animation":"",         "out_animation":"渐隐"    }]    # 构建输出对象    ret: Output = {        "video_infos":  json.dumps(video_infos),        "bg_audio":  json.dumps(bg_audio),        "audio_infos":  json.dumps(audio_infos),        "caption_infos":  json.dumps(caption_infos),        "captions_title":  json.dumps(captions_title)    }    return ret# 将时间格式转化为秒数def convert_to_seconds(time_str):    ## 为空 返回 0    if not time_str:        return 0        parts = time_str.split('时')    if len(parts) == 2:        hours = int(parts[0])        sub_parts = parts[1].split('分')        minutes = int(sub_parts[0])        seconds = int(sub_parts[1].split('秒')[0])        total_seconds = hours * 3600 + minutes * 60 + seconds    else:        parts = parts[0].split('分')        if len(parts) == 2:            minutes = int(parts[0])            seconds = int(parts[1].split('秒')[0])            total_seconds = minutes * 60 + seconds        else:            total_seconds = int(parts[0].split('秒')[0])    return total_seconds

最后就是创建剪映草稿,然后添加数据了:

视频效果(掘金上传视频太麻烦了),看这里:mp.weixin.qq.com/s/D8MPrtrXn…


Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Coze AI 短视频 工作流 情感治愈
相关文章