这是我第一次写博客,主要是太懒了,然后就是这些问题自己解决了根本不想再看任何一个字!!

这些本放最后的,嘻嘻请多多请教和包涵一下!

前提知识了解:

  1. facefusion是用别人的推理库,没有训练功能,不用什么pytorch的深度学习框架。也就是环境很简单,不用下载很多库,不要担心。
  2. 先用cpu跑通再去用gpu加速。

1.源代码的下载

https://github.com/facefusion/facefusion

版本选择:建议要大版本--》3.1.0,区别不大还稳定,可以git下来或者下载zip包

解压至一个空白英文的目录

2.虚拟环境的配置

这里可以单独一篇文章,熟悉的可以跳过

  1. 推荐使用conda来配置,conda你可以下载一个minconda来管理,90mb大小可以用来代替python使用。安装minconda别嫌麻烦,管深度学习项目非常好用.
  2. 也可以使用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,是中文的通通不能运行

解决方案:

  1. 改用户名
  2. 将gradio的临时路径换一个位置
  3. 改底层读写代码

我是选用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

官方相关:

官方安装教程地址 |FaceFusion

这个项目最主要的推理加速器NVIDIA - CUDA |onnxruntime


结语

你看人帅,到哪里都一样帅!

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐