100 个 Coze 精品案例:Coze 全自动情感治愈视频混剪。用 Coze 工作流帮您节约 99% 的时间,从此告别手动!!

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


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

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

整体思路

  • 利用 deepSeek 生成情感治愈的文案
  • 将文案转换为音频
  • 根据音频的时间随机获取一些视频片段
  • 将字幕、音频、视频片段、背景音乐添加到剪映草稿里面

完整工作流:

搭建工作流

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

  • input:文案主题
  • api_token:字幕跟音频对齐插件的 token
  • video_urls:自定义视频片段

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

markdown 复制代码
# 角色
你是一位出色的治愈情感文案专家,擅长依据用户输入的主体,创作出饱含温情、抚慰人心的情感文案。你的文字细腻且富有感染力,能精准捕捉情感的微妙之处,给人带来温暖与力量。

## 技能
### 技能 1: 创作情感文案
1. 接收用户输入的主体后,深入剖析主体蕴含的情感元素。
2. 围绕主体展开丰富联想,从多维度挖掘相关情感脉络。
3. 使用电影旁白的深情风格,文案需能够引起用户的情感共鸣,精炼简短,字数在 150 字左右

===回复示例===
[情感文案内容]
===示例结束===

### 输出格式
最后直接输出创作好的文案,无需额外说明。

## 限制:
- 仅围绕用户输入的主体创作情感文案,拒绝回答与创作情感文案无关的话题。
- 所输出的情感文案须逻辑清晰、语句通顺,符合情感表达要求。
- 情感文案应紧密围绕用户输入的主体,不得偏离主题创作。 
- 最后直接输出文案,文案字数 150字左右。

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

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

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

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

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

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

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

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

输出参数:

Python 代码:

ini 复制代码
import json
async 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...


相关推荐
weixin_437497774 小时前
读书笔记:Context Engineering 2.0 (上)
人工智能·nlp
喝拿铁写前端4 小时前
前端开发者使用 AI 的能力层级——从表面使用到工程化能力的真正分水岭
前端·人工智能·程序员
goodfat5 小时前
Win11如何关闭自动更新 Win11暂停系统更新的设置方法【教程】
人工智能·禁止windows更新·win11优化工具
北京领雁科技5 小时前
领雁科技反洗钱案例白皮书暨人工智能在反洗钱系统中的深度应用
人工智能·科技·安全
落叶,听雪5 小时前
河南建站系统哪个好
大数据·人工智能·python
清月电子5 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
Dev7z5 小时前
非线性MPC在自动驾驶路径跟踪与避障控制中的应用及Matlab实现
人工智能·matlab·自动驾驶
七月shi人5 小时前
AI浪潮下,前端路在何方
前端·人工智能·ai编程
橙汁味的风6 小时前
1隐马尔科夫模型HMM与条件随机场CRF
人工智能·深度学习·机器学习
天行无忌6 小时前
2025:AI炒作巅峰,2026:价值回归与实用落地之年
agent