GeneFace++ 디지털 휴먼 데모
GeneFace++: 보편적이고 안정적인 실시간 오디오 기반 3D 대화 얼굴 생성 기술
이 튜토리얼은 여러분을 위해 관련 환경을 구축했습니다. 개인화된 디지털 인간을 생성하려면 다음 단계만 따르면 됩니다.
1. 프로젝트 소개

GeneFace는 오디오를 통해 3D 얼굴 합성, 입술 읽기, 음성 비디오를 구동할 수 있습니다. 다양한 아웃오브도메인 오디오에 대응하여 자연스러운 결과를 생성할 수 있는 일반적이고 고충실도 NeRF 기반 화자 생성 방법입니다. 구체적으로, GeneFace는 방대한 립싱크 데이터에서 변형 동작 생성기를 학습하고 도메인 적응형 후처리 네트워크를 도입하여 결과를 보정합니다. 광범위한 실험을 통해 GeneFace의 접근 방식이 이전 방식보다 더 일반적이고 충실도가 높은 말하는 얼굴 생성을 달성한다는 것이 입증되었습니다.
2. 데모 실행 방법
비디오 튜토리얼 참조:[제로파운데이션+보모레벨] 디지털 복제인간 제작 전과정 공개, 하드웨어 요구사항 없이 클릭 한 번으로 누구나 배울 수 있는 디지털 아바타 튜토리얼 GeneFace++
1. 웹사이트에 접속하세요
컨테이너를 시작한 후 API 주소를 클릭하여 웹 인터페이스로 들어갑니다.

2. 웹사이트를 종료하세요
웹사이트를 실행하는 터미널을 입력하세요 Ctrl + C
이로써 웹사이트 운영이 종료됩니다. 터미널 페이지가 닫혀 있으면 작업 공간의 왼쪽 탭에서 두 번째 항목을 선택하면 닫힌 터미널 페이지를 검색할 수 있습니다.
봄 여름 시즌
터미널에서 프로그램이 실행 중이면 다른 명령을 실행할 수 없습니다. 현재 프로그램을 종료하거나 새 터미널을 열어 다른 명령을 실행할 수 있습니다.
3. 개인화된 모델 운영 방법 교육
다음은 이미지와 링크의 위치를 변경하지 않고도 내용이 깔끔하고 이해하기 쉽도록 구성된 마크다운 문서입니다.
1. 준비
자신만의 디지털 휴먼 비디오를 준비하세요. 훈련된 비디오가 자동으로 잘리기 때문에 비디오 너비와 높이는 정사각형으로 하는 것이 좋습니다. 512 * 512
크기. 비디오 크기가 다른 경우 잘라낸 후 검은색 가장자리가 나타날 수 있습니다. 검은색 모서리가 너무 크면 학습 효과에 영향을 미칩니다. 비디오 형식은 다음과 같아야 합니다. mp4
비디오를 웹페이지 왼쪽 하단에 있는 업로드 영역으로 끌어다 놓아 업로드하세요.
메모:
- 영상 제목에는 중국어 문자가 포함되어서는 안 됩니다.
- 비디오 배경은 깔끔하고 불필요한 요소가 없어야 하며, 단색 배경이 바람직합니다. 배경 요소가 너무 많거나 복잡하면 배경 추출이 실패할 수 있습니다.
- 영상 속 얼굴은 선명해야 하며 사진의 주요 부분을 차지해야 합니다. 반신 영상 대신 어깨 위의 클로즈업 영상을 사용하는 것이 좋습니다. 그렇지 않으면 얼굴이 흐릿해집니다.
샘플 화면은 다음과 같습니다⬇️
훈련 매개변수 권장 사항
적절한 수의 훈련 단계를 선택하세요. 50,000단계 이상이 권장됩니다. 참고 시간은 다음과 같습니다.
- 프로젝트에서 제공한 샘플 영상(5월):
영상은 약 4분 길이이고, 데이터 세트를 만드는 데 약 1시간이 걸립니다. 단일 모델을 50,000단계로 훈련하는 데는 약 1시간이 걸립니다.
전반적인 훈련에는 두 개의 모델을 만드는 것이 필요하며, 총 2~3시간 정도 소요됩니다. - 비디오 길이 권장 사항:
영상은 3~5분 길이여야 합니다. 영상이 너무 짧으면 오랜 시간 훈련하더라도 좋은 결과를 얻기 어렵습니다. 영상이 너무 길면 학습 시간이 길어집니다.
훈련 진행 상황
터미널에서 다음 명령을 실행하면 훈련 진행 상황을 볼 수 있습니다. bash tail -f app.log
이 영상은 훈련되었습니다!라는 메시지가 표시됩니다. 훈련이 완료되었습니다!
모델 학습 결과
교육이 완료된 후에는 다음을 수행할 수 있습니다. torso model ckpt path or directory
비디오와 관련된 두 개의 폴더를 찾으세요( motion2video_nerf
예배 규칙서). 선택하다 videoid_torso
폴더에 있는 모델을 사용할 준비가 되었습니다.
메모:
- 오른쪽의 처음 두 모델을 선택해야 합니다. 그렇지 않으면 기본 모델이 사용됩니다.
- 첫 번째 모델은 사운드-제스처 변환 모델입니다.
audio2motion_vae
.의 모델입니다.- 머리 모델이 몸통에서 선택된 경우 오류가 보고될 수 있습니다.
Inference ERROR: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!!
훈련된 모델을 사용하여
이미 훈련된 모델이 있다면 비슷한 폴더 구조에 넣어서 바로 사용할 수 있습니다.
2. 재교육
모델을 훈련하는 전체 과정은 데이터 세트 생성, 머리 모델 훈련, 어깨 모델 훈련으로 요약할 수 있습니다. 예상치 못한 중단으로 인해 프로세스의 일부를 반복하거나 처음부터 다시 시작해야 하는 상황을 피하기 위해 코드는 완료된 단계를 완료되는 대로 기록합니다. 동일한 이름의 비디오에 대해서는 이전에 수행된 단계는 건너뛰고, 마지막으로 완료되지 않은 단계가 바로 수행됩니다.
새로운 단계 수로 모델을 다시 훈련하려면 훈련된 폴더 두 개를 삭제하기만 하면 됩니다. 다음 명령을 실행하여 모델 폴더를 삭제할 수 있습니다. 어깨 모델만 다시 훈련하고 싶다면 몸통 폴더만 삭제하면 됩니다.
rm -r /openbayes/home/geneface_out/checkpoints/motion2video_nerf/把这里换成你的视频名称_head
rm -r /openbayes/home/geneface_out/checkpoints/motion2video_nerf/把这里换成你的视频名称_torso
4. 데이터 정리
재교육을 계획하지 않으면 데이터 세트를 정리할 수 있습니다. 다음 스크립트를 실행하면 데이터 세트의 모든 데이터를 정리하여 공간을 절약할 수 있습니다. 데이터 세트를 생성하는 데는 시간이 오래 걸리므로 삭제하기 전에 신중하게 생각해야 합니다. 비디오 이름에 접미사를 입력하지 마세요 mp4
.
/output/clear_video_data.sh 你的视频名称
비디오의 모든 데이터를 완전히 지우려면 다음 스크립트를 실행하세요.
/output/clear_video_data.sh/output/clear_all_data.sh 你的视频名称
5. 폴더 구조 소개
새로운 비디오를 학습하면 다음 파일과 폴더가 geneface_out 아래에 생성됩니다. 여기서 VIDEO_ID는 비디오의 이름입니다.
- geneface_out
-- binary
--- videos
---- {VIDEO_ID}
----- trainval_dataset.npy # 制作好的数据集,推理和训练的时候都用它
--processed #生成数据集过程中存放数据的文件夹
--- videos
---- {VIDEO_ID} # 从视频中提取的所有数据都在这,制作好数据集(即上面的 trainval_dataset.npy)后就没用了
-- raw
--- videos
---- {VIDEO_ID}.mp4 # 存放着你上传的视频的 512*512 版本,制作好数据集后就不需要了
-- view_check # 用于访问 checkpoints 的软链接
-- checkpoints
--- motion2video_nerf # 存放训练好的模型数据
---- {VIDEO_ID}_head
---- {VIDEO_ID}_torso