保姆级解决本地安装facefusion一些问题,拉取~路径~gpu加速
记录首次配置 FaceFusion 的过程,解决中文路径问题,并提供 GPU 加速配置指导。
这是我第一次写博客,主要是太懒了,然后就是这些问题自己解决了根本不想再看任何一个字!!
这些本放最后的,嘻嘻请多多请教和包涵一下!
前提知识了解:
- facefusion是用别人的推理库,没有训练功能,不用什么pytorch的深度学习框架。也就是环境很简单,不用下载很多库,不要担心。
- 先用cpu跑通再去用gpu加速。
1.源代码的下载
https://github.com/facefusion/facefusion
版本选择:建议要大版本--》3.1.0,区别不大还稳定,可以git下来或者下载zip包
解压至一个空白英文的目录
2.虚拟环境的配置
这里可以单独一篇文章,熟悉的可以跳过
- 推荐使用conda来配置,conda你可以下载一个minconda来管理,90mb大小可以用来代替python使用。安装minconda别嫌麻烦,管深度学习项目非常好用.
- 也可以使用python的虚拟环境,就是后面gpu加速包官方没有提供,说是要下载的库会很复杂,我也没用这个,哈哈!
以conda为例:
建议要3.10以上的,默认conda会在C盘用户目录下面的.conda文件夹下放虚拟环境, 可以问问gpt改默认虚拟环境位置.
之后打开pycharm终端看看显示了虚拟环境没有,显示了就是成功,下面的可以跳过
如果你是第一次安装conda 并且第一次在powershell(终端)中使用,要先初始化conda
命令
conda init powershell
由于我的用户名,在之前是用的是中文,这就造成了很多麻烦
有中文的用户名命令是初始化失败的.
要手动加进去
notepad $PROFILE
然后打开的记事本中写入保存 记得替换你的minconda路径
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
& 'E:\Aprogram\miincoda_py3.9\shell\condabin\conda-hook.ps1'
conda activate base
# <<< conda initialize <<<
之后打开pychram中新的终端,前面显示出虚拟环境,这表示成功
3.ffmpeg
这个也是里面的核心,用来解析图片的
ffmpeg你要把它丢到项目目录下面 或者别的位置,你要加上环境变量
4.下载模型
他会自动下载模型 用的是外网 需要科学上网 我家网络带宽有点低 不然打包发云盘上来
这是模型相关链接,Tags · facefusion/facefusion-assets
我没有使用install.py 运行这个文件好像是直接把模型和python库全部自动安装,但我没有测试
5.装python运行库
在打开的终端中,使用
pip install -r .\requirements.txt
不要使用conda install 因为环境中含有opencv conda是不能直接安装的
安装成功后,至此你的cpu版本facefusion就完成了
在终端输入以下命令测试
python python .\facefusion.py run
一般都会运行成功!!
验证功能使用
在网页端的图片上传 选一张图片,如果预览框可以显示,那么恭喜你 你的环境已经跑通了!!!
想要gpu加速的选目录跳过下面的错误解决。跑不通的可以往下瞧瞧,应该可以解决一些问题。
一般来讲, 很多都是中文用户名,我也是,不能直接显示图片,所以有下面的路径处理问题。跑通的伙伴可以跳过了,我很啰嗦的,写一大堆。
6.不能运行&&中文路径问题&&错误解决
我不记得我都有哪些问题了,感觉最多的就是用户名是中文,导致根本不能运行
而这些根本原因都是来自opencv的问题多
ps:现在时间2025年1月14日 23:15:29,题外话哈哈,一开始我用的是去年yolov5的环境,我以为是通用的环境,我想一套通用的,上次就搞了很久。后面发现这些环境已经过时了!!!!cdcnn库到9直接不兼容下面的了,pytorch已经到了2.4 好像前面的很多库也直接不兼容了,这就导致我后面配置gpu加速要换掉很多东西,你们这群搞ai的真的是太努力了!
6.1.opencv的版本,我这里是最新的版本可以通过,要注意用pip安装,conda不能安装,找不到包
6.2.最大的错误--中文用户名&中文路径
中文路径,在wbe端的窗口会显示错误,或者上传不了图片,总之看一下你的c盘用户名,用户这个中文不用管,系统会翻译成user,是中文的通通不能运行
解决方案:
- 改用户名
- 将gradio的临时路径换一个位置
- 改底层读写代码
我是选用3的,对于2我一直没有找到他这个临时文件这个位置,好像是直接改环境变量中Tmpe的位置可能可以,对于1,因为我系统装了太多东西,改了肯定好多问题,那就更麻烦了,我们不要一味的重装电脑,在重装之前解决问题才是好办法。
我使用的是3.1.0版本,通过观察日志,需要将facefusion/vision.py下的图片读写修改
#读图片 根本原因是cv2的imwrite不能使用中文路径
def read_image(image_path: str) -> Optional[VisionFrame]:
if is_image(image_path):
if is_windows():
image_path = sanitize_path_for_windows(image_path)
# 直接读取文件内容并用 cv2.imdecode 解码
with open(image_path, "rb") as f:
file_bytes = np.frombuffer(f.read(), np.uint8)
# print("read_image <--", image_path)
image = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)
if image is None:
# print("读的是None")
return None
# print("读入结果", image.shape)
return image
return None
#这里也需要换一种写入方式 将numpy数组转为图片 所以不能直接用write方法保存
from PIL import Image
def write_image(image_path: str, vision_frame: VisionFrame) -> bool:
if image_path and vision_frame is not None:
if is_windows():
image_path = sanitize_path_for_windows(image_path)
# 将图像编码为字节并写入文件
pil_image = Image.fromarray(cv2.cvtColor(vision_frame, cv2.COLOR_BGR2RGB))
pil_image.save(image_path)
return True
return False
感兴趣的伙伴,这里主要问题的关键词是:cv2的图片读取和写入,哈哈
读取不改看不到照片,写入不改不会报错,图片可以保存,视频不能保存。
改了基本即可以完美运行了。
7.gpu加速设置
gpu加速离不开cuda的安装 我的cuda是12.3 cudnn是9.5
直接
conda install conda-forge::cuda-runtime=12.6.3 conda-forge::cudnn=9.3.0.75
因为前面使用了cpu运行成功了,需要卸载cpu版本的 onnxruntime-gpu,不然不起效果
onnxruntime-gpu
pip uninstall onnxruntime-gpu
pip install onnxruntime-gpu==1.19.0
不要太高版本 不然会出现下面图片的效果,gpu可以起效果,但是图片起花
版本要超过1.19.0版本 但不要最新
然后在wbe中查看有没有cuda的加速
如果你的cuda安装好了 基本上面的命令会成功
要是cuda没有装好 这里只有小部分简略信息,理一下这个关系这个安装也很长!
nvida显卡驱动软件 --> cuda并行计算平台软件-->(cudnn拓展库 可装不装,基本装)
上面是如同底层硬件资源一样.
下面是python资源 意思是python去连上cuda需要装上的库
conda install conda-forge::cuda-runtime=12.6.3 conda-forge::cudnn=9.3.0.75
这条命令上的cuda-runtime就是用来连接cuda的,相当于py层面的底层库
onnxruntime-gpu这个在cuda-runtime 上运行的py库
pip上面就没有完整的cuda-runtime 库你要这里装一个哪里装一个,然后组成这个底层,很麻烦,
所以 你真的要用pip安装 你是要利用pytorch gpu版本来附带上安装的,这样还方便一点.
一些链接
这个项目最主要的推理加速器NVIDIA - CUDA |onnxruntime
cuda相关:
驱动
cuDNN 9.5.0 Downloads | NVIDIA Developer
CUDA Toolkit 12.6 Update 3 Downloads | NVIDIA Developer
官方相关:
这个项目最主要的推理加速器NVIDIA - CUDA |onnxruntime
结语
你看人帅,到哪里都一样帅!
更多推荐
所有评论(0)