•
FastAPI를 활용해 API 서버 제작 → 백엔드 개발
•
카카오 Karlo의 REST API를 활용해 글에 따른 이미지 생성 → 데이터 생성 및 활용
kakao API Docs
kakao API key 발급받기
kakao developers 가입 → 시작하기 → 애플리케이션 추가하기
내 애플리케이션 → 앱 설정 → 플랫폼 → Web 플랫폼 등록
를 추가하고 저장합니다.
1.
파이썬(3.6 이상)이 설치되어 있다는 가정하에, FastAPI를 설치합니다.
# FastAPI 사용을 위한 라이브러리 설치
> pip3 install fastapi
# FastAPI 실시간 미리보기를 위한 라이브러리 설치
> pip3 install "uvicorn[standard]"
Shell
복사
2.
main.py 파일 생성 후 서버 코드를 작성합니다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello():
return "BOAZ API 실습! 너무 즐거워"
Python
복사
3.
서버를 실행해봅시다.
> uvicorn main:app --reload
Shell
복사
4.
https://127.0.0.1:8000 으로 접속하면 아래 화면을 확인할 수 있습니다. (새벽에 만들고 있었더니 다크모드로 뜨네요 ㅎㅎ)
5.
정보를 가져오기 위해 Karlo API를 활용해 봅시다.
에러
# REST API 호출, 이미지 파일 처리에 필요한 라이브러리
import requests
import json
import urllib
from PIL import Image
# [내 애플리케이션] > [앱 키] 에서 확인한 REST API 키 값 입력
REST_API_KEY = '${REST_API_KEY}'
# 이미지 생성하기 요청
def t2i(prompt, negative_prompt):
r = requests.post(
'https://api.kakaobrain.com/v2/inference/karlo/t2i',
json = {
'prompt': prompt,
'negative_prompt': negative_prompt
},
headers = {
'Authorization': f'KakaoAK {REST_API_KEY}',
'Content-Type': 'application/json'
}
)
# 응답 JSON 형식으로 변환
response = json.loads(r.content)
return response
# 프롬프트에 사용할 제시어
prompt = "A cat with white fur"
negative_prompt = "sleeping cat, dog, human, ugly face, cropped"
# 이미지 생성하기 REST API 호출
response = t2i(prompt, negative_prompt)
# 응답의 첫 번째 이미지 생성 결과 출력하기
result = Image.open(urllib.request.urlopen(response.get("images")[0].get("image")))
result.show()
Python
복사
저는 이런 이미지가 뜹니당..
6.
prompt를 바꿔서 자신이 원하는 이미지를 생성해 봅시다!
예시