반응형

OpenAI API를 사용하여 입력된 prompt에 따라 이미지를 생성하고, 이를 데이터 URI 형식으로 변환하여 HTML img 태그에 삽입하는 getImage 함수를 정의합니다.

 

함수는 두 개의 인자 prompt와 API_KEY를 받습니다.

API_KEY는 OpenAI API를 인증하기 위해 사용되며, openai.api_key 변수에 할당됩니다.

 

이미지 생성을 위해 함수는 prompt와 이미지 크기를 지정하여 openai.Image.create() 메소드를 호출합니다.

이 메소드는 생성된 이미지의 URL을 반환합니다.

 

이어서, 함수는 requests.get() 메소드를 사용하여 이미지 URL에서 이미지를 다운로드하고, base64.b64encode() 메소드를 사용하여 이미지 데이터를 base64 형식으로 인코딩합니다. 이를 데이터 URI 문자열로 변환하여 HTML img 태그에 삽입합니다.

 

이미지의 데이터 URI 문자열을 반환하며, 함수 내에서는 이를 출력하도록 설정하였습니다. 만약 생성된 이미지가 JPEG 형식이 아닌 PNG 형식인 경우, 데이터 URI prefix를 변경해야 합니다.

참고로, 함수에서는 이미지 URL을 출력하도록 설정하였으나, 주석 처리되어 있어 실제로는 출력되지 않습니다.

# set the API key for the openai library
import openai
import requests
import base64

def getImage(prompt, API_KEY):
  openai.api_key = API_KEY
  alt = prompt
  response = openai.Image.create(
    prompt="Imagine an image for blog by referring to " + prompt,
    n=1,
    size="512x512"
  )

  image_url = response.data[0]["url"]

  # Download the image from the URL
  response = requests.get(image_url)

  # Convert the image to a data URI
  data_uri = 'data:image/jpeg;base64,' + base64.b64encode(response.content).decode('utf-8')

  # Print the data URI
  data_uri = '<img src="data:image/png;base64,' + data_uri + '"  alt="' + prompt + '" />'
  return data_uri
반응형