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 图生图+剪映制作人物说话视频

说实话,这个视频只是张嘴闭嘴的效果,没有脸部表情变化,确实显得比较生硬。

不过这里重点在于介绍制作思路和剪辑方法, 对于感兴趣的朋友可以尝试玩一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CH583/2构建工程教程

CH583/2构建工程教程 绪论资源移植步骤准备移植步骤一步骤二 工程配置修改工程名修改前修改后 工程配置修改资源文件 修改C/C general修改C/C构建修改汇编交叉编译修改C交叉编译修改GNU RISC-V Cross Linker 修改跟编译 移植注意事项 绪论 资源 CH583/2的SDK下载 移植步骤 …

Java课题笔记~ 整合第三方技术

1. 整合JUnit 问题导入 回忆一下Spring整合JUnit的步骤&#xff1f; 1.1 Spring整合JUnit&#xff08;复习&#xff09; 1.2 SpringBoot整合JUnit 【第一步】添加整合junit起步依赖(可以直接勾选) <dependency><groupId>org.springframework.boot</groupId…

flutter对数组中某个数据二次加工成单独的数组

如何将数据[2,1,2,2,2,1,2,2,3,2,2,2,2,3,2,2,2,2,2,3,2,4,2,2,1,2,3,2,4,2]加工成 [[2], 1, [2, 2, 2], 1, [2, 2], 3, [2, 2, 2, 2], 3, [2, 2, 2, 2, 2], 3, [2], 4, [2, 2], 1, [2], 3, [2], 4, [2]]。这是实际工作中遇到的问题&#xff0c;UI要求将某一类型数据&#xff…

Android View截屏长图拼接(RecyclerView)

Android页面View截图&#xff08;分享、保存相册&#xff09; Android View 截屏上下拼接 Android View截屏长图拼接&#xff08;RecyclerView&#xff09; Android View截屏长图拼接&#xff08;NestedScrollView&#xff09; RecyclerView截屏&#xff0c;其实就是遍历每…

前端实习day30

今天又是一个繁忙的一天&#xff0c;加功能&#xff0c;改样式&#xff0c;改得头皮发麻&#xff0c;预定的任务还是没能完成&#xff0c;改起来真得太头疼&#xff0c;代码太乱了&#xff01;&#xff01;昨天那个bug&#xff0c;今天问了一下同事&#xff0c;不到五分钟就解决…

无涯教程-PHP - intval() 函数

PHP 7引入了一个新函数 intdiv()&#xff0c;该函数对其操作数执行整数除法并将该除法返回为int。 <?php$valueintdiv(10,3);var_dump($value);print(" ");print($value); ?> 它产生以下浏览器输出- int(3) 3 PHP - intval() 函数 - 无涯教程网无涯教程网…

nodejs根据pdf模板填入中文数据并生成新的pdf文件

导入pdf-lib库和fontkit npm install pdf-lib fs npm install pdf-lib/fontkit 具体代码 const { PDFDocument, StandardFonts } require(pdf-lib); const fs require(fs); const fontkit require(pdf-lib/fontkit) let pdfDoc let font async function fillPdfForm(temp…

Ubuntu Touch OTA-2 推出,支持 Fairphone 3 和 F(x)tec Pro1 X

导读UBports 基金会近日宣布为基于 Ubuntu 20.04 LTS (Focal Fossa) 的 Ubuntu Touch 移动操作系统发布并全面提供 OTA-2 软件更新。 Ubuntu Touch OTA-2 在首次 OTA 更新整整四个月后发布&#xff0c;支持新设备&#xff0c;包括 Fairphone 3、F(x)tec Pro1 X 和 Vollaphone X…

Ubuntu部署PHP7.4

系统版本&#xff1a;Ubuntu22.04 PHP版本: 7.4 Mysql版本&#xff1a;8.0 Nginx版本: 最新 1. 更新系统 首先&#xff0c;确保系统包是最新的&#xff1a; sudo apt update && sudo apt upgrade -y2. 安装 Nginx Nginx 在默认的 Ubuntu 仓库中&#xff0c;因此安装…

libdrm全解析八 —— 源码全解析(5)

接前一篇文章&#xff1a;libdrm全解析七 —— 源码全解析&#xff08;4&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 7. DRM_IOCTL_GET_STATS …

HarmonyOS开发第一步,熟知开发工具DevEco Studio

俗话说的好&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;走进HarmonyOS第一步&#xff0c;开发工具必须先行&#xff0c;当然了&#xff0c;关于开发工具的使用&#xff0c;官网和其他的博客也有很多的讲解&#xff0c;但是并没有按照常用的功能进行概述&#xff…

C++信息学奥赛2049:【例5.19】字符串判等

这段代码的功能是比较两个输入的字符串是否相等&#xff08;忽略大小写和空格&#xff09;&#xff0c;并输出 “YES” 或 “NO”。 解析注释后的代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {string arr; // 定义字符串变量arr&…

solidity0.8.0的应用案例9:代理合约

代码由OpenZeppelin的Proxy合约简化而来。 代理模式 Solidity合约部署在链上之后,代码是不可变的(immutable)。这样既有优点,也有缺点: 优点:安全,用户知道会发生什么(大部分时候)。坏处:就算合约中存在bug,也不能修改或升级,只能部署新合约。但是新合约的地址与…

Hive 导入csv文件,数据中包含逗号的问题

问题 今天 Hive 导入 csv 文件时&#xff0c;开始时建表语句如下&#xff1a; CREATE TABLE IF NOT EXISTS test.student (name STRING COMMENT 姓名,age STRING COMMENT 年龄,gender STRING COMMENT 性别,other_info STRING COMMENT 其他信息 ) COMMENT 学生信息表 ROW FORM…

T362598 Glaciaxion

Glaciaxion 题目描述 冰封的世界可以看作是 $ n $ 块初始时冷冻的冰川&#xff0c;这些冰川被编号为 1 ∼ n 1 \sim n 1∼n。 探测器抵达后的 $ m $ 秒&#xff0c;每秒都会探测到一块冰川融化。 当一块冰川第一次融化时&#xff0c;探测器返回 N&#xff0c;否则返回 Y。…

Keepalive+LVS群集部署

一、Keepalive概述 keepalived 软件起初是专为 LVS 负载均衡软件设计的&#xff0c;用来管理并监控 LVS集群中各个服务节点的状态&#xff0c;后来又加入了可以实现高可用的 VRRP 功能。因此&#xff0c;keepalived 除了能够管理 LVS集群外&#xff0c;还可以为其他服务&#…

内网安全:WMI协议与SMB协议横向移动

目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 - 横向移动 利用方式一&#xff1a;wmic命令 利用方式一&#xff1a;cscript 利用方式一&#xff1a;impacket SMB协议 - 横向移动 利用方式一&#xff1a;psexec 利用方式二&#xff1a;psexe…

debian apt error: Package ‘xxx‘ has no installation candidate

新的debian虚拟机可能会出现这个问题。 修改apt的source.list&#xff0c;位于/etc/apt/source.list&#xff0c;添加两行&#xff1a; deb http://deb.debian.org/debian bullseye main deb-src http://deb.debian.org/debian bullseye main执行&#xff1a; sudo apt-get u…

Linux下的Shell编程——正则表达式入门(四)

前言&#xff1a; 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里&#xff0c;正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中&#xff0c;grep&#xff0c;sed&#xff0c;awk 等文本处理工具都支持…

Ubuntu inotify

inotify 是一个用于监视文件系统事件的机制。它允许你监视文件或目录的变化,如文件的创建、修改、删除、移动等,以及目录的访问权限变化。 安装 在 Ubuntu 中,你需要安装 inotify-tools 包,这是一个包含 inotifywait 和 inotifywatch 等实用工具的软件包。你可以使用以下命…