首页 > 其他分享 >使用Stable Diffusion制作AI数字人视频的简明教程

使用Stable Diffusion制作AI数字人视频的简明教程

时间:2023-07-21 13:11:38浏览次数:51  
标签:Diffusion diffusion github AI stable SadTalker https Stable download

基本方法

搞一张照片,搞一段语音,合成照片和语音,同时让照片中的人物动起来,特别是头、眼睛和嘴。

语音合成

语音合成的方法很多,也比较成熟了,大家可以选择自己方便的,直接录音也可以,只要能生成一个语音文件就行了。

这里分享一个文字转语音的工具:https://ttsmaker.cn/,不用注册不用花钱,使用起来很简单。(广告时间:目前国内的AI资源也很丰富了,我做了一个汇总:萤火AI大全,不用特殊网络设置,快速找到想用的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:修脸,说话时嘴和眼的动作可能让脸有些变形,选上他让脸部好看一些。

最后点击“生成”,根据硬件的运行速度和你的勾选设置,可能需要几分钟的时间,耐心等待。

我这里生成的视频:

此处为语雀视频卡片,点击链接查看:tmpdapv1oowttsmaker-file-2023-7-19-22-51-40-0-100_enhanced.mp4

 

可能遇到的问题

(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专属数字人,想要什么样的风格都可以,想做多少个都可以,有兴趣的快去试试吧。当然要遵纪守法,不要搞出事情来。

如果你有任何问题,欢迎与我交流。

标签:Diffusion,diffusion,github,AI,stable,SadTalker,https,Stable,download
From: https://www.cnblogs.com/bossma/p/17571028.html

相关文章

  • pytest xfail 已知错误 失败也不报错
    [email protected]('a,b,sum',[#参数化出来3组数据(1,2,3),(2,3,5),(3,-19,-16)])deftest_add(a,b,sum):asserta+b==sum#如果名称等于main输出pytest.main([文档,sv参数])@pytest.mark.xfail#已知的错误失败也不报错d......
  • JavaIO中的缓冲流有什么作用如何使用缓冲流进行IO操作
     缓冲流在JavaIO中扮演着非常重要的角色,它可以提高IO操作的效率,减少访问硬盘的次数。在本文中,我们将探讨JavaIO中的缓冲流的作用,并演示如何使用缓冲流进行IO操作。首先,让我们了解一下什么是缓冲流。缓冲流是一种高级流,它通过在内存中创建缓冲区来提高IO的效率。当我们使用缓冲......
  • 全球生成式AI大竞赛,Llama 2大模型现已可在亚马逊云科技上使用
    一直以来Llama可以说是AI社区内最强大的开源大模型。但因为开源协议问题,一直不可免费商用。7月19日,Meta发布了大家期待已久的免费可商用版本Llama2。一夜之间,大模型格局再次发生巨变。 作为Meta宣布的首批合作伙伴之一,现亚马逊云科技客户可通过AmazonSageMakerJumpStart使用由M......
  • Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive M
    目录概IRCoT代码TrivediH.,BalasubramanianN.,KhotT.,SabharwalA.Interleavingretrievalwithchain-of-thoughtreasoningforknowledge-intensivemulti-stepquestions.ACL,2023.概CoT(ChainofThought)+检索.IRCoT对于如上的问题,"Inwhatcountry......
  • Rethinking with Retrieval Faithful Large Language Model Inference
    目录概Rethinkingwithretrieval(RR)代码HeH.,ZhangH.andRothD.Rethinkingwithretrieval:faithfullargelanguagemodelinference.arXivpreprintarXiv:2301.00303,2023.概LLM(LargeLanguageModel)+检索.Rethinkingwithretrieval(RR)CoT(Chai......
  • Android AIDL 跨进程回调
    AndroidAIDL跨进程回调的实现概述在Android开发中,我们经常会遇到需要在不同进程间进行通信的场景。AIDL(AndroidInterfaceDefinitionLanguage)是Android提供的一种跨进程通信(IPC)机制。本文将介绍如何使用AIDL实现Android跨进程回调。步骤下面是实现AndroidAIDL跨进程回调的......
  • async/await初学者指南
    JavaScript中的async和await关键字提供了一种现代语法,帮助我们处理异步操作。在本教程中,我们将深入研究如何使用async/await来掌控JavaScript程序中的流程控制。总览如何创建JavaScript异步函数async关键字await关键字声明异步函数的不同方式await/async内部机制从p......
  • MATLAB train 神经网络 函数
    MATLABtrain神经网络函数神经网络是一种用于模拟人脑神经系统的数学模型,它由大量的神经元和连接它们的权重组成。MATLAB是一个功能强大的数学计算软件,提供了丰富的工具箱和函数,用于神经网络的设计和训练。其中train函数是MATLAB中用于训练神经网络的重要函数之一。train函数的......
  • No qualifying bean of type 'java.lang.String' available: expected at least 1
    Spring中的依赖注入在Spring框架中,依赖注入是一种设计模式,它允许将对象的依赖关系从代码中解耦,并由框架来负责管理这些依赖关系。通过依赖注入,我们可以更容易地编写可维护和可测试的代码。什么是依赖注入?在传统的编程模型中,对象通常通过创建其他对象的实例来满足其依赖关系。这......
  • No package mysql-server available.
    如何解决“Nopackagemysql-serveravailable”错误概述在使用Linux系统进行开发时,有时我们需要安装一些软件包来满足项目的需求。然而,当我们尝试安装某个软件包时,有时会遇到“Nopackagexxxavailable”的错误提示。这种错误通常是由于软件仓库中没有该软件包或者仓库配置有......