홍우진의 개발 일기장
DeepFakeLive 사용법과 DeepFaceLab 학습 모델 적용법 본문
DeepFakeLive를 그냥 사용한다면 기본으로 제공되는 여러 셀러브리티의 얼굴만 적용이 가능하지만
DeepFakeLab으로 학습한 모델을 Live에 삽입한다면 여러 얼굴을 삽입이 가능하다.
이번 글에서는 Live 사용법과 동시에 Lab을 이용한 커스텀 방법까지 간단하게 정리하였다.
※ Lab과 Live가 동시에 등장하니 헷갈리지 않도록 주의해야 한다.
※ 딥페이크 기술을 악용하는것은 불법이다. 학습용으로만 사용하길 바란다.
사전 준비
1. DeepFaceLab 프로그램 다운로드
https://github.com/iperov/DeepFaceLab
위의 깃허브 사이트에서
메가 링크를 클릭하고
'DeepFaceLab_DirectX12' 를 다운받고 설치한다.
2. DeepFaceLive 프로그램 다운로드
https://github.com/iperov/DeepFaceLive
위의 깃허브 사이트에서
메가 링크를 클릭한다.
엔비디아 그래픽카드를 사용한다면 NVIDIA build 프로그램을 다운받고
아니라면 DirectX12 build 를 다운받고 설치한다.
3. GPU 설정 변경
설정 - 시스템 - 디스플레이 - 그래픽 설정에서
하드웨어 가속 GPU 일정 예약을 켬 으로 바꾼다.
4. 그래픽카드 드라이버 변경
만약 엔비디아 그래픽카드를 사용한다면 GeForce Experience를 다운받은 후 그래픽카드 드라이버를 GameReady 드라이버에서 STUDIO 드라이버로 변경해야한다.
제작과정
DeepFaceLab
먼저 DeepFaceLab을 사용하여 Live에 적용할 얼굴을 학습시킨다.
1. 데이터 준비
workspace 폴더 안에 있는 예제 파일을 새로운 파일로 변경한다.
Live에 적용할 얼굴 동영상 = data_src
배경 얼굴 동영상 = data_dst
배경 얼굴 동영상은 Live를 사용 할 것이기 때문에 크게 중요하지는 않지만 좋은 결과물을 뽑으려면 Live를 적용할 사람이 있는 배경 동영상이 있어야한다.
2. 이미지 추출
파일 두개를 실행한다.
엔터를 치면 기본값이 자동으로 설정 되기 때문에 계속 엔터를 치면 된다.
data_dst폴더와 data_src폴더 안에 프레임단위로 쪼개진 사진 파일이 저장된다.
3. src 이미지에서 얼굴 추출
data_src faceset extract를 실행하고 enter를 계속 누른다.
data_src/aligned 위치에 얼굴이 추출된 파일이 저장된다.
4. 추출한 얼굴 정렬
data_src sort를 실행하고 enter를 누른다.
기본값인 [5] histogram similarity가 선택된다.
data_src/aligned 위치에서 얼굴이 이상하게 추출된 사진이 없는지 확인한 후 제거한다.
• 선택사항
data_src util faceset enhance 실행.
퀄리티를 높이기 위한 요소이고 소요시간은 평균 20분이다.
5. faceset pack
data_src util faceset pack을 실행한 후 엔터.
6. dst 이미지에서 얼굴 추출
src에서 했던 방법대로 똑같이 한다.
data_dst faceset extract를 실행한 후 엔터.
7. 추출한 사진 정렬
data_dst sort를 실행한 후 엔터.
마찬가지로 기본값인 [5] histogram similarity가 선택된다.
8. faceset pack
data_dst util faceset pack을 실행한 후 엔터.
9. 학습
train SAEHD룰 실행한다.
실행한 후 엔터를 많이 누르면 학습이 진행된다.
학습하는 모습
s - 중간저장
p - 미리보기 업데이트
space - 미리보기 테마 변경
enter - 학습 종료
적당히 학습되었다 싶을 때 엔터를 누르고 종료하면 된다.
본인은 기본적으로 2~ 4시간 정도를 돌렸지만 밤새 돌리는 경우가 대부분이라고 한다.
10. export
Live에 얼굴을 적용하기 위해서는 dfm 파일이 필요하다.
dfm으로 export해준다.
그러면 model 폴더 안에 dfm 파일이 생성된다.
DeepFaceLive
이제 DeepFaceLive를 사용한다.
1. 파일 실행
설치한 폴더에 간 후 bat 파일을 실행한다.
2. 캠 연결
Device index에서 캠을 선택한다.
2-1. 비디오파일 사용 (옵션)
live를 사용하지 않고 비디오파일을 사용한다면
File source에서 비디오파일을 선택한다.
3. Face detector
Detector와 Device를 선택한다.
Device는 GPU를 사용하는것이 좋다.
4. Face marker
Face marker와 Device를 선택한다.
5. 학습시킨 모델 불러오기
Face swapper에서 모델과 디바이스를 선택한다.
기본 모델을 사용한다면 모델 중 원하는 모델을 선택하면 된다.
우리는 Lab으로 학습한 모델을 사용 할 것이기 때문에 우선 눈 모양을 클릭한다.
클릭하면 폴더가 나오는데 그 안에 이전에 lab에서 추출하였던 dfm 파일을 삽입한다.
그리고 model에서 학습한 파일을 선택한다.
6. Output
Stream output에서 Merged frame을 선택 후 window를 클릭하면 결과물을 확인 할 수 있다.
이번 정리글에서는 적용하는 방법만 간단하게 정리하였지만 Live에서 여러 값을 조정하면 최적의 결과물을 뽑을 수 있다.
'머신러닝 & 딥러닝' 카테고리의 다른 글
Deepfake 생성을 위한 DeepFaceLab 간단 사용법 (26) | 2023.01.11 |
---|