Ai Native应用开发(一)--数字人

背景

刚参加完24年世界人工智能大会(WAIC),聊聊自己的一些感受。这次会明显比去年多很多人,用人山人海来形容应该也不为过。根据我自己粗浅观察参会的人员也比去年更多样化。去年更多还是从业者或者是这块研究人员。今年每个论坛各种角色人都有,销售、技术、算法、研究人员、产业实践方…去年更多是一些技术展望和技术方向内容,今年很明显看到应用和实践报告多起来了(各大家争相在会议期间发布自己AI产品)。会议主题基本就围绕大模型和人形机器人这两大主题展开,从展会内容看咋一看同质化挺严重。但是因为这也是大模型(23年技术元年)到今年应用元年,有很多类似思路也正常。打上同质化背后其实也可以看到各大家在努力结合自己产业特点制造一些差异化,相信明年会看到更多更实用和差异化的思路和产品。
1.算力
2.个大模型+应用
3.人形机器人
4.机器人核心配件
基本就这几个套路。从产品完整度看呢,个人觉得AI在教育上的应用做的还是不错的,这有点超出我的预期。估计这和国家几年前就在推教育数字化有很大关系,这块产品他们应该是深根很多年,大模型的出现只是让以前技术很难实现的事得以更快速实现。所以从产品形态、完整度、实用性角度看,感觉都比AIGC在工业应用更实在,更不那么toy。
其实这样侧面证明一个推测,大模型下的这波AI应该死人机协作,知识工程是非常重要的 一个环节。业务域的中小企业其实应该把业务知识整理梳理清楚做深才是壁垒,光做工具的企业可能会受到冲击。
也是有感于这次会议,想开一个AI Native的应用系列。这个系列定位就是只讲实现落地,纯AI技术的整合,更偏向工具实现,不讲AI背后技术的原理,也不太讲具体某个行业业务逻辑,只是秀工具功能。这么做的目的也是希望能给有很强业务sence的企业在寻找一些技术赋能、找一些可用工具的时候降低他们门槛,让他们可用快速的把工具结合自己业务测试起来。

操作手册

这篇文章给大家介绍一个纯AI驱动的单图数字人工具,主要包括5个部分:
1.单图生成AI
2.文本生成AI
3.声音克隆AI
4.动作生成AI
5.嘴形生成AI

环境搭建

用指令创建初始化环境:

#创建指定python版本虚拟环境
conda create -n lumina python=3.11
conda activate lumina

单图生成模块

生成图,选用上海人工智能研究所的Lumina架构,具体信息可用看他们官网(https://github.com/Alpha-VLLM/Lumina-T2X.git)
具体环境安装如下:

#下载lumina源码
git clone https://github.com/Alpha-VLLM/Lumina-T2X.git
conda activate lumina
#安装需要工具包
pip install -q flash_attn==2.5.9.post1 --no-build-isolation
pip install git+https://github.com/Alpha-VLLM/Lumina-T2X

#下载模型参数
apt -y install -qq aria2
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M  https://huggingface.co/ckpt/Lumina-Next-SFT/resolve/main/consolidated_ema.00-of-01.safetensors -d ./Lumina-T2X/models -o consolidated_ema.00-of-01.safetensors
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M  https://huggingface.co/ckpt/Lumina-Next-SFT/resolve/main/model_args.pth -d ./Lumina-T2X/models -o model_args.pth

#启动lumina做图软件做图
cd ./Lumina-T2X/lumina_next_t2i
python demo.py --ckpt ../models --ema

上面指令已经把Lumina的网页界面启动了,打开网页开始生成需要的人物。
lumina_gradio.png

声音克隆模块

声音克隆现在是个热门,有很多可选的开源项目,效果做的都还不错。这边选用阿里通义CosyVoice来实践。

ubuntu安装git lfs

sudo apt-get update
sudo apt-get install git-lfs
git lfs install

环境初始化设置

git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
# If you failed to clone submodule due to network failures, please run following command until success
cd CosyVoice
git submodule update --init --recursive

conda create -n cosyvoice python=3.8
conda activate cosyvoice
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

# If you encounter sox compatibility issues
# ubuntu
sudo apt-get install sox libsox-dev

下载模型

# git模型下载,请确保已安装git lfs
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct
git clone https://www.modelscope.cn/speech_tts/speech_kantts_ttsfrd.git pretrained_models/speech_kantts_ttsfrd

安装包

#解压ttsfrd资源并安装ttsfrd包
cd pretrained_models/speech_kantts_ttsfrd/
unzip resource.zip -d .
pip install ttsfrd-0.3.6-cp38-cp38-linux_x86_64.whl

export PYTHONPATH=/root/autodl-tmp/CosyVoice/third_party/Matcha-TTS
export HF_ENDPOINT=https://hf-mirror.com/

启动语音clone软件

python3 webui.py --port 6006 --model_dir pretrained_models/CosyVoice-300M

cosyvioce.png
用录音或者上传你想要模仿的语音,并把语音文本输入prompt,输入需要生成语音文本生成clone语音;把合成的语音下载下来就可以了。

角色动作生成模块

角色动作生成模块选择Musev来实现。MuseV 是基于扩散模型的虚拟人视频生成框架,具有以下特点:

  1. 支持使用新颖的视觉条件并行去噪方案进行无限长度生成,不会再有误差累计的问题,尤其适用于固定相机位的场景。
  2. 提供了基于人物类型数据集训练的虚拟人视频生成预训练模型。
  3. 支持图像到视频、文本到图像到视频、视频到视频的生成。
  4. 兼容 Stable Diffusion 文图生成生态系统,包括 base_model、lora、controlnet 等。
  5. 支持多参考图像技术,包括 IPAdapter、ReferenceOnly、ReferenceNet、IPAdapterFaceID。
  6. 我们后面也会推出训练代码

image.png

git clone --recursive https://github.com/TMElyralab/MuseV.git
cd MuseV

#初始化环境
pip install -r requirements.txt
pip install --no-cache-dir -U openmim 
pip install mmengine 
pip install mmcv>=2.0.1
pip install mmdet>=3.1.0
pip install mmpose>=1.1.0

cd ..
current_dir=$(pwd)
export PYTHONPATH=${PYTHONPATH}:${current_dir}/MuseV
export PYTHONPATH=${PYTHONPATH}:${current_dir}/MuseV/MMCM
export PYTHONPATH=${PYTHONPATH}:${current_dir}/MuseV/diffusers/src
export PYTHONPATH=${PYTHONPATH}:${current_dir}/MuseV/controlnet_aux/src
cd MuseV

#下载模型
git clone https://huggingface.co/TMElyralab/MuseV ./checkpoints

#输入文本、图像的视频生成
python scripts/inference/text2video.py   --sd_model_name majicmixRealv6Fp16   --unet_model_name musev   -test_data_path ./configs/tasks/example.yaml  --output_dir ./output  --n_batch 1  --target_datas yongen  --time_size 12 --fps 12 

#输入视频的视频生成
python scripts/inference/video2video.py --sd_model_name majicmixRealv6Fp16  --unet_model_name musev    -test_data_path ./configs/tasks/example.yaml --output_dir ./output  --n_batch 1 --controlnet_name dwpose_body_hand  --which2video "video_middle"  --target_datas  dance1   --fps 12 --time_size 12

#Gradio 演示
cd scripts/gradio
python app.py

上面模型下载会非常大,也可以挑选同类模型汇总一个,可以节省存储空间和下载时间。

!cg down O_O/MuseV/musev_____unet_____config.json
!cg down O_O/MuseV/musev_____unet_____diffusion_pytorch_model.bin
!cg down O_O/MuseV/musev_referencenet_____ip_adapter_image_proj.bin
!cg down O_O/MuseV/musev_referencenet_____unet_____config.json
!cg down O_O/MuseV/musev_referencenet_____unet_____diffusion_pytorch_model.bin
!cg down O_O/MuseV/musev_referencenet_____referencenet_____config.json
!cg down O_O/MuseV/musev_referencenet_____referencenet_____diffusion_pytorch_model.bin
!cg down O_O/MuseV/musev_referencenet_pose_____ip_adapter_image_proj.bin
!cg down O_O/MuseV/musev_referencenet_pose_____unet_____config.json
!cg down O_O/MuseV/musev_referencenet_pose_____unet_____diffusion_pytorch_model.bin

如果还是觉得麻烦可以直接上autodl用找社区musev镜像减少环境安装下载模型浪费的时间。

角色口型生成模块

这部分选用MuseTalk:实时高质量唇形同步与潜在空间修复。
image.png
MuseTalk 在潜在空间中进行训练,其中图像由冻结的 VAE 进行编码。音频由冻结的 whisper-tiny 模型编码。生成网络的架构借鉴了 stable-diffusion-v1-4 的 UNet,其中音频嵌入通过交叉注意力融合到图像嵌入。
使用与稳定扩散非常相似的架构,但 MuseTalk 的不同之处在于它不是扩散模型。相反,MuseTalk 通过一步修复潜在空间来进行操作。

#下载项目文件
git clone https://github.com/TMElyralab/MuseTalk.git
cd ./MuseTalk

#初始化环境
pip install -q diffusers==0.27.2 accelerate==0.28.0 omegaconf ffmpeg-python mmpose mmdet gradio
pip install -q https://github.com/camenduru/wheels/releases/download/colab2/mmcv-2.1.0-cp310-cp310-linux_x86_64.whl

#下载模型
apt -y install -qq aria2
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-ll_ucoco.pth -d ./MuseTalk/models/dwpose -o dw-ll_ucoco.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-ll_ucoco_384.onnx -d ./MuseTalk/models/dwpose -o dw-ll_ucoco_384.onnx
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-ll_ucoco_384.pth -d ./MuseTalk/models/dwpose -o dw-ll_ucoco_384.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-mm_ucoco.pth -d ./MuseTalk/models/dwpose -o dw-mm_ucoco.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-ss_ucoco.pth -d ./MuseTalk/models/dwpose -o dw-ss_ucoco.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/dw-tt_ucoco.pth -d ./MuseTalk/models/dwpose -o dw-tt_ucoco.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/rtm-l_ucoco_256-95bb32f5_20230822.pth -d ./MuseTalk/models/dwpose -o rtm-l_ucoco_256-95bb32f5_20230822.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/rtm-x_ucoco_256-05f5bcb7_20230822.pth -d ./MuseTalk/models/dwpose -o rtm-x_ucoco_256-05f5bcb7_20230822.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/rtm-x_ucoco_384-f5b50679_20230822.pth -d ./MuseTalk/models/dwpose -o rtm-x_ucoco_384-f5b50679_20230822.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/dwpose/yolox_l.onnx -d ./MuseTalk/models/dwpose -o yolox_l.onnx
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/face-parse-bisent/79999_iter.pth -d ./MuseTalk/models/face-parse-bisent -o 79999_iter.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/face-parse-bisent/resnet18-5c106cde.pth -d ./MuseTalk/models/face-parse-bisent -o resnet18-5c106cde.pth
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/raw/main/musetalk/musetalk.json -d ./MuseTalk/models/musetalk -o musetalk.json
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/musetalk/pytorch_model.bin -d ./MuseTalk/models/musetalk -o pytorch_model.bin
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/raw/main/sd-vae-ft-mse/config.json -d ./MuseTalk/models/sd-vae-ft-mse -o config.json
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/sd-vae-ft-mse/diffusion_pytorch_model.bin -d ./MuseTalk/models/sd-vae-ft-mse -o diffusion_pytorch_model.bin
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/sd-vae-ft-mse/diffusion_pytorch_model.safetensors -d ./MuseTalk/models/sd-vae-ft-mse -o diffusion_pytorch_model.safetensors
aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/MuseTalk/resolve/main/whisper/tiny.pt -d ./MuseTalk/models/whisper -o tiny.pt

#启动可视化界面
python app.py

到这你就已经拥有一个数字人工具了,至于输入的文本你也可以用AI来生成。当然现在还是一个一个的模块如果你需要批量的生成数字人视频或者批量的翻译视频、弹唱配视频。那你可以把这些链路用comfyui分成5个模块串接起来就可以了,这就是一个标准的AI native的数字人生成工具了。
image.png

小结

2024年世界人工智能大会(WAIC)参会感受

  • 参会人员多样化:2024年的WAIC参会人员包括销售、技术、算法、研究人员、产业实践方等各类角色,相比去年更加多样化。
  • 应用和实践报告增多:今年的会议中,应用和实践报告的数量明显增加,各大公司争相发布自己的AI产品。
  • 会议主题聚焦:主要围绕大模型和人形机器人两大主题展开,各公司在努力结合自身产业特点创造差异化的产品和思路。
  • AI在教育上的应用:AI在教育上的应用表现较为成熟和实用,这可能得益于国家在教育数字化方面的推动。

AI Native应用系列的设想

  • 目的:为有很强业务sence的企业在寻找技术赋能、找一些可用工具的时候降低他们门槛,让他们可用快速的把工具结合自己业务测试起来。
  • 内容:只讲实现落地,纯AI技术的整合,更偏向工具实现,不讲AI背后技术的原理,也不太讲具体某个行业业务逻辑。

AI Native的数字人工具操作手册

  • 环境搭建:使用conda创建并激活名为lumina的虚拟环境,使用Python 3.11版本。
  • 单图生成模块:使用上海人工智能研究所的Lumina架构进行图像生成。
  • 声音克隆模块:使用阿里通义的CosyVoice进行声音克隆。
  • 角色动作生成模块:使用MuseV进行角色动作生成。
  • 角色口型生成模块:使用MuseTalk进行角色口型生成。
  • 整合与应用:将这些模块整合起来,可以构建一个AI Native的数字人工具,用于生成数字人视频、翻译视频、弹唱配视频等应用。

项目代码更新在

GitHub - liangwq/Chatglm_lora_multi-gpu: chatglm多gpu用deepspeed和

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch实战(二):VGG神经网络

文章目录 一、诞生背景二、VGG网络结构2.1VGG块2.2网络运行流程2.3总结 三、实战3.1搭建模型3.2模型训练3.3训练结果可视化3.4模型参数初始化 一、诞生背景 从网络结构中可看出,所有版本VGG均全部使用33大小、步长为1的小卷积核,33卷积核同时也是最小的能…

Linux网络配置管理

目录 一、网络配置 1. 网卡配置 2. 路由 二、 网络信息查看 1.netstat 2. ss 三、 额外的命令 time 一、网络配置 之前我们学过 ifconfig ,这个命令可以查看网络接口的地址配置信息,我们只知道它可以查看接口名称、IP 地址、子网掩码等。 但是&a…

java —— tomcat 部署项目

一、通过 war 包部署 1、将项目导出为 war 包; 2、将 war 包放置在 tomcat 目录下的 webapps 文件夹下,该 war 包稍时便自动解析为项目文件夹; 3、启动 tomcat 的 /bin 目录下的 startup.bat 文件,此时即可从浏览器访问项目首页…

windows 11 + kali wsl二合一配置步骤与踩坑

windows 11 kali wsl二合一配置步骤与踩坑 在前几天的某市攻防演练中,在攻防前期,我的虚拟机经常无缘无故出现断网、卡顿等现象,但找不出原因。 为了不影响后续的这些天的攻防演练,我选择在一个晚上通宵 在我的windows 11系统上…

2.作业2

目录 1.作业题目 A图 B代码 2.css盒子模型 0.css盒子模型 1.外边距(margin) 2.边框(border) 3.内边距(padding) ​编辑 3.GET方法与POST方法的区别 学习产出: html的作业 1.作业题目 A图…

无向图中寻找指定路径:深度优先遍历算法

刷题记录 1. 节点依赖 背景: 类似于无向图中, 寻找从 起始节点 --> 目标节点 的 线路. 需求: 现在需要从 起始节点 A, 找到所有到 终点 H 的所有路径 A – B : 路径由一个对象构成 public class NodeAssociation {private String leftNodeName;private Stri…

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码: 新建主图幅图类型指标都可以! VAR1:(HL)/2; 唇:REF(SMA(VAR1,5,1),3),COLORGREEN; 齿:REF(SMA(VAR1,8,1),5),COLORRED; 颚:REF(SMA(VAR1,13,1),8),COLORBLUE;

离线查询+线段树,CF522D - Closest Equals

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 522D - Closest Equals 二、解题报告 1、思路分析 考虑查询区间已经给出,我们可以离线查询 对于这类区间离线查询的问题我们通常可以通过左端点排序,然后遍历询问同时维护左区间信息…

数据泄露态势(2024年5月)

监控说明:以下数据由零零信安0.zone安全开源情报系统提供,该系统监控范围包括约10万个明网、深网、暗网、匿名社交社群威胁源。在进行抽样事件分析时,涉及到我国的数据不会选取任何政府、安全与公共事务的事件进行分析。如遇到影响较大的伪造…

《金山 WPS AI 2.0:重塑办公未来的智能引擎》

AITOP100平台获悉,在 2024 世界人工智能大会这一科技盛宴上,金山办公以其前瞻性的视野和创新的技术,正式发布了 WPS AI 2.0,犹如一颗璀璨的星辰,照亮了智能办公的新征程,同时首次公开的金山政务办公模型 1.…

支持图片识别语音输入的LobeChat保姆级本地部署流程

文章目录 前言1. LobeChat对我们有哪些帮助?2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 本文主要介绍如何在Windows系统电脑本地部署LobeChat,一款高颜值的开源AI大模型智能应用&…

5-google::protobuf命名空间下常用的C++ API----message.h

#include <google/protobuf/message.h> namespace google::protobuf 假设您有一个消息定义为: message Foo {optional string text 1;repeated int32 numbers 2; } 然后&#xff0c;如果你使用 protocol编译器从上面的定义生成一个类&#xff0c;你可以这样使用它: …

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

第31天&#xff0c;贪心最后一节(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解&#xff1a;代码随想录合并区间 视频讲解&#xff1a;手撕合并区间 题目&#xf…

C语言下结构体、共用体、枚举类型的讲解

主要内容 结构体结构体数组结构体指针包含结构体的结构链表链表相关操作共用体枚举类型 结构体 结构体的类型的概念 结构体实现步骤 结构体变量的声明 struct struct 结构体名{ 数据类型 成员名1; 数据类型 成员名2; ..…

绝地求生PUBG兰博基尼怎么兑换 兰博基尼怎么获得

绝地求生采用虚幻4引擎制作&#xff0c;玩家们会在一个偏远的岛屿上出生&#xff0c;然后展开一场赢家通吃的生存竞赛&#xff0c;最后只会有1个人存活。当然&#xff0c;和其他生存游戏一样&#xff0c;玩家需要在广袤复杂的地图中收集武器、车辆、物资&#xff0c;而且也会有…

解决win10报“无法加载文件……profile.ps1,因为在此系统上禁止运行脚本”的问题

打开命令行报错 解决方法 使用管理员权限打开PowerShell&#xff1a;WinX, 选择“Windows PowerShell&#xff08;管理员&#xff09;” 输入&#xff1a;Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 输入&#xff1a;y确认修改安全策略 &#xff1a;y确认修改安全策略…

探讨大数据在视频汇聚平台LntonCVS国标GB28181协议中的应用

随着摄像头和视频监控系统的普及和数字化程度的提高&#xff0c;视频监控系统产生的数据量急剧增加。大数据技术因其优秀的数据管理、分析和利用能力&#xff0c;成为提升视频监控系统效能和价值的重要工具。 大数据技术可以将视频监控数据与其他数据源进行融合分析&#xff0c…

【elasticsearch】IK分词器添加自定义词库,然后更新现有的索引

进入elasticsearch中的plugins位置&#xff0c;找到ik分词器插件&#xff0c;进入ik插件的config文件夹&#xff0c;当中有一个IKAnalyzer.cfg.xml配置文件。使用vim编辑器修改配置文件&#xff1a; vim IKAnalyzer.cfg.xml 配置文件如下&#xff08;添加了自定义字典的位置&…

pygame 音乐粒子特效

代码 import pygame import numpy as np import pymunk from pymunk import Vec2d import random import librosa import pydub# 初始化pygame pygame.init()# 创建屏幕 screen pygame.display.set_mode((1920*2-10, 1080*2-10)) clock pygame.time.Clock()# 加载音乐文件 a…