이미지 생성
이미지 생성 (Image Generations)
LiteLLM의 image_generation()으로 다양한 프로바이더에서 이미지를 생성하는 방법을 알려드릴게요.
출처: 문서
본문
개요 (Overview)
| 기능 | 지원 | 참고 |
|---|---|---|
| 비용 추적 | ✅ | 모든 지원 모델에서 작동 |
| 로깅 | ✅ | 모든 통합에서 작동 |
| 최종 사용자 추적 | ✅ | |
| 폴백 | ✅ | 지원 모델 간 작동 |
| 로드밸런싱 | ✅ | 지원 모델 간 작동 |
| 가드레일 | ✅ | 입력 프롬프트에 적용(비스트리밍 전용) |
| 지원 프로바이더 | OpenAI, Azure, Google AI Studio, Vertex AI, AWS Bedrock, Black Forest Labs, Recraft, OpenRouter, Xinference, Nscale |
빠른 시작 (Quick Start)
LiteLLM Python SDK
from litellm import image_generation
import os
# set api keys
os.environ["OPENAI_API_KEY"] = ""
response = image_generation(prompt="A cute baby sea otter", model="dall-e-3")
print(f"response: {response}")
LiteLLM 프록시 (LiteLLM Proxy)
config.yaml 설정 (Setup config.yaml)
model_list:
- model_name: gpt-image-1 ### RECEIVED MODEL NAME ###
litellm_params: # all params accepted by litellm.image_generation()
model: azure/gpt-image-1 ### MODEL NAME sent to `litellm.image_generation()` ###
api_base: https://my-endpoint-europe-berri-992.openai.azure.com/
api_key: "os.environ/AZURE_API_KEY_EU" # does os.getenv("AZURE_API_KEY_EU")
프록시 시작 (Start proxy)
litellm --config /path/to/config.yaml
# RUNNING on http://0.0.0.0:4000
테스트 (Test)
Curl:
curl -X POST 'http://0.0.0.0:4000/v1/images/generations' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ***" \
-d '{
"model": "gpt-image-1",
"prompt": "A cute baby sea otter",
"n": 1,
"size": "1024x1024"
}'
OpenAI:
from openai import OpenAI
client = openai.OpenAI(
api_key="sk-<your-litellm-api-key>",
base_url="http://0.0.0.0:4000"
)
image = client.images.generate(
prompt="A cute baby sea otter",
model="dall-e-3",
)
print(image)
litellm.image_generation() 입력 파라미터 (Input Params)
info — non-openai 파라미터는 프로바이더별 파라미터로 취급되어 요청 본문에 kwargs로 프로바이더에 전송돼요.
필수 필드 (Required Fields)
prompt: string — 원하는 이미지(들)에 대한 텍스트 설명.
선택적 LiteLLM 필드 (Optional LiteLLM Fields)
model: Optional[str] = None, n: Optional[int] = None, quality: Optional[str] = None, response_format: Optional[str] = None, size: Optional[str] = None, style: Optional[str] = None, user: Optional[str] = None, timeout=600, # default to 10 minutes api_key: Optional[str] = None, api_base: Optional[str] = None, api_version: Optional[str] = None, litellm_logging_obj=None, custom_llm_provider=None,
model: string (선택) 이미지 생성에 사용할 모델. 기본값은 openai/gpt-image-1.n: int (선택) 생성할 이미지 수. 1에서 10 사이여야 해요. dall-e-3에서는 n=1만 지원돼요.quality: string (선택) 생성될 이미지의 품질.auto(기본값)는 주어진 모델에 가장 좋은 품질을 자동 선택해요.gpt-image-1에는high,medium,low가 지원돼요.dall-e-3에는hd와standard가 지원돼요.dall-e-2에는standard만 가능해요.
response_format: string (선택) 생성된 이미지가 반환되는 형식.url또는b64_json중 하나여야 해요.size: string (선택) 생성된 이미지의 크기.gpt-image-1은1024x1024,1536x1024(가로),1024x1536(세로),auto(기본값) 중 하나,dall-e-2는256x256,512x512,1024x1024중 하나,dall-e-3은1024x1024,1792x1024,1024x1792중 하나.timeout: integer — API가 응답할 때까지 기다리는 최대 시간(초). 기본값은 600초(10분).user: string (선택) 최종 사용자를 나타내는 고유 식별자.api_base: string (선택) 모델을 호출할 API 엔드포인트.api_version: string (선택) (Azure 전용) 호출용 API 버전. Azure에서 dall-e-3에 필요.api_key: string (선택) 요청을 인증·승인하는 API 키. 제공하지 않으면 기본 API 키가 사용돼요.api_type: string (선택) 사용할 API 타입.
litellm.image_generation() 출력 (Output from litellm.image_generation())
{
"created": 1703658209,
"data": [{
'b64_json': None,
'revised_prompt': 'Adorable baby sea otter with a coat of thick brown fur, playfully swimming in blue ocean waters. Its curious, bright eyes gleam as it is surfaced above water, tiny paws held close to its chest, as it playfully spins in the gentle waves under the soft rays of a setting sun.',
'url': 'https://oaidalleapiprodscus.blob.core.windows.net/private/org-ikDc4ex8NB5ZzfTf8m5WYVB7/user-JpwZsbIXubBZvan3Y3GchiiB/img-dpa3g5LmkTrotY6M93dMYrdE.png?st=2023-12-27T05%3A23%3A29Z&se=2023-12-27T07%3A23%3A29Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-12-26T13%3A22%3A56Z&ske=2023-12-27T13%3A22%3A56Z&sks=b&skv=2021-08-06&sig=hUuQjYLS%2BvtsDdffEAp2gwewjC8b3ilggvkd9hgY6Uw%3D'
}],
"usage": {'prompt_tokens': 0, 'completion_tokens': 0, 'total_tokens': 0}
}
OpenAI 이미지 생성 모델 (OpenAI Image Generation Models)
사용법 (Usage)
from litellm import image_generation
import os
os.environ['OPENAI_API_KEY'] = ""
response = image_generation(model='gpt-image-1', prompt="cute baby otter")
| 모델 이름 | 함수 호출 | 필수 OS 변수 |
|---|---|---|
| gpt-image-1 | image_generation(model='gpt-image-1', prompt="cute baby otter") |
os.environ['OPENAI_API_KEY'] |
| dall-e-3 | image_generation(model='dall-e-3', prompt="cute baby otter") |
os.environ['OPENAI_API_KEY'] |
| dall-e-2 | image_generation(model='dall-e-2', prompt="cute baby otter") |
os.environ['OPENAI_API_KEY'] |
Azure OpenAI 이미지 생성 모델 (Azure OpenAI Image Generation Models)
API 키 (API keys)
환경 변수로 설정하거나 litellm.image_generation()의 params로 전달할 수 있어요.
import os
os.environ['AZURE_API_KEY'] = ""
os.environ['AZURE_API_BASE'] = ""
os.environ['AZURE_API_VERSION'] = ""
사용법 (Usage)
from litellm import image_generation
response = image_generation(
model="azure/<your deployment name>",
prompt="cute baby otter",
api_key=api_key,
api_base=api_base,
api_version=api_version,
)
print(response)
| 모델 이름 | 함수 호출 |
|---|---|
| gpt-image-1 | image_generation(model="azure/<your deployment name>", prompt="cute baby otter") |
| dall-e-3 | image_generation(model="azure/<your deployment name>", prompt="cute baby otter") |
| dall-e-2 | image_generation(model="azure/<your deployment name>", prompt="cute baby otter") |
Xinference 이미지 생성 모델 (Xinference Image Generation Models)
Xinference에 호스팅된 Stable Diffusion 모델에 사용해 주세요.
사용법 (Usage)
LiteLLM과 Xinference 사용법은 여기를 참고해 주세요.
Recraft 이미지 생성 모델 (Recraft Image Generation Models)
Recraft로 AI 기반 디자인·이미지 생성에 사용해 주세요.
사용법 (Usage)
from litellm import image_generation
import os
os.environ['RECRAFT_API_KEY'] = "your-api-key"
response = image_generation(
model="recraft/recraftv3",
prompt="A beautiful sunset over a calm ocean",
)
print(response)
LiteLLM과 Recraft 사용법은 여기를 참고해 주세요.
OpenRouter 이미지 생성 모델 (OpenRouter Image Generation Models)
OpenRouter를 통해 제공되는 이미지 생성 모델(예: Google Gemini 이미지 생성 모델)에 사용해 주세요.
사용법 (Usage)
from litellm import image_generation
import os
os.environ['OPENROUTER_API_KEY'] = "your-api-key"
response = image_generation(
model="openrouter/google/gemini-2.5-flash-image",
prompt="A beautiful sunset over a calm ocean",
size="1024x1024",
quality="high",
)
print(response)
OpenAI 호환 이미지 생성 모델 (OpenAI Compatible Image Generation Models)
OpenAI 호환 서버(예: https://github.com/xorbitsai/inference)의 /image_generation 엔드포인트를 호출할 때 사용해 주세요.
참고: litellm이 OpenAI로 라우팅하도록 모델에 openai/ 접두사 추가
사용법 (Usage)
from litellm import image_generation
response = image_generation(
model = "openai/<your-llm-name>", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_base="http://0.0.0.0:8000/", # set API Base of your Custom OpenAI Endpoint
prompt="cute baby otter"
)
Bedrock - 안정 확산 (Bedrock - Stable Diffusion)
bedrock에서 안정 확산(stable diffusion)에 사용해 주세요.
사용법 (Usage)
import os
from litellm import image_generation
os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""
response = image_generation(
prompt="A cute baby sea otter",
model="bedrock/stability.stable-diffusion-xl-v0",
)
print(f"response: {response}")
VertexAI - 이미지 생성 모델 (VertexAI - Image Generation Models)
사용법 (Usage)
VertexAI에서 이미지 생성 모델에 사용해 주세요.
response = litellm.image_generation(
prompt="An olympic size swimming pool",
model="vertex_ai/imagegeneration@006",
vertex_ai_project="adroit-crow-413218",
vertex_ai_location="us-central1",
)
print(f"response: {response}")
지원 프로바이더 (Supported Providers)
⚡️모든 지원 모델과 프로바이더는 models.litellm.ai에서 확인할 수 있어요
| 프로바이더 | 문서 링크 |
|---|---|
| OpenAI | OpenAI Image Generation → |
| Azure OpenAI | Azure OpenAI Image Generation → |
| Google AI Studio | Google AI Studio Image Generation → |
| Vertex AI | Vertex AI Image Generation → |
| AWS Bedrock | Bedrock Image Generation → |
| Recraft | Recraft Image Generation → |
| OpenRouter | OpenRouter Image Generation → |
| Xinference | Xinference Image Generation → |
| Nscale | Nscale Image Generation → |
더 알아보기 (Learn more)
- 이미지 편집(Image edits) — 이미지 편집 엔드포인트
- 이미지 변형(Image variations) — 이미지 변형 엔드포인트