DeepFuze 是一款最先进的深度学习工具,可与 ComfyUI 无缝集成,彻底改变面部变换、口型同步、视频生成、语音克隆、面部交换和口型同步翻译。 DeepFuze 利用先进的算法,使用户能够以无与伦比的真实感将音频和视频结合起来,确保面部动作完美同步。这种创新的解决方案非常适合内容创作者、动画师、开发人员以及任何寻求通过复杂的人工智能驱动功能提升视频编辑项目的人。
您必须安装 Visual Studio,它可与社区版本或 VS C++ 构建工具配合使用,并在“工作负载 -> 桌面和移动”下选择“使用 C++ 进行桌面开发”
从 ComfyUI-Manager 中搜索 DeepFuze,然后安装节点。重新启动 ComfyUI,然后查看终端窗口以确保没有错误,或者从 ComfyUI 管理器安装,选择“通过 GIT URL 安装”,然后复制过去:
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
重新启动您的 ComfyUI
YOUTUBE 链接分步说明
安装用于深度学习的 Nvidia CUDA Toolkit==11.8 和 cuDNN (CUDA Deep Neural Network),您必须从 NVIDIA DEVELOPER cuDNN Archive 下载cuDNN 版本 8.9.2.26 ,如果您没有开发者帐户,可以直接从 GoogleDrive 下载。确保安装Cuda1 1.8 。我发现这个 YOUTUBE 视频对安装很有用。如果您有不同版本的 CUDA,这里有一个 YOUTUBE 链接,可指导您如何卸载 CUDA。确保按照 YOUTUBE VIDEO 中的说明在环境变量中创建路径 创建路径后重新启动计算机。确认您的 Cuda 安装,将此代码粘贴到您的终端窗口nvcc --version
您应该得到如下响应:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0`
不要通过 ComfyUI-Manager 安装,它将不起作用,您必须手动安装并按照以下说明进行操作:
激活您的虚拟环境 Conda 或 Venv
这里是如何安装和测试你的 PyTorch
此方法已在 M1 和 M3 Mac 上进行了测试,您必须在 Mac Metal Performance Shaders (MPS) 的终端窗口上运行以下代码,这是 Apple 在其设备上进行高性能 GPU 编程的专用解决方案。 MPS 与 Metal 框架紧密集成,为图形和计算任务提供了一套高度优化的着色器,这在机器学习应用程序中特别有益。
将以下命令复制并粘贴到终端窗口。
export PYTORCH_ENABLE_MPS_FALLBACK=1
Mac 用户必须安装 ONNX RUNTIME CPU 而不是 onnxruntime-gpu
pip install onnxruntime
macOS 需要安装原版 dlib。
pip install dlib
为语音克隆节点安装文本转语音
pip install TTS
导航到custom_nodes
文件夹
cd custom_nodes
git clone https://github.com/SamKhoze/CompfyUI-DeepFuze.git
导航到CompfyUI-DeepFuze
文件夹并安装requirements.txt
文件
cd CompfyUI-DeepFuze
pip install -r requirements.txt
语音克隆和口型同步的先决条件
以下是加载视频和音频所需的两个 ComfyUI 存储库。将它们安装到您的custom_nodes
文件夹中:
克隆存储库:
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
CV错误:如果遇到错误“ComfyUI_windows_portableComfyUIoutputdeepfuzefaceswap_file.mp4无法加载cv”,则表示未安装onnxruntime
。要解决此问题,请确保安装适用于 CPU 的onnxruntime
和适用于 Windows 的onnxruntime-gpu
。 Mac 用户应在虚拟环境中使用命令pip install --upgrade opencv-python-headless
升级 OpenCV。对于 Windows 用户,请转到 ComfyUI Manager,单击“pip install”,粘贴--upgrade opencv-python-headless
,单击“确定”,然后重新启动 ComfyUI。
缺少zlibwapi.dll错误:搜索NVIDIA zlibwapi.dll文件,下载并复制到C:Program FilesNVIDIA GPUComputing ToolkitCUDAv11.8binzlibwapi.dll
如果您安装 TTS 时出错,很可能是因为您的 Python 版本不同,请确保安装正确的版本
如果出现错误: ImportError: Cannot import name 'get_full_repo_name' from 'huggingface_hub' 在终端上运行以下代码即可解决问题
conda install chardet
pip install --upgrade transformers==4.39.2
如果任何软件包出现任何错误,请使用任何文本编辑器打开requirements.txt文件,删除软件包名称前面的版本,然后再次重新安装requirements.txt
您可以直接从 GoogleDrive 下载模型并将模型放入 PATH ./ComfyUI/models/deepfuze/
确保手动一一下载每个模型并放置它们,由于模型的大小,某些模型将无法下载,如果您下载准备环境变量的文件夹,导航到您的 custom_nodes 文件夹并 git clone 或手动下载代码并将其提取到 custom_nodes 文件夹中。
要使用“Openai LLM”节点进行语音克隆对话,您需要一个 OpenAI API 密钥。您可以按照 OpenAI Developer 快速入门指南中的说明获取此密钥并进行设置。请注意,“Openai LLM”节点不会保存您的 API 密钥。每次关闭节点时,您都需要手动复制并粘贴 API 密钥。您还可以使用以下命令将 API 密钥添加为环境变量:对于 Windows: setx OPENAI_API_KEY "your-api-key-here"
,对于 Mac: export OPENAI_API_KEY='your-api-key-here'
。下次您需要将 API 密钥复制并粘贴到 LLM 节点时,您可以在终端中键入以下命令: echo $OPENAI_API_KEY
,它将打印您的 API 密钥,允许您将其复制并粘贴到 Openai LLM 中节点。
该节点从视频、图像和音频文件生成口型同步视频。为了获得更高的质量,将 IMAGE 输出导出为图像批次而不是组合视频,您可以获得高达 4k 质量的图像大小。重要提示:您必须使用 VideoHelperSuit 节点中的“VHS 加载音频”节点加载音频。
输入类型:
images
:提取帧图像作为 PyTorch 张量。audio
:加载的音频数据的实例。mata_batch
:通过元批次管理器节点加载批次号。输出类型:
IMAGES
:提取帧图像作为 PyTorch 张量。frame_count
:输出帧计数 int。audio
:输出音频。video_info
:输出视频元数据。DeepFuze 口型同步功能:
enhancer
:您可以添加面部增强器以通过面部恢复网络提高生成视频的质量。frame_enhancer
:您可以添加增强视频的整个帧。face_mask_padding_left
:口型同步时填充到脸部左侧。face_mask_padding_right
:口型同步时填充到脸部右侧。face_mask_padding_bottom
:口型同步时填充到脸部底部。face_mask_padding_top
:口型同步时填充到脸部顶部。device
:[CPU、GPU]frame_rate
:设置帧速率。loop_count
:视频应重复播放多少次。filename_prefix
:输出视频的前缀命名。pingpong
:使输入反向播放以创建干净的循环。save_output
:将输出保存在输出文件夹中。 该节点交换、增强和恢复视频和图像中的面部。或者以更高质量将 IMAGE 输出导出为图像批次而不是组合视频,您可以获得高达 4k 质量的图像大小。
输入类型:
source_images
:提取帧图像作为 PyTorch 张量进行交换。target_images
:提取帧图像作为 PyTorch 张量以输入源视频/图像。mata_batch
:通过元批次管理器节点加载批次号。输出类型:
IMAGES
:提取帧图像作为 PyTorch 张量。frame_count
:输出帧计数 int。audio
:输出音频。video_info
:输出视频元数据。DeepFuze FaceSwap 特点:
enhancer
:您可以添加面部增强器以通过面部恢复网络提高生成视频的质量。faceswap_model
:您可以选择不同的模型进行交换。frame_enhancer
:您可以添加增强视频的整个帧。face_detector_model
:您可以选择不同的模型进行人脸检测。face_mask_padding_left
:口型同步时向脸部左侧填充。face_mask_padding_right
:口型同步时在脸部右侧填充。face_mask_padding_bottom
:口型同步时填充到面部底部。face_mask_padding_top
:口型同步时填充到脸部顶部。device
:[CPU、GPU]frame_rate
:设置帧速率。loop_count
:视频应重复播放多少次。filename_prefix
:输出视频的前缀命名。pingpong
:使输入反向播放以创建干净的循环。save_output
:将输出保存在输出文件夹中。人脸检测器模型摘要表(RetinaFace 通过合并人脸周围的上下文信息来提供更高的质量,这有助于检测各种条件下的人脸,例如遮挡、不同尺度和姿势。
特征 | YOLOFace | 视网膜脸 | SCRFD | 豫网 |
---|---|---|---|---|
建筑学 | 单次YOLO | 单级 RetinaNet | 单级级联 | 轻量级定制 |
速度 | 非常快 | 缓和 | 快速地 | 非常快 |
准确性 | 好的 | 非常高 | 高的 | 好的 |
鲁棒性 | 缓和 | 非常高 | 高的 | 缓和 |
计算效率 | 高的 | 缓和 | 高的 | 非常高 |
使用案例 | 实时、不太复杂的场景 | 高精度、稳健的需求 | 平衡的移动/边缘设备 | 移动、嵌入式、实时 |
优点 | 速度 | 准确性、稳健性 | 效率、准确性 | 轻量、高效 |
缺点 | 准确性权衡 | 计算量大 | 不是最快的 | 复杂场景下鲁棒性较差 |
语言:
DeepFuze_TTS语音克隆支持17种语言:英语(en)、西班牙语(es)、法语(fr)、德语(de)、意大利语(it)、葡萄牙语(pt)、波兰语(pl)、土耳其语(tr)、俄语(ru) )、荷兰语 (nl)、捷克语 (cs)、阿拉伯语 (ar)、中文 (zh-cn)、日语 (ja)、匈牙利语 (hu)、韩语 (ko) 印地语 (hi)。
该节点用于从键入的输入中克隆任何语音。为了获得更好的效果,音频文件的长度应为 10-15 秒,并且不应有太多噪音。为了避免任何采样率错误,请加载 MP3 音频并仅与 AudioScheduler 节点一起使用。我们正在开发一个转换器节点来解决这个问题。
输入类型:
audio
:加载的音频数据的实例。text
:生成克隆语音的文本。输出类型:
audio
:加载的音频数据的实例。“LLM Integration”节点用于将LLM(语言模型)合并到语音克隆过程中。您可以输入对话并配置参数,人工智能生成的文本将用于语音克隆。此外,您可以利用此节点代替 ChatGPT,从 LLM 生成文本或以与使用 ChatGPT 相同的方式提出任何问题。您可以通过将 LLM_RESPONSE 连接到 rg Three-comfy 中的“Display Any”节点来查看 DeepFuze_LLM 的输出,该节点也可用于提示生成和任何节点输入文本。
输入类型:
user_query
:输入您的对话。输出类型:
LLM_RESPONSE
:输出 AI 生成的文本。DeepFuze Openai 法学硕士特点:
model_name
:您可以从可用的 openai 模型中进行选择。api_key
:添加您的 API 密钥。 (您的API Key不会被保存,每次使用该节点时都必须手动输入。max_tokens
:是一个参数,用于限制 OpenAI GPT API 中模型响应中的令牌数量。它用于通过 GPT 对表格和文档发出的请求以及 ChatOpenAI() 类中。 max_tokens 的默认值为 4096 个令牌,大致相当于 3,000 个单词。temperature
:控制其响应的随机性和创造性水平。它是大型语言模型 (LLM) 中的一个超参数,可以平衡生成文本的创造力和连贯性。温度设置始终是 0 到 1 之间的数字,默认值为 0.7: 0:产生非常简单、几乎确定性的响应 1:导致变化很大的响应 0.7:ChatGPT 的默认温度。timeout
:设置时间,如果请求花费太长时间才能完成并且服务器关闭连接。输入类型:
image
:提供面罩填充的预览。DeepFuze 填充功能:
face_mask_padding_left
:口型同步时向脸部左侧填充。face_mask_padding_right
:口型同步时在脸部右侧填充。face_mask_padding_bottom
:口型同步时填充到面部底部。face_mask_padding_top
:口型同步时填充到脸部顶部。该节点用于保存“语音克隆”节点的输出。此外,您可以修剪音频并播放。
输入类型:
audio
:加载的音频数据的实例。DeepFuze 填充功能:
METADATA
:Sting 元数据。start_time
:调整开始时间。end_time
:修剪结束时间。playback window
:提供播放、保存和播放速度选项。声音克隆+口型同步生成
语音克隆 + 口型同步生成 + FaceSwap
ComfyUI-DeepFuze/ ├── __init__.py ├── __pycache__/ │ ├── __init__.cpython-311.pyc │ ├── audio_playback.cpython-311.pyc │ ├── llm_node.cpython-311.pyc │ ├── nodes.cpython-311.pyc │ └── utils.cpython-311.pyc ├── audio_playback.py ├── deepfuze/ │ ├── __init__.py │ ├── audio.py │ ├── choices.py │ ├── common_helper.py │ ├── config.py │ ├── content_analyser.py │ ├── core.py │ ├── download.py │ ├── execution.py │ ├── face_analyser.py │ ├── face_helper.py │ ├── face_masker.py │ ├── face_store.py │ ├── ffmpeg.py │ ├── filesystem.py │ ├── globals.py │ ├── installer.py │ ├── logger.py │ ├── memory.py │ ├── metadata.py │ ├── normalizer.py │ ├── process_manager.py ├── requirements.txt ├── images/ ├── install.py ├── LICENSE.txt ├── llm_node.py ├── mypy.ini ├── nodes.py ├── README.md ├── requirements.txt ├── run.py ├── tests/ │ ├── __init__.py │ ├── test_audio.py │ ├── test_cli_face_debugger.py │ ├── test_cli_face_enhancer.py │ ├── test_cli_face_swapper.py │ ├── test_cli_frame_colorizer.py │ ├── test_cli_frame_enhancer.py │ ├── test_cli_lip_syncer.py │ ├── test_common_helper.py │ ├── test_config.py │ ├── test_download.py │ ├── test_execution.py │ ├── test_face_analyser.py │ ├── test_ffmpeg.py │ ├── test_filesystem.py │ ├── test_memory.py │ ├── test_normalizer.py │ ├── test_process_manager.py │ ├── test_vision.py │ └── test_wording.py ├── tts_generation.py └── utils.py
from deepfuze import DeepFuze
# Initialize the DeepFuze instance
deepfuze = DeepFuze ()
# Load video and audio files
deepfuze . load_video ( 'path/to/video.mp4' )
deepfuze . load_audio ( 'path/to/audio.mp3' )
deepfuze . load_checkpoint ( 'path/to/checkpoint_path' )
# Set parameters (optional)
deepfuze . set_parameters ( sync_level = 5 , transform_intensity = 3 )
# Generate lipsynced video
output_path = deepfuze . generate ( output = 'path/to/output.mp4' )
print ( f"Lipsynced video saved at { output_path } " )
如果没有 FaceFusion、InsightFace、SadTalker、Facexlib、GFPGAN、GPEN、Real-ESRGAN、TTS、SSD 和 wav2lip 的贡献,这个存储库就不可能完成。
DeepFuze 代码由 Sam Khoze 博士及其团队开发。请随意将 DeepFuze 代码用于个人、研究、学术和商业目的。您可以使用此工具创建视频,但请确保遵守当地法律并负责任地使用它。开发人员对用户滥用该工具不承担任何责任。