Google Colab을 사용해 나만의 Face Swap 애플리케이션 만들기

발행: (2026년 1월 19일 오후 02:37 GMT+9)
6 min read
원문: Dev.to

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 노트북 만들기

  1. Google Colab을 엽니다.
  2. 새 노트북을 만들고 이름을 **FaceSwap.ipynb**로 바꿉니다.
  3. 런타임 유형이 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

일반적으로 설치되는 패키지:

  • insightface
  • onnxruntime (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 – 브라우저에서 애플리케이션 테스트하기

  1. 시크릿(Incognito) 창을 열거나 다른 기기를 사용합니다.
  2. Pinggy public URL을 붙여넣고 Enter Site를 누릅니다.

UI 사용하기

  1. Drop image heretarget 이미지(배경)를 업로드합니다.
  2. 교체하고 싶은 얼굴이 포함된 source 이미지를 업로드합니다.
  3. Analyse를 클릭합니다 – 시스템이 얼굴을 감지하고 개수를 표시합니다.
  4. Swap을 클릭합니다 – 얼굴 교체가 수행됩니다.
  5. 교체된 결과가 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.

참고 문헌

Back to Blog

관련 글

더 보기 »

Backrooms 탈출

Escape the Backrooms는 Fancy Games가 개발하고 Secret Mode가 퍼블리싱한 1인칭 호러 어드벤처 게임입니다. 28개가 넘는 주요 플레이 가능한 레벨을 특징으로 합니다, va...