Amazon Bedrock 활용 : GenAI 갤러리 만들기

안녕하세요 오늘은 BESPIN GLOBAL Innovate AI실 이정훈님이 작성해주신 ‘Amazon Bedrock 활용 : GenAI 갤러리 만들기’ 대해 소개해드리도록 하겠습니다.

목차

  1. GenAI 갤러리 (Generative AI Gallery)
    • 아키텍처 개요
  2. 백엔드 배포 (Deploy Backend)
    • 백엔드 디렉토리로 이동
    • 가상 환경(Virtual Environment) 생성
    • 필요한 Python 패키지 설치
    • AWS 자격 증명 설정
    • AWS CDK 부트스트랩 실행
    • cdk.context.json 파일 수정
    • AWS CDK 스택 배포
  3. 프론트엔드 실행 (Run Frontend Application)
    • 백엔드 배포 완료 후 API Gateway 엔드포인트 확인
    • .env 파일 설정
    • 프론트엔드 디렉토리로 이동
    • 필요한 패키지 설치
    • 프론트엔드 애플리케이션 실행
    • 실행 후, 브라우저 접속 후 확인
  4. AWS PartyRock에서 간단히 프롬프트 작성하여 구현
    • 파티락 접속 후 , Start for free 버튼 클릭
    • 생성할 프롬프트 작성하여 생성
    • 텍스트 & 이미지 생성시 입력값 입력 후 실행
    • 결과 확인

 

1. GenAI 갤러리 (Generative AI Gallery)

Amazon Bedrock을 활용하여 전생 이미지를 생성하는 생성형 AI(Generative AI) 프로젝트입니다. 사용자의 사진과 합성되어 최종 결과물을 만들어냅니다.

1-1. 아키텍처 개요

  • 주요 구성 요소
    • AWS Amplify : React 기반 프론트엔드 애플리케이션을 호스팅하는 서비스
    • Amazon API Gateway + AWS Lambda : 백엔드 API 엔드포인트 제공 (이미지 업로드 및 검색)
    • Amazon Bedrock :
      • API 기반 생성형 AI 서비스
      • 이미지 생성을 위해 Amazon Titan Image Generator 모델을 사용
      • 설명을 생성하기 위해 Claude 3.0 Sonnet 모델을 활용
    • Amazon SageMaker : 이미지 합성을 처리하기 위한 모델을 Endpoint로 배포
    • Amazon Rekognition : 이미지에서 얼굴을 감지하고, 얼굴 영역을 자동으로 크롭(Crop)

Amazon Rekognition : 이미지에서 얼굴을 감지하고, 얼굴 영역을 자동으로 크롭(Crop)

2. 백엔드 배포 (Deploy Backend)

(개발 소스 URL : https://github.com/aws-samples/sample-generative-ai-gallery)

2-1. 백엔드 디렉토리로 이동

cd backend
 

2-2. 가상 환경(Virtual Environment) 생성

python3 -m venv .venv
source .venv/bin/activate

2-3. 필요한 Python 패키지 설치

pip install -r requirements.txt
 

2-4. AWS 자격 증명 설정

AWS 콘솔에서 발급한 Access Key ID, Secret Access Key, Region 등을 입력

aws configure

2-5. AWS CDK 부트스트랩 실행

cdk bootstrap aws://<AWS_ACCOUNT_ID>/<AWS_REGION>
 

 2-6. cdk.context.json 파일 수정

cdk.context.json 파일에서 AWS 리전 및 설정 정보 업데이트

{
    "s3_base_bucket_name": "genai-gallery",
    "s3_base_images_path": "images/base/",
    "s3_face_images_path": "images/face/",
    "s3_masked_face_images_path": "images/masked-face/",
    "s3_swapped_face_images_path": "images/swapped-face/",
    "s3_result_images_path": "images/result/",
    "pillow_layer_arn": "arn:aws:lambda:{your-aws-region}:770693421928:layer:Klayers-p38-Pillow:10",
    "numpy_layer_arn": "arn:aws:lambda:{your-aws-region}:770693421928:layer:Klayers-p38-numpy:13"
}
 
 

2-7. AWS CDK 스택 배포

cdk deploy --require-approval never --all
 
 

3. 프론트엔드 실행 (Run Frontend Application)

개발 소스 URL : https://github.com/aws-samples/sample-generative-ai-gallery)

 3-1. 백엔드 배포 완료 후 API Gateway 엔드포인트 확인

백엔드 배포가 완료되면 다음과 같은 출력이 나타납니다. (위의 ApiGatewayStack.ApiGatewayUrl 값을 별도 저장)

✅  ApiGatewayStack
 
✨  Deployment time: 68.13s
 
Outputs:
ApiGatewayStack.GenAIGalleryImageApiEndpoint2DF4C2F5 = <https://xxxxx.execute-api.us-east-1.amazonaws.com/prod/>
ApiGatewayStack.ApiGatewayUrl = <https://xxxxx.execute-api.us-east-1.amazonaws.com/prod/>

 3-2. .env 파일 설정

프론트엔드 디렉토리의 .env 파일을 열고, {your backend Amazon API Gateway endpoint url} 부분을 위에서 기록한 API Gateway URL로 변경합니다.

REACT_APP_API_ENDPOINT=https://xxxxx.execute-api.us-east-1.amazonaws.com/prod/

 3-3. 프론트엔드 디렉토리로 이동

cd ../frontend
 

3-4. 필요한 패키지 설치

npm install
 

 3-5. 프론트엔드 애플리케이션 실행

npm start 

3-6. 실행 후, 브라우저 접속 후 확인 ( 접속 URL : http://localhost:3000 )

6. 실행 후, 브라우저 접속 후 확인

4. AWS PartyRock에서 간단히 프롬프트 작성하여 구현

 4-1. 파티락 접속 후 , Start for free 버튼 클릭 (접속 URL : https://partyrock.aws/)

1. 파티락 접속 후 , Start for free 버튼 클릭

 4-2. 생성할 프롬프트 작성하여 생성

  • 프롬프트 내용
나라 , 직업 , 연도 , 나이 , 성별을 입력받아 과거의 전생 이미지와 스토리를 만들어 줘

이미지는 오일페인팅 스타일로 , 스토리는 200글자 내외로 해 줘

이미지는 오일페인팅 스타일로 , 스토리는 200글자 내외로 해 줘

4-3. 텍스트 & 이미지 생성시 입력값 입력 후 실행

  • 입력 내용
나라 : 한국 / 직업 : 마법사 / 년도 : 1600년도 / 나이 : 25 / 성별 : 남자

. 텍스트 & 이미지 생성시 입력값 입력 후 실행

 4-4. 결과 확인

 4. 결과 확인

출처 : https://www.youtube.com/watch?v=uFxOGGxjGQc

여기까지 ‘Amazon Bedrock 활용 : GenAI 갤러리 만들기’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다. 

Written by 이 정훈 / Innovate AI실

BESPIN GLOBAL