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


相关推荐
芷栀夏2 分钟前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
全栈工程师修炼指南12 分钟前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
Zfox_40 分钟前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
威迪斯特1 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡2 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器