DeepFuze adalah alat pembelajaran mendalam tercanggih yang terintegrasi secara mulus dengan ComfyUI untuk merevolusi transformasi wajah, sinkronisasi bibir, pembuatan video, kloning suara, pertukaran wajah, dan terjemahan lipsync. Memanfaatkan algoritma canggih, DeepFuze memungkinkan pengguna menggabungkan audio dan video dengan realisme yang tak tertandingi, memastikan gerakan wajah tersinkronisasi dengan sempurna. Solusi inovatif ini ideal untuk pembuat konten, animator, pengembang, dan siapa saja yang ingin meningkatkan proyek pengeditan video mereka dengan fitur canggih berbasis AI.
Anda harus menginstal Visual Studio, ini berfungsi dengan versi komunitas ATAU VS C++ Build Tools dan pilih "Pengembangan Desktop dengan C++" di bawah "Beban Kerja -> Desktop & Seluler"
Dari ComfyUI-Manager cari DeepFuze, dan instal node. Mulai ulang ComfyUI Anda, dan lihat jendela terminal Anda untuk memastikan tidak ada kesalahan, atau Instal dari manajer ComfyUI, pilih "Instal Via GIT URL", dan salin:
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
Mulai ulang ComfyUI Anda
TAUTAN YOUTUBE petunjuk langkah demi langkah
Instal Nvidia CUDA Toolkit==11.8 dan cuDNN (CUDA Deep Neural Network) untuk Deep Learning, Anda harus mendownload cuDNN versi 8.9.2.26 dari Arsip cuDNN NVIDIA DEVELOPER, jika Anda belum memiliki akun pengembang Anda dapat langsung mendownloadnya dari GoogleDrive . Pastikan menginstal Cuda1 1.8 . Saya menemukan video YOUTUBE ini berguna untuk instalasi. Jika Anda memiliki versi CUDA yang berbeda, berikut adalah tautan YOUTUBE yang memandu Anda tentang cara mencopot pemasangan CUDA Anda. Pastikan untuk membuat jalur di variabel Lingkungan Anda seperti yang dijelaskan di VIDEO YOUTUBE Nyalakan ulang komputer Anda setelah membuat jalur. Konfirmasikan Instalasi Cuda Anda, tempelkan kode ini di jendela terminal Anda nvcc --version
Anda akan mendapat respons seperti ini:
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`
Jangan instal melalui ComfyUI-Manager tidak akan berfungsi, Anda harus menginstalnya secara manual dan ikuti petunjuk di bawah ini:
Aktifkan Lingkungan Virtual Anda, Conda atau Venv
Berikut cara menginstal dan menguji PyTorch Anda
Metode ini telah diuji pada Mac M1 dan M3, Anda harus menjalankan kode di bawah ini pada jendela terminal Anda untuk Mac Metal Performance Shaders (MPS) solusi khusus Apple untuk pemrograman GPU berkinerja tinggi pada perangkat mereka. Berintegrasi erat dengan kerangka Metal, MPS menyediakan serangkaian shader yang sangat optimal untuk tugas grafis dan komputasi, yang sangat bermanfaat dalam aplikasi pembelajaran mesin.
Salin dan tempel perintah di bawah ini ke jendela terminal Anda.
export PYTORCH_ENABLE_MPS_FALLBACK=1
Pengguna Mac harus MENGINSTAL CPU ONNX RUNTIME, bukan onnxruntime-gpu
pip install onnxruntime
macOS perlu menginstal dlib asli.
pip install dlib
Instal Text to Speech untuk Node Kloning Suara
pip install TTS
Arahkan ke folder custom_nodes
cd custom_nodes
git clone https://github.com/SamKhoze/CompfyUI-DeepFuze.git
Arahkan ke folder CompfyUI-DeepFuze
dan instal file requirements.txt
cd CompfyUI-DeepFuze
pip install -r requirements.txt
Prasyarat untuk Kloning Suara dan Sinkronisasi Bibir
Di bawah ini adalah dua repositori ComfyUI yang diperlukan untuk memuat video dan audio. Instal ke dalam folder custom_nodes
Anda:
Kloning repositori:
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
Kesalahan CV: Jika Anda menemukan kesalahan "ComfyUI_windows_portableComfyUIoutputdeepfuzefaceswap_file.mp4 tidak dapat dimuat dengan cv," itu berarti onnxruntime
tidak diinstal. Untuk memperbaikinya, pastikan untuk menginstal onnxruntime
untuk CPU dan onnxruntime-gpu
untuk Windows. Pengguna Mac harus memutakhirkan OpenCV menggunakan perintah pip install --upgrade opencv-python-headless
di lingkungan virtual mereka. Untuk pengguna Windows, buka ComfyUI Manager, klik "pip install", tempel --upgrade opencv-python-headless
, klik OK, dan mulai ulang ComfyUI Anda.
Kesalahan zlibwapi.dll hilang: Cari file NVIDIA zlibwapi.dll, unduh dan salin di C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.8binzlibwapi.dll
Jika Anda mendapatkan kesalahan saat menginstal TTS, kemungkinan besar karena Anda memiliki versi Python yang berbeda, pastikan untuk menginstal versi yang benar
Jika Anda mendapatkan kesalahan: ImportError: tidak dapat mengimpor nama 'get_full_repo_name' dari 'huggingface_hub' Jalankan kode di bawah ini pada terminal Anda, ini akan menyelesaikan masalah
conda install chardet
pip install --upgrade transformers==4.39.2
jika Anda mendapatkan kesalahan apa pun untuk paket apa pun, buka file persyaratan.txt dengan editor teks apa pun, hapus versi dari depan nama paket, dan instal ulang persyaratan.txt lagi
Anda dapat mengunduh model langsung dari GoogleDrive dan menempatkan model ke dalam PATH ./ComfyUI/models/deepfuze/
Pastikan untuk mengunduh setiap model secara manual satu per satu dan menempatkannya, karena ukuran model, beberapa model tidak dapat diunduh jika Anda mengunduh folder yang menyiapkan variabel lingkungan, navigasikan ke folder custom_nodes Anda dan git clone atau unduh kode secara manual dan ekstrak ke dalam folder custom_nodes.
Untuk menggunakan node "Openai LLM" untuk dialog kloning suara, Anda memerlukan Kunci API OpenAI. Anda bisa mendapatkan kunci ini dan mengaturnya dengan mengikuti petunjuk di panduan memulai cepat Pengembang OpenAI. Harap dicatat bahwa node "Openai LLM" tidak menyimpan kunci API Anda. Setiap kali Anda menutup node, Anda perlu menyalin dan menempelkan kunci API Anda secara manual. Anda juga dapat menambahkan kunci API sebagai Variabel Lingkungan menggunakan perintah berikut: Untuk Windows: setx OPENAI_API_KEY "your-api-key-here"
, dan untuk Mac: export OPENAI_API_KEY='your-api-key-here'
. Lain kali Anda perlu menyalin dan menempelkan kunci API Anda ke Node LLM, Anda dapat mengetikkan perintah berikut di terminal Anda: echo $OPENAI_API_KEY
, dan itu akan mencetak Kunci API Anda, sehingga Anda dapat menyalin dan menempelkannya ke Openai LLM Anda simpul.
Node ini menghasilkan video lipsync dari file video, gambar, dan audio. Untuk mengekspor keluaran GAMBAR dengan kualitas lebih tinggi sebagai kumpulan gambar, bukan gabungan video, Anda bisa mendapatkan ukuran gambar berkualitas hingga 4k. PENTING: Anda harus memuat audio dengan node "VHS load audio" dari node VideoHelperSuit.
Jenis Masukan:
images
: Gambar bingkai yang diekstraksi sebagai tensor PyTorch.audio
: Contoh data audio yang dimuat.mata_batch
: Memuat nomor batch melalui node Meta Batch Manager.Jenis Keluaran:
IMAGES
: Gambar bingkai yang diekstraksi sebagai tensor PyTorch.frame_count
: Jumlah frame keluaran ke dalam.audio
: Keluaran audio.video_info
: Keluaran metadata video.Fitur Sinkronisasi Bibir DeepFuze:
enhancer
: Anda dapat menambahkan peningkat wajah untuk meningkatkan kualitas video yang dihasilkan melalui jaringan pemulihan wajah.frame_enhancer
: Anda dapat menambahkan penyempurnaan ke seluruh bingkai video.face_mask_padding_left
: Padding ke kiri wajah saat lipsync.face_mask_padding_right
: Padding di sebelah kanan wajah saat lipsync.face_mask_padding_bottom
: Memberi bantalan ke bagian bawah wajah saat melakukan sinkronisasi bibir.face_mask_padding_top
: Memberi bantalan ke bagian atas wajah saat melakukan sinkronisasi bibir.device
: [cpu, GPU]frame_rate
: Mengatur kecepatan bingkai.loop_count
: Berapa kali lagi video harus diulang.filename_prefix
: Penamaan awalan untuk video keluaran.pingpong
: Menyebabkan input diputar terbalik untuk membuat loop bersih.save_output
: Menyimpan output pada folder output. Node ini Menukar, Meningkatkan, dan Mengembalikan wajah dari, video, dan gambar. atau kualitas yang lebih tinggi, ekspor keluaran GAMBAR sebagai kumpulan gambar, bukan gabungan video, Anda bisa mendapatkan ukuran gambar berkualitas hingga 4k.
Jenis Masukan:
source_images
: Gambar bingkai yang diekstraksi sebagai tensor PyTorch untuk ditukar.target_images
: Gambar bingkai yang diekstraksi sebagai tensor PyTorch untuk memasukkan video/gambar sumber.mata_batch
: Memuat nomor batch melalui node Meta Batch Manager.Jenis Keluaran:
IMAGES
: Gambar bingkai yang diekstraksi sebagai tensor PyTorch.frame_count
: Jumlah frame keluaran ke dalam.audio
: Keluaran audio.video_info
: Keluaran metadata video.Fitur Tukar Wajah DeepFuze:
enhancer
: Anda dapat menambahkan peningkat wajah untuk meningkatkan kualitas video yang dihasilkan melalui jaringan restorasi wajah.faceswap_model
: Anda dapat memilih model berbeda untuk ditukar.frame_enhancer
: Anda dapat menambahkan penyempurnaan ke seluruh bingkai video.face_detector_model
: Anda dapat memilih model berbeda untuk deteksi wajah.face_mask_padding_left
: Padding ke kiri pada wajah saat lipsync.face_mask_padding_right
: Padding ke kanan pada wajah saat lipsync.face_mask_padding_bottom
: Memberi bantalan ke bagian bawah wajah saat melakukan sinkronisasi bibir.face_mask_padding_top
: Memberi bantalan ke bagian atas wajah saat melakukan sinkronisasi bibir.device
: [cpu, GPU]frame_rate
: Mengatur kecepatan bingkai.loop_count
: Berapa kali lagi video harus diulang.filename_prefix
: Penamaan awalan untuk video keluaran.pingpong
: Menyebabkan input diputar terbalik untuk membuat loop bersih.save_output
: Menyimpan output pada folder output.Tabel Ringkasan Model Detektor Wajah (RetinaFace memberikan kualitas lebih tinggi dengan menggabungkan informasi kontekstual di sekitar wajah, yang membantu mendeteksi wajah dalam berbagai kondisi, seperti oklusi, skala berbeda, dan pose.
Fitur | Wajah YOLO | RetinaWajah | SCRFD | YuNet |
---|---|---|---|---|
Arsitektur | YOLO tembakan tunggal | RetinaNet satu tahap | Kaskade satu tahap | Kustom Ringan |
Kecepatan | Sangat cepat | Sedang | Cepat | Sangat cepat |
Ketepatan | Bagus | Sangat Tinggi | Tinggi | Bagus |
Kekokohan | Sedang | Sangat Tinggi | Tinggi | Sedang |
Efisiensi Komputasi | Tinggi | Sedang | Tinggi | Sangat Tinggi |
Kasus Penggunaan | Adegan real-time dan tidak terlalu rumit | Kebutuhan presisi tinggi dan kuat | Perangkat seluler/edge yang seimbang | Seluler, tertanam, real-time |
Kelebihan | Kecepatan | Akurasi, ketahanan | Efisiensi, akurasi | Ringan, efisien |
Kontra | Pertukaran akurasi | Berat secara komputasi | Bukan yang tercepat | Kurang kuat dalam adegan yang kompleks |
Bahasa:
Kloning suara DeepFuze_TTS mendukung 17 bahasa: Inggris (en), Spanyol (es), Prancis (fr), Jerman (de), Italia (itu), Portugis (pt), Polandia (pl), Turki (tr), Rusia (ru ), Belanda (nl), Ceko (cs), Arab (ar), Cina (zh-cn), Jepang (ja), Hongaria (hu), Korea (ko) Hindi (hi).
Node ini digunakan untuk mengkloning suara apa pun dari input yang diketik. File audio harus berdurasi 10-15 detik untuk hasil yang lebih baik dan tidak menimbulkan banyak noise. Untuk menghindari kesalahan laju sampel, muat audio MP3 dan hanya berfungsi dengan node AudioScheduler. Kami sedang berupaya mengembangkan node konverter untuk mengatasi masalah ini.
Jenis Masukan:
audio
: Contoh data audio yang dimuat.text
: Teks untuk menghasilkan audio suara kloning.Jenis Keluaran:
audio
: Contoh data audio yang dimuat.Node "Integrasi LLM" digunakan untuk menggabungkan LLM (Model Bahasa) ke dalam proses kloning suara. Anda dapat memasukkan dialog dan mengonfigurasi parameter, dan teks yang dihasilkan AI akan digunakan untuk kloning suara. Selanjutnya, Anda dapat menggunakan node ini sebagai pengganti ChatGPT untuk menghasilkan teks dari LLM atau untuk mengajukan pertanyaan apa pun dengan cara yang sama seperti yang Anda lakukan dengan ChatGPT. Anda dapat melihat output dari DeepFuze_LLM dengan menghubungkan LLM_RESPONSE ke node "Tampilkan Apa Saja" dari rgthree-comfy node ini juga dapat digunakan untuk pembuatan prompt dan node mana pun memasukkan teks.
Jenis Masukan:
user_query
: Ketikkan dialog Anda.Jenis Keluaran:
LLM_RESPONSE
: Menghasilkan teks yang dihasilkan AI.Fitur DeepFuze Openai LLM:
model_name
: Anda dapat memilih dari model openai yang tersedia.api_key
: Tambahkan Kunci API Anda. (Kunci API Anda tidak akan disimpan, setiap kali Anda menggunakan node ini Anda harus memasukkannya secara manual.max_tokens
: adalah parameter yang membatasi jumlah token dalam respons model di OpenAI GPT API. Ini digunakan dalam permintaan yang dibuat melalui GPT untuk Spreadsheet dan Dokumen, dan di kelas ChatOpenAI(). Nilai default untuk max_tokens adalah 4096 token, yang kira-kira setara dengan 3.000 kata.temperature
: mengontrol tingkat keacakan dan kreativitas dalam tanggapannya. Ini adalah hyper-parameter dalam Model Bahasa Besar (LLM) yang menyeimbangkan kreativitas dan koherensi dalam teks yang dihasilkan. Pengaturan suhu selalu berupa angka antara 0 dan 1, dengan nilai default 0,7: 0: Menghasilkan respons yang sangat jelas dan hampir deterministik 1: Menghasilkan respons yang sangat bervariasi 0,7: Suhu default untuk ChatGPT.timeout
: mengatur waktu jika permintaan terlalu lama untuk diselesaikan dan server menutup koneksi.Jenis Masukan:
image
: Memberikan pratinjau padding untuk masker wajah.Fitur Bantalan DeepFuze:
face_mask_padding_left
: Padding ke kiri pada wajah saat lipsync.face_mask_padding_right
: Padding ke kanan pada wajah saat lipsync.face_mask_padding_bottom
: Memberi bantalan ke bagian bawah wajah saat melakukan sinkronisasi bibir.face_mask_padding_top
: Memberi bantalan ke bagian atas wajah saat melakukan sinkronisasi bibir.Node ini digunakan untuk menyimpan output dari node "Kloning Suara". Selain itu, Anda dapat memotong audio dan memutarnya kembali.
Jenis Masukan:
audio
: Contoh data audio yang dimuat.Fitur Bantalan DeepFuze:
METADATA
: Metadata Sengatan.start_time
: Memangkas waktu mulai.end_time
: Memangkas waktu berakhir.playback window
: Menyediakan opsi pemutaran, penyimpanan, dan kecepatan pemutaran.Kloning Suara + Pembuatan Lipsync
Kloning Suara + Pembuatan Lipsync + 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 } " )
Repositori ini tidak dapat diselesaikan tanpa kontribusi dari FaceFusion, InsightFace,SadTalker, Facexlib, GFPGAN, GPEN, Real-ESRGAN, TTS, SSD, dan wav2lip,
Kode DeepFuze dikembangkan oleh Dr. Sam Khoze dan timnya. Jangan ragu untuk menggunakan kode DeepFuze untuk tujuan pribadi, penelitian, akademik, dan komersial. Anda dapat membuat video dengan alat ini, namun pastikan untuk mengikuti hukum setempat dan menggunakannya secara bertanggung jawab. Pengembang tidak bertanggung jawab atas penyalahgunaan alat oleh pengguna.