
Lumora
AI 뷰티 DNA · Y2K 필터 카메라
Lumora는 셀피 한 장으로 피부·헤어·메이크업·스타일을 종합 분석하는 'Beauty DNA' 리포트와 Y2K/프리쿠라 감성 필터 카메라를 결합한 iOS AI 카메라 앱입니다. FaceParsing·RMBG·Real-ESRGAN·StableLLVE·LaMa·MiDaS 등 10종의 온디바이스 CoreML/TFLite 모델을 구동해 실시간 피부 점수·세그멘테이션·업스케일·저조도 보정을 처리하고, 무거운 생성형 변환(연령 변환·헤어 컬러·의상 교체 등)은 AWS API Gateway 백엔드로 위임하는 하이브리드 구조로 설계됐습니다. 카메라 라이브 프리뷰는 BBMetalImage 기반 Metal 파이프라인과 커스텀 셰이더로 GPU 가속하며, Clean Architecture(Domain/Data/Presentation/Infrastructure) 4계층 위에 319개 Swift 파일로 구성된 대규모 코드베이스입니다.
분산된 '뷰티 앱 7종'을 일일이 쓰는 대신, 셀피 한 장으로 피부·헤어·메이크업·스타일을 하나의 공유 가능한 리포트로 통합하고, 클라우드 비용이 드는 무거운 AI 변환과 즉시 처리되는 온디바이스 보정을 자동으로 분리해 속도와 비용을 동시에 잡습니다.
앱 미리보기
무엇을 할 수 있나요
Beauty DNA 리포트
셀피 한 장으로 종합 점수와 피부·헤어·메이크업·스타일 4개 섹션을 생성하고, 언더톤·계절(spring/summer/autumn/winter) 기반 퍼스널 컬러 카드까지 함께 제공합니다. 전용 SkinReportView·HairReportView·MakeupReportView·StyleReportView로 섹션을 구성하며 BeautyReportPDFGenerator로 PDF/공유 카드를 내보내 바이럴 공유를 유도합니다.
AI 피부 점수 엔진
Vision 얼굴 검출 → ROI 크롭 → CoreML(FaceParsing) 피부 세그멘테이션 → CIELAB 색상 + 텍스처 분석을 거쳐 0~100 점수를 온디바이스에서 산출합니다. 단일 점수가 아니라 얼굴 영역별 가중 점수(scoreByRegions)로 세분화하고, 시뮬레이터는 cpuOnly·실기기는 cpuAndGPU로 computeUnits를 분기하며 히스토리 추적·주간 리포트를 제공합니다.
Y2K · 프리쿠라 필터 카메라
Sweet·Y2K·Sugar·Aqua·Retro 5종 스타일을 순수 CoreImage CIFilter 체인(블룸·그레인·크로마틱 애버레이션·비네트)으로 백엔드 호출 없이 즉시 적용합니다. 모든 합성이 온디바이스에서 이뤄져 코인 차감 없이 무제한 사용할 수 있습니다.
실시간 Metal 뷰티 카메라
BBMetalImage 기반 Metal 파이프라인으로 라이브 프리뷰에 필터를 GPU 가속 적용하고, 커스텀 bilateralFilter.metal 셰이더로 피부 스무딩을 실시간 처리합니다. 다중 화면비(풀스크린·4:3·16:9)와 전·후면 전환, 정점/프래그먼트 셰이더 기반 렌더링을 지원합니다.
온디바이스 바디 리쉐이핑
PoseNet으로 신체 키포인트를 검출한 뒤 leg_stretch.metal·waist_shrink.metal 커스텀 Metal 셰이더로 다리 길이·허리 라인을 GPU에서 워핑합니다. TallerUseCase·SlimWaistUseCase·LegModifyUseCase로 도메인 단위 분리되어 서버 호출 없이 즉시 보정됩니다.
AI 사진 복원 & 화질 향상
Real-ESRGAN 512·SRResNet으로 업스케일하고 StableLLVE로 저조도 사진을 복원하며, LaMa(LaMaFP16_512)로 오브젝트를 자연스럽게 지웁니다(object erase/inpainting). RMBG는 배경 제거, MiDaS Swin2 Tiny는 깊이 추정을 담당해 대부분의 복원 파이프라인을 온디바이스에서 처리합니다.
생성형 AI 스튜디오
연령 변환·성별 스왑·헤어 컬러 체험·의상 교체·가상 메이크업·미소 생성·카툰화 등 20여 종의 변환을 제공하며, 연산이 무거운 추론은 Base64 JPEG 페이로드로 AWS API Gateway(120초 타임아웃)에 위임합니다. 각 변환은 AgeTransform·GenderSwap·HairColorTryOn·ClothesChange 등 UseCase로 캡슐화됩니다.
BeautyCoin 크레딧 & 구독
StoreKit 2(Transaction.currentEntitlements/updates async)로 소비형 코인과 프리미엄 구독을 운영하며, 작업별 코인 차감과 lifetimeEarned/lifetimeSpent 추적, 거래 내역 대시보드를 갖춘 인앱 경제를 구성합니다. 코인 잔액은 BeautyCoinAPIClient로 서버와 동기화되어 서버 추론 비용을 사용량과 연동합니다.
어떻게 만들었나요
Language
On-device CV / ML
Graphics / Camera
UI
Backend / Cloud
Commerce
Platform Services
Clean Architecture 4계층(Domain·Data·Presentation·Infrastructure)에 UseCase·Repository 패턴을 적용하고, 온디바이스 CoreML/Metal 처리와 서버 생성형 AI를 분리한 하이브리드 처리 구조를 채택했습니다. 29개 UseCase와 6개 Repository로 도메인을 캡슐화하고, Infrastructure 계층에 CoreML·ImageProcessing·AWS·Point 서비스를 모듈화했습니다.
- 1
하이브리드 AI 라우팅: 즉시 처리가 필요한 피부 분석·Y2K 필터·바디 리쉐이핑은 온디바이스 CoreML/Metal로, 연산이 무거운 생성형 변환은 AWS API Gateway 백엔드(ap-northeast-2, 120초 타임아웃, Base64 JPEG 페이로드)로 위임합니다.
- 2
온디바이스 모델 스택: FaceParsing(세그멘테이션)·RMBG(배경 제거)·Real-ESRGAN/SRResNet(업스케일)·StableLLVE(저조도 복원)·LaMa(인페인팅)·MiDaS(깊이)·PoseNet(자세) 등 10종 모델을 Infrastructure/CoreML 계층에 모아 단일 책임으로 래핑했습니다.
- 3
온디바이스 CV 파이프라인: Vision 얼굴 검출 → ROI 크롭 → CoreML 세그멘테이션 → CIELAB 색상·텍스처 분석을 거치는 다단계 피부 점수 엔진을 영역별 가중 점수까지 산출하도록 설계하고, 디바이스/시뮬레이터에 따라 computeUnits를 분기합니다.
- 4
Metal GPU 가속: BBMetalImage 라이브 카메라 파이프라인과 커스텀 Metal 셰이더(bilateralFilter, leg_stretch, waist_shrink)로 실시간 피부 스무딩과 바디 리쉐이핑을 전적으로 GPU에서 처리합니다.
- 5
UseCase 단위 분리: Beauty·Body·AI·Skin·Coin·Auth 도메인별로 29개 UseCase를 protocol 기반으로 분리하고, 데이터 접근을 6개 Repository(AITransform·Auth·BeautyCoin·HipEditing·ImageProcessing·SkinAnalysis) 추상화 뒤에 캡슐화해 테스트·교체 용이성을 확보했습니다.
- 6
코인 기반 인앱 경제: StoreKit 2 async/await로 소비형 코인과 구독을 로드·검증하고, 작업별 코인 차감과 lifetimeEarned/lifetimeSpent 추적을 BeautyCoinAPIClient로 서버 동기화해 서버 추론 비용을 사용량과 연동합니다.
- 7
AWS 인증·동기화 계층: Cognito 기반 사용자 인증과 S3 업로드, CloudSyncService를 Infrastructure/Service/AWS에 모듈화해 인증·스토리지·결제 서버 연동을 카메라/AI 도메인과 분리했습니다.
319
Swift 파일
10
온디바이스 모델
92
ViewController
29
UseCase
6
Repository
4
커스텀 Metal 셰이더
20+
AI 변환 도구
5
Y2K 필터 스타일



