머신러닝,딥러닝

Faceswap 설치하기 과정 기록 - Extract and Alignments

mcdn 2023. 4. 25. 16:23
반응형

https://faceswap.dev//

Free Opensource Faceswap을 사용해보자. 

 

 

Faceswap 설치하기 윈도우 버전

https://forum.faceswap.dev/viewtopic.php?t=20 

 

설치되는데 약 19분 걸렸다

 

 

 

 

Faceswap Extract 사용해보기 

 

배경화면에 설치된 face swap 버튼을 눌러서 실행하면 

위와 같은 앱 화면이 나온다. 

 

 

https://faceswap.dev/#content

위에서 Install 다음으로 extraction가이드를 클릭해서 따라갔다. 

 

 

https://forum.faceswap.dev/viewtopic.php?f=25&t=27

 

설정 거의 안 건드리고, 

인풋 파일과 아웃파일위치 (output dir에 사진이 수백장들어가니까 새 폴더를 지정해주자)

detector, aligner, masker, normalization만 가장 가벼운거 위주로 선택했다. 

 

설정 다 선택하고 

맨 밑에 extract 누르면 시작한다. 

 

 

14초 짜리 영상인데 페이즈가 4단계로

Detect 단계가 약 15분 정도 걸린다. 

 

Align단계가 5분 정도 걸린다.

 

 

마스크는 한개 골랐더니 30초 정도 걸린다. 

 

 

마스크 페이즈가 하나 더 있는데 이건 2분 20초 정도 걸린다. 

 

최종적으로 14초 영상에 25분 정도 걸린다는 것을 알 수 있다. 

 

 

'

아웃풋 폴더에 이렇게 사진이 그대로 크롭되니까 새폴더를 Output dir로 지정하는것이 좋을것 같다. 

 

그리고 사진 사이에 .fsa 형식의 alignments 정보도 있다. 

 

alignments file은 이런 정보를 담고 있다. 

 

 

- 각 프레임마다 얼굴위치 

- 68 포인트 랜드마크 각 프레임마다 위치 

- components extended mask for each frame 

- small jpgthumbnail of the aligned face ? 

 

텍스트 파일로 열어보려고 했지만, 깨져서 특수한 방식이 아니면 읽기는 힘든 것 같다.

 

 

 

Sort

 

'

나는 매 프레임마다 정면 얼굴만 담는 아주 쉬운 비디오로 제작했지만 

사실 다른 영상에서는 detector가 얼굴이 아닌걸 가져올 수도 있다. 

여기서 face가 아닌 걸 정리하는 것을 "cleaning" 단계라고 부른다. 

 

sort를 하면 face를 subfolder 단위로 바꾸고 (같은사람얼굴을) 

필요없는 얼굴들은 폴더 자체를 통쨰로 지우면 된다.

 

이 정도만 바꾸고 맨 밑에 Sort를 누르니까

 

 

15초 + 1분해서 2분 정도 걸린다.

 

 

같은 사람이어도 얼굴 각도에 따라 또 다르다!! 

 

 

이제 각 폴더에 남은 애들을 부모 폴더(또는 원본 폴더로 옮긴다)

왜냐하면 원본 파일에는 사진들이 또 사라짐 

 

 

 

 

Remove face를 제거한거에 맞게 alignment file 다시 수정

방금 하면서 

얼굴 아닌 파일들은 삭제했으니까 이에 맞게 alignment.fsa 파일을 수정해야 한다. 

 

 

위처럼 옵션 설정하고 돌린다. 

 

조심할 점은 faces folder 안에 alignment folder에 같은 이름의 alignments.fsa를업데이트한다는것이다.!!! 

 

original file은 _date_time이 이어지는 이름으로 backup 된다!

 

 

만약 manual하게 고치고 싶으면?

 

1분도 안 지나서 새창이 열리면서

 

 

alignment를 수정할 수 있다 

 

이런식으로 점 하나하나도 alignment를 수정해볼 수 있다. 

 

세이브 버튼 눌러서 저장하면 된다. 

 

세이브가 1~2분 정도 걸렸는데  

이렇게 원래 탭에서 console 터미널창에 .fsa에 저장 완료 하면오케이. 

 

 

A backup of your alignments file will have been created each time you saved during manual adjustment. If you are happy that your new alignments file is correct, you can delete these backups. They will be located in the same folder as the original alignments file.

 

백업파일이 같은 경로에 매번 생겨난다!! new alignment로 충분한 것 같으면 _date_time이붙는이름들의 파일들을 제거하면 된다 

 

 

마지막으로 Alignments 다시 한번 꺼내기!!

 

만약 alignment를 수정했다면 Neural network mask를 다시 만들어야 한다. 

왜냐하면 alignment가바뀌면 nn mask 들이 유효하지 않고 프로세스가 이를 제거하기 때문이다. 

따라서 다시 만들어야 한다. 

 

기존 사진들이 있는 파일은 제거하고 (삭제)

새로운 폴더를 지정해서 (삭제했으면 기존 빈 폴더도 사용해도 된다)

Alignments를 돌리면~

 

이렇게 처음에 얼굴꺼낸것 처럼 alignment 반영한 extracted faces들이 나온다. 

다만 이때는 .fsa가 안나오니 주의.

 

여기서 사진을 더 적게 뽑고 싶다면 

Extract Every N 숫자를 크게 하면 된다.

 

원래 1에서 15로 값을 수정했더니 

기존 443장에서 29장으로 줄었다.

반응형