반응형
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
반응형
'Basic > Python' 카테고리의 다른 글
Python을 이용하여 S3 bucket 만드는 코드 (0) | 2023.10.11 |
---|---|
[Python] 파이썬에서 filter나 map으로 나온 값 print 하는 방법 (0) | 2023.03.06 |
[Python] 1시간 뒤의 timestamp를 얻는 방법 (0) | 2023.02.15 |
ChatGPT API를 이용한 질의응답하기 (0) | 2023.02.11 |
asyncio를 이용한 파이썬 비동기 처리하기 (0) | 2022.04.14 |