使用“阿里云人工智能平台 PAI”制作数字人

news2024/12/23 20:51:47

体验 阿里云人工智能平台 PAI

PAI-DSW免费试用

https://free.aliyun.com/?spm=5176.14066474.J_5834642020.5.7b34754cmRbYhg&productCode=learn

https://help.aliyun.com/document_detail/2261126.html

体验PAI-DSW

https://help.aliyun.com/document_detail/2261126.html
在这里插入图片描述

基于Wav2Lip+TPS-Motion-Model+CodeFormer技术实现动漫风数字人

只需要输入一张动漫形象图片,以及你想让它说的文本内容,它就可以准确的说出你的文本内容并模仿人类的说话动作!

动漫形象的生成可以参考开源代码库 EasyPhoto 、案例easyphoto_diffusers、stable_diffusion_easyphoto。

语音生成相关案例可以参考:ai_singer_rvc、ai_singer_svc。

环境准备

克隆开源代码(网络不稳克隆容易失败,建议多尝试几次。)

#注意:Wav2Lip开源库不可商用,仅用于教学。请遵纪守法,不要用于非法活动。
!git clone https://github.com/Rudrabha/Wav2Lip.git

!git clone https://github.com/yoyo-nb/Thin-Plate-Spline-Motion-Model.git

!git clone https://github.com/sczhou/CodeFormer.git

注释掉codeformer中的import bug:

!sed -i 's/from .version/# from .version/' CodeFormer/basicsr/__init__.py

初始化工作目录:

import os.path as osp

WORKDIR = osp.abspath('.')
print(f'work directory: {WORKDIR}')
WAV2LIP_WORKDIR = osp.join(WORKDIR, 'Wav2Lip')
print(f'wav2lip directory: {WAV2LIP_WORKDIR}')
CODEFORMER_WORKDIR = osp.join(WORKDIR, 'CodeFormer')
print(f'codeformer directory: {CODEFORMER_WORKDIR}')
MOTION_MODEL_WORKDIR = osp.join(WORKDIR, 'Thin-Plate-Spline-Motion-Model')
print(f'motion model directory: {MOTION_MODEL_WORKDIR}')

安装依赖包

!pip install --upgrade pip && \
 pip install -r {MOTION_MODEL_WORKDIR}/requirements.txt --extra-index-url https://download.pytorch.org/whl/cu113/ && \
 pip install -r {CODEFORMER_WORKDIR}/requirements.txt && \
 pip install modelscope==1.10.0 pytorch_wavelets tensorboardX && \
 pip install kantts -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html && \
 pip install librosa==0.8.0 resampy --no-deps && \
 pip install sentencepiece && pip install --upgrade transformers && \
 sudo apt update -y && sudo apt install -y ffmpeg

如果遇到报错cannot import name ‘kaiser’ from ‘scipy.signal’,可以尝试对scipy进行降级,我在Terminal执行下述命令之后就可以继续执行依赖包的安装了

pip install --upgrade scipy==1.7.3

下载运行脚本

!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/codes/run.py -O run.py
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/codes/utils.py -O utils.py
预训练模型准备

下载wav2lip依赖模型并保存到指定目录。

!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/wav2lip/wav2lip.pth -O {WAV2LIP_WORKDIR}/checkpoints/wav2lip.pth
!mkdir -p ~/.cache/torch/hub/checkpoints/
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/wav2lip/s3fd-619a316812.pth -O ~/.cache/torch/hub/checkpoints/s3fd-619a316812.pth

下载Thin-Plate-Spline-Motion-Model依赖模型并保存到指定目录。

!mkdir -p {MOTION_MODEL_WORKDIR}/checkpoints
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/Thin-Plate-Spline-Motion-Model/vox.pth.tar -O {MOTION_MODEL_WORKDIR}/checkpoints/vox.pth.tar

下载codeformer依赖模型并保存到指定目录。

!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/codeformer/CodeFormer/codeformer.pth -O {CODEFORMER_WORKDIR}/weights/CodeFormer/codeformer.pth
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/codeformer/facelib/detection_Resnet50_Final.pth -O {CODEFORMER_WORKDIR}/weights/facelib/detection_Resnet50_Final.pth
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/codeformer/facelib/parsing_parsenet.pth -O {CODEFORMER_WORKDIR}/weights/facelib/parsing_parsenet.pth
!mkdir -p {CODEFORMER_WORKDIR}/weights/realesrgan
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/pretrained_models/codeformer/realesrgan/RealESRGAN_x2plus.pth -O {CODEFORMER_WORKDIR}/weights/realesrgan/RealESRGAN_x2plus.pth
运行

下载测试图片和驱动视频:

!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/imgs/anime_portrait.png -O anime_portrait.png
!wget -nc http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/projects/liveportrait/videos/drive_video.mp4 -O drive_video.mp4

查看测试图片和驱动视频:

from IPython.display import Image, display, Video

image_path = './anime_portrait.png'
raw_photo = Image(image_path)
display(raw_photo)

video_path = 'drive_video.mp4'
Video(video_path)

生成视频:

可通过–text参数指定文本内容自动生成语音,语音生成模型可参考魔搭社区中的相关语音模型修改–tts_model参数;或者通过–audio参数直接指定一段语音。

因为本案例中动作驱动使用了开源代码库Thin-Plate-Spline-Motion-Model,并默认使用relative模式生成动作,建议人像图片和驱动视频的首帧动作尤其是嘴部动作尽可能相似,才可能达到理想的效果。

!python run.py --raw_photo anime_portrait.png --drive_video drive_video.mp4 --out outputs --text "I think It is possible for ordinary people to choose to be extraordinary"

结果可视化:

from IPython.display import Image, display, Video

video_path = 'outputs/final_result.mp4'
Video(video_path)

结果视频
链接:https://pan.baidu.com/s/1eo_udVUg2M6SR-khbrWxKA?pwd=z76z
提取码:z76z

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

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

相关文章

一文详解香港机房服务器干什么用的

香港机房服务器干什么用的?香港机房服务器是用于数据存储和备份、网络服务、数据处理与分析、云计算服务、游戏托管服务、其他服务等。香港机房服务器在现代互联网业务中扮演着至关重要的角色,其主要用途可以归纳为以下几个方面: 1、数据存储…

卡拉OK歌唱比赛活动策划方案

一、活动详细策划 (一)、前期工作准备 1、制定详细的策划方案、比赛流程,通知稿。 2、收集各参赛选手详细资料在选手上台前展示出,让各评委及嘉宾对选手有个初步认识。 3、各工作组准备好相关道具(音响、无线话筒、低…

数据大脑智慧工厂数据平台建设方案(可编辑60页PPT)

引言:随着工业4.0时代的到来,智能制造已成为推动产业升级的核心引擎。为了进一步提升生产效率、优化资源配置、实现精准决策与个性化定制,构建一套高效、智能的数据大脑智慧工厂数据平台显得尤为重要。 方案介绍: 在数字化转型的…

05.FreeRTOS任务挂起与恢复

05. FreeRTOS任务挂起与任务恢复 1. FreeRTOS 挂起和恢复任务相关 API 函数 函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 函数vTaskSuspend() 此函数用于挂起任务,若使用此函数,需要在…

【Docker】Namespace 空间隔离实战

一、实战目的 了解隔离能力并不是 Docker 提供的,而是操作系统内核提供基本能力。 二、基础知识 1、dd 命令详解 Linux dd 命令用于读取、转换并输出数据。 dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、…

直流电表常见的应用有哪些

直流电表作为电力系统中不可或缺的计量工具,其应用广泛且多样化。以下是对直流电表常见应用的详细归纳: 一、新能源发电系统 1. 太阳能光伏发电 应用背景:太阳能光伏发电系统通过太阳能电池板将光能转化为直流电能。直流电表在这一系统中扮…

浪潮NF5280M4虚拟磁盘OFFLINE和磁盘状态为“Frn-Bad”与“UB”故障处理

客户托管设备的机房异常断电,导致6台浪潮NF5280M4的系统无法访问,系统所在的RAID组中的2块磁盘全部亮故障灯。 通过设备管理界面检查,发现逻辑磁盘处于Offline状态: 物理磁盘也处于Offline状态: 进入BIOS RAID配置…

介绍几种 iutils.dll丢失的解决办法,iutils.dll文件详细介绍

电脑中经常会出现 iutils.dll文件丢失的情况,所以如果电脑中缺失 iutils.dll文件会让大家很苦恼,那么 iutils.dll丢失有什么解决办法呢?今天就给大家介绍几种 iutils.dll丢失的解决办法。 1. iutils.dll 文件的来源 iutils.dll 是一个动态链…

npm 修改 淘宝源

aliyun ECS npm 源也不顺畅了,哎 😑 npm config get registrynpm config set registry https://registry.npmmirror.com喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者疑问还请评论指出。 我的个人网站 点击访问 hongw…

暑假时光的趣味新选择:《米小圈漫画历史》的魅力探秘

当暑假的炎炎夏日来临,许多家长都会面临一个共同的挑战:如何让孩子远离手机屏幕,找到既有趣又有教育意义的活动。作为一名父母,我被这个问题所困扰。看着孩子一整天沉浸在电子设备中,我深知这不仅会影响他们的视力&…

web程序员转大模型岗位,零基础入门到精通非常详细,收藏我这一篇就够了

从Web程序员转型到大模型岗位,需要掌握一系列新技能和知识。以下是一个详细的攻略: 了解大模型基础: 学习大模型的基本概念,如Transformer架构、自注意力机制等。 阅读相关论文,如“Attention is All You Need”等。 …

Debug-019-git reflog的两种使用场景

前情:最近在开发项目中对版本管理有了新的理解,感觉在这方面有了新的收获。同时学习了一个新的git指令:git reflog 实际了解之后,发现这个指令不是很常用,但是对于特定的场景的话它还是非常比较方便 这里我列举两种我…

使用 LangChain 开发 LLM 应用(3):记忆

注: 本文是基于吴恩达《LangChain for LLM Application Development》课程的学习笔记;完整的课程内容以及示例代码/Jupyter笔记见:LangChain-for-LLM-Application-Development; 课程大纲 目前 LLM 基本上都有最大 Token 的限制,即…

IEEE计算智能学会深圳分会线上讲座 22-01期: 金耀初教授的科研经验分享

IEEE计算智能学会深圳分会线上讲座 22-01期: 金耀初教授的科研经验分享_哔哩哔哩_bilibili 非限定性定语从句,使用逗号和which、动名词搭配使用, 尽量避免使用被动语态。 obviously- 使用clearly,apparently感觉上更好。 In this study/work 后面的交…

C++重载左移运算符

通过重载左移运算符&#xff0c;可以实现cout << p;直接输出类对象的各个属性。 其只能使用全局函数重载。 注意cout的定义如下&#xff1a; _EXPORT_STD extern "C" __PURE_APPDOMAIN_GLOBAL _CRTDATA2_IMPORT ostream cout; 也就是说我们一直用来输出的c…

VirtualFlow案例 | 油箱燃油晃动模拟,高效分析管路及油箱内油面变化

在探索流体行为模拟的领域&#xff0c;CFD技术为油箱燃油晃动模拟带来了革命性的转变。通过高精度的数值模拟&#xff0c;它不仅揭示了燃油在不同工况下的复杂动态&#xff0c;还为油箱设计的优化提供了关键洞察。这一技术在航空航天、汽车制造、船舶与海洋工程等多个行业中展现…

Diffree - AI一键P图,告别P图困扰,只需要输入一段文字就能轻松玩转P图的神器 本地一键整合包下载

在这个AI技术飞速发展的时代&#xff0c;我们见证了许多神奇的创新&#xff0c;比如最近火遍朋友圈的“Diffree”。这可不是一款新推出的手机游戏&#xff0c;而是一项能让设计师和摄影师们欢呼雀跃的AI图像处理技术。 它能够根据你的文字描述&#xff0c;在图片中“无痕迹”地…

1_初识pytorch

之前完全没有了解过深度学习和pytorch&#xff0c;但现在因为某些原因不得不学了。不得不感叹&#xff0c;深度学习是真的火啊。纯小白&#xff0c;有错的欢迎指正~ 参考视频&#xff1a;PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆…

企业官网后台管理|网站后台管理系统PHP源码 开源

效果展示 提交反馈 获得更多开源资料 技术交流

在 Google Cloud 上大规模部署 dbt 项目

使用 Artifact Registry、Cloud Composer、GitHub Actions 和 dbt-airflow 容器化并运行 dbt 项目 欢迎来到雲闪世界。&#xff0c;大规模管理数据模型是使用dbt&#xff08;数据构建工具&#xff09;的数据团队面临的常见挑战。最初&#xff0c;团队通常从易于管理和部署的简单…