开源 ReHiFace-S 一款集高保真、实时性、易用性于一身的换脸神器 附视频演示 整合包

开源 35 5302

这个项目我已经做好了几天了,在群里也是分享了,经过几天的运行测试后,现在已经非常稳定了,所以今天抽空整理下分享出来。

换脸的效果还是很不错的,你们可以下面的视频演示就知道了。

虽然我之前也已经分享了几个换脸的工具了,但是谁又会在意多一个呢?多一个选择总是好的。

这个操作是极其简单的。选择人脸,选择视频点下提交就可以换脸了。特别适合那些电脑基础差的小伙伴。

但是我今天才发现这个项目的作者居然删库了,我也不知道是什么原因,没有继续开发下去,目前这个项目还是有些bug的。不知道是否以后还会更新,而我又懒,没有时间去折腾这些bug,本身这个工具还有个直播视频换脸的功能,我也懒得去研究了。看看以后什么时候心血来潮了,再去折腾一下了。或者有研究精神的小伙伴可以进一步去开发。。。反正都是开源的。我的整合包也是未做任何加密。包括我之前分享的所有我制作的整合包都是如此。我不喜欢加密。

项目特点

  1. 无需数据训练:

    • 用户只需提供一张照片,无需繁琐的数据训练和复杂的配置,即可实现一键换脸。

  2. 高保真度:

    • 通过神经网络预测和重建高分辨率细节,换脸效果逼真,细节保留良好。

  3. 支持多目标人脸替换:

    • 不仅可以替换单个目标人脸,还能在直播、视频通话等场景中实时替换多个目标人脸。

  4. 色彩矫正:

    • 自动调整色调和光照,确保换脸后的画面自然和谐。

  5. 支持ONNX和实时摄像头模式:

    • 支持ONNX模型推理,允许在不同硬件平台和深度学习框架间轻松转换和部署。

    • 支持实时摄像头换脸,提升用户体验。

  6. 超分辨率和颜色迁移:

    • 对换脸后的图像进行超分辨率处理和颜色迁移,进一步提升视觉效果。

  7. 更好的人脸分割模型:

    • 基于XsegNet的人脸分割模型经过大量数据微调,即便人脸被遮挡也能轻松应对。

ReHiFace-S作为一款集高保真、实时性、易用性于一身的换脸神器,不仅大大降低了换脸技术的门槛,还为用户提供了丰富的应用场景和便捷的使用体验。无论是开发者、创作者还是普通用户,都能通过ReHiFace-S轻松实现人脸替换的神奇效果。





请勿将该工具用于任何非法行为,由此产生的一切后果自负

下载地址
夸克网盘

下载有疑问看下这里

相关推荐:

我要评论:

◎欢迎参与讨论,请自觉遵守国家法律法规。

已有 35 条评论

  1. 齊魯 齊魯

    謝謝

  2. 冷风顺心 冷风顺心

    造化钟神秀

  3. honsonlin honsonlin

    可以上传到迅雷云盘吗,谢谢啦

    1. 剑心 剑心

      不会放其他盘了,这个目前有违规风险,经不住各位小伙伴的请求才放出来下载地址,本身已经删除。且用且珍惜吧

      1. 手机背后 手机背后

        天朝,干啥都有违规风险

  4. 含蓄等于云朵 含蓄等于云朵

    地址呢大哥

    1. 剑心 剑心

      文末有说明

  5. 平淡用钻石 平淡用钻石

    太好了,大神,支持你一个

  6. 小刺猬落后 小刺猬落后

    nice

  7. 秀丽踢心情 秀丽踢心情

    xiexie

  8. 煎蛋外向 煎蛋外向

    不用训练是不是说明转换速度会提升很对

  9. 硬币懦弱 硬币懦弱

    真棒

  10. 巨人潇洒 巨人潇洒

    可以

  11. 美丽打火龙果 美丽打火龙果

    牛逼牛逼

  12. 忐忑就鞋子 忐忑就鞋子

    67

  13. 飞机伶俐 飞机伶俐

    感谢分享

  14. 傻傻笑耳机 傻傻笑耳机

    xxfzfds

  15. 康乃馨喜悦 康乃馨喜悦

    感谢分享

  16. 疯狂和河马 疯狂和河马

    感谢分享

  17. 苗条妩媚 苗条妩媚

    感谢分享!!!

  18. 苹果等于草丛 苹果等于草丛

    感谢大佬分享

  19. 黄豆无聊 黄豆无聊

    感谢大佬分享

  20. 机灵方鞋垫 机灵方鞋垫

    真棒啊

  21. 典雅保卫鸡翅 典雅保卫鸡翅

    2024-08-27 19:28:00.3509584 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.3795473 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.4095860 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.4175688 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.4258019 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.4477881 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    2024-08-27 19:28:00.4563045 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));
    Traceback (most recent call last):
    File "D:\ReHiFace\jian27\lib\site-packages\gradio\queueing.py", line 536, in process_events
    response = await route_utils.call_process_api(
    File "D:\ReHiFace\jian27\lib\site-packages\gradio\route_utils.py", line 288, in call_process_api
    output = await app.get_blocks().process_api(
    File "D:\ReHiFace\jian27\lib\site-packages\gradio\blocks.py", line 1931, in process_api
    result = await self.call_function(
    File "D:\ReHiFace\jian27\lib\site-packages\gradio\blocks.py", line 1516, in call_function
    prediction = await anyio.to_thread.run_sync( # type: ignore
    File "D:\ReHiFace\jian27\lib\site-packages\anyio\to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
    File "D:\ReHiFace\jian27\lib\site-packages\anyio\_backends\_asyncio.py", line 2177, in run_sync_in_worker_thread
    return await future
    File "D:\ReHiFace\jian27\lib\site-packages\anyio\_backends\_asyncio.py", line 859, in run
    result = context.run(func, *args)
    File "D:\ReHiFace\jian27\lib\site-packages\gradio\utils.py", line 826, in wrapper
    response = f(*args, **kwargs)
    File "D:\ReHiFace\app.py", line 132, in process_image_video
    processed_frame = future.result()
    File "D:\ReHiFace\jian27\lib\concurrent\futures\_base.py", line 446, in result
    return self.__get_result()
    File "D:\ReHiFace\jian27\lib\concurrent\futures\_base.py", line 391, in __get_result
    raise self._exception
    File "D:\ReHiFace\jian27\lib\concurrent\futures\thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
    File "D:\ReHiFace\app.py", line 73, in process_frame
    mask_out, swap_face_out = self.hf.forward(face, image_latent[0].reshape(1, -1))
    File "D:\ReHiFace\face_lib\face_swap\hififace_api.py", line 28, in forward
    output = self.model.forward(blob)
    File "D:\ReHiFace\model_lib\base_wrapper\onnx_model.py", line 154, in forward
    temp_result = self.onnx_session.run(self.output_name, input_feed=input_feed)
    File "D:\ReHiFace\jian27\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 220, in run
    return self._sess.run(output_names, input_feed, run_options)
    onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Non-zero status code returned while running Upsample node. Name:'Upsample_495' Status Message: CUDA error cudaErrorMemoryAllocation:out of memory

    1. 剑心 剑心

      看样子是爆了显存。你显卡是什么?

      1. 含羞草等待 含羞草等待

        4060 8G显存

        1. 剑心 剑心

          那就可能是你没有安装cuda 可以安装试试

          1. 含羞草等待 含羞草等待

            确认安装了

            1. 白猫冷傲 白猫冷傲

              2024-08-27 19:28:00.3509584 [E:onnxruntime:Default, cuda_call.cc:116 onnxruntime::CudaCall] CUDA failure 2: out of memory ; GPU=0 ; hostname=KAIDE ; file=D:\a\_work\1\s\onnxruntime\core\providers\cuda\cuda_execution_provider.cc ; line=395 ; expr=cudaStreamSynchronize(static_cast(stream_));

              是不是包写死了E盘? 我只有两个盘符C D

              1. 剑心 剑心

                不是 这是爆了显存

  22. 醉熏等于世界 醉熏等于世界

    看看。。

  23. 内向打蜜粉 内向打蜜粉

    牛啊

  24. 老农 老农

    需要连网吗?

    1. 剑心 剑心

  25. 1234 1234

    哈喽秀,造化钟神秀!