只需3步,使用Stable Diffusion无限生产AI数字人视频
效果演示
先看效果,感兴趣的可以继续读下去。
没有找到可以上传视频的地方,大家打开这个网盘链接观看:https://www.aliyundrive.com/s/CRBm5NL3xAE
基本方法
搞一张照片,搞一段语音,合成照片和语音,同时让照片中的人物动起来,特别是头、眼睛和嘴。
语音合成
语音合成的方法很多,也比较成熟了,大家可以选择自己方便的,直接录音也可以,只要能生成一个语音文件就行了。
这里分享一个文字转语音的工具:在线免费文字转语音 - TTSMaker | 马克配音https://ttsmaker.cn/在线免费文字转语音 - TTSMaker | 马克配音,不用注册不用花钱,使用起来很简单。(广告时间:目前国内的AI资源也很丰富了,我做了一个汇总:https://toai.fireflysoft.net,不用特殊网络设置,快速找到想用的AI工具)
如下图所示 :输入你的文字,选择播音员,填写验证码,点击转换按钮。
生成速度挺快的,然后在左边这里可以试听和下载。
照片生成
这里介绍的方法需要使用比较真实的照片,如果太二次元了,视频人脸的效果会比较差。大家可以使用自己真实的照片,也可以使用Stable Diffusion生成一张,也可以使用图生图稍微改造下自己的照片,总之要尽量真实一些。
另外这张照片尽量正面一些,侧脸生成的视频可能会出现头和身体拼接不太好的情况,所以如果有证件照是最好的。
我这里演示生成一张真实照片,看AI生成的美女都有些厌倦了,今天我们生成个帅哥。
(1)生成工具使用 Stable Diffusion WebUI,模型选择 realisticVisionV20,这个模型生成的图片看起来比较真实。
提示词:best quality, front photo of a young man, chinese, portrait,black t-shirt, short hair, (looking at viewer), Sense of technology, in an office, computers, screen, books, upper body,
反向提示词: easy_negative, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),
(2)采样器这里选择DPM++ 2M SDE Karras,选择别的也没问题,只要生成一张人物照片就可以了。
采样步数根据采样器选择,这里是40,建议20-40,以实际出图效果为准。
尺寸这里选择竖版,放到手机里会比较合适。
生成次数:建议先把提示词写好了,然后一次多生成几张,从里边选择最好的,节省时间。
(3)这里我选择一张自认为看起来还不错的图片,把这张图下载下来备用。
视频合成
这是最关键的一步,这里还是使用Stable Diffusion WebUI,不过只是使用其中的一个插件,这个插件的名字就是SadTalker。
SadTalker是Github上开源的,主要成员也都是国内的技术大佬,地址:https://github.com/OpenTalker/SadTalker.git
这里默认大家都安装好Stable Diffusion WebUI了,如果还没安装过的朋友,建议去AutoDL上租一个服务器体验下,方便不贵,选择A5000规格的就差不多了,安装教程网上应该挺多的,这里就不啰嗦了,还不会的可以联系我。
关于SadTalker插件的安装方法我这里介绍两种。
安装方法一
适合访问Github或者外网比较顺畅的用户,因为需要自动下载很多东西。
在SD WebUI中通过扩展插件页面安装,如下图所示:
这个插件需要下载的文件很多,有的文件还比较大,请耐心等待。如果不确定是不是出问题了,可以看看控制台输出的内容,有没有错误。
安装完了,不要忘了重启Stable Diffusion,要整个重启,不要只重启WebUI。
安装方法二
适合访问外网不太方便的用户,把这个插件需要的文件通过别的方式提前下载好,比如迅雷下载,只要上传到指定的目录就行了。
- 主程序:
放到 stable-diffusion-webui/extensions/SadTalker
https://github.com/OpenTalker/SadTalker/archive/refs/heads/main.zip
- 视频模型:
放到 stable-diffusion-webui/extensions/SadTalker/checkpoints
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00109-model.pth.tar
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00229-model.pth.tar
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_256.safetensors
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_512.safetensors
- 修脸模型:
放到 stable-diffusion-webui/extensions/SadTalker/gfpgan/weights 和 stable-diffusion-webui/models/GFPGAN
https://github.com/xinntao/facexlib/releases/download/v0.1.0/alignment_WFLW_4HG.pth
https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth
https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth
为了方便使用这种方式部署,我也把相关的文件做了一个打包,大家不用一个一个下载。关注公众号:萤火遛AI,发消息:数字人,即可获得下载地址。
(1)首先把文件下载到本地或者你的云环境,这里以AutoDL为例,我把它放到 /root 目录中。
(2)然后解压文件到 stable diffusion webui的扩展目录,并拷贝几个文件到SD模型目录:
tar -xvf /root/SadTalker.tar -C /root/stable-diffusion-webui/extensions
cp -r /root/stable-diffusion-webui/extensions/SadTalker/gfpgan/weights/* /root/stable-diffusion-webui/models/GFPGAN/
看到下边的结果,就基本上差不多了。
扩展目录下边有这个文件夹:
SD models 目录下有这几个文件:
部署完毕,不要忘了重启。
使用方法
在SD WebUI的Tab菜单中找到SadTalker,按照下边的顺序进行设置。
1、上传人物照片。
2、上传语音文件。
3、选择视频人物的姿势:实际就是人说话时头部的动作,个人感觉有点摇头晃脑,可以使用不同的数字看看。
4、分辨率:512的视频分辨率比256大。
5、图片处理方法:corp是从图片截取头部做视频,resize适合大头照或者证件照,full就是全身照做视频,extcorp和extfull没做细致研究,大家自己对比下。
6、Still Model:让头部不要动作太大,以致偏离身体,负面效果是头不怎么动了。
7、GFPGAN:修脸,说话时嘴和眼的动作可能让脸有些变形,选上他让脸部好看一些。
最后点击“生成”,根据硬件的运行速度和你的勾选设置,可能需要几分钟的时间,耐心等待。
我这里生成的视频(视频太占地,截个图算了):
可能遇到的问题
(1) 启动的时候报错:SadTalker will not support download...
这个错误就是模型下载不下来,告诉我们要去手动下载。
这里有两个方法:
- 执行下边的命令触发下载,注意 cd 之后的路径替换成你自己的SadTalker安装路径:
cd stable-diffusion-webui/extensions/SadTalker
chmod 755 scripts/download_models.sh
scripts/download_models.sh
- 下载所有的模版,然后手工上传到相关目录,上边安装方法二中已经介绍过,可以使用我打包好的文件包。
(2) 合成视频时报错:No module named 'xxx'
使用 pip install xxx 就可以了,注意如果使用了python虚拟环境,需要先激活它,比如这里要先执行source xxx。
source /root/stable-diffusion-webui/venv/bin/activate
pip install librosa
(3)合成视频时报错:No such file or directory: '/tmp/gradio/xxx',创建目录就可以了:
mkdir -p /tmp/gradio
(4)如果提示找不到 ffmpeg,我这里没遇到,如果出现请先下载安装:http://ffmpeg.org/download.html
以上就是本文的主要内容了,使用这种方法就可以无限制作自己的AI专属数字人,想要什么样的风格都可以,想做多少个都可以,有兴趣的快去试试吧。当然要遵纪守法,不要搞出事情来。
如果你有任何问题,欢迎与我交流,V/X:yinghuojun007。
相关文章:

只需3步,使用Stable Diffusion无限生产AI数字人视频
效果演示 先看效果,感兴趣的可以继续读下去。 没有找到可以上传视频的地方,大家打开这个网盘链接观看:https://www.aliyundrive.com/s/CRBm5NL3xAE 基本方法 搞一张照片,搞一段语音,合成照片和语音,同…...

Mysql执行计划字段解释
文章目录 一、前言二、如何查看执行计划三、执行计划各字段解释四、select_type4.1、SIMPLE(简单查询)4.1.1、简单的单表查询4.1.2、多表连接查询 4.2、PRIMARY(主查询)4.2.1、包含复杂子查询的外层查询4.2.2、UNION语句中的第一个…...

Linux -- 线程
文章目录 1. 线程概念1.1 概念1.2 理解(Linux OS角度)1.3 见一见 2. 线程优缺点3. 线程使用3.1 认识线程库3.2 使用3.2.1 线程创建3.2.2 线程等待3.2.3 线程退出3.2.4 线程取消3.2.5 获取线程id3.2.6 线程分离 3.3 理解线程库3.4 证明线程栈3.5 线程局部…...
Android:实时更新时间
心想着也就是更新精确到分钟,不用精确到秒,定时器就没有必要,系统是有广播Intent.ACTION_TIME_TICK可以直接用 动态注册广播 主方法里面调用一下 //要先设置一下当前时间,不然刷新时间会等到1分钟后再刷新 tv_HM.setText(getHM…...

24 鼠标常用事件
鼠标进入:enterEvent鼠标离开:leaveEvent鼠标按下:mousePressEvent鼠标释放:mouseRelaseEvent鼠标移动:mouseMoveEvent 提升为自定义控件MyLabel 代码: //mylabel.h #ifndef MYLABEL_H #define MYLABEL_H#…...

了解 3DS MAX 3D摄像机跟踪设置:第 4 部分
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25,将持续时间设置为 12 秒。单…...
nginx吞吐量调优
调整worker_processes和worker_connections: worker_processes:设置为服务器的CPU核心数或更高。例如,如果服务器有8个CPU核心,可以将worker_processes设置为8。worker_connections:设置每个worker进程所能处理的最大连…...
Python操作Excel文件,修改Excel样式(openpyxl)
秋风阁-北溪入江流 文章目录 安装依赖库openpyxlopenpyxl的操作加载文件,获取sheet加载文件load_workbook获取sheet 遍历单元格迭代遍历索引遍历 单元格行高和列宽的修改Excel列号与字母的转换Excel行高修改Excel列宽修改 Excel表格文字对齐属性设置修改单元格框线保…...
AutoSAR系列讲解(实践篇)7.6-实验:配置SWCRTE(下)
阅读建议: 实验篇是重点,有条件的同学最好跟着做一遍,然后回头对照着AutoSAR系列讲解(实践篇)7.5-OS原理进阶_ManGo CHEN的博客-CSDN博客理解其配置的目的和意义。本篇是接着AutoSAR系列讲解(实践篇)7.4-实验:配置SWC&RTE_ManGo CHEN的博客-CSDN博客的实验篇接着做…...

【node】使用express+gitee搭建图床,并解决防盗链问题
首先创建一个gitee的项目,详细步骤我就不一一说明 注解:大家记得将这个项目开源,还有记得获取自己的私钥,私钥操作如下: node依赖下载: "axios": "cors": "express"…...

蕨型叶分形
目录 要点 基本语句 EraseMode 习题 1 设置颜色 2 旋转蕨型叶图 3 枝干 4 塞平斯基三角形 要点 蕨型叶是通过一个点的反复变换产生的,假设x是一个含有两个分量的向量,可以用来表示平面内的一个点,则可以用Axb的形式对其进行变换。 基本…...

DevOps系列文章之 Git知识大全
Git常用命令 配置Git-SSH 配置Git的user name以及Git要关联的邮箱email git config --global user.name your name git config --global user.email your email 生成密钥 ruby 复制代码 $ ssh-keygen -t rsa -C "your email" 按三个回车,跳过设置密码&am…...

JVM理论(六)执行引擎--垃圾回收
概述 垃圾: 指的是在运行程序中没有任何指针指向的对象垃圾回收目的: 为了及时清理空间使得程序可以正常运行垃圾回收机制: JVM采取的是自动内存管理,即JVM负责对象的创建以及回收,将程序员从繁重的内存管理释放出来,更加专注业务的开发垃圾回收区域: 频繁收集Young区(新生代)…...

贪心算法重点内容
贪心算法重点内容 4.1部分背包 按照单位重量的价值排序 4.2最小生成树 两种算法 4.3单源最短路径 4.4哈夫曼树...

基于深度学习的高精度交通信号灯检测系统(PyTorch+Pyside6+YOLOv5模型)
摘要:基于深度学习的高精度交通信号灯检测识别可用于日常生活中检测与定位交通信号灯目标,利用深度学习算法可实现图片、视频、摄像头等方式的交通信号灯目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…...

【3D目标检测】DSVT-2023CVPR
论文:https://arxiv.org/pdf/2301.06051.pdf 作者:北大,华为 代码:https://github.com/Haiyang-W/DSVT ( OpenPCDet 框架已集成) 讲解:实时部署!DSVT:3D动态稀疏体素Tr…...

我在VScode学Python(Python函数,Python模块导入)
我的个人博客主页:如果’真能转义1️⃣说1️⃣的博客主页 (1)关于Python基本语法学习---->可以参考我的这篇博客《我在VScode学Python》 (2)pip是必须的在我们学习python这门语言的过程中Python ---->&a…...

【目标跟踪】1、基础知识
文章目录 一、卡尔曼滤波二、匈牙利匹配 一、卡尔曼滤波 什么是卡尔曼滤波?——状态估计器 卡尔曼滤波用于在包含不确定信息的系统中做出预测,对系统下一步要做什么进行推测,且会结合推测值和观测值来得到修正后的最优值卡尔曼滤波就是利用…...
33. 搜索旋转排序数组
题目描述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0], n…...

接口自动化测试要做什么?8个步骤讲的明明白白(小白也能看懂系列)
先了解下接口测试流程: 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建(工具) 6、执行用例 7、缺陷管理 8、测试报告 那"接口自动化测试"怎么弄?只需要在上篇文章的基础上再梳理下就…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...