最近facechain比较火,之前在huggingface试过,在SD的落地场景上提供了思路。 这两天刚拿到一台RTX3090的服务器,在本地部署也遇到了两个问题,给大家分享一下。
官方是这样说的:FaceChain是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain支持在gradio的界面中使用模型训练和推理能力,也支持资深开发者使用python脚本进行训练推理。
注:基本都是参考官方的README。
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
- GPU: 显存占用约19G
- 磁盘: 推荐预留50GB以上的存储空间
官方提供了三种安装方式,本文只介绍docker方式。
您可以使用本地或云端带有GPU资源的运行环境。
如需使用阿里云ECS,可访问: https://www.aliyun.com/product/ecs,推荐使用”镜像市场“中的CentOS 7.9 64位(预装NVIDIA GPU驱动)
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
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)
pip3 install gradio
pip3 install controlnet_aux==0.0.6
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
注:如果运气好,顺利的话,直接点击:https://xxx.gradio.live,就可以操作了。
1、未安装nvidia-container-runtime导致。在官方安装的step3已经提示。可以试着安装nvidia-container-runtime.
2、已经安装nvidia-container-runtime但发现还是报这问题。卸载重新安装。
3、安装nvidia-container-runtime之后,一定要记着重启机器(我按网上安了好几遍,继续报
错,最后重启就OK了,大写尴尬)
解决办法:根据提示下载该文件即可。
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错误
该错误是因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)
出现此问题,是因为你没有按照顺序执行facechain。
形象体验(Inference) 和 艺术照(Inpaint) 都是基于形象定制(Train)的训练的结果来的,所以在尝试facechain功能时,先进行“形象定制(Train)”,然后在进行后两个功能的体验。