当前位置: 首页 > news >正文

人脸写真FaceChain的简单部署记录(一)

在这里插入图片描述

由【让你拥有专属且万能的AI摄影师+AI修图师——FaceChain迎来最大版本更新】这篇文章开始出发进行人脸写真的尝试,笔者之前modelscope申请过免费额度,这里有适配的GPU环境可以提供测试。
但是很难抢到GPU资源,需要等待很久,可能才能排到。

在这里插入图片描述

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

资源要求

  • GPU: 显存占用约19G
  • 磁盘: 推荐预留50GB以上的存储空间

2 环境部署

2.1 环境部署

因为使用的是免费额度的环境,目前暂不提供永久存储,实例重启后数据会丢失
官方教程里面有:

# Step1: 我的notebook -> PAI-DSW -> GPU环境# Step2: 进入Notebook cell,执行下述命令从github clone代码:
!GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/facechain.git --depth 1# Step3: 切换当前工作路径
import os
os.chdir('/mnt/workspace/facechain')    # 注意替换成上述clone后的代码文件夹主路径
print(os.getcwd())!pip3 install gradio
!pip3 install controlnet_aux==0.0.6
!pip3 install python-slugify
!python3 app.py# Step4: 点击生成的URL即可访问web页面,上传照片开始训练和预测

不过,github访问看脸,有时候链接不上,需要手动去github下载facechain了

一些辅助依赖也是需要安装的,可参考:facechain_demo.ipynb

2.2 遇到的几个报错

2.2.1 frpc_linux_amd64_v0.2 报错

启动facechain,并在选择风格的时候碰到了以下报错:

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

参考:基于docker快速搭建facechain环境
一种方式是手动添加这个文件,因为modelspace启动的pai-dsw可能不能访问huggingface网站

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错误

但是呢,笔者又发现,这个问题其实可以忽略,后台自己还是可以正常install,属于一个很无厘头的提示报错

2.2.2 style 报错

在这里插入图片描述

在选择风格的时候出现的报错,正常选择之后,会出现上面的一个提示框,【秋日胡杨风(xxx)】,但笔者这里出现了:
在这里插入图片描述

indexerror:list index out of range

经过debug才发现app.py的51行函数,出现了一个无厘头的报错,首先evt.value是一个list,[风格图片,风格名称],这里需要指定风格名称,需要改成evt.value[1]

# 原先的
def select_function(evt: gr.SelectData):matched = list(filter(lambda item: evt.value == item['name'], styles))style = matched[0]return gr.Text.update(value=style['name'], visible=True)# 需要修改
def select_function(evt: gr.SelectData):matched = list(filter(lambda item: evt.value[1] == item['name'], styles))style = matched[0]return gr.Text.update(value=style['name'], visible=True)

也是很无语的一个问题…

http://www.lryc.cn/news/197779.html

相关文章:

  • linux虚机新增加磁盘后在系统中查不到
  • js中隐式类型转换与toPrimitive
  • 家政系统预约小程序具备哪些功能?
  • 【LeetCode】46. 全排列
  • 宏电股份RedCap产品亮相迪拜华为MBBF,并参与RedCap全球商用阶段性成果发布
  • Harris图像角点检测
  • 互联网Java工程师面试题·Java 总结篇·第七弹
  • UVa658 It’s not a Bug, it’s a Feature!(Dijkstra)
  • Object 类常用方法
  • chromium 52 chrome 各个版本发布功能列表(58-84)
  • python web开发(四): Bootstrap
  • 【EI会议征稿】2024年遥感技术与测量测绘国际学术会议(RSTSM 2024)
  • 灵感:VUE2实现权限按钮控制
  • 【2023最新版】Python全栈知识点总结
  • 推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。
  • day1:Node.js 简介
  • ESP RainMaker 客户案例 #1|Halonix
  • 【Linux】adduser命令使用
  • 中文连续视觉语音识别挑战赛
  • (ubuntu) 安装JDK
  • 工程管理系统源码之全面+高效的工程项目管理软件
  • 网络安全常见问题隐患及其应对措施
  • 《机器学习分类器 二》——朴素的贝叶斯算法,项目实践,算法实践。
  • 亚马逊英国站手机/笔记本电脑电池和充电器的合规标准是什么?
  • 亚马逊云科技顾凡解读云计算助力初创快速抢滩生成式AI新风口
  • Unity之ShaderGraph如何实现积雪效果
  • 实现mnist手写数字识别
  • Camera BSP之GPIO/I2C/PMIC简介
  • Spring 数据校验:Validation
  • 网页构造与源代码