diff --git a/.gitignore b/.gitignore index 7803c36..b4f316f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -*.pkl *.mp4 *.pth *.pyc diff --git a/asr/sherpa_ncnn_asr.py b/asr/sherpa_ncnn_asr.py index 1cc81d3..4124e76 100644 --- a/asr/sherpa_ncnn_asr.py +++ b/asr/sherpa_ncnn_asr.py @@ -63,15 +63,6 @@ class SherpaNcnnAsr(AsrBase): logger.info(f'_recognize_loop') print(f'_recognize_loop') - while self._stop_event.is_set(): - logger.info(f'_recognize_loop000') - self._notify_complete('介绍中国5000年历史文学') - logger.info(f'_recognize_loop111') - segment_id += 1 - time.sleep(150) - logger.info(f'_recognize_loop222') - logger.info(f'_recognize_loop exit') -''' with sd.InputStream(channels=1, dtype="float32", samplerate=self._sample_rate) as s: while self._stop_event.is_set(): samples, _ = s.read(self._samples_per_read) # a blocking read @@ -94,3 +85,13 @@ class SherpaNcnnAsr(AsrBase): self._recognizer.reset() ''' + while self._stop_event.is_set(): + logger.info(f'_recognize_loop000') + self._notify_complete('介绍中国5000年历史文学') + logger.info(f'_recognize_loop111') + segment_id += 1 + time.sleep(150) + logger.info(f'_recognize_loop222') + logger.info(f'_recognize_loop exit') +''' + diff --git a/checkpoints/weights/wav2lip/model_a_general.onnx b/checkpoints/weights/wav2lip/model_a_general.onnx new file mode 100644 index 0000000..90697bc Binary files /dev/null and b/checkpoints/weights/wav2lip/model_a_general.onnx differ diff --git a/checkpoints/weights/wav2lip/model_g_general.onnx b/checkpoints/weights/wav2lip/model_g_general.onnx new file mode 100644 index 0000000..557bfcf Binary files /dev/null and b/checkpoints/weights/wav2lip/model_g_general.onnx differ diff --git a/checkpoints/weights/wflw/hrnet18_256x256_p1/config.yaml b/checkpoints/weights/wflw/hrnet18_256x256_p1/config.yaml new file mode 100644 index 0000000..b2222bd --- /dev/null +++ b/checkpoints/weights/wflw/hrnet18_256x256_p1/config.yaml @@ -0,0 +1,12 @@ +INPUT: + SIZE: [256, 256] + BBOX: 'P1' + +BACKBONE: + ARCH: 'hrnet18' + +HEATMAP: + IN_CHANNEL: 270 + PROJ_CHANNEL: 270 + OUT_CHANNEL: 98 + TOPK: 9 diff --git a/checkpoints/weights/yolov8n-face/yolov8n-face.pt b/checkpoints/weights/yolov8n-face/yolov8n-face.pt new file mode 100644 index 0000000..0798a1f Binary files /dev/null and b/checkpoints/weights/yolov8n-face/yolov8n-face.pt differ diff --git a/data/avatars/wav2lip_avatar1/coords.pkl b/data/avatars/wav2lip_avatar1/coords.pkl new file mode 100644 index 0000000..97d148d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/coords.pkl differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000000.png b/data/avatars/wav2lip_avatar1/face_imgs/00000000.png new file mode 100644 index 0000000..b38b659 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000000.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000001.png b/data/avatars/wav2lip_avatar1/face_imgs/00000001.png new file mode 100644 index 0000000..51ee60b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000001.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000002.png b/data/avatars/wav2lip_avatar1/face_imgs/00000002.png new file mode 100644 index 0000000..457493c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000002.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000003.png b/data/avatars/wav2lip_avatar1/face_imgs/00000003.png new file mode 100644 index 0000000..4d802f4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000003.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000004.png b/data/avatars/wav2lip_avatar1/face_imgs/00000004.png new file mode 100644 index 0000000..d01c79e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000004.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000005.png b/data/avatars/wav2lip_avatar1/face_imgs/00000005.png new file mode 100644 index 0000000..42f2150 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000005.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000006.png b/data/avatars/wav2lip_avatar1/face_imgs/00000006.png new file mode 100644 index 0000000..24a66ed Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000006.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000007.png b/data/avatars/wav2lip_avatar1/face_imgs/00000007.png new file mode 100644 index 0000000..d0a0ee5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000007.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000008.png b/data/avatars/wav2lip_avatar1/face_imgs/00000008.png new file mode 100644 index 0000000..4a0550b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000008.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000009.png b/data/avatars/wav2lip_avatar1/face_imgs/00000009.png new file mode 100644 index 0000000..93937fd Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000009.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000010.png b/data/avatars/wav2lip_avatar1/face_imgs/00000010.png new file mode 100644 index 0000000..beccbb1 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000010.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000011.png b/data/avatars/wav2lip_avatar1/face_imgs/00000011.png new file mode 100644 index 0000000..2a6b964 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000011.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000012.png b/data/avatars/wav2lip_avatar1/face_imgs/00000012.png new file mode 100644 index 0000000..163614e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000012.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000013.png b/data/avatars/wav2lip_avatar1/face_imgs/00000013.png new file mode 100644 index 0000000..7914a27 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000013.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000014.png b/data/avatars/wav2lip_avatar1/face_imgs/00000014.png new file mode 100644 index 0000000..4d4e66c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000014.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000015.png b/data/avatars/wav2lip_avatar1/face_imgs/00000015.png new file mode 100644 index 0000000..a5181e8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000015.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000016.png b/data/avatars/wav2lip_avatar1/face_imgs/00000016.png new file mode 100644 index 0000000..64ae228 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000016.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000017.png b/data/avatars/wav2lip_avatar1/face_imgs/00000017.png new file mode 100644 index 0000000..7d15eeb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000017.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000018.png b/data/avatars/wav2lip_avatar1/face_imgs/00000018.png new file mode 100644 index 0000000..9cd3083 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000018.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000019.png b/data/avatars/wav2lip_avatar1/face_imgs/00000019.png new file mode 100644 index 0000000..8c58c9b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000019.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000020.png b/data/avatars/wav2lip_avatar1/face_imgs/00000020.png new file mode 100644 index 0000000..dd780a9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000020.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000021.png b/data/avatars/wav2lip_avatar1/face_imgs/00000021.png new file mode 100644 index 0000000..c428abb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000021.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000022.png b/data/avatars/wav2lip_avatar1/face_imgs/00000022.png new file mode 100644 index 0000000..a3c2169 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000022.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000023.png b/data/avatars/wav2lip_avatar1/face_imgs/00000023.png new file mode 100644 index 0000000..658bdf8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000023.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000024.png b/data/avatars/wav2lip_avatar1/face_imgs/00000024.png new file mode 100644 index 0000000..4a7f81e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000024.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000025.png b/data/avatars/wav2lip_avatar1/face_imgs/00000025.png new file mode 100644 index 0000000..e7a7d97 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000025.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000026.png b/data/avatars/wav2lip_avatar1/face_imgs/00000026.png new file mode 100644 index 0000000..1a00939 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000026.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000027.png b/data/avatars/wav2lip_avatar1/face_imgs/00000027.png new file mode 100644 index 0000000..135a90b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000027.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000028.png b/data/avatars/wav2lip_avatar1/face_imgs/00000028.png new file mode 100644 index 0000000..536056f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000028.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000029.png b/data/avatars/wav2lip_avatar1/face_imgs/00000029.png new file mode 100644 index 0000000..d4cd31a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000029.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000030.png b/data/avatars/wav2lip_avatar1/face_imgs/00000030.png new file mode 100644 index 0000000..6f70f59 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000030.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000031.png b/data/avatars/wav2lip_avatar1/face_imgs/00000031.png new file mode 100644 index 0000000..fa10003 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000031.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000032.png b/data/avatars/wav2lip_avatar1/face_imgs/00000032.png new file mode 100644 index 0000000..c1f0a6e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000032.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000033.png b/data/avatars/wav2lip_avatar1/face_imgs/00000033.png new file mode 100644 index 0000000..656989c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000033.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000034.png b/data/avatars/wav2lip_avatar1/face_imgs/00000034.png new file mode 100644 index 0000000..116b2c4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000034.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000035.png b/data/avatars/wav2lip_avatar1/face_imgs/00000035.png new file mode 100644 index 0000000..e0afaa2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000035.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000036.png b/data/avatars/wav2lip_avatar1/face_imgs/00000036.png new file mode 100644 index 0000000..4da0ed9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000036.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000037.png b/data/avatars/wav2lip_avatar1/face_imgs/00000037.png new file mode 100644 index 0000000..d62d2d6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000037.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000038.png b/data/avatars/wav2lip_avatar1/face_imgs/00000038.png new file mode 100644 index 0000000..04b24bf Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000038.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000039.png b/data/avatars/wav2lip_avatar1/face_imgs/00000039.png new file mode 100644 index 0000000..c7c661d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000039.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000040.png b/data/avatars/wav2lip_avatar1/face_imgs/00000040.png new file mode 100644 index 0000000..0414376 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000040.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000041.png b/data/avatars/wav2lip_avatar1/face_imgs/00000041.png new file mode 100644 index 0000000..9c6b4a8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000041.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000042.png b/data/avatars/wav2lip_avatar1/face_imgs/00000042.png new file mode 100644 index 0000000..49b0424 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000042.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000043.png b/data/avatars/wav2lip_avatar1/face_imgs/00000043.png new file mode 100644 index 0000000..8fd3fb2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000043.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000044.png b/data/avatars/wav2lip_avatar1/face_imgs/00000044.png new file mode 100644 index 0000000..6dbddeb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000044.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000045.png b/data/avatars/wav2lip_avatar1/face_imgs/00000045.png new file mode 100644 index 0000000..bbed249 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000045.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000046.png b/data/avatars/wav2lip_avatar1/face_imgs/00000046.png new file mode 100644 index 0000000..1b65a73 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000046.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000047.png b/data/avatars/wav2lip_avatar1/face_imgs/00000047.png new file mode 100644 index 0000000..b66379d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000047.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000048.png b/data/avatars/wav2lip_avatar1/face_imgs/00000048.png new file mode 100644 index 0000000..4098e3c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000048.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000049.png b/data/avatars/wav2lip_avatar1/face_imgs/00000049.png new file mode 100644 index 0000000..c5906de Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000049.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000050.png b/data/avatars/wav2lip_avatar1/face_imgs/00000050.png new file mode 100644 index 0000000..723c8cc Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000050.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000051.png b/data/avatars/wav2lip_avatar1/face_imgs/00000051.png new file mode 100644 index 0000000..93144fe Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000051.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000052.png b/data/avatars/wav2lip_avatar1/face_imgs/00000052.png new file mode 100644 index 0000000..f20881b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000052.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000053.png b/data/avatars/wav2lip_avatar1/face_imgs/00000053.png new file mode 100644 index 0000000..881ce41 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000053.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000054.png b/data/avatars/wav2lip_avatar1/face_imgs/00000054.png new file mode 100644 index 0000000..00ae538 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000054.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000055.png b/data/avatars/wav2lip_avatar1/face_imgs/00000055.png new file mode 100644 index 0000000..e1f5e49 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000055.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000056.png b/data/avatars/wav2lip_avatar1/face_imgs/00000056.png new file mode 100644 index 0000000..8236644 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000056.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000057.png b/data/avatars/wav2lip_avatar1/face_imgs/00000057.png new file mode 100644 index 0000000..3d800a4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000057.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000058.png b/data/avatars/wav2lip_avatar1/face_imgs/00000058.png new file mode 100644 index 0000000..f1e07a7 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000058.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000059.png b/data/avatars/wav2lip_avatar1/face_imgs/00000059.png new file mode 100644 index 0000000..76099c7 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000059.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000060.png b/data/avatars/wav2lip_avatar1/face_imgs/00000060.png new file mode 100644 index 0000000..5d35a8b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000060.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000061.png b/data/avatars/wav2lip_avatar1/face_imgs/00000061.png new file mode 100644 index 0000000..c31f612 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000061.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000062.png b/data/avatars/wav2lip_avatar1/face_imgs/00000062.png new file mode 100644 index 0000000..92c647e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000062.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000063.png b/data/avatars/wav2lip_avatar1/face_imgs/00000063.png new file mode 100644 index 0000000..703ff46 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000063.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000064.png b/data/avatars/wav2lip_avatar1/face_imgs/00000064.png new file mode 100644 index 0000000..594d418 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000064.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000065.png b/data/avatars/wav2lip_avatar1/face_imgs/00000065.png new file mode 100644 index 0000000..f9b3732 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000065.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000066.png b/data/avatars/wav2lip_avatar1/face_imgs/00000066.png new file mode 100644 index 0000000..61e0e02 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000066.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000067.png b/data/avatars/wav2lip_avatar1/face_imgs/00000067.png new file mode 100644 index 0000000..a543d3f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000067.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000068.png b/data/avatars/wav2lip_avatar1/face_imgs/00000068.png new file mode 100644 index 0000000..f2d89c8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000068.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000069.png b/data/avatars/wav2lip_avatar1/face_imgs/00000069.png new file mode 100644 index 0000000..63d9dd3 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000069.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000070.png b/data/avatars/wav2lip_avatar1/face_imgs/00000070.png new file mode 100644 index 0000000..60c21e6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000070.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000071.png b/data/avatars/wav2lip_avatar1/face_imgs/00000071.png new file mode 100644 index 0000000..9f1ba0a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000071.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000072.png b/data/avatars/wav2lip_avatar1/face_imgs/00000072.png new file mode 100644 index 0000000..7336e17 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000072.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000073.png b/data/avatars/wav2lip_avatar1/face_imgs/00000073.png new file mode 100644 index 0000000..6403702 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000073.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000074.png b/data/avatars/wav2lip_avatar1/face_imgs/00000074.png new file mode 100644 index 0000000..5110eae Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000074.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000075.png b/data/avatars/wav2lip_avatar1/face_imgs/00000075.png new file mode 100644 index 0000000..7a4d433 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000075.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000076.png b/data/avatars/wav2lip_avatar1/face_imgs/00000076.png new file mode 100644 index 0000000..e121b9d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000076.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000077.png b/data/avatars/wav2lip_avatar1/face_imgs/00000077.png new file mode 100644 index 0000000..f85589d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000077.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000078.png b/data/avatars/wav2lip_avatar1/face_imgs/00000078.png new file mode 100644 index 0000000..dc02ac4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000078.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000079.png b/data/avatars/wav2lip_avatar1/face_imgs/00000079.png new file mode 100644 index 0000000..345ba84 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000079.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000080.png b/data/avatars/wav2lip_avatar1/face_imgs/00000080.png new file mode 100644 index 0000000..0a66e33 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000080.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000081.png b/data/avatars/wav2lip_avatar1/face_imgs/00000081.png new file mode 100644 index 0000000..a261294 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000081.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000082.png b/data/avatars/wav2lip_avatar1/face_imgs/00000082.png new file mode 100644 index 0000000..fb6e51c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000082.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000083.png b/data/avatars/wav2lip_avatar1/face_imgs/00000083.png new file mode 100644 index 0000000..1451628 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000083.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000084.png b/data/avatars/wav2lip_avatar1/face_imgs/00000084.png new file mode 100644 index 0000000..06270ee Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000084.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000085.png b/data/avatars/wav2lip_avatar1/face_imgs/00000085.png new file mode 100644 index 0000000..3134d72 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000085.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000086.png b/data/avatars/wav2lip_avatar1/face_imgs/00000086.png new file mode 100644 index 0000000..f1e5494 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000086.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000087.png b/data/avatars/wav2lip_avatar1/face_imgs/00000087.png new file mode 100644 index 0000000..7d87b82 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000087.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000088.png b/data/avatars/wav2lip_avatar1/face_imgs/00000088.png new file mode 100644 index 0000000..3e158c0 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000088.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000089.png b/data/avatars/wav2lip_avatar1/face_imgs/00000089.png new file mode 100644 index 0000000..e95c424 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000089.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000090.png b/data/avatars/wav2lip_avatar1/face_imgs/00000090.png new file mode 100644 index 0000000..e60ae2b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000090.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000091.png b/data/avatars/wav2lip_avatar1/face_imgs/00000091.png new file mode 100644 index 0000000..e1542d8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000091.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000092.png b/data/avatars/wav2lip_avatar1/face_imgs/00000092.png new file mode 100644 index 0000000..ed3fa36 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000092.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000093.png b/data/avatars/wav2lip_avatar1/face_imgs/00000093.png new file mode 100644 index 0000000..27fbed9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000093.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000094.png b/data/avatars/wav2lip_avatar1/face_imgs/00000094.png new file mode 100644 index 0000000..6006242 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000094.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000095.png b/data/avatars/wav2lip_avatar1/face_imgs/00000095.png new file mode 100644 index 0000000..3133aa9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000095.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000096.png b/data/avatars/wav2lip_avatar1/face_imgs/00000096.png new file mode 100644 index 0000000..f5f3310 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000096.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000097.png b/data/avatars/wav2lip_avatar1/face_imgs/00000097.png new file mode 100644 index 0000000..1faa681 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000097.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000098.png b/data/avatars/wav2lip_avatar1/face_imgs/00000098.png new file mode 100644 index 0000000..b4ba3cb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000098.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000099.png b/data/avatars/wav2lip_avatar1/face_imgs/00000099.png new file mode 100644 index 0000000..f3ea93d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000099.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000100.png b/data/avatars/wav2lip_avatar1/face_imgs/00000100.png new file mode 100644 index 0000000..d11f059 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000100.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000101.png b/data/avatars/wav2lip_avatar1/face_imgs/00000101.png new file mode 100644 index 0000000..76446e5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000101.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000102.png b/data/avatars/wav2lip_avatar1/face_imgs/00000102.png new file mode 100644 index 0000000..5fdbd22 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000102.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000103.png b/data/avatars/wav2lip_avatar1/face_imgs/00000103.png new file mode 100644 index 0000000..7205419 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000103.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000104.png b/data/avatars/wav2lip_avatar1/face_imgs/00000104.png new file mode 100644 index 0000000..6b45dd8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000104.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000105.png b/data/avatars/wav2lip_avatar1/face_imgs/00000105.png new file mode 100644 index 0000000..0ecc3c9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000105.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000106.png b/data/avatars/wav2lip_avatar1/face_imgs/00000106.png new file mode 100644 index 0000000..90db273 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000106.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000107.png b/data/avatars/wav2lip_avatar1/face_imgs/00000107.png new file mode 100644 index 0000000..45635ca Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000107.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000108.png b/data/avatars/wav2lip_avatar1/face_imgs/00000108.png new file mode 100644 index 0000000..2ba55b7 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000108.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000109.png b/data/avatars/wav2lip_avatar1/face_imgs/00000109.png new file mode 100644 index 0000000..bd9bc25 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000109.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000110.png b/data/avatars/wav2lip_avatar1/face_imgs/00000110.png new file mode 100644 index 0000000..97e58c8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000110.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000111.png b/data/avatars/wav2lip_avatar1/face_imgs/00000111.png new file mode 100644 index 0000000..783384f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000111.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000112.png b/data/avatars/wav2lip_avatar1/face_imgs/00000112.png new file mode 100644 index 0000000..1a978e8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000112.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000113.png b/data/avatars/wav2lip_avatar1/face_imgs/00000113.png new file mode 100644 index 0000000..910be7d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000113.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000114.png b/data/avatars/wav2lip_avatar1/face_imgs/00000114.png new file mode 100644 index 0000000..fc9424e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000114.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000115.png b/data/avatars/wav2lip_avatar1/face_imgs/00000115.png new file mode 100644 index 0000000..7cd37ff Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000115.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000116.png b/data/avatars/wav2lip_avatar1/face_imgs/00000116.png new file mode 100644 index 0000000..07c8d63 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000116.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000117.png b/data/avatars/wav2lip_avatar1/face_imgs/00000117.png new file mode 100644 index 0000000..f01fafb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000117.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000118.png b/data/avatars/wav2lip_avatar1/face_imgs/00000118.png new file mode 100644 index 0000000..1258134 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000118.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000119.png b/data/avatars/wav2lip_avatar1/face_imgs/00000119.png new file mode 100644 index 0000000..1d39020 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000119.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000120.png b/data/avatars/wav2lip_avatar1/face_imgs/00000120.png new file mode 100644 index 0000000..7f1ac4c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000120.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000121.png b/data/avatars/wav2lip_avatar1/face_imgs/00000121.png new file mode 100644 index 0000000..c06a49c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000121.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000122.png b/data/avatars/wav2lip_avatar1/face_imgs/00000122.png new file mode 100644 index 0000000..603c5b6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000122.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000123.png b/data/avatars/wav2lip_avatar1/face_imgs/00000123.png new file mode 100644 index 0000000..d66b07b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000123.png differ diff --git a/data/avatars/wav2lip_avatar1/face_imgs/00000124.png b/data/avatars/wav2lip_avatar1/face_imgs/00000124.png new file mode 100644 index 0000000..7567e07 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/face_imgs/00000124.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000000.png b/data/avatars/wav2lip_avatar1/full_imgs/00000000.png new file mode 100644 index 0000000..f84e74c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000000.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000001.png b/data/avatars/wav2lip_avatar1/full_imgs/00000001.png new file mode 100644 index 0000000..829229f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000001.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000002.png b/data/avatars/wav2lip_avatar1/full_imgs/00000002.png new file mode 100644 index 0000000..11a2a49 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000002.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000003.png b/data/avatars/wav2lip_avatar1/full_imgs/00000003.png new file mode 100644 index 0000000..f0ab025 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000003.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000004.png b/data/avatars/wav2lip_avatar1/full_imgs/00000004.png new file mode 100644 index 0000000..e759730 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000004.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000005.png b/data/avatars/wav2lip_avatar1/full_imgs/00000005.png new file mode 100644 index 0000000..a62c2fd Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000005.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000006.png b/data/avatars/wav2lip_avatar1/full_imgs/00000006.png new file mode 100644 index 0000000..95bea2f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000006.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000007.png b/data/avatars/wav2lip_avatar1/full_imgs/00000007.png new file mode 100644 index 0000000..528ec4b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000007.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000008.png b/data/avatars/wav2lip_avatar1/full_imgs/00000008.png new file mode 100644 index 0000000..fab8c80 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000008.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000009.png b/data/avatars/wav2lip_avatar1/full_imgs/00000009.png new file mode 100644 index 0000000..a3f696b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000009.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000010.png b/data/avatars/wav2lip_avatar1/full_imgs/00000010.png new file mode 100644 index 0000000..0961a61 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000010.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000011.png b/data/avatars/wav2lip_avatar1/full_imgs/00000011.png new file mode 100644 index 0000000..68db0f4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000011.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000012.png b/data/avatars/wav2lip_avatar1/full_imgs/00000012.png new file mode 100644 index 0000000..7634ce3 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000012.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000013.png b/data/avatars/wav2lip_avatar1/full_imgs/00000013.png new file mode 100644 index 0000000..844f5d8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000013.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000014.png b/data/avatars/wav2lip_avatar1/full_imgs/00000014.png new file mode 100644 index 0000000..5171692 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000014.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000015.png b/data/avatars/wav2lip_avatar1/full_imgs/00000015.png new file mode 100644 index 0000000..2bf0340 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000015.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000016.png b/data/avatars/wav2lip_avatar1/full_imgs/00000016.png new file mode 100644 index 0000000..a3f1f00 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000016.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000017.png b/data/avatars/wav2lip_avatar1/full_imgs/00000017.png new file mode 100644 index 0000000..4b3b1c8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000017.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000018.png b/data/avatars/wav2lip_avatar1/full_imgs/00000018.png new file mode 100644 index 0000000..f43663c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000018.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000019.png b/data/avatars/wav2lip_avatar1/full_imgs/00000019.png new file mode 100644 index 0000000..cb634af Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000019.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000020.png b/data/avatars/wav2lip_avatar1/full_imgs/00000020.png new file mode 100644 index 0000000..9a3cae4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000020.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000021.png b/data/avatars/wav2lip_avatar1/full_imgs/00000021.png new file mode 100644 index 0000000..b2c5680 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000021.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000022.png b/data/avatars/wav2lip_avatar1/full_imgs/00000022.png new file mode 100644 index 0000000..2d2fd3f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000022.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000023.png b/data/avatars/wav2lip_avatar1/full_imgs/00000023.png new file mode 100644 index 0000000..7bfdbf5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000023.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000024.png b/data/avatars/wav2lip_avatar1/full_imgs/00000024.png new file mode 100644 index 0000000..0e468cf Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000024.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000025.png b/data/avatars/wav2lip_avatar1/full_imgs/00000025.png new file mode 100644 index 0000000..967bcf4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000025.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000026.png b/data/avatars/wav2lip_avatar1/full_imgs/00000026.png new file mode 100644 index 0000000..0f8aeaf Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000026.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000027.png b/data/avatars/wav2lip_avatar1/full_imgs/00000027.png new file mode 100644 index 0000000..e473d51 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000027.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000028.png b/data/avatars/wav2lip_avatar1/full_imgs/00000028.png new file mode 100644 index 0000000..a5b7126 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000028.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000029.png b/data/avatars/wav2lip_avatar1/full_imgs/00000029.png new file mode 100644 index 0000000..b01a064 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000029.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000030.png b/data/avatars/wav2lip_avatar1/full_imgs/00000030.png new file mode 100644 index 0000000..89ff067 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000030.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000031.png b/data/avatars/wav2lip_avatar1/full_imgs/00000031.png new file mode 100644 index 0000000..39ecc3e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000031.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000032.png b/data/avatars/wav2lip_avatar1/full_imgs/00000032.png new file mode 100644 index 0000000..76b30c5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000032.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000033.png b/data/avatars/wav2lip_avatar1/full_imgs/00000033.png new file mode 100644 index 0000000..405b4a2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000033.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000034.png b/data/avatars/wav2lip_avatar1/full_imgs/00000034.png new file mode 100644 index 0000000..f821b17 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000034.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000035.png b/data/avatars/wav2lip_avatar1/full_imgs/00000035.png new file mode 100644 index 0000000..f0cfdb9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000035.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000036.png b/data/avatars/wav2lip_avatar1/full_imgs/00000036.png new file mode 100644 index 0000000..b2e1f5e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000036.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000037.png b/data/avatars/wav2lip_avatar1/full_imgs/00000037.png new file mode 100644 index 0000000..cf46764 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000037.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000038.png b/data/avatars/wav2lip_avatar1/full_imgs/00000038.png new file mode 100644 index 0000000..8f5bb1e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000038.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000039.png b/data/avatars/wav2lip_avatar1/full_imgs/00000039.png new file mode 100644 index 0000000..1885042 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000039.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000040.png b/data/avatars/wav2lip_avatar1/full_imgs/00000040.png new file mode 100644 index 0000000..a5a1458 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000040.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000041.png b/data/avatars/wav2lip_avatar1/full_imgs/00000041.png new file mode 100644 index 0000000..6b9463a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000041.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000042.png b/data/avatars/wav2lip_avatar1/full_imgs/00000042.png new file mode 100644 index 0000000..0987326 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000042.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000043.png b/data/avatars/wav2lip_avatar1/full_imgs/00000043.png new file mode 100644 index 0000000..7ac6e3d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000043.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000044.png b/data/avatars/wav2lip_avatar1/full_imgs/00000044.png new file mode 100644 index 0000000..def3011 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000044.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000045.png b/data/avatars/wav2lip_avatar1/full_imgs/00000045.png new file mode 100644 index 0000000..06afeee Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000045.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000046.png b/data/avatars/wav2lip_avatar1/full_imgs/00000046.png new file mode 100644 index 0000000..77f9a8c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000046.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000047.png b/data/avatars/wav2lip_avatar1/full_imgs/00000047.png new file mode 100644 index 0000000..a130746 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000047.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000048.png b/data/avatars/wav2lip_avatar1/full_imgs/00000048.png new file mode 100644 index 0000000..ce52af8 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000048.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000049.png b/data/avatars/wav2lip_avatar1/full_imgs/00000049.png new file mode 100644 index 0000000..53730a1 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000049.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000050.png b/data/avatars/wav2lip_avatar1/full_imgs/00000050.png new file mode 100644 index 0000000..bd804a3 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000050.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000051.png b/data/avatars/wav2lip_avatar1/full_imgs/00000051.png new file mode 100644 index 0000000..0f62812 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000051.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000052.png b/data/avatars/wav2lip_avatar1/full_imgs/00000052.png new file mode 100644 index 0000000..251aa45 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000052.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000053.png b/data/avatars/wav2lip_avatar1/full_imgs/00000053.png new file mode 100644 index 0000000..8076144 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000053.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000054.png b/data/avatars/wav2lip_avatar1/full_imgs/00000054.png new file mode 100644 index 0000000..5380785 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000054.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000055.png b/data/avatars/wav2lip_avatar1/full_imgs/00000055.png new file mode 100644 index 0000000..6185e57 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000055.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000056.png b/data/avatars/wav2lip_avatar1/full_imgs/00000056.png new file mode 100644 index 0000000..424273b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000056.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000057.png b/data/avatars/wav2lip_avatar1/full_imgs/00000057.png new file mode 100644 index 0000000..12bc589 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000057.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000058.png b/data/avatars/wav2lip_avatar1/full_imgs/00000058.png new file mode 100644 index 0000000..dffdb1a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000058.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000059.png b/data/avatars/wav2lip_avatar1/full_imgs/00000059.png new file mode 100644 index 0000000..14798ab Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000059.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000060.png b/data/avatars/wav2lip_avatar1/full_imgs/00000060.png new file mode 100644 index 0000000..b16f13e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000060.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000061.png b/data/avatars/wav2lip_avatar1/full_imgs/00000061.png new file mode 100644 index 0000000..cfdf5e4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000061.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000062.png b/data/avatars/wav2lip_avatar1/full_imgs/00000062.png new file mode 100644 index 0000000..4865738 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000062.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000063.png b/data/avatars/wav2lip_avatar1/full_imgs/00000063.png new file mode 100644 index 0000000..0e7a878 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000063.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000064.png b/data/avatars/wav2lip_avatar1/full_imgs/00000064.png new file mode 100644 index 0000000..8a3f618 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000064.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000065.png b/data/avatars/wav2lip_avatar1/full_imgs/00000065.png new file mode 100644 index 0000000..7067018 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000065.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000066.png b/data/avatars/wav2lip_avatar1/full_imgs/00000066.png new file mode 100644 index 0000000..2734913 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000066.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000067.png b/data/avatars/wav2lip_avatar1/full_imgs/00000067.png new file mode 100644 index 0000000..4957d04 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000067.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000068.png b/data/avatars/wav2lip_avatar1/full_imgs/00000068.png new file mode 100644 index 0000000..6b28b38 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000068.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000069.png b/data/avatars/wav2lip_avatar1/full_imgs/00000069.png new file mode 100644 index 0000000..a0d9a47 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000069.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000070.png b/data/avatars/wav2lip_avatar1/full_imgs/00000070.png new file mode 100644 index 0000000..e47417b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000070.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000071.png b/data/avatars/wav2lip_avatar1/full_imgs/00000071.png new file mode 100644 index 0000000..14fd3b1 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000071.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000072.png b/data/avatars/wav2lip_avatar1/full_imgs/00000072.png new file mode 100644 index 0000000..965ecc9 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000072.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000073.png b/data/avatars/wav2lip_avatar1/full_imgs/00000073.png new file mode 100644 index 0000000..e547847 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000073.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000074.png b/data/avatars/wav2lip_avatar1/full_imgs/00000074.png new file mode 100644 index 0000000..951b845 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000074.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000075.png b/data/avatars/wav2lip_avatar1/full_imgs/00000075.png new file mode 100644 index 0000000..19ce139 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000075.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000076.png b/data/avatars/wav2lip_avatar1/full_imgs/00000076.png new file mode 100644 index 0000000..56b133a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000076.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000077.png b/data/avatars/wav2lip_avatar1/full_imgs/00000077.png new file mode 100644 index 0000000..bf55e04 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000077.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000078.png b/data/avatars/wav2lip_avatar1/full_imgs/00000078.png new file mode 100644 index 0000000..2449cb6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000078.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000079.png b/data/avatars/wav2lip_avatar1/full_imgs/00000079.png new file mode 100644 index 0000000..5bde0bd Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000079.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000080.png b/data/avatars/wav2lip_avatar1/full_imgs/00000080.png new file mode 100644 index 0000000..2fad0e2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000080.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000081.png b/data/avatars/wav2lip_avatar1/full_imgs/00000081.png new file mode 100644 index 0000000..752ecdb Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000081.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000082.png b/data/avatars/wav2lip_avatar1/full_imgs/00000082.png new file mode 100644 index 0000000..cbfb5bc Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000082.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000083.png b/data/avatars/wav2lip_avatar1/full_imgs/00000083.png new file mode 100644 index 0000000..8b95db7 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000083.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000084.png b/data/avatars/wav2lip_avatar1/full_imgs/00000084.png new file mode 100644 index 0000000..3ed582d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000084.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000085.png b/data/avatars/wav2lip_avatar1/full_imgs/00000085.png new file mode 100644 index 0000000..34779dd Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000085.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000086.png b/data/avatars/wav2lip_avatar1/full_imgs/00000086.png new file mode 100644 index 0000000..8e19076 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000086.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000087.png b/data/avatars/wav2lip_avatar1/full_imgs/00000087.png new file mode 100644 index 0000000..c73ead1 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000087.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000088.png b/data/avatars/wav2lip_avatar1/full_imgs/00000088.png new file mode 100644 index 0000000..051a916 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000088.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000089.png b/data/avatars/wav2lip_avatar1/full_imgs/00000089.png new file mode 100644 index 0000000..de805fd Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000089.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000090.png b/data/avatars/wav2lip_avatar1/full_imgs/00000090.png new file mode 100644 index 0000000..ca7eb41 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000090.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000091.png b/data/avatars/wav2lip_avatar1/full_imgs/00000091.png new file mode 100644 index 0000000..9a5bc27 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000091.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000092.png b/data/avatars/wav2lip_avatar1/full_imgs/00000092.png new file mode 100644 index 0000000..f61c9a5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000092.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000093.png b/data/avatars/wav2lip_avatar1/full_imgs/00000093.png new file mode 100644 index 0000000..036c7d2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000093.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000094.png b/data/avatars/wav2lip_avatar1/full_imgs/00000094.png new file mode 100644 index 0000000..baabf1c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000094.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000095.png b/data/avatars/wav2lip_avatar1/full_imgs/00000095.png new file mode 100644 index 0000000..522b557 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000095.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000096.png b/data/avatars/wav2lip_avatar1/full_imgs/00000096.png new file mode 100644 index 0000000..a30b0c5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000096.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000097.png b/data/avatars/wav2lip_avatar1/full_imgs/00000097.png new file mode 100644 index 0000000..0a0abab Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000097.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000098.png b/data/avatars/wav2lip_avatar1/full_imgs/00000098.png new file mode 100644 index 0000000..e99fad6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000098.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000099.png b/data/avatars/wav2lip_avatar1/full_imgs/00000099.png new file mode 100644 index 0000000..b5f724e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000099.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000100.png b/data/avatars/wav2lip_avatar1/full_imgs/00000100.png new file mode 100644 index 0000000..4500e1e Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000100.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000101.png b/data/avatars/wav2lip_avatar1/full_imgs/00000101.png new file mode 100644 index 0000000..b2059d2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000101.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000102.png b/data/avatars/wav2lip_avatar1/full_imgs/00000102.png new file mode 100644 index 0000000..4f7bc40 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000102.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000103.png b/data/avatars/wav2lip_avatar1/full_imgs/00000103.png new file mode 100644 index 0000000..078266a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000103.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000104.png b/data/avatars/wav2lip_avatar1/full_imgs/00000104.png new file mode 100644 index 0000000..80937c2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000104.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000105.png b/data/avatars/wav2lip_avatar1/full_imgs/00000105.png new file mode 100644 index 0000000..01decb6 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000105.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000106.png b/data/avatars/wav2lip_avatar1/full_imgs/00000106.png new file mode 100644 index 0000000..a158750 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000106.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000107.png b/data/avatars/wav2lip_avatar1/full_imgs/00000107.png new file mode 100644 index 0000000..741aec4 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000107.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000108.png b/data/avatars/wav2lip_avatar1/full_imgs/00000108.png new file mode 100644 index 0000000..9d384ea Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000108.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000109.png b/data/avatars/wav2lip_avatar1/full_imgs/00000109.png new file mode 100644 index 0000000..c9f5aca Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000109.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000110.png b/data/avatars/wav2lip_avatar1/full_imgs/00000110.png new file mode 100644 index 0000000..50a1fd2 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000110.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000111.png b/data/avatars/wav2lip_avatar1/full_imgs/00000111.png new file mode 100644 index 0000000..a35434d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000111.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000112.png b/data/avatars/wav2lip_avatar1/full_imgs/00000112.png new file mode 100644 index 0000000..9dc34ea Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000112.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000113.png b/data/avatars/wav2lip_avatar1/full_imgs/00000113.png new file mode 100644 index 0000000..488560c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000113.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000114.png b/data/avatars/wav2lip_avatar1/full_imgs/00000114.png new file mode 100644 index 0000000..339847d Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000114.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000115.png b/data/avatars/wav2lip_avatar1/full_imgs/00000115.png new file mode 100644 index 0000000..305aa1f Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000115.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000116.png b/data/avatars/wav2lip_avatar1/full_imgs/00000116.png new file mode 100644 index 0000000..6a27dda Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000116.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000117.png b/data/avatars/wav2lip_avatar1/full_imgs/00000117.png new file mode 100644 index 0000000..87e894b Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000117.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000118.png b/data/avatars/wav2lip_avatar1/full_imgs/00000118.png new file mode 100644 index 0000000..c219823 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000118.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000119.png b/data/avatars/wav2lip_avatar1/full_imgs/00000119.png new file mode 100644 index 0000000..c0b5747 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000119.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000120.png b/data/avatars/wav2lip_avatar1/full_imgs/00000120.png new file mode 100644 index 0000000..da6f3ed Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000120.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000121.png b/data/avatars/wav2lip_avatar1/full_imgs/00000121.png new file mode 100644 index 0000000..34d0f9c Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000121.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000122.png b/data/avatars/wav2lip_avatar1/full_imgs/00000122.png new file mode 100644 index 0000000..abd1be5 Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000122.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000123.png b/data/avatars/wav2lip_avatar1/full_imgs/00000123.png new file mode 100644 index 0000000..62246af Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000123.png differ diff --git a/data/avatars/wav2lip_avatar1/full_imgs/00000124.png b/data/avatars/wav2lip_avatar1/full_imgs/00000124.png new file mode 100644 index 0000000..548943a Binary files /dev/null and b/data/avatars/wav2lip_avatar1/full_imgs/00000124.png differ diff --git a/data/avatars/wav2lip_avatar2/coords.pkl b/data/avatars/wav2lip_avatar2/coords.pkl new file mode 100644 index 0000000..947ea40 Binary files /dev/null and b/data/avatars/wav2lip_avatar2/coords.pkl differ diff --git a/data/avatars/wav2lip_avatar2/face_imgs/00000000.png b/data/avatars/wav2lip_avatar2/face_imgs/00000000.png new file mode 100644 index 0000000..2d31bb9 Binary files /dev/null and b/data/avatars/wav2lip_avatar2/face_imgs/00000000.png differ diff --git a/data/avatars/wav2lip_avatar2/full_imgs/00000000.png b/data/avatars/wav2lip_avatar2/full_imgs/00000000.png new file mode 100644 index 0000000..0d27120 Binary files /dev/null and b/data/avatars/wav2lip_avatar2/full_imgs/00000000.png differ diff --git a/data/avatars/wav2lip_avatar3/coords.pkl b/data/avatars/wav2lip_avatar3/coords.pkl new file mode 100644 index 0000000..947ea40 Binary files /dev/null and b/data/avatars/wav2lip_avatar3/coords.pkl differ diff --git a/data/avatars/wav2lip_avatar3/face_imgs/00000000.png b/data/avatars/wav2lip_avatar3/face_imgs/00000000.png new file mode 100644 index 0000000..5c57569 Binary files /dev/null and b/data/avatars/wav2lip_avatar3/face_imgs/00000000.png differ diff --git a/data/avatars/wav2lip_avatar3/full_imgs/00000000.png b/data/avatars/wav2lip_avatar3/full_imgs/00000000.png new file mode 100644 index 0000000..0d27120 Binary files /dev/null and b/data/avatars/wav2lip_avatar3/full_imgs/00000000.png differ diff --git a/data/test_images/image_0001.png b/data/test_images/image_0001.png new file mode 100644 index 0000000..4b7836f Binary files /dev/null and b/data/test_images/image_0001.png differ diff --git a/data/test_images/image_0002.png b/data/test_images/image_0002.png new file mode 100644 index 0000000..a0095ec Binary files /dev/null and b/data/test_images/image_0002.png differ diff --git a/data/test_images/image_0003.png b/data/test_images/image_0003.png new file mode 100644 index 0000000..5c1222b Binary files /dev/null and b/data/test_images/image_0003.png differ diff --git a/data/test_images/image_0004.png b/data/test_images/image_0004.png new file mode 100644 index 0000000..effff41 Binary files /dev/null and b/data/test_images/image_0004.png differ diff --git a/data/test_images/image_0005.png b/data/test_images/image_0005.png new file mode 100644 index 0000000..5c831d9 Binary files /dev/null and b/data/test_images/image_0005.png differ diff --git a/data/test_images/image_0006.png b/data/test_images/image_0006.png new file mode 100644 index 0000000..32913dc Binary files /dev/null and b/data/test_images/image_0006.png differ diff --git a/data/test_images/image_0007.png b/data/test_images/image_0007.png new file mode 100644 index 0000000..c07166b Binary files /dev/null and b/data/test_images/image_0007.png differ diff --git a/data/test_images/image_0008.png b/data/test_images/image_0008.png new file mode 100644 index 0000000..62999d3 Binary files /dev/null and b/data/test_images/image_0008.png differ diff --git a/data/test_images/image_0009.png b/data/test_images/image_0009.png new file mode 100644 index 0000000..b02ff9d Binary files /dev/null and b/data/test_images/image_0009.png differ diff --git a/data/test_images/image_0010.png b/data/test_images/image_0010.png new file mode 100644 index 0000000..7883561 Binary files /dev/null and b/data/test_images/image_0010.png differ diff --git a/data/test_images/image_0011.png b/data/test_images/image_0011.png new file mode 100644 index 0000000..6152330 Binary files /dev/null and b/data/test_images/image_0011.png differ diff --git a/data/test_images/image_0012.png b/data/test_images/image_0012.png new file mode 100644 index 0000000..906541f Binary files /dev/null and b/data/test_images/image_0012.png differ diff --git a/data/test_images/image_0013.png b/data/test_images/image_0013.png new file mode 100644 index 0000000..749e10e Binary files /dev/null and b/data/test_images/image_0013.png differ diff --git a/data/test_images/image_0014.png b/data/test_images/image_0014.png new file mode 100644 index 0000000..7005497 Binary files /dev/null and b/data/test_images/image_0014.png differ diff --git a/data/test_images/image_0015.png b/data/test_images/image_0015.png new file mode 100644 index 0000000..e2d6887 Binary files /dev/null and b/data/test_images/image_0015.png differ diff --git a/data/test_images/image_0016.png b/data/test_images/image_0016.png new file mode 100644 index 0000000..1eeee5c Binary files /dev/null and b/data/test_images/image_0016.png differ diff --git a/data/test_images/image_0017.png b/data/test_images/image_0017.png new file mode 100644 index 0000000..d54ec1e Binary files /dev/null and b/data/test_images/image_0017.png differ diff --git a/data/test_images/image_0018.png b/data/test_images/image_0018.png new file mode 100644 index 0000000..c7d5317 Binary files /dev/null and b/data/test_images/image_0018.png differ diff --git a/data/test_images/image_0019.png b/data/test_images/image_0019.png new file mode 100644 index 0000000..3159223 Binary files /dev/null and b/data/test_images/image_0019.png differ diff --git a/data/test_images/image_0020.png b/data/test_images/image_0020.png new file mode 100644 index 0000000..edf57fa Binary files /dev/null and b/data/test_images/image_0020.png differ diff --git a/data/test_images/image_0021.png b/data/test_images/image_0021.png new file mode 100644 index 0000000..e47ce93 Binary files /dev/null and b/data/test_images/image_0021.png differ diff --git a/data/test_images/image_0022.png b/data/test_images/image_0022.png new file mode 100644 index 0000000..dbba6c9 Binary files /dev/null and b/data/test_images/image_0022.png differ diff --git a/data/test_images/image_0023.png b/data/test_images/image_0023.png new file mode 100644 index 0000000..cf485dc Binary files /dev/null and b/data/test_images/image_0023.png differ diff --git a/data/test_images/image_0024.png b/data/test_images/image_0024.png new file mode 100644 index 0000000..27b4fa3 Binary files /dev/null and b/data/test_images/image_0024.png differ diff --git a/data/test_images/image_0025.png b/data/test_images/image_0025.png new file mode 100644 index 0000000..65cd5f3 Binary files /dev/null and b/data/test_images/image_0025.png differ diff --git a/data/test_images/image_0026.png b/data/test_images/image_0026.png new file mode 100644 index 0000000..8023e07 Binary files /dev/null and b/data/test_images/image_0026.png differ diff --git a/data/test_images/image_0027.png b/data/test_images/image_0027.png new file mode 100644 index 0000000..dc491cd Binary files /dev/null and b/data/test_images/image_0027.png differ diff --git a/data/test_images/image_0028.png b/data/test_images/image_0028.png new file mode 100644 index 0000000..867b157 Binary files /dev/null and b/data/test_images/image_0028.png differ diff --git a/data/test_images/image_0029.png b/data/test_images/image_0029.png new file mode 100644 index 0000000..f55b679 Binary files /dev/null and b/data/test_images/image_0029.png differ diff --git a/data/test_images/image_0030.png b/data/test_images/image_0030.png new file mode 100644 index 0000000..6d18b2a Binary files /dev/null and b/data/test_images/image_0030.png differ diff --git a/data/test_images/image_0031.png b/data/test_images/image_0031.png new file mode 100644 index 0000000..4289ad6 Binary files /dev/null and b/data/test_images/image_0031.png differ diff --git a/data/test_images/image_0032.png b/data/test_images/image_0032.png new file mode 100644 index 0000000..b375d65 Binary files /dev/null and b/data/test_images/image_0032.png differ diff --git a/data/test_images/image_0033.png b/data/test_images/image_0033.png new file mode 100644 index 0000000..138619d Binary files /dev/null and b/data/test_images/image_0033.png differ diff --git a/data/test_images/image_0034.png b/data/test_images/image_0034.png new file mode 100644 index 0000000..e8dd96b Binary files /dev/null and b/data/test_images/image_0034.png differ diff --git a/data/test_images/image_0035.png b/data/test_images/image_0035.png new file mode 100644 index 0000000..a952b3a Binary files /dev/null and b/data/test_images/image_0035.png differ diff --git a/data/test_images/image_0036.png b/data/test_images/image_0036.png new file mode 100644 index 0000000..f7d0025 Binary files /dev/null and b/data/test_images/image_0036.png differ diff --git a/data/test_images/image_0037.png b/data/test_images/image_0037.png new file mode 100644 index 0000000..1dc7753 Binary files /dev/null and b/data/test_images/image_0037.png differ diff --git a/data/test_images/image_0038.png b/data/test_images/image_0038.png new file mode 100644 index 0000000..c37824c Binary files /dev/null and b/data/test_images/image_0038.png differ diff --git a/data/test_images/image_0039.png b/data/test_images/image_0039.png new file mode 100644 index 0000000..e487b6a Binary files /dev/null and b/data/test_images/image_0039.png differ diff --git a/data/test_images/image_0040.png b/data/test_images/image_0040.png new file mode 100644 index 0000000..345efe1 Binary files /dev/null and b/data/test_images/image_0040.png differ diff --git a/data/test_images/image_0041.png b/data/test_images/image_0041.png new file mode 100644 index 0000000..902e59b Binary files /dev/null and b/data/test_images/image_0041.png differ diff --git a/data/test_images/image_0042.png b/data/test_images/image_0042.png new file mode 100644 index 0000000..4556614 Binary files /dev/null and b/data/test_images/image_0042.png differ diff --git a/data/test_images/image_0043.png b/data/test_images/image_0043.png new file mode 100644 index 0000000..27eced3 Binary files /dev/null and b/data/test_images/image_0043.png differ diff --git a/data/test_images/image_0044.png b/data/test_images/image_0044.png new file mode 100644 index 0000000..d767992 Binary files /dev/null and b/data/test_images/image_0044.png differ diff --git a/data/test_images/image_0045.png b/data/test_images/image_0045.png new file mode 100644 index 0000000..afa209c Binary files /dev/null and b/data/test_images/image_0045.png differ diff --git a/data/test_images/image_0046.png b/data/test_images/image_0046.png new file mode 100644 index 0000000..59aeddc Binary files /dev/null and b/data/test_images/image_0046.png differ diff --git a/data/test_images/image_0047.png b/data/test_images/image_0047.png new file mode 100644 index 0000000..88ebd5c Binary files /dev/null and b/data/test_images/image_0047.png differ diff --git a/data/test_images/image_0048.png b/data/test_images/image_0048.png new file mode 100644 index 0000000..d182a04 Binary files /dev/null and b/data/test_images/image_0048.png differ diff --git a/data/test_images/image_0049.png b/data/test_images/image_0049.png new file mode 100644 index 0000000..a3d1423 Binary files /dev/null and b/data/test_images/image_0049.png differ diff --git a/data/test_images/image_0050.png b/data/test_images/image_0050.png new file mode 100644 index 0000000..b2de9f6 Binary files /dev/null and b/data/test_images/image_0050.png differ diff --git a/data/test_images/image_0051.png b/data/test_images/image_0051.png new file mode 100644 index 0000000..9909164 Binary files /dev/null and b/data/test_images/image_0051.png differ diff --git a/data/test_images/image_0052.png b/data/test_images/image_0052.png new file mode 100644 index 0000000..b30a5b0 Binary files /dev/null and b/data/test_images/image_0052.png differ diff --git a/data/test_images/image_0053.png b/data/test_images/image_0053.png new file mode 100644 index 0000000..6b13d25 Binary files /dev/null and b/data/test_images/image_0053.png differ diff --git a/data/test_images/image_0054.png b/data/test_images/image_0054.png new file mode 100644 index 0000000..036ce92 Binary files /dev/null and b/data/test_images/image_0054.png differ diff --git a/data/test_images/image_0055.png b/data/test_images/image_0055.png new file mode 100644 index 0000000..57f2644 Binary files /dev/null and b/data/test_images/image_0055.png differ diff --git a/data/test_images/image_0056.png b/data/test_images/image_0056.png new file mode 100644 index 0000000..e9febb3 Binary files /dev/null and b/data/test_images/image_0056.png differ diff --git a/data/test_images/image_0057.png b/data/test_images/image_0057.png new file mode 100644 index 0000000..ee5db6b Binary files /dev/null and b/data/test_images/image_0057.png differ diff --git a/data/test_images/image_0058.png b/data/test_images/image_0058.png new file mode 100644 index 0000000..0c37608 Binary files /dev/null and b/data/test_images/image_0058.png differ diff --git a/data/test_images/image_0059.png b/data/test_images/image_0059.png new file mode 100644 index 0000000..e7defa9 Binary files /dev/null and b/data/test_images/image_0059.png differ diff --git a/data/test_images/image_0060.png b/data/test_images/image_0060.png new file mode 100644 index 0000000..4d83df5 Binary files /dev/null and b/data/test_images/image_0060.png differ diff --git a/data/test_images/image_0061.png b/data/test_images/image_0061.png new file mode 100644 index 0000000..4746743 Binary files /dev/null and b/data/test_images/image_0061.png differ diff --git a/data/test_images/image_0062.png b/data/test_images/image_0062.png new file mode 100644 index 0000000..6b39d20 Binary files /dev/null and b/data/test_images/image_0062.png differ diff --git a/data/test_images/image_0063.png b/data/test_images/image_0063.png new file mode 100644 index 0000000..fb1619c Binary files /dev/null and b/data/test_images/image_0063.png differ diff --git a/data/test_images/image_0064.png b/data/test_images/image_0064.png new file mode 100644 index 0000000..4edc387 Binary files /dev/null and b/data/test_images/image_0064.png differ diff --git a/data/test_images/image_0065.png b/data/test_images/image_0065.png new file mode 100644 index 0000000..71dcfb3 Binary files /dev/null and b/data/test_images/image_0065.png differ diff --git a/data/test_images/image_0066.png b/data/test_images/image_0066.png new file mode 100644 index 0000000..c418a8a Binary files /dev/null and b/data/test_images/image_0066.png differ diff --git a/data/test_images/image_0067.png b/data/test_images/image_0067.png new file mode 100644 index 0000000..ea87e43 Binary files /dev/null and b/data/test_images/image_0067.png differ diff --git a/human/__init__.py b/human/__init__.py index 966011f..503a041 100644 --- a/human/__init__.py +++ b/human/__init__.py @@ -3,4 +3,5 @@ from .human_context import HumanContext from .audio_mal_handler import AudioMalHandler from .audio_inference_handler import AudioInferenceHandler +from .audio_inference_onnx_handler import AudioInferenceOnnxHandler from .human_render import HumanRender diff --git a/human/audio_inference_handler.py b/human/audio_inference_handler.py index 30e430b..82a8d51 100644 --- a/human/audio_inference_handler.py +++ b/human/audio_inference_handler.py @@ -59,7 +59,9 @@ class AudioInferenceHandler(AudioHandler): super().on_message(message) def __on_run(self): - wav2lip_path = os.path.join(current_file_path, '..', 'checkpoints', 'wav2lip_gan.pth') + # wav2lip_path = os.path.join(current_file_path, '..', 'checkpoints', 'wav2lip.pth') + wav2lip_path = os.path.join(current_file_path, '..', 'checkpoints', 'weights', 'wav2lip', + 'ema_checkpoint_step000300000.pth') logger.info(f'AudioInferenceHandler init, path:{wav2lip_path}') model = load_model(wav2lip_path) logger.info("Model loaded") diff --git a/human/audio_inference_onnx_handler.py b/human/audio_inference_onnx_handler.py new file mode 100644 index 0000000..f7d28db --- /dev/null +++ b/human/audio_inference_onnx_handler.py @@ -0,0 +1,207 @@ +#encoding = utf8 +import logging +import os +import queue +import time +from threading import Event, Thread + +from gfpgan import GFPGANer +from eventbus import EventBus +from human_handler import AudioHandler +from utils import load_model, mirror_index, get_device, SyncQueue + +logger = logging.getLogger(__name__) +current_file_path = os.path.dirname(os.path.abspath(__file__)) + + +def load_gfpgan_model(model_path): + logger.info(f'load_gfpgan_model, path:{model_path}') + model = GFPGANer( + model_path=model_path, + upscale=1, + arch='clean', + channel_multiplier=2, + bg_upsampler=None, + ) + return model + + +def load_model(model_path): + import onnxruntime as ort + + sess_opt = ort.SessionOptions() + sess_opt.intra_op_num_threads = 8 + sess = ort.InferenceSession(model_path, sess_options=sess_opt, providers=['CUDAExecutionProvider', 'CPUExecutionProvider']) + + return sess + + +class AudioInferenceOnnxHandler(AudioHandler): + def __init__(self, context, handler): + super().__init__(context, handler) + + EventBus().register('stop', self._on_stop) + EventBus().register('clear_cache', self.on_clear_cache) + self._mal_queue = SyncQueue(1, "AudioInferenceHandler_Mel") + self._audio_queue = SyncQueue(context.batch_size * 2, "AudioInferenceHandler_Audio") + + self._is_running = True + self._exit_event = Event() + self._run_thread = Thread(target=self.__on_run, name="AudioInferenceHandlerThread") + self._exit_event.set() + self._run_thread.start() + + logger.info("AudioInferenceHandler init") + + def __del__(self): + EventBus().unregister('stop', self._on_stop) + EventBus().unregister('clear_cache', self.on_clear_cache) + + def _on_stop(self, *args, **kwargs): + self.stop() + + def on_clear_cache(self, *args, **kwargs): + self._mal_queue.clear() + self._audio_queue.clear() + + def on_handle(self, stream, type_): + if not self._is_running: + return + + if type_ == 1: + self._mal_queue.put(stream) + elif type_ == 0: + self._audio_queue.put(stream) + # print('AudioInferenceHandler on_handle', type_, self._audio_queue.size()) + + def on_message(self, message): + super().on_message(message) + + def __on_run(self): + model_path = os.path.join(current_file_path, '..', 'checkpoints', 'weights', 'wav2lip') + model_a_path = os.path.join(model_path, 'model_a_general.onnx') + logger.info(f'AudioInferenceHandler model_a_path, path:{model_a_path}') + model_g_path = os.path.join(model_path, 'model_g_general.onnx') + logger.info(f'AudioInferenceHandler model_g_path, path:{model_g_path}') + + model_a = load_model(model_a_path) + model_g = load_model(model_g_path) + logger.info("Model loaded") + + gfpgan_model_path = os.path.join(current_file_path, '..', 'checkpoints', 'gfpgan', 'weights', 'GFPGANv1.4.pth') + gfpgan_model = load_gfpgan_model(gfpgan_model_path) + + face_list_cycle = self._context.face_list_cycle + + + length = len(face_list_cycle) + index = 0 + count = 0 + count_time = 0 + logger.info('start inference') + + device = get_device() + logger.info(f'use device:{device}') + + while self._is_running: + if self._exit_event.is_set(): + start_time = time.perf_counter() + batch_size = self._context.batch_size + try: + mel_batch = self._mal_queue.get(timeout=0.02) + # print('AudioInferenceHandler mel_batch:', len(mel_batch), 'size:', self._mal_queue.size()) + except queue.Empty: + continue + + # print('origin mel_batch:', len(mel_batch)) + is_all_silence = True + audio_frames = [] + current_text = '' + for _ in range(batch_size * 2): + frame, type_ = self._audio_queue.get() + # print('AudioInferenceHandler type_', type_) + current_text = frame[1] + audio_frames.append((frame, type_)) + if type_ == 0: + is_all_silence = False + + if not self._is_running: + print('AudioInferenceHandler not running') + break + + if is_all_silence: + for i in range(batch_size): + if not self._is_running: + break + self.on_next_handle((None, mirror_index(length, index), audio_frames[i * 2:i * 2 + 2]), + 0) + index = index + 1 + else: + logger.info(f'infer======= {current_text}') + t = time.perf_counter() + img_batch = [] + # for i in range(batch_size): + for i in range(len(mel_batch)): + idx = mirror_index(length, index + i) + face = face_list_cycle[idx] + img_batch.append(face) + + # print('orign img_batch:', len(img_batch), 'origin mel_batch:', len(mel_batch)) + onnx_input = {'audio_seqs__0': mel_batch, } + onnx_names = [output.name for output in model_a.get_outputs()] + embeddings = model_a.run(onnx_names, onnx_input)[0] + + onnx_input = {"audio_embedings__0": embeddings, "img_seqs__1": img_batch} + onnx_names = [output.name for output in model_g.get_outputs()] + onnx_out = model_g.run(onnx_names, onnx_input)[0] + pred = onnx_out + + # onnxruntime_inputs = {"audio_seqs__0": mel_batch, } + # onnxruntime_names = [output.name for output in model_a.get_outputs()] + # embeddings = model_a.run(onnxruntime_names, onnxruntime_inputs)[0] + # + # onnxruntime_inputs = {"audio_embedings__0": embeddings, "img_seqs__1": img_batch} + # onnxruntime_names = [output.name for output in model_g.get_outputs()] + # + # start_model = time.time() + # onnxruntime_output = model_g.run(onnxruntime_names, onnxruntime_inputs)[0] + # end_model = time.time() + # pred = onnxruntime_output + + count_time += (time.perf_counter() - t) + count += batch_size + + if count >= 100: + logger.info(f"------actual avg infer fps:{count / count_time:.4f}") + count = 0 + count_time = 0 + + for res_frame in zip(pred): + if not self._is_running: + break + + self.on_next_handle( + (res_frame[0], mirror_index(length, index), audio_frames[i * 2:i * 2 + 2]), + 0) + index = index + 1 + logger.info(f'total batch time: {time.perf_counter() - start_time}') + else: + time.sleep(1) + break + logger.info('AudioInferenceHandler inference processor stop') + + def stop(self): + logger.info('AudioInferenceHandler stop') + self._is_running = False + self._exit_event.clear() + if self._run_thread.is_alive(): + logger.info('AudioInferenceHandler stop join') + self._run_thread.join() + logger.info('AudioInferenceHandler stop exit') + + def pause_talk(self): + print('AudioInferenceHandler pause_talk', self._audio_queue.size(), self._mal_queue.size()) + self._audio_queue.clear() + print('AudioInferenceHandler111') + self._mal_queue.clear() + print('AudioInferenceHandler222') diff --git a/human/audio_mal_handler.py b/human/audio_mal_handler.py index 53fc14b..679f27d 100644 --- a/human/audio_mal_handler.py +++ b/human/audio_mal_handler.py @@ -79,7 +79,7 @@ class AudioMalHandler(AudioHandler): mel = melspectrogram(inputs) # print(mel.shape[0],mel.shape,len(mel[0]),len(self.frames)) # cut off stride - left = max(0, self._context.stride_left_size * 80 / 50) + left = max(0, self._context.stride_left_size * 80 / self._context.fps) right = min(len(mel[0]), len(mel[0]) - self._context.stride_right_size * 80 / 50) mel_idx_multiplier = 80. * 2 / self._context.fps mel_step_size = 16 diff --git a/human/human_context.py b/human/human_context.py index cca030d..e76e8ad 100644 --- a/human/human_context.py +++ b/human/human_context.py @@ -4,12 +4,13 @@ import os from asr import SherpaNcnnAsr from eventbus import EventBus +from .audio_inference_onnx_handler import AudioInferenceOnnxHandler from .audio_inference_handler import AudioInferenceHandler from .audio_mal_handler import AudioMalHandler from .human_render import HumanRender from nlp import PunctuationSplit, DouBao from tts import TTSEdge, TTSAudioSplitHandle, TTSEdgeHttp -from utils import load_avatar, get_device, object_stop +from utils import load_avatar, get_device, object_stop, load_avatar_from_processed, load_avatar_from_256_processed logger = logging.getLogger(__name__) current_file_path = os.path.dirname(os.path.abspath(__file__)) @@ -17,8 +18,8 @@ current_file_path = os.path.dirname(os.path.abspath(__file__)) class HumanContext: def __init__(self): - self._fps = 50 # 20 ms per frame - self._image_size = 96 + self._fps = 25 # 20 ms per frame + self._image_size = 288 self._batch_size = 16 self._sample_rate = 16000 self._stride_left_size = 10 @@ -35,12 +36,19 @@ class HumanContext: self._device = get_device() print(f'device:{self._device}') - base_path = os.path.join(current_file_path, '..', 'face') - logger.info(f'_create_recognizer init, path:{base_path}') - full_images, face_frames, coord_frames = load_avatar(base_path, self._image_size, self._device) + base_path = os.path.join(current_file_path, '..') + logger.info(f'base path:{base_path}') + # full_images, face_frames, coord_frames = load_avatar(base_path, self._image_size, self._device) + # full_images, face_frames, coord_frames = load_avatar_from_processed(base_path, + # 'wav2lip_avatar3') + full_images, face_frames, coord_frames, align_frames, m_frames, inv_m_frames = load_avatar_from_256_processed( + base_path, 'wav2lip_avatar4', '26.pkl') self._frame_list_cycle = full_images self._face_list_cycle = face_frames self._coord_list_cycle = coord_frames + self._align_frames = align_frames + self._m_frames = m_frames + self._inv_m_frames = inv_m_frames face_images_length = len(self._face_list_cycle) logging.info(f'face images length: {face_images_length}') print(f'face images length: {face_images_length}') @@ -92,6 +100,14 @@ class HumanContext: def coord_list_cycle(self): return self._coord_list_cycle + @property + def align_frames(self): + return self._align_frames + + @property + def inv_m_frames(self): + return self._inv_m_frames + @property def render_handler(self): return self._render_handler diff --git a/human/human_render.py b/human/human_render.py index 87c1666..186ddbc 100644 --- a/human/human_render.py +++ b/human/human_render.py @@ -47,13 +47,8 @@ class HumanRender(AudioHandler): def _on_run(self): logging.info('human render run') while self._exit_event.is_set() and self._is_running: - # t = time.time() self._run_step() - # delay = time.time() - t - delay = 0.038 # - delay - # print(delay) - # if delay <= 0.0: - # continue + delay = 0.04 time.sleep(delay) logging.info('human render exit') @@ -64,11 +59,9 @@ class HumanRender(AudioHandler): if value is None: return res_frame, idx, audio_frames = value - # print('render queue size', self._queue.size()) if not self._empty_log: self._empty_log = True logging.info('render render:') - # print('voice render queue size', self._queue.size()) except Empty: if self._empty_log: self._empty_log = False diff --git a/models/__init__.py b/models/__init__.py index 1c144be..8b8b3be 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,3 +2,4 @@ from .wav2lip import Wav2Lip, Wav2Lip_disc_qual from .syncnet import SyncNet_color +from .wav2lip_v2 import Wav2LipV2 diff --git a/models/wav2lip.py b/models/wav2lip.py index ae5d691..0a4fb78 100644 --- a/models/wav2lip.py +++ b/models/wav2lip.py @@ -5,6 +5,7 @@ import math from .conv import Conv2dTranspose, Conv2d, nonorm_Conv2d + class Wav2Lip(nn.Module): def __init__(self): super(Wav2Lip, self).__init__() diff --git a/models/wav2lip_v2.py b/models/wav2lip_v2.py new file mode 100644 index 0000000..bf6cbd1 --- /dev/null +++ b/models/wav2lip_v2.py @@ -0,0 +1,221 @@ +import torch +from torch import nn +from .conv import Conv2dTranspose, Conv2d, nonorm_Conv2d + + +class Wav2LipV2(nn.Module): + def __init__(self): + super(Wav2LipV2, self).__init__() + + self.face_encoder_blocks = nn.ModuleList([ + nn.Sequential(Conv2d(6, 16, kernel_size=7, stride=1, padding=3)), + + nn.Sequential(Conv2d(16, 32, kernel_size=3, stride=2, padding=1), + Conv2d(32, 32, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(32, 32, kernel_size=3, stride=1, padding=1, residual=True)), + + nn.Sequential(Conv2d(32, 64, kernel_size=3, stride=2, padding=1), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True)), + + nn.Sequential(Conv2d(64, 128, kernel_size=3, stride=2, padding=1), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True)), + + nn.Sequential(Conv2d(128, 256, kernel_size=3, stride=2, padding=1), + Conv2d(256, 256, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(256, 256, kernel_size=3, stride=1, padding=1, residual=True)), + + nn.Sequential(Conv2d(256, 512, kernel_size=3, stride=2, padding=1), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2d(512, 512, kernel_size=3, stride=2, padding=1), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2d(512, 512, kernel_size=4, stride=1, padding=0), + Conv2d(512, 512, kernel_size=1, stride=1, padding=0)), ]) + + self.audio_encoder = nn.Sequential( + Conv2d(1, 32, kernel_size=3, stride=1, padding=1), + Conv2d(32, 32, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(32, 32, kernel_size=3, stride=1, padding=1, residual=True), + + Conv2d(32, 64, kernel_size=3, stride=(3, 1), padding=1), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), + + Conv2d(64, 128, kernel_size=3, stride=3, padding=1), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True), + + Conv2d(128, 256, kernel_size=3, stride=(3, 2), padding=1), + Conv2d(256, 256, kernel_size=3, stride=1, padding=1, residual=True), + + Conv2d(256, 512, kernel_size=3, stride=1, padding=0), + Conv2d(512, 512, kernel_size=1, stride=1, padding=0), ) + + self.face_decoder_blocks = nn.ModuleList([ + nn.Sequential(Conv2d(512, 512, kernel_size=1, stride=1, padding=0), ), + + nn.Sequential(Conv2dTranspose(1024, 512, kernel_size=4, stride=1, padding=0), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(1024, 512, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(1024, 512, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(512, 512, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(768, 384, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(384, 384, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(384, 384, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(512, 256, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(256, 256, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(256, 256, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(320, 128, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(128, 128, kernel_size=3, stride=1, padding=1, residual=True), ), + + nn.Sequential(Conv2dTranspose(160, 64, kernel_size=3, stride=2, padding=1, output_padding=1), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), + Conv2d(64, 64, kernel_size=3, stride=1, padding=1, residual=True), ), ]) + + self.output_block = nn.Sequential(Conv2d(80, 32, kernel_size=3, stride=1, padding=1), + nn.Conv2d(32, 3, kernel_size=1, stride=1, padding=0), + nn.Sigmoid()) + + def audio_forward(self, audio_sequences, a_alpha=1.): + audio_embedding = self.audio_encoder(audio_sequences) # B, 512, 1, 1 + if a_alpha != 1.: + audio_embedding *= a_alpha + return audio_embedding + + def inference(self, audio_embedding, face_sequences): + feats = [] + x = face_sequences + for f in self.face_encoder_blocks: + x = f(x) + feats.append(x) + + x = audio_embedding + for f in self.face_decoder_blocks: + x = f(x) + try: + x = torch.cat((x, feats[-1]), dim=1) + except Exception as e: + print(x.size()) + print(feats[-1].size()) + raise e + + feats.pop() + + x = self.output_block(x) + outputs = x + + return outputs + + def forward(self, audio_sequences, face_sequences, a_alpha=1.): + # audio_sequences = (B, T, 1, 80, 16) + B = audio_sequences.size(0) + + input_dim_size = len(face_sequences.size()) + if input_dim_size > 4: + audio_sequences = torch.cat([audio_sequences[:, i] for i in range(audio_sequences.size(1))], dim=0)#[bz, 5, 1, 80, 16]->[bz*5, 1, 80, 16] + face_sequences = torch.cat([face_sequences[:, :, i] for i in range(face_sequences.size(2))], dim=0)#[bz, 6, 5, 256, 256]->[bz*5, 6, 256, 256] + + audio_embedding = self.audio_encoder(audio_sequences) # [bz*5, 1, 80, 16]->[bz*5, 512, 1, 1] + if a_alpha != 1.: + audio_embedding *= a_alpha #放大音频强度 + + feats = [] + x = face_sequences + for f in self.face_encoder_blocks: + x = f(x) + feats.append(x) + + x = audio_embedding + for f in self.face_decoder_blocks: + x = f(x) + try: + x = torch.cat((x, feats[-1]), dim=1) + except Exception as e: + print(x.size()) + print(feats[-1].size()) + raise e + + feats.pop() + + x = self.output_block(x) #[bz*5, 80, 256, 256]->[bz*5, 3, 256, 256] + + if input_dim_size > 4: #[bz*5, 3, 256, 256]->[B, 3, 5, 256, 256] + x = torch.split(x, B, dim=0) + outputs = torch.stack(x, dim=2) + + else: + outputs = x + + return outputs + + +class Wav2Lip_disc_qual(nn.Module): + def __init__(self): + super(Wav2Lip_disc_qual, self).__init__() + + self.face_encoder_blocks = nn.ModuleList([ + nn.Sequential(nonorm_Conv2d(3, 32, kernel_size=7, stride=1, padding=3)), + + nn.Sequential(nonorm_Conv2d(32, 64, kernel_size=5, stride=(1, 2), padding=2), + nonorm_Conv2d(64, 64, kernel_size=5, stride=1, padding=2)), + + nn.Sequential(nonorm_Conv2d(64, 128, kernel_size=5, stride=2, padding=2), + nonorm_Conv2d(128, 128, kernel_size=5, stride=1, padding=2)), + + nn.Sequential(nonorm_Conv2d(128, 256, kernel_size=5, stride=2, padding=2), + nonorm_Conv2d(256, 256, kernel_size=5, stride=1, padding=2)), + + nn.Sequential(nonorm_Conv2d(256, 512, kernel_size=3, stride=2, padding=1), + nonorm_Conv2d(512, 512, kernel_size=3, stride=1, padding=1)), + + nn.Sequential(nonorm_Conv2d(512, 512, kernel_size=3, stride=2, padding=1), + nonorm_Conv2d(512, 512, kernel_size=3, stride=1, padding=1), ), + + nn.Sequential(nonorm_Conv2d(512, 512, kernel_size=3, stride=2, padding=1), + nonorm_Conv2d(512, 512, kernel_size=3, stride=1, padding=1), ), + + nn.Sequential(nonorm_Conv2d(512, 512, kernel_size=4, stride=1, padding=0), + nonorm_Conv2d(512, 512, kernel_size=1, stride=1, padding=0)), ]) + + self.binary_pred = nn.Sequential(nn.Conv2d(512, 1, kernel_size=1, stride=1, padding=0), nn.Sigmoid()) + self.label_noise = .0 + + def get_lower_half(self, face_sequences): #取得输入图片的下半部分。 + return face_sequences[:, :, face_sequences.size(2) // 2:] + + def to_2d(self, face_sequences): #将输入的图片序列连接起来,形成一个二维的tensor。 + B = face_sequences.size(0) + face_sequences = torch.cat([face_sequences[:, :, i] for i in range(face_sequences.size(2))], dim=0) + return face_sequences + + def perceptual_forward(self, false_face_sequences): #前传生成图像 + false_face_sequences = self.to_2d(false_face_sequences) #[bz, 3, 5, 256, 256]->[bz*5, 3, 256, 256] + false_face_sequences = self.get_lower_half(false_face_sequences)#[bz*5, 3, 256, 256]->[bz*5, 3, 128, 256] + + false_feats = false_face_sequences + for f in self.face_encoder_blocks: #[bz*5, 3, 128, 256]->[bz*5, 512, 1, 1] + false_feats = f(false_feats) + + return self.binary_pred(false_feats).view(len(false_feats), -1) #[bz*5, 512, 1, 1]->[bz*5, 1, 1] + + def forward(self, face_sequences): #前传真值图像 + face_sequences = self.to_2d(face_sequences) + face_sequences = self.get_lower_half(face_sequences) + + x = face_sequences + for f in self.face_encoder_blocks: + x = f(x) + + return self.binary_pred(x).view(len(x), -1) diff --git a/render/video_render.py b/render/video_render.py index 2b53137..91426bd 100644 --- a/render/video_render.py +++ b/render/video_render.py @@ -1,38 +1,23 @@ #encoding = utf8 import copy +import logging import time -from queue import Empty -from enum import Enum import cv2 import numpy as np from .base_render import BaseRender -from human.message_type import MessageType class VideoRender(BaseRender): def __init__(self, play_clock, context, human_render): super().__init__(play_clock, context, 'Video') self._human_render = human_render + self.index = 0 def render(self, frame, ps): - res_frame, idx, type_ = frame - - if type_ == 0: - combine_frame = self._context.frame_list_cycle[idx] - else: - bbox = self._context.coord_list_cycle[idx] - combine_frame = copy.deepcopy(self._context.frame_list_cycle[idx]) - y1, y2, x1, x2 = bbox - try: - res_frame = cv2.resize(res_frame.astype(np.uint8), (x2 - x1, y2 - y1)) - except: - print('resize error') - return - combine_frame[y1:y2, x1:x2, :3] = res_frame - - image = combine_frame - # image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) if self._human_render is not None: - self._human_render.put_image(image) + self._human_render.put_image(frame) + + # image = cv2.cvtColor(image, cv2.COLOR_BGRA2RGBA) + diff --git a/test/test_mzzsfy_tts.py b/test/test_mzzsfy_tts.py index f62c643..ecd3895 100644 --- a/test/test_mzzsfy_tts.py +++ b/test/test_mzzsfy_tts.py @@ -25,7 +25,7 @@ def download_tts(url): def __create_bytes_stream(byte_stream): stream, sample_rate = sf.read(byte_stream) # [T*sample_rate,] float64 - print(f'[INFO]tts audio stream {sample_rate}: {stream.shape}') + # print(f'[INFO]tts audio stream {sample_rate}: {stream.shape}') stream = stream.astype(np.float32) if stream.ndim > 1: diff --git a/tts/tts_edge_http.py b/tts/tts_edge_http.py index 84b5301..c3ad86a 100644 --- a/tts/tts_edge_http.py +++ b/tts/tts_edge_http.py @@ -79,15 +79,15 @@ class TTSEdgeHttp(TTSBase): def __create_bytes_stream(self, byte_stream): stream, sample_rate = sf.read(byte_stream) # [T*sample_rate,] float64 - print(f'[INFO]tts audio stream {sample_rate}: {stream.shape}') + logging.info(f'tts audio stream {sample_rate}: {stream.shape}') stream = stream.astype(np.float32) if stream.ndim > 1: - print(f'[WARN] audio has {stream.shape[1]} channels, only use the first.') + logging.warning(f'audio has {stream.shape[1]} channels, only use the first.') stream = stream[:, 0] if sample_rate != self._handle.sample_rate and stream.shape[0] > 0: - print(f'[WARN] audio sample rate is {sample_rate}, resampling into {self._handle.sample_rate}.') + logging.warning(f'audio sample rate is {sample_rate}, resampling into {self._handle.sample_rate}.') stream = resampy.resample(x=stream, sr_orig=sample_rate, sr_new=self._handle.sample_rate) return stream diff --git a/ui/pygame_ui.py b/ui/pygame_ui.py index de4e5dd..134b580 100644 --- a/ui/pygame_ui.py +++ b/ui/pygame_ui.py @@ -1,8 +1,12 @@ #encoding = utf8 +import copy import logging import os +import time from queue import Queue +import cv2 +import numpy as np import pygame from pygame.locals import * @@ -13,17 +17,54 @@ logger = logging.getLogger(__name__) current_file_path = os.path.dirname(os.path.abspath(__file__)) +def img_warp_back_inv_m(img, img_to, inv_m): + h_up, w_up, c = img_to.shape + mask = np.ones_like(img).astype(np.float32) + inv_mask = cv2.warpAffine(mask, inv_m, (w_up, h_up)) + inv_img = cv2.warpAffine(img, inv_m, (w_up, h_up)) + mask_indices = inv_mask == 1 + if 4 == c: + img_to[:, :, :3][mask_indices] = inv_img[mask_indices] + else: + img_to[inv_mask == 1] = inv_img[inv_mask == 1] + return img_to + + +def render_image(context, frame): + res_frame, idx, type_ = frame + + if type_ == 0: + combine_frame = context.frame_list_cycle[idx] + else: + bbox = context.coord_list_cycle[idx] + combine_frame = copy.deepcopy(context.frame_list_cycle[idx]) + af = context.align_frames[idx] + inv_m = context.inv_m_frames[idx] + y1, y2, x1, x2 = bbox + try: + t = time.perf_counter() + res_frame = cv2.resize(res_frame.astype(np.uint8), (x2 - x1, y2 - y1)) + af[y1:y2, x1:x2] = res_frame + combine_frame = img_warp_back_inv_m(af, combine_frame, inv_m) + except Exception as e: + logging.error(f'resize error:{e}') + return + + image = combine_frame + return image + + class PyGameUI: def __init__(self): self._human_context = None self._queue = None - self.screen_ = pygame.display.set_mode((800, 600), HWSURFACE | DOUBLEBUF | RESIZABLE) + self.screen_ = pygame.display.set_mode((1920, 1080), HWSURFACE | DOUBLEBUF | RESIZABLE) self.clock = pygame.time.Clock() background = os.path.join(current_file_path, '..', 'data', 'background', 'background.jpg') logger.info(f'background: {background}') self._background = pygame.image.load(background).convert() - self.background_display_ = pygame.transform.scale(self._background, (800, 600)) + self.background_display_ = pygame.transform.scale(self._background, (1920, 1080)) self._human_image = None self.running = True @@ -46,7 +87,10 @@ class PyGameUI: self.screen_.blit(self.background_display_, (0, 0)) self._update_human() if self._human_image is not None: - self.screen_.blit(self._human_image, (0, 0)) + self.screen_.blit(self._human_image, (760, -300)) + + fps = self.clock.get_fps() + pygame.display.set_caption('fps:{:.2f}'.format(fps)) pygame.display.flip() self.stop() pygame.quit() @@ -54,10 +98,18 @@ class PyGameUI: def _update_human(self): if self._queue.empty(): return + + if self._queue.qsize() > 5: + print('render queue is slower') + image = self._queue.get() + image = render_image(self._human_context, image) color_format = "RGB" if 4 == image.shape[2]: color_format = "RGBA" + image = cv2.cvtColor(image, cv2.COLOR_BGRA2RGBA) + else: + image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) self._human_image = pygame.image.frombuffer(image.tobytes(), image.shape[1::-1], color_format) diff --git a/utils/__init__.py b/utils/__init__.py index 3a9238c..2f3ca11 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -4,4 +4,5 @@ from .async_task_queue import AsyncTaskQueue from .sync_queue import SyncQueue from .utils import mirror_index, load_model, get_device, load_avatar, config_logging from .utils import read_image, object_stop +from .utils import load_avatar_from_processed, load_avatar_from_256_processed from .audio_utils import melspectrogram, save_wav diff --git a/utils/utils.py b/utils/utils.py index 28c3a19..eb307ba 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -1,6 +1,8 @@ #encoding = utf8 +import glob import logging import os +import pickle import cv2 import numpy as np @@ -9,7 +11,7 @@ from tqdm import tqdm from PIL import Image import face_detection -from models import Wav2Lip +from models import Wav2Lip, Wav2LipV2 logger = logging.getLogger(__name__) @@ -33,7 +35,6 @@ def read_images(img_list): frames = [] print('reading images...') for img_path in tqdm(img_list): - print(f'read image path:{img_path}') # frame = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) frame = Image.open(img_path) frame = np.array(frame) @@ -143,7 +144,7 @@ def get_device(): def _load(checkpoint_path): - device = get_device + device = get_device() if device == 'cuda': checkpoint = torch.load(checkpoint_path) else: @@ -153,7 +154,7 @@ def _load(checkpoint_path): def load_model(path): - model = Wav2Lip() + model = Wav2LipV2() print("Load checkpoint from: {}".format(path)) logging.info(f'Load checkpoint from {path}') checkpoint = _load(path) @@ -169,7 +170,7 @@ def load_model(path): def load_avatar(path, img_size, device): print(f'load avatar:{path}') - face_images_path = path + face_images_path = os.path.join(path, 'face') face_images_path = read_files_path(face_images_path) full_list_cycle = read_images(face_images_path) @@ -185,6 +186,71 @@ def load_avatar(path, img_size, device): return full_list_cycle, face_frames, coord_frames +def load_avatar_from_processed(base_path, avatar_name): + avatar_path = os.path.join(base_path, 'data', 'avatars', avatar_name) + print(f'load avatar from processed:{avatar_path}') + coord_path = os.path.join(avatar_path, 'coords.pkl') + print(f'load avatar_path from processed:{avatar_path}') + face_image_path = os.path.join(avatar_path, 'face_imgs') + print(f'load face_image_path from processed:{face_image_path}') + full_image_path = os.path.join(avatar_path, 'full_imgs') + print(f'load full_image_path from processed:{full_image_path}') + + with open(coord_path, 'rb') as f: + coord_list_frames = pickle.load(f) + + face_image_list = glob.glob(os.path.join(face_image_path, '*.[jpJP][pnPN]*[gG]')) + face_image_list = sorted(face_image_list, key=lambda x: int(os.path.splitext(os.path.basename(x))[0])) + face_list_cycle = read_images(face_image_list) + + full_image_list = glob.glob(os.path.join(full_image_path, '*.[jpJP][pnPN]*[gG]')) + full_image_list = sorted(full_image_list, key=lambda x: int(os.path.splitext(os.path.basename(x))[0])) + frame_list_cycle = read_images(full_image_list) + + return frame_list_cycle, face_list_cycle, coord_list_frames + + +def jpeg_to_png(image): + min_green = np.array([50, 100, 100]) + max_green = np.array([70, 255, 255]) + + hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV) + mask = cv2.inRange(hsv, min_green, max_green) + mask_not = cv2.bitwise_not(mask) + green_not = cv2.bitwise_and(image, image, mask=mask_not) + b, g, r = cv2.split(green_not) + + # todo 合成四通道 + image = cv2.merge([b, g, r, mask_not]) + return image + + +def load_avatar_from_256_processed(base_path, avatar_name, pkl): + avatar_path = os.path.join(base_path, 'data', 'avatars', avatar_name, pkl) + print(f'load avatar from processed:{avatar_path}') + + with open(avatar_path, "rb") as f: + avatar_data = pickle.load(f) + + face_list_cycle = [] + frame_list_cycle = [] + coord_list_frames = [] + align_frames = [] + m_frames = [] + inv_m_frames = [] + + frame_info_list = avatar_data['frame_info_list'] + for frame_info in tqdm(frame_info_list): + face_list_cycle.append(frame_info['img']) + frame_list_cycle.append(jpeg_to_png(frame_info['frame'])) + coord_list_frames.append(frame_info['coords']) + align_frames.append(frame_info['align_frame']) + m_frames.append(frame_info['m']) + inv_m_frames.append(frame_info['inv_m']) + + return frame_list_cycle, face_list_cycle, coord_list_frames, align_frames, m_frames, inv_m_frames + + def config_logging(file_name: str, console_level: int = logging.INFO, file_level: int = logging.DEBUG): file_handler = logging.FileHandler(file_name, mode='a', encoding="utf8") file_handler.setFormatter(logging.Formatter(