
네컷사진 찍고 싶은데 나가긴 귀찮아서, 브라우저 네컷 부스를 만들었어요
웹캠으로 4컷 찍으면 AI가 배경까지 바꿔주는데, 사진이 기기 밖으로 한 발짝도 안 나가는 완전 프론트엔드 포토부스예요.
자랑 포인트
- 사진이 기기 밖으로 안 나가요 — 촬영·AI 누끼·최종 합성까지 전부 브라우저 안에서. 서버도 API 키도 없는 완전 프론트엔드예요.
- 실시간 세그멘테이션 대신 캡처된 정지 4컷에만 RMBG-1.4 누끼를 돌려서, 촬영은 부드럽고 배경 교체 퀄은 살렸어요.
- 웹캠이 없어도 내장 샘플 인물로 4컷·배경합성·프레임을 바로 미리보기. 권한을 거부해도 폴백으로 체험돼요.
네컷사진 찍으러 가끔 나가는데, 매번 부스 앞에 줄 서 있고 한 번에 몇천 원씩 나가더라고요. 집에서 웹캠으로 그냥 찍으면 안 되나 싶어서 주말에 붙잡고 만든 게 이 네컷 부스입니다.

처음엔 단순하게 생각했어요. 웹캠 켜고 네 번 찰칵하면 끝 아니야? 근데 진짜 부스 느낌을 내려니까 사소한 데서 발목이 잡히더라고요. 카운트다운 없이 그냥 찍으니 포즈 잡을 새도 없이 찍혀서 다 어정쩡하게 나오고, 컷 사이에 텀이 없으니 네 장이 거의 똑같은 표정이 됐어요. 그래서 3·2·1 카운트다운에 플래시 효과를 넣고 컷 사이에 포즈 바꿀 시간을 끼워 넣으니 그제서야 "아 이게 부스지" 싶었습니다. 마음에 안 드는 컷만 골라서 다시 찍는 것도 넣었고요.
제일 고생한 건 AI 배경 교체였어요. 처음엔 욕심내서 웹캠 영상에 실시간으로 누끼를 따려고 했는데, 이게 프레임마다 사람을 분리하는 거라 노트북이 비명을 지르고 화면이 뚝뚝 끊겼습니다. 몇 번 갈아엎다가 방향을 틀었어요. 라이브 화면은 가벼운 웹캠 그대로 두고, 무거운 누끼는 촬영이 끝난 정지 4컷에만 딱 한 번씩 돌리는 거죠. 모델은 브라우저 안에서 도는 RMBG-1.4를 썼고, WebGPU가 되는 환경이면 그걸로, 안 되면 WASM으로 알아서 떨어지게 했어요. 이렇게 나누고 나니 촬영은 부드럽고 배경 교체 퀄은 살아서, 단색이나 그라데이션은 물론 배경흐림 아웃포커스에, 내가 올린 이미지로 통째 교체까지 됩니다.

여기까지 되니까 또 욕심이 나서 필름·웜톤·쿨톤·흑백 같은 감성 필터에, 세로 스트립과 2×2 그리드 레이아웃, 프레임 색이랑 하트·별 스티커, 캡션까지 붙였어요. 라이브 프리뷰에 보이는 필터랑 최종 저장본 필터가 미묘하게 달라서 한참 헤맸는데, 결국 합성·필터·누끼 배경합성을 DOM 안 타는 순수 함수로 다 빼내서 같은 파이프라인을 태우는 걸로 정리했습니다. 덤으로 샘플 이미지로 스트립 해상도랑 실제 누끼가 잘 도는지 자동으로 확인하는 스모크 테스트도 하나 걸어놨어요.

제일 신경 쓴 부분은 사진이 어디로도 안 나간다는 거예요. 서버도 없고 API 키도 없어서 촬영이든 누끼든 최종 합성이든 전부 브라우저 안에서만 돌아갑니다. 최초 한 번 모델 가중치만 CDN에서 받고, 그다음부턴 사진이 기기 밖으로 안 나가요. 얼굴 들어가는 앱이라 이건 타협하기 싫었습니다.
무료에 무설치, 워터마크도 없으니 프사 바꿀 때나 친구랑 놀 때 편하게 써보세요. 웹캠 없으면 상단 샘플 미리보기만 눌러도 4컷·배경합성·프레임이 바로 돌아갑니다.
만들면서, 브라우저에서 이 정도 무거운 AI 모델이 생각보다 잘 도는 게 새삼 신기했어요. 직접 써보고 이상한 점이나 있었으면 하는 기능 있으면 편하게 알려주세요!