Docker 环境检查
执行docker info
查看环境种是否有安装docker,否则首先安装好docker 运行环境。在线环境安装执行执行两条指令即可
sudo apt install docker
sudo apt-get install docker-ce
sudo apt-get install docker-composesudo systemctl restart docker
GPU环境检查
没有GPU环境忽略该步骤,但后面的所有过程跑起来可能就不会那么流畅。
nvidia-smi --query-gpu=name,memory.total,memory.free --format=csv,noheader
NVIDIA Container Toolkit 安装
为确保能用上nvidia的gpu,需要安装改toolkit。详细参见
【安装NVIDIA Container Toolkit】
自定义创建容器镜像
下载Dockerfile文件及地址:
https://gitee.com/qingplus/qingcloud-platform/blob/develop/qingcloud-deploy/standard/AIGC/SadTalker/Dockerfile
FROM python:3.8.16-bullseye
ARG DEBIAN_FRONTEND=noninteractiveRUN echo > /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib"> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib">> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main">> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main">> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib">> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib">> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib">> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib">> /etc/apt/sources.listRUN apt-get updateRUN apt-get install -y --no-install-recommends \software-properties-common \wget \git \build-essential \libgl1 \libssl-dev \libffi-dev \libxml2-dev \libxslt1-dev \zlib1g-dev \libjpeg-dev \libpng-dev \unzip \ffmpegWORKDIR /appCOPY SadTalker /app/SadTalker/
WORKDIR /app/SadTalker
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
RUN pip install dlib-bin
RUN pip install --verbose --use-pep517 -r requirements.txtENTRYPOINT ["python3", "inference.py"]
注意:
1、网上很多教程都会让安装conda,主要是因为安装的目标并不是在容器中,这里是容器化部署,环境单一,并不存在多个虚拟环境的情况,所以直接pip 安装即可。
2、网络原因,请务必做好镜像源的配置。 这里包括apt-get 的source 。和pip的国内安装源,大部分错误都源于此处。
3、--verbose --use-pep517
我的环境build时出错,根据错误提示添加这两参数解决问题。为了方便纠错,把–verbose 加上方便显示更多的提示信息
4、默认镜像源为清华源的时候,会有一个报错,此处改为阿里源解决问题。
生存image
进入到Dockerfile所在目录,执行:
docker build -t qingcloudtech/sadtalker:v1.0 .
当然如果不想自己build 的也可以直接运行启动命名:但需要把镜像名称改为:
registry.cn-hangzhou.aliyuncs.com/qingcloudtech/sadtalker:v1.0
启动命令
docker run -it --gpus all \ -v ./checkpoints:/app/SadTalker/checkpoints \ -v ./gfpgan/weights:/app/SadTalker/gfpgan/weights \ -v ./results:/app/SadTalker/results \ -v ./data:/app/SadTalker/sample \ qingcloudtech/sadtalker:v1.0 \ --driven_audio /app/SadTalker/examples/driven_audio/chinese_news.wav \ --source_image /app/SadTalker/examples/source_image/art_0.png \ --expression_scale 1.0 \ --result_dir /app/SadTalker/results \
备注:
/app/SadTalker/checkpoints
容器内该目录不能改变
/app/SadTalker/gfpgan/weights
容器内该地址不能改变
checkpoinits 和weights 文件都放在宿主机上,方便更新和下载。
运行结果文件放在挂在到本地方便读取结果文件的容器路径需要与--result_dir
一致。
需要操作的音频文件和image样例文件也挂在到宿主机上。
高级设置
inference.py 文件中高级配置选项说明
姓名 | 配置 | 默认 | 说明 |
---|---|---|---|
增强模式 | –enhancer | None | gfpgan或RestoreFormer |
确保已经安装: | |||
pip install gfpgan | |||
背景增强器 | –background_enhancer | None | realesrgan:增强完整视频。 |
确保已经安装: | |||
pip install realesrgan | |||
静止模式 | –still | false | 使用与原始图像相同的姿势参数,减少头部运动。 |
表现模式 | –expression_scale | 1.0 | 值越大,表情运动越强。 |
保存路径 | –result_dir | ./results | 该文件将保存在较新的位置。 |
预处理 | –preprocess | crop | crop: 运行并在裁剪后的输入图像中生成结果 |
resize: 图像将调整为特定分辨率。 | |||
full :运行完整图像动画, | |||
使用–still可以获得更好的效果。 | |||
参考模式 | |||
(眼睛) | –ref_eyeblink | None | 视频路径,我们借用此参考视频中的眨眼来提供更自然的眉毛运动。 |
参考模式 | |||
(姿势) | –ref_pose | None | 视频路径,我们从头部参考视频中借用姿势。 |
3D模式 | –face3dvis | false | 需要额外安装。生成 3D 脸部的更多详细信息可以在此处 |
找到。 | |||
自由观看模式 | –input_yaw, | ||
–input_pitch, | |||
–input_roll | None | 从单个图像生成新颖的视图或自由视图 4D 头部说话。更多详细信息可以在这里 | |
找到。 |
从音频和单个图像生成 4D 自由视图
我们使用input_yaw, input_pitch,input_roll来控制头部姿势。例如,–input_yaw -20 30 10表示输入头偏航度从-20变为30,然后从30变为10。
docker run -it --gpus all \ -v ./checkpoints:/app/SadTalker/checkpoints \ -v ./gfpgan/weights:/app/SadTalker/gfpgan/weights \ -v ./results:/app/SadTalker/results \ -v ./data:/app/SadTalker/sample \ qingcloudtech/sadtalker:v1.0 \ --driven_audio /app/SadTalker/examples/driven_audio/chinese_news.wav \ --source_image /app/SadTalker/examples/source_image/art_0.png \ --expression_scale 1.0 \ --result_dir /app/SadTalker/results \ --input_yaw -20 30 10
【Qinghub Studio 】更适合开发人员的低代码开源开发平台
【QingHub企业级应用统一部署】
【QingHub企业级应用开发管理】
【QingHub** 演示】**
【https://qingplus.cn】