AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频
大家好,我是风雨无阻。
前一篇,我们详细介绍了使用 SadTlaker制作数字人视频案例,感兴趣的朋友请前往查看:AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程。
对于没有安装 SadTlaker 插件的朋友,可以查看这篇文章:AI 绘画Stable Diffusion 研究(十二)SD数字人制作工具SadTlaker插件安装教程 。
想必用过 SadTlaker 的朋友都知道,目前使用 SadTlaker插件制作数字人说话的视频,有两个不太理想的地方:
(1)、 生成视频消耗的时间比较长。尤其是显卡和显存比较低的朋友,想要制作一个长时间的视频,效率更低。
笔者亲测:使用3060 12G显卡,制作一段15s 左右的视频,需要10分钟左右。
(2)、目前的SadTlaker 图片人物只能使用正面照,这样给人的感觉比较突兀。
那有没有其他方法制作数字人视频,既能达到让数字人张嘴说话的效果, 效率又更高,还可以使用非正面图的方式呢?
答案是有的,那就是今天的主题: SD 图生图制作人物张嘴说话图+剪映制作说话视频。
一、SD制作人物张嘴说话图
1、切换到SD 图生图->局部重绘界面 ,上传一张人物图片

2、反推正向提示词

3、改写正向提示词,让人物张嘴
没安装提示词插件的朋友,请查看这篇文章AI 绘画Stable Diffusion 研究(六)sd提示词插件,有详细安装步骤。
(1)、我们使用提示词插件, 在提示词处,先输入中文: 张嘴
提示词插件会自动将中文转换英文提示词。
如图:

(2)、为了让人物张嘴效果更明显,不被sd 忽略,我们需要增加张嘴提示词的权重
选择张嘴提示词, 会弹出权重操作按钮,然后我们点击三次,增加权重图标按钮,此时提示词输入框内会自动增加提示词的权重。
如图:



(3)、涂选重绘区域
在局部重绘界面,右侧选择画笔,ctrl+鼠标滚轮可调整画笔粗细。

(4)、调整重绘尺寸

(5)、启用controlnet ,保存人物姿势不变
- 启用controlnet
- 控制类型选择:openpose
- 预处理器:openpose_full
- 模型:control_v11p_sd15_openpose

(6)、点击生成,即可获得人物张嘴的图片
对比图如下:

上面我们已经获得了人物张嘴的图片,那么接下来,我们使用剪映,加上配音和字幕,即可制作人物开口说话视频了。
二、剪映制作人物开口说话视频
1、准备工作
-
安装剪映,具体的安装步骤这里就不再细说,很简单,请自行安装。
-
准备好人物张嘴和闭嘴的两张图
-
准备好音频文件
2、打开剪映点击开始制作

3、导入音频和图片
如图:
qyDT-1692773049806)(assets/image-20230823003231110.png)]

4、将音频拖入下方音频轨道

5、生成字幕
依次点击菜单栏上“文本”按钮,再点击左侧“智能字幕”按钮,接着点击“开始识别”按钮,生成字幕

字幕生成如下:

6、将图片拖入轨道,然后切换嘴型
(1)、怎么切换嘴型,使其看上去像说话的效果呢?
用过剪映的朋友肯定知道,剪映 1s 是30帧 。
那么正常人说话,大约1s 5 -6 个字。
因此我们可以计算出来大概 5帧 一个嘴型。
因此我们先使用闭嘴的图,然后在5帧的地方,切换张嘴的图即可实现。
(2)、制作步骤
-
step 1: 将张嘴的图和闭嘴的图分别导入到图片两个轨道上
-
step 2:将右侧轨道缩放拖到最右侧,可以清晰看见轨道上的帧数 ,如1f \2f\4f\6f
如图:

step 3: 将定位线移到 5帧处,然后点击分割按钮,将张嘴和闭嘴图都分割开
如下:

step 4:处理闭嘴的图, 分割后,我们删除,前5帧,不用的闭嘴图
如下:

step 5: 继续往后数5帧,再分割

step 6: 删除张嘴、闭嘴图 多余的部分

step 7: 将张嘴、闭嘴拖入同一轨道,并且打组

选中两个片段,然后鼠标右键,新建复合片段,打组

现在的效果,就是闭嘴、张嘴的一个片段 。
打组后如图:

step 8: 复制粘贴多个片段,直到一句说完话为止
然后将图片末尾和字幕对齐。
如图:

step 9: 没说话的时候,使用闭嘴的图
注意:将图片末尾和空白处末尾对齐
如下:

step 10: 继续处理后面说话的部分, 重复步骤step 8,直到每句话处理完毕

step 11: 调整视频比例,9:16 再导出视频
右上角导出按钮,导出即可。


好了,这个视频制作就到此结束,看看效果吧:
SD 图生图+剪映制作人物说话视频
说实话,这个视频只是张嘴闭嘴的效果,没有脸部表情变化,确实显得比较生硬。
不过这里重点在于介绍制作思路和剪辑方法, 对于感兴趣的朋友可以尝试玩一下。
相关文章:
AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频
大家好,我是风雨无阻。 前一篇,我们详细介绍了使用 SadTlaker制作数字人视频案例,感兴趣的朋友请前往查看:AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程。 对于没有安装 SadTlaker 插件的朋友…...
ProPlot 基本语法及特点
文章目录 简介多子图绘制处理共享轴标签“跨度”轴标签多子图序号的绘制 更简单的颜色条和图例更加美观的颜色和字体 简介 科研论文配图多图层元素(字体、坐标轴、图例等)的绘制条件提出了更高要求,我们需要更改 Matplotlib 和 Seaborn 中的…...
element-template-admin get请求正常 post请求超市问题
最近搞全栈,想写个增删改查连接element-template-admin框架,postman测get和post请求都正常,到框架里直接超时,看网络请求一直是padding状态,后来经查阅资料,发现是这个template框架的问题 解决方案&#x…...
Promise.all和promise.race的应用场景举例
Promise.all( ).then( )适用于处理多个异步任务,且所有的异步任务都得到结果时的情况。 <template><div class"box"><el-button type"primary" plain click"clickFn">点开弹出框</el-button></div> &…...
go学习-指针 标识符
指针,以及标识符 1.指针 (1).基本介绍 1)基本数据类型,变量存的值,也叫值类型 2)获取变量的地址用&,比如 var num int ,获取num的地址:&num 3)指针类型&…...
LeetCode--HOT100题(42)
目录 题目描述:108. 将有序数组转换为二叉搜索树(简单)题目接口解题思路代码 PS: 题目描述:108. 将有序数组转换为二叉搜索树(简单) 给你一个整数数组 nums ,其中元素已经按 升序 排列…...
YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)
YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测k折交叉验证法) 0.引言 k折交叉验证(K-Fold Cross-Validation)是一种在机器学习中常用的模型评估技术,用于估计模型的性…...
leetcode算法题--表示数值的字符串
原题链接:https://leetcode.cn/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/description/?envTypestudy-plan-v2&envIdcoding-interviews 题目类型有点新颖,有限状态机 // CharType表示当前字符的类型 // State表示当前所处的状态 type State…...
Docker安装及Docker构建简易版Hadoop生态
一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统:首先打开终端,更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker:使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…...
使用Burp Suite进行Web应用渗透测试
使用Burp Suite进行Web应用渗透测试是一种常见的方法,可以帮助发现Web应用程序中的安全漏洞和弱点。 步骤: 准备工作: 首先,确保已经安装了Burp Suite,并配置浏览器以使用Burp Suite作为代理。 配置代理:…...
Github的使用指南
首次创建仓库 1.官网创建仓库 打开giuhub官网,右上角点击你的头像,随后点击your repositories 点击New开始创建仓库 如下图为创建仓库的选项解释 出现如下界面就可以进行后续的git指令操作了 2.git上传项目 进入需上传项目的所在目录,打开…...
mongodb 添加加点 stateStr 停在 STARTUP
解决办法 PRIMARY 节点是的host 是否是内网IP,如果是内网IP 需要切换成外网IP 即可;...
c语言中编译过程与预处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…...
TP-LINK 路由器设置内网穿透
TP-LINK 路由器设置内网穿透 开发中经常遇到调用第三方软件回调调试的情况,例如微信开发,支付回调等测试,用内网穿透是一种简单的方式也是偷懒的方式。 以TP-LINK路由器为例实现内网穿透 登录路由器 2.找到路由器虚拟服务器,添加…...
A 题国际旅游网络的大数据分析-详细解析与代码答案(2023 年全国高校数据统计与调查分析挑战赛
请你们进行数据统计与调查分析,使用附件中的数据,回答下列问题: ⚫ 问题 1: 请进行分类汇总统计,计算不同国家 1995 年至 2020 年累计旅游总人数,从哪个国家旅游出发的人数最多,哪个国家旅游到达的人数最多…...
《深入理解Java虚拟机》读书笔记: 类加载器
类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新&…...
宝塔计划任务读取文件失败
想挂计划任务 相关文章【已解决】计划任务读取文件失败 - Linux面板 - 宝塔面板论坛 对方反馈的是执行下面的命令 chattr -ai /var/spool/cron 后来发现直接没有这个文件夹,然后通过mkdir命令创建文件夹,成功在宝塔创建了计划任务 后面发现任务虽然添…...
Python操作sql,备份数据库
1、批量执行sql import pymysql# 执行批量的 SQL 语句 def executeBatchSql(cursor, sqlStatements):for sql in sqlStatements:try:cursor.execute(sql)print(Executed SQL statement:, sql)except Exception as e:print(Error executing SQL statement:, e)# 创建数据库连接…...
Linux线程 --- 生产者消费者模型(C语言)
在学习完线程相关的概念之后,本节来认识一下Linux多线程相关的一个重要模型----“ 生产者消费者模型” 本文参考: Linux多线程生产者与消费者_红娃子的博客-CSDN博客 Linux多线程——生产者消费者模型_linux多线程生产者与消费者_两片空白的博客-CSDN博客…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
