Amazon Nova Canvas: Virtual Try-on & Style Options 출시
아마존에서 오랜만에 흥미로운 기술이 나왔다. Amazon은 Nova Canvas를 통해 AI 이미지 생성 경험을 크게 향상시키는 Virtual Try-on 과 Style Options 등 두 가지 신기능을 공개했다. 특히, GenAI Startup 들에게 많은 영감을 줄 수 있는 기능이라서 노트를 정리해 보겠다.
1. 가상 피팅 (Virtual Try-on)
- 입력 이미지 2장만으로 시뮬레이션 가능 -> 사용자 or 공간 이미지 + 상품 이미지 (의류, 가구 등)
- AI 기반 합성: 착용/배치 후의 현실적인 모습을 자동으로 생성
- 특징
- 자연스러운 피팅, 드레이핑, 조명 및 배경 일관성
- 전자상거래, 홈데코, 뷰티, AR 쇼핑에 최적화된 몰입형 경험 제공
2. 가상 피팅 (Virtual Try-on) 실습 예제
-
가상 피팅 실습 로직
- 현재 Nova Canvas는 이미지 생성 기반 API이며,
boto3
기반으로 호출함 - 가상 피팅은 2장의 이미지를 입력(사용자 이미지 + 아이템 이미지)으로 업로드한 후, API를 통해 결과를 얻는 방식
- 현재 Nova Canvas는 이미지 생성 기반 API이며,
-
사전 준비
-
AWS CLI 인증 완료 (
aws configure
) -
boto3
설치pip install boto3
-
이미지 파일 2개 준비
user_image.jpg
: 인물 또는 공간 이미지item_image.png
: 옷, 가구 등 합성 대상 이미지 (배경 제거된 PNG 권장)
-
-
Virtual Try-on 예제 소스
import boto3 import base64 # Bedrock runtime 클라이언트 client = boto3.client(service_name="bedrock-runtime", region_name="us-east-1") # 이미지 파일 Base64 인코딩 def encode_image(file_path): with open(file_path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8") # 이미지 로드 user_img_base64 = encode_image("user_image.jpg") item_img_base64 = encode_image("item_image.png") # Nova Canvas Virtual Try-on 프롬프트 구성 payload = { "inputImage": user_img_base64, "overlayImage": item_img_base64, "taskType": "VIRTUAL_TRY_ON", "parameters": { "outputResolution": "1024x1024", "prompt": "Realistic try-on with natural lighting and fit" } } # Bedrock에서 제공하는 Nova Canvas 모델 ID model_id = "amazon.nova-canvas-v1" # API 호출 response = client.invoke_model( modelId=model_id, body=bytes(str(payload), encoding="utf-8"), contentType="application/json", accept="application/json" ) # 결과 이미지 디코딩 및 저장 result = response["body"].read() output = eval(result) # JSON string to dict # Base64 디코딩하여 저장 output_image_data = base64.b64decode(output["images"][0]) with open("virtual_tryon_result.jpg", "wb") as f: f.write(output_image_data) print("Virtual Try-on 이미지가 생성되었습니다: virtual_tryon_result.jpg")
- 주의 사항
- 현재 Nova Canvas는 Bedrock 콘솔에서 사용자 인터페이스를 통해 Virtual Try-on 기능을 체험할 수 있으며, API는 preview 상태일 수 있음
taskType
,inputImage
,overlayImage
등의 필드는 실제 Nova Canvas에서 정의한 스펙에 맞게 조정해야 함
- 주의 사항
3. 스타일 옵션 (Style Options)
- 매번 프롬프트 입력 없이 지정한 스타일 유지 가능
- 현재 지원되는 8가지 아트 스타일:
- 3D Animated Family Film
- Design Sketch
- Flat Vector Illustration
- Graphic Novel Illustration
- Maximalism
- Midcentury Retro
- Photorealism
- Soft Digital Painting
4. Nova Canvas API를 활용해 ‘Style Options’ 기능 구현
-
정의: Amazon Bedrock의 Nova Canvas API를 활용해 ‘Style Options’ 기능 중 ‘Photorealism’ 스타일을 적용하여 이미지를 생성
-
목적
- 입력 프롬프트에
Photorealism
스타일을 적용하여 일관된 결과 생성 - Bedrock의
amazon.nova-canvas-v1
모델을 사용
- 입력 프롬프트에
-
사전 준비
-
AWS 계정에서 Bedrock 권한 활성화
-
Bedrock 모델이 배포된 리전 사용 (
us-east-1
,ap-northeast-1
,eu-west-1
) -
패키지 설치
pip install boto3
-
-
Style Option: Photorealism 코드
import boto3 import json import base64 # AWS Bedrock Runtime 클라이언트 초기화 client = boto3.client("bedrock-runtime", region_name="us-east-1") # 또는 ap-northeast-1 (도쿄) # Nova Canvas 모델 ID model_id = "amazon.nova-canvas-v1" # 이미지 생성 요청 payload payload = { "taskType": "TEXT_TO_IMAGE", "textToImageParams": { "text": "A futuristic living room with panoramic windows and smart furniture", "style": "PHOTOREALISM", # Style Option 설정 "cfgScale": 7.5, # 스타일 강도 (선택적) "seed": 42, # 재현 가능한 결과를 위한 시드값 (선택적) "resolution": "1024x1024" } } # 모델 호출 response = client.invoke_model( modelId=model_id, contentType="application/json", accept="application/json", body=json.dumps(payload) ) # 응답 파싱 response_body = response["body"].read() output_json = json.loads(response_body) # Base64 디코딩 → 이미지 저장 base64_image = output_json["images"][0] # 하나의 이미지 생성 image_data = base64.b64decode(base64_image) with open("photorealism_result.jpg", "wb") as f: f.write(image_data) print("스타일 'Photorealism'이 적용된 이미지가 생성되었습니다: photorealism_result.jpg")
-
지원 스타일 목록 (Style 옵션 이름) - 스타일은 반드시 대문자 스네이크케이스(
PHOTOREALISM
)로 지정해야 함-
PHOTOREALISM
-
3D_ANIMATED_FAMILY_FILM
-
DESIGN_SKETCH
-
FLAT_VECTOR_ILLUSTRATION
-
GRAPHIC_NOVEL_ILLUSTRATION
-
MAXIMALISM
-
MIDCENTURY_RETRO
-
SOFT_DIGITAL_PAINTING
-
5. 활용 분야
- 패션: 옷 입어보기, 스타일 추천
- 인테리어/홈데코: 가구 배치 시뮬레이션
- 브랜드 콘텐츠 제작: 일관된 아트 스타일 유지
- 마케팅 캠페인: 몰입형 비주얼 생성
댓글남기기