FaceSwap은 사진 혹은 비디오에 있는 얼굴을 인식(Recognize)하여, 얼굴 부분을 바꾸어주는(Swap) Deep Learning 기술 기반의 Software이다. 흔히 DeepFakes와 동일한 의미로 언급되는 라이브러리의 이름이기도 하다. 지금은 다양한 Face Manipulation 기술들이 DeepFakes라는 대명사로 불리는 경우가 많은데, FaceSwap에서 제시된 기술이 기본적인 DeepFakes의 기술적 방법론과 같다.
Computer Vision 기술에 대한 깊은 지식이 없어도, FaceSwap 프로그램을 다운로드 받아서 사용하는 것은 매우 간단하다. 그렇기 때문에 Fake Video들이 자연스럽게 양산될 수 있기 때문에, 올바른 윤리 의식을 갖추는 것이 중요하다. 기본적으로 FaceSwap의 GitHub에서는 다음과 같은 문구들을 따르도록 제시하고 있다.
1) FaceSwap is not for creating inappropriate content.
2) FaceSwap is not for changing faces without consent or with the intent of hiding its use.
3) FaceSwap is not for any illicit, unethical, or questionable purposes.
4) FaceSwap exists to experiment and discover AI techniques, for social or political commentary, for movies, and for any number of ethical and reasonable uses.
쉽게 말하면, 비윤리적인 목적으로 FaceSwap을 이용하지 말라는 소리이다. 비윤리적으로 사용되는 다양한 사례들은 이미 뉴스에서 수차례 언급된 적이 있으므로 생략하겠다. 아무튼 저자는 최근에 AI Security 및 Privacy 파트의 논문도 많이 Follow-up 하고 있는데, DeepFakes로 발생하는 Privacy Concern에 관심이 많아서 실험을 몇 번 해보았다.
일단 사용자 친화적인 FaceSwap Software는 다음의 경로에서 설치할 수 있다.
▶ FaceSwap 다운로드: https://faceswap.dev/download/
일반적인 Computer Vision 실습과는 다르게, FaceSwap GUI 프로그램은 GPU 환경이 갖추어진 윈도우나 Mac OS에서 실습하는 것이 편할 것이다. 터미널 기반의 Linux와 비교했을 때 사진이나 동영상을 옮기고 쉽게 실행할 수 있기 때문이다.

기본 설정 그대로 설치를 진행하면 된다.

이 때 자신의 그래픽 카드(Graphic Card) 환경에 맞게 설치를 진행한다. 저자는 AMD GPU를 사용하고 있기 때문에 이를 선택했다. 자신의 컴퓨터의 그래픽 카드 정보를 확인하고자 할 때는 [장치 관리자]를 열어서 자신이 사용하고 있는 그래픽 카드 드라이버를 확인하면 된다.
또한 기본적으로 아나콘다(Anaconda) 개발환경이 갖추어져 있어야 한다. 만약에 Python 및 Conda 환경이 구축되지 않았다면 Conda 환경부터 구축하자.
▶ Anaconda 환경 구축: https://ndb796.tistory.com/355
아무튼 FaceSwap의 설치는 매우 간단하다.

[Install] 버튼을 눌러 설치를 마쳤다.


설치 이후에는 FaceSwap이 설치된 폴더로 이동하여 python faceswap.py gui 명령으로 소프트웨어를 실행할 수 있다.

다만, 이 때 자신의 그래픽 카드 환경 및 설치된 파이썬 패키지에 따라서 오류가 발생할 수 있다. 저자는 PlaidML 라이브러리가 없어서 오류가 발생하였다. 따라서 저자의 경우 pip install plaidml-keras 명령을 통해 필요한 라이브러리를 설치하라는 오류 메시지를 확인할 수 있었다. 그래서 pip install plaidml-keras plaidbench로 라이브러리를 설치하였다.
이후에 plaidml-setup 명령으로 환경 설정을 진행하면 된다. 다만, 다음과 같이 [WinError 126] 메시지와 함께 오류가 발생할 수 있다.

이는 저자가 글을 쓸 당시에 존재하던 PlaidML의 버전 문제로, 다음과 같이 PlaidML 삭제 및 구버전으로 재설치하여 해결할 수 있었다.
pip uninstall plaidml
pip uninstall plaidml-keras
pip uninstall plaidbench
pip install plaidml==0.6.4
아무튼 이제 다시 plaidml-setup 명령으로 설정을 진행하자. 몇 가지를 물어보는데, 다음과 같이 Yes로 답을 진행하면 된다.
Q. Enable experimental GPU support? y
Q. Default device? 1 : opencl_amd_tahiti.0
Q. Save settings to C:Users\.plaidml? y

이후에 setx KERAS_BACKEND plaidml.keras.backend를 입력한 뒤에 Shell Prompt를 껐다가 다기 실행하자. 또한 FaceSwap의 requirements.txt 폴더에는 필요한 라이브러리들이 명시되어 있다. 따라서 그냥 pip install -r requirements.txt 명령으로 추가적으로 필요한 라이브러리를 모두 설치하자.

이후에 다시 python faceswap.py gui 명령으로 FaceSwap을 실행해보자. PlaidML을 위한 설정은 성공적으로 마쳤으나, 여전히 오류가 발생하고 있다. FaceSwap은 기본적으로 TensorFlow를 이용하여 학습을 진행하기 때문에, TensorFlow가 설치되어 있어야 하는 것이다.

따라서 이러한 오류가 발생하는 경우 pip install tensorflow명령으로 tensorflow를 설치할 수 있다. 다만, 저자의 경우 버전 호환 문제로 TensorFlow 2.0 이상 버전을 설치했을 때는 오류가 발생했다. 따라서 저자는 pip install tensorflow==1.14.0로 설치하였다.

설치가 완료된 이후에 다시 python faceswap.py gui를 입력하여 실행하면 정상적으로 FaceSwap 소프트웨어가 구동된다.

정상적으로 동작이 되는 것을 확인한 이후에는 Tutorial 가이드 문서를 읽어 보면서 사용 방법을 익혀보도록 하자.
▶ Extraction: https://forum.faceswap.dev/viewtopic.php?f=5&t=27
▶ Training: https://forum.faceswap.dev/viewtopic.php?f=6&t=146
상당히 내용이 잘 정리되어 있기 때문에 이 내용들을 꼼꼼히 읽어보는 것을 추천한다.
출처: https://ndb796.tistory.com/356 [안경잡이개발자]
번호 | 분류 | 제목 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 유머 | 🚨(뉴비필독) 전체공지 & 포인트안내 13 | 2024.11.04 | 27138 |
공지 | 이슈 | URL만 붙여넣으면 끝! 임베드 기능 | 2025.01.21 | 21442 |
380383 |
자살시도하는 사람을 구하는 전세계 119대원들의 활약
![]() |
2025.06.26 | 21 | |
380382 |
중국인들이 PC방에서 게임하는 방법
![]() ![]() |
2025.06.26 | 14 | |
380381 | 유머 |
김민석 청문회 상황
![]() ![]() |
2025.06.26 | 64 |
380380 | 이슈 |
소변 본 뒤...콧물처럼 길게 늘어지는 분비물의 정체
3 ![]() |
2025.06.26 | 58 |
380379 | 유머 |
징역 3년 선고에 법원 앞에서 울분을 참지 못하시는 아버지
![]() ![]() |
2025.06.26 | 55 |
380378 | 팁/유용/추천 |
자궁암 명의 리스트
![]() ![]() |
2025.06.26 | 49 |
380377 | 팁/유용/추천 |
우리집에는 아들이 둘 입니다. 내 아들과 시어머니의 아들.jpg
![]() ![]() |
2025.06.26 | 52 |
380376 | 기사/뉴스 |
경실련 "이재명 정부, 쪽집게 규제 말고 집값 잡는 정책 추진하라"
![]() ![]() |
2025.06.26 | 52 |
380375 | 유머 |
광어 1인분 시켰는데 매운탕거리 20인분 보낸 횟집
![]() ![]() |
2025.06.26 | 72 |
380374 | 이슈 |
올데이 프로젝트 FAMOUS / WICKED 멜론 탑백 피크
![]() ![]() |
2025.06.26 | 56 |
380373 | 이슈 |
aespa 에스파 'Dirty Work' MV Teaser ➫ 2025.06.27 1PM (KST)
![]() ![]() |
2025.06.26 | 52 |
380372 | 정보 |
네이버페이 15원+6원+1원 추가
1 ![]() |
2025.06.26 | 65 |
380371 |
바쁘니까 웹툰 볼 시간도 없다
2 ![]() |
2025.06.26 | 71 | |
380370 | 유머 |
방송국 인터뷰 의심하는 일본녀
![]() |
2025.06.25 | 74 |
380369 | 유머 |
교사인데 오늘 진짜 마음 울렁울렁함..
![]() |
2025.06.25 | 82 |
380368 | 유머 |
간단히 뇌 고장내는 방법
![]() |
2025.06.25 | 71 |
380367 | 유머 |
미국 비대면 재판중 현타 온 재판관 ㄷㄷ
![]() |
2025.06.25 | 82 |
380366 | 유머 |
ㅇㅎ?) 인스타의 목적
![]() |
2025.06.25 | 80 |
380365 | 유머 |
한국에 놀러온 일본 썸녀
![]() |
2025.06.25 | 68 |
380364 | 유머 |
한국영화 역사상 2번째 천만 영화
![]() |
2025.06.25 | 89 |
380363 | 유머 |
카톡 유출됐다는 김종민 ㅋㅋㅋ
![]() |
2025.06.25 | 75 |
380362 | 유머 |
저속노화 얘기 하던 의사 근황
![]() |
2025.06.25 | 82 |
380361 | 유머 |
남자 상사한테 좀 대드니까 페미취급을 하네
![]() |
2025.06.25 | 80 |
380360 | 유머 |
깝죽거리다 참교육 당함
![]() |
2025.06.25 | 79 |
380359 | 유머 |
미국한테 오히려 미군기지 사용료를 받아야 한다는 한국 언론사
![]() |
2025.06.25 | 61 |
380358 | 유머 |
고아새끼 파혼당함.bilnd
![]() |
2025.06.25 | 77 |
380357 | 유머 |
새벽에 시급 10만원에 공동묘지 청소 가능?
![]() |
2025.06.25 | 73 |
380356 | 유머 |
요즘 아이들 집중력 수준...
![]() |
2025.06.25 | 75 |
380355 | 유머 |
인터뷰 도중 말문이 막힌 다큐3일 촬영팀
![]() |
2025.06.25 | 79 |
380354 | 유머 |
ㅅㅅ중 가슴이 만져지는 것에 대한 일본 여성들 반응
![]() |
2025.06.25 | 68 |