DeepFuze ist ein hochmodernes Deep-Learning-Tool, das sich nahtlos in ComfyUI integrieren lässt, um Gesichtstransformationen, Lippensynchronisation, Videogenerierung, Stimmklonen, Gesichtsaustausch und Lippensynchronübersetzung zu revolutionieren. DeepFuze nutzt fortschrittliche Algorithmen und ermöglicht es Benutzern, Audio und Video mit beispiellosem Realismus zu kombinieren und so perfekt synchronisierte Gesichtsbewegungen sicherzustellen. Diese innovative Lösung ist ideal für Content-Ersteller, Animatoren, Entwickler und alle, die ihre Videobearbeitungsprojekte mit ausgefeilten KI-gesteuerten Funktionen aufwerten möchten.
Sie müssen Visual Studio installieren, es funktioniert mit der Community-Version ODER VS C++ Build Tools und wählen Sie „Desktop Development with C++“ unter „Workloads -> Desktop & Mobile“.
Suchen Sie im ComfyUI-Manager nach DeepFuze und installieren Sie den Knoten. Starten Sie Ihr ComfyUI neu und sehen Sie sich Ihr Terminalfenster an, um sicherzustellen, dass kein Fehler vorliegt, oder installieren Sie es über den ComfyUI-Manager, wählen Sie „Über GIT-URL installieren“ und kopieren Sie Folgendes:
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
Starten Sie Ihr ComfyUI neu
YOUTUBE LINK Schritt-für-Schritt-Anleitung
Installieren Sie Nvidia CUDA Toolkit==11.8 und cuDNN (CUDA Deep Neural Network) für Deep Learning. Sie müssen die cuDNN-Version 8.9.2.26 aus dem NVIDIA DEVELOPER cuDNN-Archiv herunterladen. Wenn Sie kein Entwicklerkonto haben, können Sie es direkt von GoogleDrive herunterladen . Stellen Sie sicher, dass Sie Cuda1 1.8 installieren. Ich fand dieses YOUTUBE-Video hilfreich für die Installation. Wenn Sie eine andere Version von CUDA haben, finden Sie hier einen YOUTUBE-Link, der Sie durch die Deinstallation von CUDA führt. Stellen Sie sicher, dass Sie Pfade in Ihrer Umgebungsvariablen erstellen, wie im YOUTUBE-VIDEO beschrieben. Starten Sie Ihren Computer neu, nachdem Sie Pfade erstellt haben. Bestätigen Sie Ihre Cuda-Installation, fügen Sie diesen Code in Ihr Terminalfenster nvcc --version
ein. Sie sollten eine Antwort wie diese erhalten:
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`
Installieren Sie nicht über den ComfyUI-Manager, da dies nicht funktioniert. Sie müssen es manuell installieren und die folgenden Anweisungen befolgen:
Aktivieren Sie Ihre virtuelle Umgebung, Conda oder Venv
Hier erfahren Sie, wie Sie Ihren PyTorch installieren und testen
Diese Methode wurde auf einem M1- und M3-Mac getestet. Sie müssen den folgenden Code in Ihrem Terminalfenster für Mac Metal Performance Shaders (MPS) ausführen, Apples Speziallösung für Hochleistungs-GPU-Programmierung auf ihren Geräten. Durch die enge Integration mit dem Metal-Framework bietet MPS eine Reihe hochoptimierter Shader für Grafik- und Computeraufgaben, was besonders bei Anwendungen des maschinellen Lernens von Vorteil ist.
Kopieren Sie den folgenden Befehl und fügen Sie ihn in Ihr Terminalfenster ein.
export PYTORCH_ENABLE_MPS_FALLBACK=1
Mac-Benutzer müssen ONNX RUNTIME CPU anstelle von onnxruntime-gpu INSTALLIEREN
pip install onnxruntime
macOS muss die Original-Dlib installieren.
pip install dlib
Installieren Sie Text to Speech für den Voice Cloning-Knoten
pip install TTS
Navigieren Sie zum Ordner custom_nodes
.
cd custom_nodes
git clone https://github.com/SamKhoze/CompfyUI-DeepFuze.git
Navigieren Sie zum Ordner CompfyUI-DeepFuze
und installieren Sie die Datei requirements.txt
.
cd CompfyUI-DeepFuze
pip install -r requirements.txt
Voraussetzungen für das Klonen von Stimmen und die Lippensynchronisation
Unten sind die beiden ComfyUI-Repositorys aufgeführt, die zum Laden von Video und Audio erforderlich sind. Installieren Sie sie in Ihrem Ordner custom_nodes
:
Klonen Sie die Repositorys:
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
CV-Fehler: Wenn der Fehler „ComfyUI_windows_portableComfyUIoutputdeepfuzefaceswap_file.mp4 konnte nicht mit CV geladen werden“ auftritt, bedeutet dies, dass onnxruntime
nicht installiert ist. Um dies zu beheben, stellen Sie sicher, dass Sie onnxruntime
für CPU und onnxruntime-gpu
für Windows installieren. Mac-Benutzer sollten OpenCV mit dem Befehl pip install --upgrade opencv-python-headless
in ihrer virtuellen Umgebung aktualisieren. Für Windows-Benutzer gehen Sie zum ComfyUI-Manager, klicken Sie auf „pip install“, fügen Sie --upgrade opencv-python-headless
ein, klicken Sie auf „OK“ und starten Sie Ihr ComfyUI neu.
Fehlender zlibwapi.dll-Fehler: Suchen Sie nach der NVIDIA zlibwapi.dll-Datei, laden Sie sie herunter und kopieren Sie sie in C:ProgrammeNVIDIA GPU Computing ToolkitCUDAv11.8binzlibwapi.dll
Wenn bei der Installation von TTS ein Fehler auftritt, liegt dies höchstwahrscheinlich daran, dass Sie unterschiedliche Versionen von Python haben. Stellen Sie sicher, dass Sie die richtige Version installieren
Wenn Sie eine Fehlermeldung erhalten: ImportError: Der Name „get_full_repo_name“ kann nicht aus „huggingface_hub“ importiert werden. Führen Sie die folgenden Codes auf Ihrem Terminal aus, um das Problem zu beheben
conda install chardet
pip install --upgrade transformers==4.39.2
Wenn für ein Paket eine Fehlermeldung angezeigt wird, öffnen Sie die Datei „requirments.txt“ mit einem beliebigen Texteditor, entfernen Sie die Version vor dem Paketnamen und installieren Sie „requirments.txt“ erneut
Sie können Modelle direkt von GoogleDrive herunterladen und im ./ComfyUI/models/deepfuze/
platzieren./ComfyUI/models/deepfuze/ Stellen Sie sicher, dass Sie jedes Modell einzeln manuell herunterladen und platzieren, da einige Modelle aufgrund der Größe der Modelle nicht heruntergeladen werden können Sie laden den Ordner herunter, bereiten die Umgebungsvariablen vor, navigieren in Ihren Ordner „custom_nodes“ und git clone oder laden den Code manuell herunter und extrahieren ihn in den Ordner „custom_nodes“.
Um den Knoten „Openai LLM“ für Dialoge zum Klonen von Stimmen zu verwenden, benötigen Sie einen OpenAI-API-Schlüssel. Sie können diesen Schlüssel erhalten und ihn einrichten, indem Sie den Anweisungen in der OpenAI Developer-Schnellstartanleitung folgen. Bitte beachten Sie, dass der Knoten „Openai LLM“ Ihren API-Schlüssel nicht speichert. Jedes Mal, wenn Sie den Knoten schließen, müssen Sie Ihren API-Schlüssel manuell kopieren und einfügen. Sie können den API-Schlüssel auch mit den folgenden Befehlen als Umgebungsvariable hinzufügen: Für Windows: setx OPENAI_API_KEY "your-api-key-here"
und für Mac: export OPENAI_API_KEY='your-api-key-here'
. Wenn Sie das nächste Mal Ihren API-Schlüssel kopieren und in den LLM-Knoten einfügen müssen, können Sie den folgenden Befehl in Ihr Terminal eingeben: echo $OPENAI_API_KEY
. Daraufhin wird Ihr API-Schlüssel gedruckt, sodass Sie ihn kopieren und in Ihr Openai-LLM einfügen können Knoten.
Dieser Knoten generiert lippensynchrone Videos aus Video-, Bild- und Audiodateien. Für eine höhere Qualität exportieren Sie die BILDausgabe als Bildstapel statt als kombiniertes Video. Sie können eine Bildgröße von bis zu 4K-Qualität erhalten. WICHTIG: Sie müssen Audio mit dem Knoten „VHS Load Audio“ vom VideoHelperSuit-Knoten laden.
Eingabetypen:
images
: Extrahierte Rahmenbilder als PyTorch-Tensoren.audio
: Eine Instanz geladener Audiodaten.mata_batch
: Chargennummern über den Meta Batch Manager-Knoten laden.Ausgabetypen:
IMAGES
: Extrahierte Rahmenbilder als PyTorch-Tensoren.frame_count
: Anzahl der ausgegebenen Frames int.audio
: Audio ausgeben.video_info
: Video-Metadaten ausgeben.DeepFuze Lipsync-Funktionen:
enhancer
: Sie können über das Gesichtswiederherstellungsnetzwerk einen Gesichtsverstärker hinzufügen, um die Qualität des generierten Videos zu verbessern.frame_enhancer
: Sie können den gesamten Frame des Videos hinzufügen und verbessern.face_mask_padding_left
: Auffüllung links vom Gesicht beim Lippensynchronisieren.face_mask_padding_right
: Auffüllen der rechten Seite des Gesichts beim Lippensynchronisieren.face_mask_padding_bottom
: Polsterung bis zum unteren Rand des Gesichts beim Lippensynchronisieren.face_mask_padding_top
: Polsterung bis zum oberen Rand des Gesichts beim Lippensynchronisieren.device
: [CPU, GPU]frame_rate
: Stellen Sie die Bildrate ein.loop_count
: Wie oft das Video noch wiederholt werden soll.filename_prefix
: Präfix-Benennung für das Ausgabevideo.pingpong
: Bewirkt, dass die Eingabe rückwärts wiedergegeben wird, um eine saubere Schleife zu erstellen.save_output
: Speichern der Ausgabe im Ausgabeordner. Dieser Knoten tauscht, verbessert und stellt Gesichter aus Video und Bild wieder her. Oder exportieren Sie die BILDausgabe in höherer Qualität als Bildstapel statt als kombiniertes Video. Sie können eine Bildgröße von bis zu 4K-Qualität erhalten.
Eingabetypen:
source_images
: Extrahiertes Rahmenbild als PyTorch-Tensoren zum Austauschen.target_images
: Extrahierte Einzelbilder als PyTorch-Tensoren zur Eingabe des Quellvideos/-bilds.mata_batch
: Chargennummern über den Meta Batch Manager-Knoten laden.Ausgabetypen:
IMAGES
: Extrahierte Rahmenbilder als PyTorch-Tensoren.frame_count
: Anzahl der ausgegebenen Frames int.audio
: Audio ausgeben.video_info
: Video-Metadaten ausgeben.DeepFuze FaceSwap-Funktionen:
enhancer
: Sie können einen Gesichtsverstärker hinzufügen, um die Qualität des generierten Videos über das Netzwerk zur Gesichtswiederherstellung zu verbessern.faceswap_model
: Sie können verschiedene Modelle zum Tauschen auswählen.frame_enhancer
: Sie können den gesamten Frame des Videos hinzufügen und verbessern.face_detector_model
: Sie können verschiedene Modelle für die Gesichtserkennung auswählen.face_mask_padding_left
: Auffüllen des Gesichts nach links beim Lippensynchronisieren.face_mask_padding_right
: Auffüllen des Gesichts nach rechts beim Lippensynchronisieren.face_mask_padding_bottom
: Beim Lippensynchronisieren wird das Gesicht bis zum unteren Rand aufgefüllt.face_mask_padding_top
: Beim Lippensynchronisieren bis zum oberen Rand des Gesichts auffüllen.device
: [CPU, GPU]frame_rate
: Stellen Sie die Bildrate ein.loop_count
: Wie oft das Video noch wiederholt werden soll.filename_prefix
: Präfix-Benennung für das Ausgabevideo.pingpong
: Bewirkt, dass die Eingabe rückwärts wiedergegeben wird, um eine saubere Schleife zu erstellen.save_output
: Speichern der Ausgabe im Ausgabeordner.Übersichtstabelle zum Gesichtserkennungsmodell (RetinaFace bietet eine höhere Qualität durch die Einbeziehung kontextbezogener Informationen rund um das Gesicht, was bei der Erkennung von Gesichtern unter verschiedenen Bedingungen, wie z. B. Verdeckungen, unterschiedlichen Maßstäben und Posen, hilft.
Besonderheit | YOLOFace | NetzhautGesicht | SCRFD | YuNet |
---|---|---|---|---|
Architektur | Einzelschuss-YOLO | Einstufiges RetinaNet | Einstufige Kaskade | Leichter Custom |
Geschwindigkeit | Sehr schnell | Mäßig | Schnell | Sehr schnell |
Genauigkeit | Gut | Sehr hoch | Hoch | Gut |
Robustheit | Mäßig | Sehr hoch | Hoch | Mäßig |
Recheneffizienz | Hoch | Mäßig | Hoch | Sehr hoch |
Anwendungsfälle | Weniger komplexe Szenen in Echtzeit | Hochpräzise, robuste Anforderungen | Ausgewogene Mobil-/Edge-Geräte | Mobil, eingebettet, in Echtzeit |
Vorteile | Geschwindigkeit | Genauigkeit, Robustheit | Effizienz, Genauigkeit | Leicht, effizient |
Nachteile | Genauigkeitskompromisse | Rechenintensiv | Nicht der Schnellste | Weniger robust in komplexen Szenen |
Sprachen:
DeepFuze_TTS Voice Cloning unterstützt 17 Sprachen: Englisch (en), Spanisch (es), Französisch (fr), Deutsch (de), Italienisch (it), Portugiesisch (pt), Polnisch (pl), Türkisch (tr), Russisch (ru). ), Niederländisch (nl), Tschechisch (cs), Arabisch (ar), Chinesisch (zh-cn), Japanisch (ja), Ungarisch (hu), Koreanisch (ko) Hindi (hi).
Dieser Knoten wird verwendet, um jede Stimme aus eingegebenen Eingaben zu klonen. Für bessere Ergebnisse sollte die Audiodatei 10–15 Sekunden lang sein und nicht viel Rauschen enthalten. Um Fehler bei der Abtastrate zu vermeiden, laden Sie MP3-Audio und arbeiten Sie nur mit dem AudioScheduler-Knoten. Wir arbeiten an der Entwicklung eines Konverterknotens, um dieses Problem zu lösen.
Eingabetypen:
audio
: Eine Instanz geladener Audiodaten.text
: Text zum Generieren des geklonten Sprachaudios.Ausgabetypen:
audio
: Eine Instanz geladener Audiodaten.Der Knoten „LLM-Integration“ dient der Einbindung von LLM (Language Model) in den Voice-Cloning-Prozess. Sie können Ihren Dialog eingeben und Parameter konfigurieren, und die von der KI generierten Texte werden für das Klonen von Stimmen verwendet. Darüber hinaus können Sie diesen Knoten anstelle von ChatGPT verwenden, um Text aus LLM zu erstellen oder Fragen auf die gleiche Weise zu stellen, wie Sie es mit ChatGPT tun würden. Sie können die Ausgabe von DeepFuze_LLM anzeigen, indem Sie LLM_RESPONSE mit dem Knoten „Display Any“ von rg three-comfy verbinden. Dieser Knoten kann auch für Eingabeaufforderungsgenerierungen und Eingabetexte beliebiger Knoten verwendet werden.
Eingabetypen:
user_query
: Geben Sie Ihre Dialoge ein.Ausgabetypen:
LLM_RESPONSE
: Gibt KI-generierte Texte aus.DeepFuze Openai LLM-Funktionen:
model_name
: Sie können aus den verfügbaren OpenAI-Modellen auswählen.api_key
: Fügen Sie Ihren API-Schlüssel hinzu. (Ihr API-Schlüssel wird nicht gespeichert. Jedes Mal, wenn Sie diesen Knoten verwenden, müssen Sie ihn manuell eingeben.max_tokens
: ist ein Parameter, der die Anzahl der Token in der Antwort eines Modells in OpenAI-GPT-APIs begrenzt. Es wird in über GPT gestellten Anfragen für Tabellen und Dokumente sowie in der ChatOpenAI()-Klasse verwendet. Der Standardwert für max_tokens beträgt 4096 Token, was ungefähr 3.000 Wörtern entspricht.temperature
: steuert den Grad der Zufälligkeit und Kreativität in seinen Antworten. Es handelt sich um einen Hyperparameter in Large Language Models (LLMs), der Kreativität und Kohärenz im generierten Text in Einklang bringt. Die Temperatureinstellung ist immer eine Zahl zwischen 0 und 1, wobei der Standardwert 0,7 ist: 0: Erzeugt sehr einfache, fast deterministische Antworten. 1: Ergibt stark variierende Antworten. 0,7: Die Standardtemperatur für ChatGPT.timeout
: Richten Sie die Zeit ein, wenn die Anfrage zu lange dauert und der Server die Verbindung schließt.Eingabetypen:
image
: Bietet eine Vorschau der Polsterung für die Gesichtsmaske.Merkmale der DeepFuze-Polsterung:
face_mask_padding_left
: Auffüllen des Gesichts nach links beim Lippensynchronisieren.face_mask_padding_right
: Auffüllen des Gesichts nach rechts beim Lippensynchronisieren.face_mask_padding_bottom
: Beim Lippensynchronisieren wird das Gesicht bis zum unteren Rand aufgefüllt.face_mask_padding_top
: Beim Lippensynchronisieren wird das Gesicht bis zum oberen Rand aufgefüllt.Dieser Knoten dient zum Speichern der Ausgabe des Knotens „Voice Cloning“. Darüber hinaus können Sie den Ton zuschneiden und wiedergeben.
Eingabetypen:
audio
: Eine Instanz geladener Audiodaten.Merkmale der DeepFuze-Polsterung:
METADATA
: Sting-Metadaten.start_time
: Kürzen der Startzeit.end_time
: Kürzen der Endzeit.playback window
: Bietet Optionen für Wiedergabe, Speichern und Wiedergabegeschwindigkeit.Stimmklonen + Lipsync-Generierung
Stimmklonen + Lippensynchronisation + 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 } " )
Dieses Repository hätte ohne die Beiträge von FaceFusion, InsightFace, SadTalker, Facexlib, GFPGAN, GPEN, Real-ESRGAN, TTS, SSD und wav2lip nicht fertiggestellt werden können.
Der DeepFuze-Code wird von Dr. Sam Khoze und seinem Team entwickelt. Sie können den DeepFuze-Code gerne für persönliche, Forschungs-, akademische und kommerzielle Zwecke verwenden. Sie können mit diesem Tool Videos erstellen, aber achten Sie bitte darauf, die örtlichen Gesetze zu befolgen und es verantwortungsvoll zu verwenden. Die Entwickler haften nicht für den Missbrauch des Tools durch Benutzer.