1.1 Image Models
1.1.1 DALL-E 모델 설명
DALL-E는 자연어로 된 설명을 바탕으로 사실적인 이미지와 예술 작품을 만들 수 있는 인공지능 시스템
- dall-e-3 DALL-E : 3 2023년 11월에 출시된 최신 DALL-E 모델
- DALL-E-2 2022년 11월에 출시된 이전 DALL-E 모델
- 텍스트 프롬프트를 기반으로 처음부터 이미지 생성(DALL-E 3 및 DALL-E 2)
- 새 텍스트 프롬프트에 따라 모델이 기존 이미지의 일부 영역을 대체하도록 하여 이미지의 편집된 버전 생성(DALL-E 2만 해당)
- 기존 이미지의 변형 만들기(DALL-E 2만 해당)
- dall-e-2의 경우 256x256, 512x512, 1024x1024 지원, dall-e-3는 1024x1024, 1792x1024, 1024x1792 지원
참고 : DALL-E 3가 달라진 점 상세
What's new with DALL·E-3? | OpenAI Cookbook
https://cookbook.openai.com/articles/what_is_new_with_dalle_3
1.2 Image Object
OpenAI API에 의해 생성된 이미지의 URL이나 콘텐츠 객체를 나타내며 지정한 응답 형식에 따라 다음과 같은 형태로 표현됨
{
"url": "...",
"revised_prompt": "..."
}
- b64_json 문자열 : 응답 형식이 b64_json인 경우 생성된 이미지의 base64로 인코딩된 JSON
- url 문자열 : 응답_형식이 url(기본값)인 경우 생성된 이미지의 URL
- 개정된_프롬프트 문자열 : 프롬프트에 수정 사항이 있는 경우 이미지를 생성하는 데 사용된 프롬프트
1.3 이미지 생성
1.3.1 API 설명
기능
프롬프트가 지정된 이미지를 생성
사용법 :
Request
client.images.generate(
model="dall-e-3",
prompt="A cute baby sea otter",
n=1,
size="1024x1024"
)
Response
{
"created": 1589478378,
"data": [
{
"url": "https://..."
},
{
"url": "https://..."
}
]
}
파라메터 :
- Prompt : dall-e-2의 경우 1000자, dall-e-3의 경우 4000자
- n : 생성할 이미지 수. 1에서 10 사이, dall-e-3의 경우 n=1만 지원
- quality : 생성될 이미지의 화질 HD는 dall-e-3에서만 지원
- response_format : 생성된 이미지가 반환 형식. URL 또는 b64_json
- size : 생성된 이미지의 크기. dall-e-2의 경우 256x256, 512x512, 1024x1024 지원, dall-e-3는 1024x1024, 1792x1024, 1024x1792 지원
- style : 생성 이미지 스타일. vivid는 사실적,선명 natural : 자연스러움, dall-e-3에서만 지원
1.3.2 프롬프트로 이미지 생성 해보기
고려사항
DALL-E 3을 사용할 때 이미지의 크기는 1024x1024, 1024x1792 또는 1792x1024 픽셀
기본적으로 이미지는 표준 화질로 생성되지만 DALL-E 3을 사용할 때는 화질을 HD로 설정할 수 있음
정사각형의 표준 화질 이미지가 가장 빠르게 생성됨
DALL-E 3을 사용하면 한 번에 1개의 이미지를 요청가능
DALL-E 2를 사용하면 최대 10개의 이미지를 요청가능
from openai import OpenAI
client = OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt="a white siamese cat",
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
print(image_url)
response = client.images.generate(
model="dall-e-3",
prompt="신나게 달리고 있는 파란색 강아지와 그 뒤를 따라가는 노란색 고양이를 그려줘",
size="1024x1024",
quality="hd",
n=1,
response_format="b64_json"
)
image_url = response.data[0].url
print(image_url)
#이미지 다운로드 추가
import requests
save_path = "dog.png"
response = requests.get(image_url, stream=True)
if response.status_code == 200:
with open(save_path, 'wb') as file:
for chunk in response.iter_content(chunk_size=128):
file.write(chunk)
print(f"이미지 다운로드 완료: {save_path}")
else:
print(f"이미지 다운로드 실패. HTTP 상태 코드: {response.status_code}")
생성된 이미지를 수정하거나 유사이미지를 생성하고자 할때 다음을 참고
https://yongeekd01.tistory.com/145
참고 :
https://platform.openai.com/docs/api-reference/images
'IT > 개발' 카테고리의 다른 글
chatGPT-4를 이용한 이미지 해석(Image Description, gpt-4-vision) (0) | 2023.11.28 |
---|---|
DALLI-E 모델을 이용한 이미지 수정 및 유사이미지 만들기(chatGPT, OpenAI API) (0) | 2023.11.28 |
OpenAI Audio API를 이용한 STT 구현 기초(whisper-1, transcription, English translation) (0) | 2023.11.28 |
OpenAI Audio API를 이용한 TTS 구현 기초(tts-1, tts-1-hd) (0) | 2023.11.28 |
OpenAI API 이용 개발 기초(소개, API 사용준비, 기본모델들, ChatGTP) (0) | 2023.11.28 |