FaceFusion这个AI换脸的项目已经太久没有更新了。作者终于在昨天更新了3.0,更新幅度大得惊人。这么久不更新,原来是一直在憋大招,这个CD冷却也太久了。。。我第一次时间就去做整合包了。本以为这还不是有手就行的事,但是有点难度。因为3.0更新太大了,所以之前版本的模型还有一些东西根本用不上了,我只能慢慢去研究了。搞半天最后把我的系统的conda环境搞砸了。。。然后我就各种修复结果不但没有修好,相反把我的cuda版本也搞乱了,最后导致我不得不重装了系统。我真是手欠啊。有时候冲动真的是魔鬼。最后到了午夜时分才搞好。。。然后又是打包上传上来。都是泪。。。。
这个整合包我测试了半天,按理来说应该没什么问题了,如果各位小伙伴在玩的时候有什么问题 可以留言告知一下。
先看演示吧,为了不侵犯他人的肖像之类的东西,我就只放换脸后的视频。各位参考参考,下图是AI生成的2个小姐姐,替换视频的里面的脸
下面来讲下 详细操作 点击启动后就是这么一个黑洞洞的窗口
然后打开一个链接
http://127.0.0.1:7860 这个链接在黑窗口那里复制即可
需要手动复制在浏览器里面打开
然后出来这样一个界面
经群里网友提示 简单从万能君那里复制了下翻译
其实我个人觉得这些都是简单的英文单词,一般都认识如果实在是不认识也可以用浏览器翻译下
完全没有必要去单独做汉化了
下面已经就是正经开始操作
点这里选择你要换的脸
这里选择你要换的视频,然后输出质量选100
比如我换的这个小姐姐的视频 其他都不要动。点最下面的开始
看到开始读秒就说明开始了,在黑洞洞那个窗口也会有各种文字滚动
等完成以后 会有提示Processing to video succeed
点击如图所示的地方 把视频保存到你要保存的地方
下面是最新版截图
视频也会自动保存在整合包里面的output目录下。
操作就是这么简单。其他参数都默认即可 不要动。第一次运行会慢一些,因为会自动下载一些对应的模型,请耐心等待,下载好后以后再运行就速度很快了。
下面是我使用了这个工具几天的一点心得。
首先 换脸的文件 不要有中文名字和中文路径,否则很容易报错
其次 电脑的用户名 一定要是英文,否则也会报错
再次 换脸的图片 必须是正面 而且要高清一点点,如我上面的小姐姐所示,可以参考下
否则就会提示这个错误
因为我的显卡是A卡,又是比较老旧的A卡 rx580了 所以不支持用显卡来跑,只能用cpu慢慢跑。但是效率也还可以。
现在已经已经支持了A卡,显卡效率远超CPU。
下面是进阶教程。
这个工具启动后有很多默认的参数,如果你想修改这些参数,可以用记事本打开运行.bat这个文件,记得先备份好这个文件
call py310\python.exe run.py --skip-download --temp-frame-format png --output-video-quality 100 -o output --system-memory-limit 24 --output-video-preset superfast --frame-processors face_swapper face_enhancer --face-enhancer-model restoreformer_plus_plus --face-swapper-model uniface_256 --execution-thread-count 8 --face-detector-model retinaface --face-detector-size 160x160,320x320
找到如上一段代码,下面是这段代码的解释
--skip-download: 这个参数可能表示跳过下载某些资源或数据。
--temp-frame-format png: 临时帧的格式设置为PNG。
--output-video-quality 100: 输出视频的质量设置为100(通常是最高质量)。
-o output: 设置输出目录或文件名为 output。
--system-memory-limit 24: 系统内存限制设置为24GB(或可能是其他单位,具体取决于脚本如何实现)。
--output-video-preset superfast: 输出视频的预设设置为“superfast”,这通常与视频编码速度有关,可能牺牲了一些质量以获得更快的编码速度。
--frame-processors face_swapper face_enhancer: 指定两个帧处理器:face_swapper 和 face_enhancer,它们可能分别用于人脸交换和人脸增强。
--face-enhancer-model restoreformer_plus_plus: 为 face_enhancer 帧处理器指定模型为 restoreformer_plus_plus。
--face-swapper-model uniface_256: 为 face_swapper 帧处理器指定模型为 uniface_256。
--execution-thread-count 8: 执行线程数设置为8,这意味着脚本将使用8个线程来并行处理。
--face-detector-model retinaface: 指定人脸检测模型为 retinaface。
--face-detector-size 160x160,320x320: 人脸检测器的大小或分辨率设置为160x160和320x320两种尺寸。
这些注释我懒得去手动打字了,用AI帮我注释的,我大致看了下没什么大问题,估计各位小伙伴都能看明白就行了,更改这些参数就可以更改facefusion启动后的默认参数
我举个例子 你们就明白了
--face-swapper-model uniface_256 如果想改一个默认的模型 可以改成
--face-swapper-model inswapper_128 这样启动后的默认模型就改了
其他就看你们自由发挥了,想获取更详细的参数说明可以去看官方开源项目那里看看了。
3.0 更新记录
改造架构,让一切都成为工作
为换脸器引入像素提升
为面部检测器添加多角度处理
引入年龄修正处理器
推出基于Live Portrait的表情恢复处理器
推出Live Portrait人脸编辑处理器
用resnet_34模型替换人脸解析器
发布GHOST换脸模特
释放帧增强器real_esrgan_x8型号
介绍SimSwap和GHOST的ArcFace转换器模型
基于本地哈希验证引入离线优先资产
将gender_age替换为高级公平脸模型
将顺序、年龄和性别转移到面部选择器
支持CUDA 12.4、TensorRT 10.4、OpenVino 2024.1和ROCm 6.2
在无头模式下提供适当的错误代码
将CLI迁移到命令以及相关参数
介绍定制的peppa_wutz人脸地标模型
介绍——人脸地标模型论证
介绍——输出音频编码器参数
添加视频编码器h264_videotobox和hevc_videototoolbox
将--face选择器顺序默认值更改为大-小
用上下文感知推理管理器替换全局变量
调整UI布局和视觉外观
更新至最新Gradio 4
提供多范围滑块来修剪视频帧
在UI中引入日志级别感知终端组件
确保基准测试结果更加准确
由于精度低,删除面部检测器模型yunet
修复面部切换统一模型中的闪烁问题
修复ROCm和DirectML的线程和预览崩溃问题
修复webp图像的图像质量
修复ffmpeg处理的终止
https://www.myhelen.cn/helen/240.htm
https://www.myhelen.cn/helen/242.htm
https://www.myhelen.cn/helen/246.htm
https://www.myhelen.cn/helen/250.htm 最新N卡教程
有问题 需要解答,请先告知自己的显卡参数以及下载的是哪个版本,我没有未卜先知的能力,上面的教程麻烦先看看再问!
下面是几个必须要安装的软件否则运行不了
运行库不管是什么卡都要安装
https://www.jian27.com/html/2290.html
AMD显卡 AMD HIP SDK必须安装3.0 以后只能使用CPU运行了
下载地址
https://pan.quark.cn/s/f5f86d769394
https://drive.uc.cn/s/eab589fe1a1d4
https://pan.baidu.com/s/1c65OrFR18AuHOvTH56Yu7Q?pwd=6666
修改facefusion2.6.1 缓存目录的方法
https://www.myhelen.cn/helen/253.htm
修改facefusion 3.0 缓存目录的方法
https://www.myhelen.cn/helen/263.htm
请勿将该工具用于任何非法行为,由此产生的一切后果自负
请问下,这个软件可以批量换脸嘛?
选择的run-cuda.bat运行 进去后勾选cuda 启动后却是CPU100%在跑 显卡动都不动 咋回事啊 显卡是1660TI
仔细看视频教程
想问一下到这里就没反应了是怎么回事Analysing: 100%|=====================================================| 6582/6582 [01:43
想进去喝茶 你为什么不直接打110呢?
刚刚手机上下载了DNS优选,用了,下载还是打不开
我再次测试没有问题
这个哪里不对
Traceback (most recent call last):
File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\queueing.py", line 536, in process_events
response = await route_utils.call_process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\route_utils.py", line 322, in call_process_api
output = await app.get_blocks().process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\blocks.py", line 1935, in process_api
result = await self.call_function(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\blocks.py", line 1520, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\_backends\_asyncio.py", line 2405, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\_backends\_asyncio.py", line 914, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\utils.py", line 826, in wrapper
response = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\uis\components\instant_runner.py", line 82, in run
create_and_run_job(step_args)
File "F:\facefusion3.0.1\facefusion\uis\components\instant_runner.py", line 97, in create_and_run_job
return job_manager.create_job(job_id) and job_manager.add_step(job_id, step_args) and job_manager.submit_job(job_id) and job_runner.run_job(job_id, process_step)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 11, in run_job
if run_steps(job_id, process_step) and finalize_steps(job_id):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 66, in run_steps
if not run_step(job_id, index, step, process_step):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 52, in run_step
if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\core.py", line 289, in process_step
if common_pre_check() and processors_pre_check():
^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\core.py", line 111, in processors_pre_check
if not processor_module.pre_check():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\processors\modules\age_modifier.py", line 88, in pre_check
return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\download.py", line 87, in conditional_download_sources
_, invalid_source_paths = validate_source_paths(source_paths)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\download.py", line 127, in validate_source_paths
if validate_hash(source_path):
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\facefusion3.0.1\facefusion\hash_helper.py", line 20, in validate_hash
validate_content = validate_file.read()
^^^^^^^^^^^^^^^^^^^^
MemoryError
嗯… 无法访问此页面
go.jian27.com 已拒绝连接。
请尝试:
检查连接
检查代理和防火墙
就下载,突然打不开了
修改下你上网的dns
用手机下载DNS优选,设置了,还是打不开下载
安装好cuda11.8和对应的cudnn版本
出现这个,怎么处理?
To create a public link, set `share=True` in `launch()`.
已经在运行 不用处理,仔细看视频教程
学习一下 好东西
感恩您的分享
大佬 您好,我下载的是1007版本的,路径全英文,一直报错[FACEFUSION.FACE_SWAPPER] No source face detected!
请问需要排查哪里?
脸那个图片有问题,换一张,提示找不到脸
但是确实是高清图啊,用的很标准的肖像照。。。我花钱买了份整合版 我再试试
脸的图片 参考我的图片样式
大佬你好。我是N卡4070S,下的3.0整合包(facefusion3.0.rar),跑视频换脸报错如下,帮忙看看咋回事呢
cv2.error: OpenCV(4.10.0) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:798: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
这明显不是我做的整合包
[FACEFUSION.CORE] Processing step 1 of 1
执行完一步之后就没反应了。没有报错, 是哪里设置不对么
为什么下载不了
为什么你不睁大眼睛?
大佬,直接把链接复制到评论吧,小白表示真的不知道怎么下载
估计你搞错了地方,我这里不是幼儿园 不负责电脑基础知识普及
我点几个网盘进去,页面加载不了,不知道怎么下载
如何下载啊
你看不到下载地址?
本次更新并不是版本更新,是修复了一些之前存在bug
3*222
我也来看看
跑完了找不到输出视频,output文件夹是空的,跑了四五次都一样,重启了也这个样,不知道咋搞的
仔细看教程
大佬,遇到这情况是怎么回事,我检查过 onxx 1.18.0 cuda 12.x cudnn 8.x 版本都对的上
sess.initialize_session(providers, provider_options, disabled_optimizers)
RuntimeError: D:\a\_work\1\s\onnxruntime\python\onnxruntime_pybind_state.cc:891 onnxruntime::python::CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasnt able to be loaded. Please install the correct version of CUDA andcuDNN as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements), make sure they're in the PATH, and that your GPU is supported.
cuda11.8+cudnn8.9.7
[E:onnxruntime:Default, provider_bridge_ort.cc:1745 onnxruntime::TryGetProviderInfo_CUDA]报错
我是2080TI 22G安装最新的显卡驱动和CUDA Toolkit 12.6(https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local),之后运行提示要设置CUDA_PATH,然后在run_cuda.bat里面新增SET CUDA_PATH="%PROGRAMFILES%\NVIDIA GPU Computing Toolkit\CUDA\v12.6"
cuda和显卡驱动都按默认安装。如果还不行,试试这个。
SET CUDA_INSTALL="%PROGRAMFILES%\NVIDIA GPU Computing Toolkit\CUDA"
FOR /F "DELIMS= " %%I IN ( 'DIR %CUDA_INSTALL% /B ' ) DO SET VERSION=%%I
SET CUDA_PATH=%CUDA_INSTALL%\%VERSION%
SET PATH=%CUDA_PATH%;%PYTHON_PATH%;%PYTHON_PATH%\Library\bin;%PYTHON_PATH%\Scripts;%CD%;%PATH%
更改临时目录到本程序目录下,参照2.6.1版本修改:把temp_helper.py里面的get_temp_directory_path函数改成如下:
def get_temp_directory_path(file_path : str) -> str:
temp_file_name, _ = os.path.splitext(os.path.basename(file_path))
#base_directory_path = get_base_directory_path()
current_script_path = os.path.abspath(__file__)
current_script_dir = os.path.dirname(current_script_path)
parent_dir = os.path.dirname(current_script_dir)
base_directory_path = os.path.join(parent_dir, 'tmp')
return os.path.join(base_directory_path, temp_file_name)
Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle:
Traceback (most recent call last):
File "asyncio\events.py", line 80, in _run
File "asyncio\proactor_events.py", line 165, in _call_connection_lost
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
运行facefusion经常性随机出现以上错误信息,尝试网络上的几种修改方式,问题一直解决不了,后来尝试把asyncio\windows_events.py里面的
DefaultEventLoopPolicy = WindowsProactorEventLoopPolicy
改成
DefaultEventLoopPolicy = WindowsSelectorEventLoopPolicy
运行了多次,未再出现错误信息。
我好像没有遇到这样的错误
这个方法成功了,临时文件名称是 tmp
这个我不是以前分享过吗?
你这只是指定cuda和cudnn路径 但是实际上还是如果不按我的提示版本安装还是会报错的
一定要在本机安装好 cuda11.8+cudnn8.9.7 如果不会安装请去翻下我以前的分享环境搭建
那就是cuda12.5,12.6以上不行?
多谢一直以来的无私奉献。
不支持A卡,完。
A卡运行 run-cpu.bat
3.0版本A卡运行后没有dml选项,无法GPU加速…… 看到有收费论坛提供了A卡版本,大神有空再给给瞧瞧为啥不行么?
在下载的网盘里面 有我之前分享的2.6.1 A卡版
试过了,cpu运行非常慢,二十秒的视频得花一个多小时。
有英伟达显卡就选cuda运行
请问下 为什么给图片换脸的时候 只会在预览有一个模糊的图然后没办法跑啊 是要继续等么
看看黑色窗口提示什么
十分感谢分享 强大
3.0一下子体积大了好多,N卡A卡和一起的?
终于等到你的3.0感谢了
3.0更新了,期待LZ更新
重装了三遍,没有运行文件?请问?
瞪大你的眼睛
怎么去掉限制转换512mb的视频
没有限制
9月6日的2.6.1版本和之前的有什么分别,一样的话就不重新下载了,100K速度的百度太难受
如果你能正常运行就别重新下载了
有其它网盘吗
不会放其他盘了,这个目前有违规风险,经不住各位小伙伴的请求才放出来下载地址,本身已经删除。且用且珍惜吧
看不到下载地址啊, 文末只能看到 下载地址可能违规被取消,可私信给下载地址吗?谢谢
感想大佬
第一个进度条完成后,不动了,是什么问题
感谢感谢感谢
多谢多谢啊
感谢感谢
谢谢
感谢分享
感谢
多谢多谢啊
感谢
死神千年血战篇第三季
謝謝分享
感谢分享,正需要,学习一下
良心博主,必须支持!
很大打击阿斗啊啊d
辛苦大佬,下载试试看
感谢 分享
良心博主,必须支持!
好
:)