Google Colab을 사용해 나만의 Face Swap 애플리케이션 만들기
Source: Dev.to
Goal: 전체가 Google Colab 노트북(CPU 전용)에서 실행되는 완전한 얼굴 교환 애플리케이션을 구축하고 UI를 공개합니다.
이 가이드는 **FaceSwap.ipynb**라는 단일 노트북에서 작업할 것을 전제로 합니다.
Google Colab에서 CPU‑Only를 사용하는 이유
- GPU/TPU를 활성화할 필요가 없습니다 – InsightFace 모델이 가볍기 때문에 CPU 추론만으로 충분합니다.
- 설정이 간단합니다: CUDA 드라이버나 추가 구성 없이 바로 사용할 수 있습니다.
- ONNX Runtime이 자동으로 CPU 실행으로 전환됩니다.
팁: 런타임 유형을 CPU로 유지하세요 (런타임 → 런타임 유형 변경 → 하드웨어 가속기 → 없음).
전제 조건
- Google Colab에 접근할 수 있는 Google 계정
- 노트북 셀에서 쉘 명령에 대한 기본적인 이해
- 얼굴 교환 테스트를 위한 몇 개의 샘플 이미지
Step 1 – 새 Colab 노트북 만들기
- Google Colab을 엽니다.
- 새 노트북을 만들고 이름을 **
FaceSwap.ipynb**로 바꿉니다. - 런타임 유형이 CPU인지 확인합니다 (위의 팁을 참고).
Step 2 – Face‑Swap UI 저장소 복제
%cd /content
!rm -rf face-swap-ui
!git clone https://github.com/TheMasterFX/face-swap-ui.git
이 작업이 수행하는 내용
- 웹 UI, 백엔드 로직 및 얼굴 처리 스크립트를 다운로드합니다.
- 모든 파일은
/content/face-swap-ui에 배치됩니다.
Step 3 – 얼굴 교환 모델 수동 다운로드
!mkdir -p /root/.insightface/models
!wget -O /root/.insightface/models/inswapper_128.onnx \
https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx
- InsightFace가 기대하는 디렉터리를 생성합니다.
inswapper_128.onnx를 로컬에 저장하여 반복적인 온라인 다운로드를 방지합니다.
Step 4 – 필수 종속성 설치
%cd /content/face-swap-ui
!pip install --upgrade pip
!pip install -r requirements.txt
일반적으로 설치되는 패키지:
insightfaceonnxruntime(CPU 버전)- UI‑관련 라이브러리 (예:
gradio,opencv-python) - 기타 이미지‑처리 도구
단계 5 – 필요한 패치 수정 적용
수정 1 – 로컬 모델 로드 강제
!sed -i "s|get_model('inswapper_128.onnx'.*|get_model('/root/.insightface/models/inswapper_128.onnx', download=False)|" face_swap_ui.py
UI가 모델을 다운로드하려고 시도하는 대신 로컬 경로에서 로드하도록 보장합니다.
수정 2 – 대소문자 구분 문제 해결
!sed -i "s/Label=/label=/g" face_swap_ui.py
Linux 파일 시스템은 대소문자를 구분합니다; 이로써 레이블 이름을 일치시킵니다.
수정 3 – UI 레이아웃 문제 해결
!sed -i "s/\.style(height=400)//g" face_swap_ui.py
공개 브라우저 세션에서 렌더링을 깨뜨릴 수 있는 하드코딩된 높이를 제거합니다.
Step 6 – Pinggy 터널 설치 및 구성
Pinggy는 노트북의 로컬 서버로 트래픽을 전달하는 공개 URL을 생성합니다.
!pip install pinggy
import pinggy
tunnel = pinggy.start_tunnel(forwardto="localhost:7860")
print("Public URLs:", tunnel.urls)
- 생성된 공개 URL을 복사하세요; 이를 사용해 브라우저 어디서든 UI에 접근할 수 있습니다.
Step 7 – Face‑Swap 애플리케이션 시작
!python face_swap_ui.py
- 서버가 초기화됩니다 (CPU에서 몇 초 정도 걸림).
- 이 셀을 계속 실행 상태로 유지하세요; UI는 앞서 출력된 Pinggy URL에서 제공됩니다.
Step 8 – 브라우저에서 애플리케이션 테스트하기
- 시크릿(Incognito) 창을 열거나 다른 기기를 사용합니다.
- Pinggy public URL을 붙여넣고 Enter Site를 누릅니다.
UI 사용하기
- Drop image here – target 이미지(배경)를 업로드합니다.
- 교체하고 싶은 얼굴이 포함된 source 이미지를 업로드합니다.
- Analyse를 클릭합니다 – 시스템이 얼굴을 감지하고 개수를 표시합니다.
- Swap을 클릭합니다 – 얼굴 교체가 수행됩니다.
- 교체된 결과가 UI에 바로 표시됩니다.
🎉 이제 Google Colab에서 CPU 전용 얼굴 교체 데모가 완전히 작동하며, 공개 URL을 통해 어디서든 접근할 수 있습니다. 즐거운 교체 되세요!
UI
성능 참고 사항
Since this setup runs on CPU only:
- Image‑based face swaps work smoothly.
- Processing may take a few seconds per swap.
- Video face swapping is slower and not recommended for long videos.
결론
Building a Face Swap application on Google Colab using CPU is a practical and accessible way to experiment with AI‑powered image processing. You avoid local setup issues while still getting a fully functional web UI.
With a public tunnel, this setup becomes ideal for:
- Demos
- Proof of concepts
- Learning computer‑vision workflows
- Sharing experiments with others
You can extend this further by adding video support, batch processing, or custom UI features.