OpenAI 이미지 형식 (Image)¶
공식 문서
📝 소개¶
텍스트 프롬프트 및/또는 입력 이미지를 전달하면 모델이 새 이미지를 생성합니다. OpenAI는 자연어 설명 기반 이미지 생성/편집/수정을 지원하는 다양한 강력한 모델을 제공합니다.
🤖 지원 모델¶
현재 지원되는 모델:
| 모델 | 설명 |
|---|---|
| dall-e-3 | 이미지 품질, 창의성, 정밀도가 크게 향상된 DALL·E 3 이미지 생성 모델 |
| dall-e-2 | DALL·E 2 이미지 생성 모델 |
| gpt-image-1 | 다중 이미지 편집을 지원하며 여러 입력 이미지를 기반으로 새 합성 이미지를 생성할 수 있는 GPT-Image-1 이미지 생성/편집 모델 |
💡 요청 예시¶
이미지 생성 ✅¶
# 기본 이미지 생성
curl https://ssanai-workspace.atto-lab.cc/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "dall-e-3",
"prompt": "A cute little sea otter",
"n": 1,
"size": "1024x1024"
}'
# 고품질 이미지 생성
curl https://ssanai-workspace.atto-lab.cc/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "dall-e-3",
"prompt": "A cute little sea otter",
"quality": "hd",
"style": "vivid",
"size": "1024x1024"
}'
# base64 응답 형식 사용
curl https://ssanai-workspace.atto-lab.cc/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "dall-e-3",
"prompt": "A cute little sea otter",
"response_format": "b64_json"
}'
응답 예시:
{
"created": 1589478378,
"data": [
{
"url": "https://...",
"revised_prompt": "A cute little sea otter playing in the water, with round eyes and fluffy fur"
}
]
}
이미지 편집 ✅¶
# dall-e-2 이미지 편집
curl https://ssanai-workspace.atto-lab.cc/v1/images/edits \
-H "Authorization: Bearer $API_KEY" \
-F image="@otter.png" \
-F mask="@mask.png" \
-F prompt="A cute little sea otter wearing a beret" \
-F n=2 \
-F size="1024x1024"
# gpt-image-1 다중 이미지 편집 예시
curl https://ssanai-workspace.atto-lab.cc/v1/images/edits \
-H "Authorization: Bearer $API_KEY" \
-F "model=gpt-image-1" \
-F "image[]=@body-lotion.png" \
-F "image[]=@bath-bomb.png" \
-F "image[]=@incense-kit.png" \
-F "image[]=@soap.png" \
-F "prompt=Create an elegant gift basket containing these four items" \
-F "quality=high"
응답 예시 (dall-e-2):
응답 예시 (gpt-image-1):
{
"created": 1713833628,
"data": [
{
"b64_json": "..."
}
],
"usage": {
"total_tokens": 100,
"input_tokens": 50,
"output_tokens": 50,
"input_tokens_details": {
"text_tokens": 10,
"image_tokens": 40
}
}
}
이미지 변형 생성 ✅¶
curl https://ssanai-workspace.atto-lab.cc/v1/images/variations \
-H "Authorization: Bearer $API_KEY" \
-F image="@otter.png" \
-F n=2 \
-F size="1024x1024"
응답 예시:
📮 요청¶
엔드포인트¶
이미지 생성¶
텍스트 프롬프트를 기반으로 이미지를 생성합니다.
이미지 편집¶
하나 이상의 원본 이미지와 프롬프트를 기반으로 편집/확장 이미지를 생성합니다. 이 엔드포인트는 dall-e-2와 gpt-image-1 모델을 모두 지원합니다.
변형 이미지 생성¶
주어진 이미지의 변형 이미지를 생성합니다.
인증 방법¶
요청 헤더에 다음 값을 포함하여 API 키 인증을 수행하세요:
$API_KEY는 발급받은 API 키입니다.
요청 본문 파라미터¶
이미지 생성¶
prompt¶
- 유형: 문자열
- 필수: 예
- 설명: 생성하려는 이미지에 대한 텍스트 설명입니다.
- dall-e-2 최대 길이는 1000자입니다
- dall-e-3 최대 길이는 4000자입니다
- 팁:
- 구체적이고 자세한 설명을 사용하세요
- 핵심 시각 요소를 포함하세요
- 원하는 예술 스타일을 명시하세요
- 구도와 원근을 설명하세요
model¶
- 유형: 문자열
- 필수: 아니오
- 기본값: dall-e-2
- 설명: 이미지 생성에 사용할 모델입니다.
n¶
- 유형: 정수 또는 null
- 필수: 아니오
- 기본값: 1
- 설명: 생성할 이미지 수입니다. 1-10 범위여야 하며, dall-e-3는 n=1만 지원합니다.
quality¶
- 유형: 문자열
- 필수: 아니오
- 기본값: standard
- 설명: 생성 이미지의 품질입니다. hd 옵션은 더 상세하고 일관된 이미지를 생성합니다. 이 파라미터는 dall-e-3에서만 지원됩니다.
response_format¶
- 유형: 문자열 또는 null
- 필수: 아니오
- 기본값: url
- 설명: 반환할 생성 이미지 형식입니다. url 또는 b64_json이어야 하며, URL은 생성 후 60분간 유효합니다.
size¶
- 유형: 문자열 또는 null
- 필수: 아니오
- 기본값: 1024x1024
- 설명: 생성 이미지 크기입니다. dall-e-2는 256x256/512x512/1024x1024, dall-e-3는 1024x1024/1792x1024/1024x1792를 지원합니다.
style¶
- 유형: 문자열 또는 null
- 필수: 아니오
- 기본값: vivid
- 설명: 생성 이미지 스타일입니다. vivid 또는 natural이어야 합니다. vivid는 초현실적/극적 이미지 경향, natural은 보다 자연스러운 이미지 경향이 있습니다. dall-e-3에서만 지원됩니다.
user¶
- 유형: 문자열
- 필수: 아니오
- 설명: 최종 사용자 고유 식별자입니다. OpenAI의 오남용 모니터링/탐지에 도움이 됩니다.
이미지 편집¶
image¶
- 유형: 파일 또는 파일 배열
- 필수: 예
- 설명: 편집할 이미지입니다.
- dall-e-2: 유효한 PNG 파일이어야 하며 4MB 미만, 정사각형이어야 합니다. 마스크를 제공하지 않으면 이미지의 투명 영역이 마스크로 사용됩니다.
- gpt-image-1: 여러 이미지를 배열로 전달할 수 있으며, 각 이미지는 PNG/WEBP/JPG 파일이고 25MB 미만이어야 합니다.
prompt¶
- 유형: 문자열
- 필수: 예
- 설명: 생성하려는 이미지에 대한 텍스트 설명입니다.
- dall-e-2 최대 길이는 1000자입니다
- gpt-image-1 최대 길이는 32000자입니다
mask¶
- 유형: 파일
- 필수: 아니오
- 설명: 추가 이미지(마스크)입니다. 완전 투명 영역(예: alpha 0)이 편집 위치를 나타냅니다. 여러 이미지를 제공한 경우 마스크는 첫 번째 이미지에 적용됩니다. 유효한 PNG 파일이어야 하며 4MB 미만, 기준 이미지와 동일 크기여야 합니다.
model¶
- 유형: 문자열
- 필수: 아니오
- 기본값: dall-e-2
- 설명: 이미지 생성에 사용할 모델입니다. dall-e-2 및 gpt-image-1을 지원하며, gpt-image-1 전용 파라미터를 사용하지 않으면 dall-e-2가 기본값입니다.
quality¶
- 유형: 문자열 또는 null
- 필수: 아니오
- 기본값: auto
- 설명: 생성 이미지 품질입니다.
- gpt-image-1은
high/medium/low를 지원합니다 - dall-e-2는
standard만 지원합니다 - 기본값은
auto입니다
size¶
- 유형: 문자열 또는 null
- 필수: 아니오
- 기본값: 1024x1024
- 설명: 생성 이미지 크기입니다.
- gpt-image-1은
1024x1024,1536x1024(가로),1024x1536(세로),auto(기본값) 중 하나여야 합니다 - dall-e-2는
256x256,512x512,1024x1024중 하나여야 합니다
기타 파라미터는 이미지 생성 인터페이스와 동일합니다.
변형 이미지 생성¶
image¶
- 유형: 파일
- 필수: 예
- 설명: 변형 생성의 기준 이미지입니다. 유효한 PNG 파일이어야 하며 4MB 미만, 정사각형이어야 합니다.
기타 파라미터는 이미지 생성 인터페이스와 동일합니다.
📥 응답¶
성공 응답¶
세 엔드포인트 모두 이미지 객체 목록을 포함한 응답을 반환합니다.
created¶
- 유형: 정수
- 설명: 응답 생성 타임스탬프
data¶
- 유형: 배열
- 설명: 생성된 이미지 객체 목록
usage (gpt-image-1 전용)¶
- 유형: 객체
- 설명: API 호출 토큰 사용량
total_tokens: 총 사용 토큰 수input_tokens: 입력에 사용된 토큰 수output_tokens: 출력에 사용된 토큰 수input_tokens_details: 입력 토큰 상세 정보(텍스트 토큰, 이미지 토큰)
이미지 객체¶
b64_json¶
- 유형: 문자열
- 설명:
response_format이b64_json이면 생성 이미지의 base64 인코딩 JSON을 포함합니다.
url¶
- 유형: 문자열
- 설명:
response_format이url(기본값)이면 생성 이미지 URL을 포함합니다.
revised_prompt¶
- 유형: 문자열
- 설명: 프롬프트가 수정된 경우 이미지 생성에 사용된 수정 프롬프트를 포함합니다
이미지 객체 예시:
{
"url": "https://...",
"revised_prompt": "A cute little sea otter playing in the water, with round eyes and fluffy fur"
}
🌟 모범 사례¶
프롬프트 작성 팁¶
- 명확하고 구체적인 설명을 사용하세요
- 중요한 시각적 디테일을 명시하세요
- 원하는 예술 스타일과 분위기를 설명하세요
- 구도와 시점 관련 지시를 신경 써서 작성하세요
파라미터 선택 팁¶
-
모델 선택
- dall-e-3: 높은 품질과 정밀한 디테일이 필요한 장면에 적합
- dall-e-2: 빠른 프로토타입 또는 단순 이미지 생성에 적합
-
크기 선택
- 1024x1024: 일반적인 장면에 가장 무난한 선택
- 1792x1024/1024x1792: 가로/세로 장면에 적합
- 더 작은 크기: 썸네일/빠른 미리보기에 적합
-
품질 및 스타일
- quality=hd: 세밀한 디테일이 필요한 이미지용
- style=vivid: 창의적/예술적 효과에 적합
- style=natural: 사실적인 장면 재현에 적합
자주 묻는 질문¶
-
이미지 생성 실패
- 프롬프트가 콘텐츠 정책을 준수하는지 확인
- 파일 형식 및 크기 제한 확인
- API 키 권한 확인
-
결과가 기대와 다름
- 프롬프트 설명 최적화
- quality/style 파라미터 조정
- 이미지 편집/변형 기능 활용 고려