60초 이내에 구현하는 9가지 아트 스타일: Inithouse의 Pet Imagination 엔지니어링 노트
요약
Pet Imagination 서비스가 9가지 다양한 아트 스타일을 60초 이내에 구현하기 위해 채택한 엔지니어링 전략을 다룹니다. 스타일별 전용 프롬프트 파이프라인 구축과 인퍼런스 속도 최적화를 위한 인프라 및 클라이언트 측 전처리 방식을 설명합니다.
핵심 포인트
- 단일 프롬프트 대신 스타일별 전용 프롬프트와 파라미터 세트 사용
- 사용자 이탈 방지를 위해 생성 시간을 60초 미만으로 유지
- GPU 콜드 스타트 방지를 위한 웜 인퍼런스 엔드포인트 운영
- 업로드 시간 단축을 위한 클라이언트 측 이미지 전처리 적용
Pet Imagination은 반려동물 사진을 60초 이내에 9가지의 뚜렷한 아트 스타일로 처리합니다. 회원가입도, 대기열도 없습니다. 여기 엔지니어링 관점에서의 파이프라인 모습과 사용 데이터가 사람들이 실제로 스타일을 어떻게 선택하는지에 대해 알려준 내용이 있습니다.
9가지 스타일과 하나의 프롬프트로 처리하지 않는 이유
Pet Imagination의 9가지 스타일은 Renaissance (르네상스), Watercolor (수채화), Anime (애니메이션), Sketch (스케치), Sheriff (보안관), Wizard (마법사), Astronaut (우주비행사), Final Boss (최종 보스), 그리고 Blocky (블록 형태)입니다.
초기에는 스타일 파라미터만 교체하여 단일 프롬프트 템플릿(single prompt template)을 통해 모든 스타일을 실행하려고 시도했습니다. 결과는 전반적으로 평범했습니다. Renaissance 초상화에는 강한 키아로스쿠로(chiaroscuro, 명암법) 조명과 세밀한 직물 렌더링이 필요합니다. Blocky 초상화에는 날카로운 기하학적 구조와 평면적인 색상 채우기(flat color fills)가 필요합니다. 하나의 프롬프트에 이 두 가지를 모두 처리하도록 요청하는 것은 어느 쪽도 제대로 보이지 않음을 의미했습니다.
그래서 우리는 파이프라인을 분리했습니다. 이제 각 스타일은 고유의 프롬프트 구조, 고유의 네거티브 프롬프트(negative prompt) 세트, 그리고 조정된 추론 파라미터(inference parameters)를 가집니다. Renaissance는 털 질감과 의상 요소의 미세한 디테일을 보존하기 위해 더 많은 디퓨전 단계(diffusion steps)와 더 높은 가이던스 스케일(guidance scale)을 할당받습니다. Blocky는 결과물이 과하게 처리되지 않고 단순화된 그래픽 상태를 유지하도록 더 적은 단계와 더 낮은 스케일을 할당받습니다. Anime는 선(linework)과 과장된 특징에 추가적인 강조를 두어 그 중간 정도의 설정을 가집니다.
트레이드오프(tradeoff)는 유지보수 비용입니다. 하나 대신 아홉 개의 구성을 사용한다는 것은 기본 모델을 변경하거나 전처리(preprocessing)를 업데이트할 때마다 테스트해야 할 프롬프트 세트가 아홉 개라는 것을 의미합니다. 하지만 전용 파이프라인과 일반적인 파이프라인 사이의 시각적 품질 차이는 즉각적으로 분명하게 나타났습니다. 우리는 별도의 구성을 배포했으며, 스타일별 품질은 그 이후로 유지되고 있습니다.
생성 시간을 60초 미만으로 유지하는 방법
목표는 인프라의 제약이 아닌 제품 측면에서의 결정이었습니다. 초기 프로토타입을 측정했을 때, 약 90초를 넘어가면 눈에 띄는 이탈(dropoff)이 발생한다는 것을 발견했습니다. 사람들은 사진을 업로드하고, 진행 표시기를 바라보다가 페이지를 떠나버렸습니다. 60초 미만으로 유지함으로써 대부분의 사용자가 결과가 나올 때까지 기다리게 만들 수 있었습니다.
세 가지 결정이 우리를 그 상태로 유지해 줍니다.
웜 인퍼런스 엔드포인트 (Warm inference endpoints). GPU 인스턴스의 콜드 스타트 (Cold starts)는 응답 시간을 늦추는 주범입니다. 우리는 트래픽 패턴에 따라 확장되는 웜 인스턴스 (Warm instances) 풀을 유지합니다. 미국의 오전 시간대와 유럽의 저녁 시간대는 예측 가능한 급증 구간입니다. 이 시간대 외에는 소규모의 상시 풀 (Standing pool)이 기본 트래픽을 처리합니다.
클라이언트 측 전처리 (Preprocessing on the client side). 사진이 서버에 도달하기 전, 브라우저에서 입력값을 크기 조정(Resize)하고 정규화(Normalize)합니다. 1,200만 화소의 휴대폰 카메라 사진은 업로드 전에 일관된 해상도로 변환됩니다. 이는 업로드 시간을 단축하고 인퍼런스 (Inference) 지속 시간을 더 예측 가능하게 만듭니다.
온디맨드 렌더링 (Render on demand), 저해상도 미리보기. 사용자가 스타일을 선택하면, 해당 스타일 하나에 대해서만 전체 해상도의 초상화를 생성합니다. 하지만 9가지 옵션을 모두 보여주는 미리보기 그리드 (Preview grid)는 병렬 배치 호출 (Parallel batch call)로 렌더링된 저해상도 썸네일 (Thumbnails)을 사용합니다. 무거운 생성 작업은 누군가가 실제로 탭한 스타일에 대해서만 발생합니다.
사용자들이 실제로 선택하는 것
우리는 르네상스 (Renaissance) 스타일이 압도적일 것이라고 예상했습니다. 내부 테스트에서 가장 "프리미엄"하게 보였기에 그리드의 첫 번째 자리에 배치했습니다. 성능은 좋았지만, 가장 일관되게 선택된 스타일은 애니메이션 (Anime)인 것으로 나타났습니다. 반려동물 주인들은 자신의 동물을 양식화되고 표현력이 풍부한 버전으로 만드는 것을 선호합니다. 골든 리트리버의 커다란 눈과 깔끔한 선 처리는 확실히 다른 느낌을 줍니다.
블록형 (Blocky) 스타일도 특히 고양이의 경우 또 다른 놀라움을 주었습니다. 덩어리진 픽셀 스타일의 기하학적 구조 (Geometry)는 얼굴 윤곽이 뚜렷한 고양이들에게 특히 잘 어울립니다.
전반적으로 가장 적게 선택된 스타일은 스케치 (Sketch)입니다. 우리의 가설은 이렇습니다. 스케치는 일반적인 사진 필터처럼 보인다는 것입니다. 사용자들은 눈에 보이는 변화를 원합니다. 그들은 자신의 반려동물이 원본의 연필 트레이싱 (Pencil trace)이 아니라, 그림이나 캐릭터처럼 보이기를 원합니다. 단순한 보정 (Enhancement)을 기대하고 온 것이 아닙니다.
이 데이터는 우리가 선택기(picker)를 배치하는 방식을 결정했습니다. Anime를 첫 번째 가시적 위치로 옮겼고, Renaissance를 두 번째로 유지했으며, Sketch는 뒤쪽으로 회전시켜 배치했습니다. 작은 레이아웃 변경이었지만, 가장 매력적인 옵션들이 첫 번째 줄에 놓이자마 "스타일 선택"에서 "초상화 생성"까지의 완료율(completion rate)이 눈에 띄게 상승했습니다.
다른 제품에 적용한 사항
우리는 Inithouse에서 여러 이미지 및 미디어 제품을 구축하고 있습니다. Pet Imagination 파이프라인 작업은 오래된 가족 사진에 생명력을 불어넣는 사진-to-비디오 애니메이터인 Ziva Fotka의 결정에 직접적인 영향을 미쳤습니다.
Ziva Fotka에서도 동일한 아키텍처적 질문이 있었습니다. 하나의 범용 애니메이션 파이프라인을 사용할 것인가, 아니면 모드별(mode-specific) 파이프라인을 사용할 것인가의 문제였습니다. Pet Imagination의 품질 데이터는 제품을 출시하기 전에 답을 명확하게 해주었습니다. 사용자가 결과물을 직접 확인할 수 있는 경우, 전문화된 방식(Specialized)이 범용 방식(Generic)을 압도합니다. 우리는 Ziva Fotka의 처리 경로(processing paths)를 조기에 분리함으로써 재작업(rewrite)을 피할 수 있었습니다.
또 다른 전이 가능한 교훈은, 사용자가 업로드한 이미지를 처리하는 모든 제품에서 클라이언트 측 전처리(client-side preprocessing)에 초기 엔지니어링 투자를 할 가치가 있다는 점입니다. 업로드의 가변성(휴대폰 카메라, 스크린샷, 스캔된 인쇄물)은 예측 불가능한 처리 시간의 가장 큰 원인입니다. 입력을 조기에 정규화(Normalize)하면 나머지 파이프라인이 훨씬 더 일관되게 작동합니다.
수치
- 9가지 아트 스타일, 각 스타일마다 전용 추론(inference) 설정 적용
- 생성 목표: 표준 업로드 기준 60초 미만
- 가장 많이 선택된 스타일: Anime (Renaissance보다 지속적으로 앞섬)
- 가장 적게 선택된 스타일: Sketch
- Blocky 스타일은 고양이 주인들 사이에서 비정상적으로 인기가 높음
Pet Imagination은 무료 AI 반려동물 초상화 생성기입니다. 사진을 업로드하고, 스타일을 선택하면, 작품을 얻을 수 있습니다. 계정은 필요하지 않습니다.
우리는 Inithouse에서 제품을 만들며 배운 것들에 대해 글을 씁니다. inithouse.com 포트폴리오에서 더 많은 엔지니어링 노트를 확인하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기