DeepFuze — это современный инструмент глубокого обучения, который легко интегрируется с ComfyUI и совершает революцию в трансформации лиц, синхронизации губ, создании видео, клонировании голоса, замене лиц и синхронном переводе губ. Используя передовые алгоритмы, DeepFuze позволяет пользователям комбинировать аудио и видео с беспрецедентной реалистичностью, обеспечивая идеально синхронизированные движения лица. Это инновационное решение идеально подходит для создателей контента, аниматоров, разработчиков и всех, кто хочет улучшить свои проекты по редактированию видео с помощью сложных функций на основе искусственного интеллекта.
Вам необходимо установить Visual Studio, она работает с версией сообщества ИЛИ VS C++ Build Tools и выбрать «Разработка для настольных компьютеров с C++» в разделе «Рабочие нагрузки -> Настольные и мобильные устройства».
В ComfyUI-Manager найдите DeepFuze и установите узел. Перезапустите ComfyUI и посмотрите в окне терминала, чтобы убедиться в отсутствии ошибок, или установите его из менеджера ComfyUI, выберите «Установить через URL-адрес GIT» и скопируйте:
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
Перезапустите ComfyUI.
ССЫЛКА на ЮТУБ, пошаговая инструкция
Установите Nvidia CUDA Toolkit == 11.8 и cuDNN (CUDA Deep Neural Network) для глубокого обучения. Вам необходимо загрузить версию cuDNN 8.9.2.26 из архива NVIDIA DEVELOPER cuDNN. Если у вас нет учетной записи разработчика, вы можете загрузить ее напрямую с GoogleDrive. . Обязательно установите Cuda1 1.8 . Я нашел это видео на YouTube полезным для установки. Если у вас другая версия CUDA, вот ссылка на YOUTUBE, которая поможет вам удалить CUDA. Обязательно создайте пути в переменной среды, как описано в ВИДЕО НА ВАС. Перезагрузите компьютер после создания путей. Подтвердите установку 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.
Этот метод был протестирован на Mac M1 и M3. Вы должны запустить приведенный ниже код в окне терминала для Mac Metal Performance Shaders (MPS) — специализированного решения Apple для высокопроизводительного программирования графических процессоров на своих устройствах. Тесно интегрируясь с платформой Metal, MPS предоставляет набор высокооптимизированных шейдеров для графических и вычислительных задач, что особенно полезно в приложениях машинного обучения.
Скопируйте и вставьте приведенную ниже команду в окно терминала.
export PYTORCH_ENABLE_MPS_FALLBACK=1
Пользователи Mac должны УСТАНОВИТЬ ЦП ONNX RUNTIME вместо 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
не установлен. Чтобы это исправить, обязательно установите onnxruntime
для ЦП и onnxruntime-gpu
для Windows. Пользователи Mac должны обновить OpenCV с помощью команды pip install --upgrade opencv-python-headless
в своей виртуальной среде. Для пользователей Windows перейдите в ComfyUI Manager, нажмите «pip install», вставьте --upgrade opencv-python-headless
, нажмите «ОК» и перезапустите ComfyUI.
Ошибка отсутствия zlibwapi.dll: найдите файл NVIDIA zlibwapi.dll, загрузите его и скопируйте в C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.8binzlibwapi.dll
Если вы получаете ошибку при установке TTS, скорее всего, это связано с тем, что у вас разные версии Python. Обязательно установите правильную версию.
Если вы получили сообщение об ошибке: ImportError: невозможно импортировать имя «get_full_repo_name» из «huggingface_hub». Запустите приведенные ниже коды на своем терминале, это решит проблему.
conda install chardet
pip install --upgrade transformers==4.39.2
Если вы получаете какую-либо ошибку для каких-либо пакетов, откройте файл require.txt в любом текстовом редакторе, удалите версию в начале имени пакета и снова установите requirments.txt.
Вы можете загружать модели непосредственно с GoogleDrive и помещать модели в PATH ./ComfyUI/models/deepfuze/
Обязательно вручную загружайте каждую модель одну за другой и размещайте их, из-за размера моделей некоторые модели не будут загружены, если вы загружаете папку, подготавливая переменные среды, переходите в папку custom_nodes и клонируете git или вручную загружаете код и извлекаете его в папку custom_nodes.
Чтобы использовать узел «Openai LLM» для диалогов клонирования голоса, вам понадобится ключ OpenAI API. Вы можете получить этот ключ и настроить его, следуя инструкциям в кратком руководстве для разработчиков OpenAI. Обратите внимание, что узел «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. узел.
Этот узел генерирует видео с синхронизацией губ, видео, изображений и аудиофайлов. Для более высокого качества экспортируйте вывод ИЗОБРАЖЕНИЯ в виде пакета изображений вместо объединенного видео, вы можете получить размер изображения до 4K. ВАЖНО: Вы должны загрузить аудио с помощью узла «Загрузка звука VHS» из узла VideoHelperSuit.
Типы ввода:
images
: Извлеченные изображения кадров в виде тензоров PyTorch.audio
: экземпляр загруженных аудиоданных.mata_batch
: Загрузить номера партий через узел Meta Batch Manager.Типы вывода:
IMAGES
: Извлеченные изображения кадров в виде тензоров PyTorch.frame_count
: количество выходных кадров int.audio
: Вывод звука.video_info
: Вывод метаданных видео.Особенности DeepFuze Lipsync:
enhancer
: вы можете добавить усилитель лица, чтобы улучшить качество создаваемого видео через сеть восстановления лица.frame_enhancer
: вы можете улучшить весь кадр видео.face_mask_padding_left
: Заполнение слева от лица при синхронизации губ.face_mask_padding_right
: Заполнение справа от лица во время синхронизации губ.face_mask_padding_bottom
: Заполнение нижней части лица при синхронизации губ.face_mask_padding_top
: Заполнение верхней части лица при синхронизации губ.device
: [процессор, графический процессор]frame_rate
: установите частоту кадров.loop_count
: Сколько еще раз видео должно повториться.filename_prefix
: Префикс имени выходного видео.pingpong
: вызывает воспроизведение входного сигнала в обратном порядке, чтобы создать чистый цикл.save_output
: сохранение вывода в выходной папке. Этот узел меняет местами, улучшает и восстанавливает лица из видео и изображений. или экспортируйте вывод ИЗОБРАЖЕНИЯ в более высоком качестве в виде пакета изображений вместо объединенного видео, вы можете получить изображение с качеством до 4K.
Типы ввода:
source_images
: Извлеченное изображение кадра в виде тензоров PyTorch для замены.target_images
: извлеченные изображения кадров в виде тензоров PyTorch для ввода исходного видео/изображения.mata_batch
: Загрузить номера партий через узел Meta Batch Manager.Типы вывода:
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
: [процессор, графический процессор]frame_rate
: установите частоту кадров.loop_count
: Сколько еще раз видео должно повториться.filename_prefix
: Префикс имени выходного видео.pingpong
: вызывает воспроизведение входного сигнала в обратном порядке, чтобы создать чистый цикл.save_output
: сохранение вывода в выходной папке.Сводная таблица моделей детектора лиц (RetinaFace обеспечивает более высокое качество за счет включения контекстной информации вокруг лица, что помогает обнаруживать лица в различных условиях, таких как окклюзия, различные масштабы и позы.
Особенность | ЙОЛОЛицо | RetinaFace | ЮКРФО | ЮНет |
---|---|---|---|---|
Архитектура | Однозарядный ЙОЛО | Одноступенчатый 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» используется для включения LLM (языковой модели) в процесс клонирования голоса. Вы можете ввести свой диалог и настроить параметры, а тексты, сгенерированные ИИ, будут использоваться для клонирования голоса. Кроме того, вы можете использовать этот узел вместо ChatGPT, чтобы создавать текст из LLM или задавать любые вопросы так же, как и с ChatGPT. Вы можете просмотреть выходные данные DeepFuze_LLM, подключив LLM_RESPONSE к узлу «Отображать любой» из rgthree-comfy. Этот узел также можно использовать для генерации подсказок и ввода текста любых узлов.
Типы ввода:
user_query
: Введите свои диалоги.Типы вывода:
LLM_RESPONSE
: выводит тексты, сгенерированные AI.Особенности DeepFuze Openai LLM:
model_name
: вы можете выбрать одну из доступных моделей openai.api_key
: добавьте свой ключ API. (Ваш ключ API не будет сохранен. Каждый раз, когда вы используете этот узел, вам необходимо вводить его вручную.max_tokens
: параметр, ограничивающий количество токенов в ответе модели в API OpenAI GPT. Он используется в запросах, сделанных через GPT для Таблиц и Документов, а также в классе ChatOpenAI(). Значение по умолчанию для max_tokens — 4096 токенов, что примерно эквивалентно 3000 словам.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
: предоставляет параметры воспроизведения, сохранения и скорости воспроизведения.Клонирование голоса + генерация синхронизации губ
Клонирование голоса + Генерация синхронизации губ + Замена лица
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 разработан доктором Сэмом Хозе и его командой. Не стесняйтесь использовать код DeepFuze в личных, исследовательских, академических и коммерческих целях. Вы можете создавать видео с помощью этого инструмента, но обязательно соблюдайте местные законы и используйте его ответственно. Разработчики не несут ответственности за неправильное использование инструмента пользователями.