基于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)",然后在进行后两个功能的体验。


相关推荐
Tim风声(网络工程师)10 分钟前
DNS有关知识(根域名服务器、顶级域名服务器、权威域名服务器)
linux·运维·服务器
热爱跑步的恒川15 分钟前
告别服务器!Amazon Lambda无服务开发实战指南
运维·服务器
照物华27 分钟前
K8s概念之进程、容器与 Pod 的终极指南
云原生·容器·kubernetes
拾心2141 分钟前
【运维进阶】Shell 函数的知识与实践
运维
you秀1 小时前
linux中的iptables的简介与常用基础用法
linux·运维·服务器
画中有画2 小时前
使用AI来实现拼多多自动化运营脚本
运维·人工智能·自动化·ai编程·rpa·自动化脚本
vvilkim6 小时前
Java主流框架全解析:从企业级开发到云原生
java·运维·云原生
Wy_编程10 小时前
Linux-文本搜索工具grep
linux·运维·服务器
qq9989910 小时前
AAA服务器技术
运维·服务器
Lovyk10 小时前
Linux Shell 常用操作与脚本示例详解
linux·运维·服务器