基于docker快速搭建facechain环境

前言

最近facechain比较火,之前在huggingface试过,在SD的落地场景上提供了思路。 这两天刚拿到一台RTX3090的服务器,在本地部署也遇到了两个问题,给大家分享一下。


一、facechain是什么?

官方是这样说的:FaceChain是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain支持在gradio的界面中使用模型训练和推理能力,也支持资深开发者使用python脚本进行训练推理。

二、使用步骤

注:基本都是参考官方的README。

1.环境准备

1.1 兼容性验证

FaceChain是一个组合模型,使用了包括PyTorch和TensorFlow在内的机器学习框架,以下是已经验证过的主要环境依赖:

  • python环境: py3.8, py3.10

  • pytorch版本: torch2.0.0, torch2.0.1

  • tensorflow版本: 2.8.0, tensorflow-cpu

  • CUDA版本: 11.7

  • CUDNN版本: 8+

  • 操作系统版本: Ubuntu 20.04, CentOS 7.9

  • GPU型号: Nvidia-A10 24G

1.2 资源要求

  • GPU: 显存占用约19G

  • 磁盘: 推荐预留50GB以上的存储空间

2.安装

官方提供了三种安装方式,本文只介绍docker方式。

# Step1: 机器资源

您可以使用本地或云端带有GPU资源的运行环境。

如需使用阿里云ECS,可访问: https://www.aliyun.com/product/ecs,推荐使用"镜像市场"中的CentOS 7.9 64位(预装NVIDIA GPU驱动)

# Step2: 将镜像下载到本地 (前提是已经安装了docker engine并启动服务,具体可参考: https://docs.docker.com/engine/install/)

docker pull registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.0

# Step3: 拉起镜像运行

docker run -it --name facechain -p 7860:7860 --gpus all registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.0 /bin/bash

(注意: 如果提示无法使用宿主机GPU的错误,可能需要安装nvidia-container-runtime, 参考:https://github.com/NVIDIA/nvidia-container-runtime)

# Step4: 在容器中安装gradio

pip3 install gradio

pip3 install controlnet_aux==0.0.6

# Step5: 获取facechain源代码

GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/facechain.git --depth 1

cd facechain

python3 app.py

Note: FaceChain目前支持单卡GPU,如果您的环境有多卡,请使用如下命令

CUDA_VISIBLE_DEVICES=0 python3 app.py

# Step6: 点击 "public URL", 形式为 https://xxx.gradio.live

注:如果运气好,顺利的话,直接点击:https://xxx.gradio.live,就可以操作了。

3. 安装问题

3.1 docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]报错.

1、未安装nvidia-container-runtime导致。在官方安装的step3已经提示。可以试着安装nvidia-container-runtime.

2、已经安装nvidia-container-runtime但发现还是报这问题。卸载重新安装。

3、安装nvidia-container-runtime之后,一定要记着**重启机器(**我按网上安了好几遍,继续报

错,最后重启就OK了,大写尴尬**)**

3.2 Could not create share link. Missing file: /xxxx/frpc_linux_amd64_v0.2.

解决办法:根据提示下载该文件即可。
wget https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64

mv frpc_linux_amd64 frpc_linux_amd64_v0.2

mv frpc_linux_amd64_v0.2 /home/miniconda3/envs/llm/lib/python3.11/site-packages/gradio

chmod +x frpc_linux_amd64_v0.2 // 注:要给该文件执行权限,否则会报3.3错误

3.3 Could not create share link. Please check your internet connection or our status page: https://status.gradio.app

该错误是因frpc_linux_amd64_v0.2文件没有执行权限。

chmod +x frpc_linux_amd64_v0.2
注:网上还有解决方法(没试过):默认服务器只监听127.0.0.1这个地址,无法共享访问,需要把app.py最后一行做如下修改:

demo.queue(status_update_rate=1).launch(server_name="0.0.0.0",server_port=7860,share=True)

3.4 style_ list not defined

出现此问题,是因为你没有按照顺序执行facechain。

形象体验(Inference) 和 艺术照(Inpaint) 都是基于形象定制(Train)的训练的结果来的,所以在尝试facechain功能时,先进行"形象定制(Train)",然后在进行后两个功能的体验。


相关推荐
科士威传动1 小时前
滚珠导轨在汽车自动化装配线中的核心传动
运维·自动化·汽车
David爱编程1 小时前
Docker 安全全揭秘:防逃逸、防漏洞、防越权,一篇学会容器防御!
后端·docker·容器
倔强的石头1062 小时前
【Linux指南】文件系统基础操作与路径管理
linux·运维·服务器
TDengine (老段)3 小时前
TDengine 快速体验(Docker 镜像方式)
大数据·数据库·物联网·docker·时序数据库·tdengine·涛思数据
中科三方3 小时前
如何通过DNS解析实现负载均衡?有哪些优势?
运维·负载均衡
安科瑞刘鸿鹏3 小时前
双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
大数据·运维·物联网·安全·能源
小呆瓜历险记3 小时前
ubuntu 22.04搭建SOC开发环境
linux·运维·ubuntu
码农101号3 小时前
Linux中shell流程控制语句
linux·运维·服务器
聪明小萝卜4 小时前
无法与IP建立连接,未能下载VSCode服务器
运维·服务器
JuiceFS4 小时前
深度解析 JuiceFS 权限管理:Linux 多种安全机制全兼容
运维·后端