SadTalker 自定義容器化部署配置

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 文件中高級配置選項說明
姓名配置默認說明
增強模式–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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12939.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12939.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12939.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

langchain源碼

itemgetter:返回一個函數,函數取輸入dict的某個指定key Runnable 的基本方法有 invoke、 batch、 await、 ainvoke、 abatch 同步轉異步 Runnable 還具有的方法:bind、 with_config。 input_schema 屬性、output_schema 屬性 with_retry方…

Uniapp H5開發常見問題解析

引言 在移動應用開發領域,Uniapp已經成為一個備受矚目的技術框架,其跨平臺能力和高效開發特性使得開發者能夠更加便捷地構建出功能豐富、性能優越的應用程序。特別是在H5開發中,Uniapp的應用場景日益廣泛,然而,隨之而…

Vue2之使用provide和inject實現兩個不相干組件之間的通信

Vue2之使用provide和inject實現兩個不相干組件之間的通信 文章目錄 Vue2之使用provide和inject實現兩個不相干組件之間的通信1. 祖先組件中使用provide提供數據2.后代組件A中使用inject注入并使用數據3.后代組件B中使用inject注入并使用數據 在Vue 2中以使用provide和inject來實…

[ciscn 2022 東北賽區]math

1.題目 import gmpy2 from Crypto.Util.number import * from flag import flag assert flag.startswith(b"flag{") assert flag.endswith(b"}") messagebytes_to_long(flag) def keygen(nbit, dbit):if 2*dbit < nbit:while True:a1 getRandomNBitIn…

編輯器目錄樹的設計,一點也不簡單

朋友們好&#xff0c;我是優秀的大鵬 今天花了很長時間思考一個網頁文檔編輯器&#xff0c;云端目錄樹要怎么設計 這個看似簡單的需求&#xff0c;技術上和產品上的思考卻非常復雜 下面以幾種編輯器為例&#xff0c;講一下各種編輯器在技術上和產品的思考 1、以Vscode為代表的本…

Delphi DataSet轉JSon (使用SuperObject)

Delphi中將TDataSet轉換為JSon字符串。 with ATM.LoadDataSet() dobeginif IsEmpty thenbeginLogObj.WriteLog(未查詢到該視圖名稱下該時間段內的上傳數據&#xff0c;視圖名稱&#xff1a; AViewname 開始時間&#xff1a; AStartdate 結束時間&#xff1a; AEnddate);exit…

【神經網絡與深度學習】Transformer原理

transformer ENCODER 輸入部分 對拆分后的語句x [batch_size, seq_len]進行以下操作 Embedding 將離散的輸入&#xff08;如單詞索引或其他類別特征&#xff09;轉換為稠密的實數向量&#xff0c;以便可以在神經網絡中使用。位置編碼 與RNN相比&#xff0c;RNN是一個字一個字…

Django Rest Framework 全局異常處理

在Django Rest Framework&#xff08;DRF&#xff09;中&#xff0c;全局異常處理是一種重要的機制&#xff0c;它可以幫助我們更好地管理API中的異常情況&#xff0c;并返回統一的錯誤響應。本文將詳細介紹兩種全局異常處理的方法&#xff1a;使用中間件&#xff08;Middlewar…

機器學習(3)

目錄 3-1線性回歸 3-2最小二乘解 3-3多元線性回歸 3-4廣義線性模型 3-5對率回歸 3-6對率回歸求解 3-7線性判別分析 3-8LDA的多類推廣 3-9多分類學習基本思路 3-10類別不平衡 3-1線性回歸 線性模型為什么重要&#xff1f; 人類在考慮問題時&#xff0c;通常…

用python寫一個自動生成android開機動畫的工具

要創建一個自動生成Android開機動畫的工具&#xff0c;你需要一些基本的知識&#xff0c;比如Python編程、圖像處理和Android開機動畫的格式。以下是一個簡單的Python腳本示例&#xff0c;它可以生成一個基本的Android開機動畫&#xff0c;具體效果可能需要更多的調整和優化。 …

記錄glide加載圖片,設置圓角

支持所有角的圓角&#xff0c;自動計算合適的半徑&#xff0c;不用擔心圖片比預定值小導致的圓角過大的問題 修改自&#xff1a;https://blog.csdn.net/qq_15059163/article/details/97613790 增加了指定圖片尺寸、解決了圖片某些情況下圓角過大的問題 public class GlideRou…

先有JVM還是先有垃圾回收器?很多人弄混淆了

是先有垃圾回收器再有JVM呢&#xff0c;還是先有JVM再有垃圾回收器呢&#xff1f;或者是先有垃圾回收再有JVM呢&#xff1f;歷史上還真是垃圾回收更早面世&#xff0c;垃圾回收最早起源于1960年誕生的LISP語言&#xff0c;Java只是支持垃圾回收的其中一種。下面我們就來刨析刨析…

外賣系統的JWT實現登錄

1、什么是JWT jwt可以生成一個加密的token&#xff0c;作為用戶登錄的令牌&#xff0c;當用戶登陸成功之后&#xff0c;發放給客戶端。請求需要登錄的資源或者接口的時候&#xff0c;將token攜帶&#xff0c;后端驗證token是否合法。jwt有三部分組成&#xff1a; A&#xff1a;…

【特大喜訊】國內前33位持有PMI-RMP風險管理專業認證的學員分享~!

【學員背景】 沈陽某信息科技有限公司&#xff0c;從事企業采購供應鏈數字化轉型方向&#xff1b; 為企業提供有效的降本增效解決方案。 【學員順利拿證后期訪問】 問&#xff1a;學員您好&#xff0c;首先恭喜您順利拿到RMP證書&#xff0c;請問您在此次備考過程中&#xf…

抖店商品詳情API接口(產品參數|詳情圖)

抖店商品詳情API接口(產品參數|詳情圖) 參數僅供參考&#xff1a; {"code": 0,"msg": "調用成功","time": "1715763239","data": {"properties": [{"format": [{"message": [{&q…

C語言簡要(一)

總得讓她開心吧 helloworld #include <stdio.h>int main() {printf("hello world!\n");return 0; } 程序框架 #include <stdio.h> int main {return 0; }輸出 printf("hello world!\n"); "里面的內容叫做“字符串”&#xff0c;prin…

BUUCTF靶場[MISC]wireshark、被嗅探的流量、神秘龍卷風、另一個世界

[misc]wireshark 考點&#xff1a;流量、追蹤流 工具&#xff1a;wireshark 先看題目&#xff0c;管理員密碼 將下載的文件用wireshark打開&#xff0c;查找flag 點擊追蹤tcp流&#xff0c;開始挨個查看flag [misc]被嗅探的流量 考點&#xff1a;流量、追蹤流 工具&#xf…

武漢星起航:亞馬遜構建綜合性商業生態,賣家買家共享全球化紅利

在當今全球化日益加速的時代&#xff0c;亞馬遜不僅以其卓越的電商平臺服務全球消費者&#xff0c;更通過一系列前沿服務打造了一個綜合性的商業生態系統。在這個生態系統中&#xff0c;賣家能夠輕松拓展全球業務&#xff0c;買家則享受到了前所未有的購物體驗。亞馬遜以其獨特…

FreeRTOS【6】線程優先級

1.開發背景 基于上一篇指引&#xff0c;已經了解了線程的阻塞&#xff0c;這個篇章主要介紹線程優先級的影響 2.開發需求 設計實驗驗證高優先級會搶占低優先級線程 CPU 3.開發環境 window10 MDK STM32F429 FreeRTOS10.3.1 4.實現步驟 1&#xff09;創建測試線程&#xff…

測試之路 - 精準而優雅

引子 這幾年業內一直在做精準測試&#xff0c;大都使用工具 diff 代碼改動、分析代碼覆蓋率這些平臺集成的能力。 業務測試中&#xff0c;我們在技術設計和代碼實現的基礎上也做了一些精減和精準的測試實踐&#xff0c;通過深入測試有針對的設計 case&#xff0c;發現隱藏問題…