SadTalker 自定义容器化部署配置

Docker 环境检查

执行docker info 查看环境种是否有安装docker,否则首先安装好docker 运行环境。在线环境安装执行执行两条指令即可

sudo apt install docker
sudo apt-get install docker-ce
sudo apt-get install docker-compose

sudo 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=noninteractive

RUN 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.list

RUN apt-get update

RUN 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 \
    ffmpeg

WORKDIR /app

COPY 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.txt

ENTRYPOINT ["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 文件中高级配置选项说明
姓名配置默认说明
增强模式–enhancerNonegfpgan或RestoreFormer
确保已经安装:
pip install gfpgan
背景增强器–background_enhancerNonerealesrgan:增强完整视频。
确保已经安装:
pip install realesrgan
静止模式–stillfalse使用与原始图像相同的姿势参数,减少头部运动。
表现模式–expression_scale1.0值越大,表情运动越强。
保存路径–result_dir./results该文件将保存在较新的位置。
预处理–preprocesscropcrop: 运行并在裁剪后的输入图像中生成结果
resize: 图像将调整为特定分辨率。
full :运行完整图像动画,
使用–still可以获得更好的效果。
参考模式
(眼睛)–ref_eyeblinkNone视频路径,我们借用此参考视频中的眨眼来提供更自然的眉毛运动。
参考模式
(姿势)–ref_poseNone视频路径,我们从头部参考视频中借用姿势。
3D模式–face3dvisfalse需要额外安装。生成 3D 脸部的更多详细信息可以在此处
找到。
自由观看模式–input_yaw,
–input_pitch,
–input_rollNone从单个图像生成新颖的视图或自由视图 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值