昨天介绍一个叫PhotoMaker的AI绘画开源项目。挺不错的!
通过这个项目可以快速制作特定人脸的AI绘画作品,相比传统的技术效果会好很多,效率也高很多。
今天趁热打铁,本地电脑装装看,并且记录,分享一下!
本文主要面向有一定配置基础的人,所以废话我就尽量少说了。
把步骤说清楚,把命令留下,把坑填了,就收工了。
会装的可以结束阅读直接去GitHub了。
想努力一下的可以慢慢看,我尽量把关键信息写清楚。
不想努力的直接拉到最后~~哈啊哈!
0.准备工作
准备一张牛逼的英伟达显卡!
Windows11+Conda+git
1.克隆代码
打开CMD工具,通过CD命令进入到制定目录,然后克隆代码。
git clone https://github.com/TencentARC/PhotoMaker.git
cd PhotoMaker
2.创建虚拟环境并激活
官方推荐的版本信息如下:
- Python >= 3.8(推荐 Anaconda or Miniconda)
- PyTorch >= 2.0.0
使用Conda工具,创建一个虚拟环境,创建成功之后激活虚拟环境。
conda create -n photemaker python=3.10
conda activate photomaker
3.安装依赖
常规安装方法如下:
pip install -r requirements.txt
由于在Windows下面安装,又会有些不一样。需要修改一下这个文件。
注释掉下面三项:
#torch==2.0.1
#torchvision==0.15.2
#pytorch-cuda==11.8
运行上面的安装命令,装完之后,单独安装一下Torch!
4.下载模型
这个项目用到了两类模型,一个是PhotoMaker,还有一个是基于SDXL的基础模型。
运行代码之后会自动下载。
下载部分代码如下:
from huggingface_hub import hf_hub_download
photomaker_path = hf_hub_download(repo_id="TencentARC/PhotoMaker", filename="photomaker-v1.bin", repo_type="model")
当然,你也可以手动下载。那就得明白各种路径的问题!
模型默认会下载在C盘,大概7G左右,准备好足够的硬盘空间。
C盘扛不住的,可以设置环境变量:
SET HF_HUB_CACHE=./models
这样C就解脱了,压力给到D>E>F。
5. 运行测试
喜欢研究代码的,可以直接根据项目主页上提供的演示代码来运行项目。
但是本文以配置为主,就不展开讲代码了。
直接运行网页版Demo:
python gradio_demo/app.py
运行成功之后,打开网址,就可以使用了。
从文章来看,配置过程简直小菜一碟!
而实际安装过程肯定没有那么顺利!
这就叫,搞定之后云淡风轻,搞的过程痛不欲生。
下面来说说我遇到的几个问题。
6. 遇到的问题
但凡涉及网络的问题,我都不认为是问题。大家都知道有这个问题,但是不能说是什么问题。
pytorch-cuda包找不到!
ERROR: Could not find a version that satisfies the requirement pytorch-cuda==11.8 (from versions: none)
ERROR: No matching distribution found for pytorch-cuda==11.8
这个问题上面有提到,直接安装就会报这个错误。原因大概是,这个依赖文件,就不是为Windows用户准备的。
所以,我的选择是,直接注释掉。
Torch版本的问题
如果只是简单使用:
pip install torch
那肯定是不行滴,Linux玩家专属。
Windows需要:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
你可以不指定GPU,但是必须带个尾巴!
Fork异常
ValueError: cannot find context for 'fork'
看到这个问题时,我就默默说了句fxxk。
鬼知道什么问题!
经过查询,基本确定和操作系统差异有关。
把源代码中的fork换成spawn就可以了。
无法导入photomaker
ModuleNotFoundError: No module named 'photomaker'
所有问题都解决之后,根据官方主页上提供的运行命令,运行app.py就会出现这个错误了。
VSCode里面可以看到导入正常,但是运行命令就是为出现这个问题。
可能是我对Import的路径问题理解不够深刻。
我先是暴力解决,直接把gradio_demo文件下面的两个文件拖动到上一级目录了。
然后直接用如下命令:
python app.py
后来思考了一下它的导入机制。我只要在根目录创建一个run.py。
里面添加一行代码:
import gradio_demo.app
这样就不用去移动那两个文件,直接使用:
python run.py
这样就可以了。
上面的问题都解决了,你应该可以在Windows正常运行这个项目了。
但是,你还要面临最后一个考验:OOM
我先是在3060上配置运行的,可以启动,但是跑到最后就提示显存不够了,直接摆烂了。
最后又在3090上折腾了一阵子,终于可以愉快的玩耍了。
我开头说了,不想努力的拉到最后,主要基于两点:
- 硬件不够硬,就直接不用努力了。
- 硬件够硬,可以等我的一键运行包。
给公众号“托尼不是塔克“ 发送关键词photomaker获取!
最后夹带点私货。
在线演示可以看这里:
https://github.com/dream80/TonyDemo
Colab脚本可以看这里:
https://github.com/dream80/TonyColab
在线演示人太多,可能有点崩溃了!
最后…
不管你会没会,不能白看哦。
起码点个赞再走!!!
收工!