RunwayML - 이미지 생성
RunwayML - 이미지 생성 (Image Generation)
RunwayML의 이미지 생성 기능을 LiteLLM에서 사용하는 방법을 알아봐요. 텍스트 프롬프트로 고품질 이미지를 생성할 수 있어요.
출처: 문서
본문
개요
| 속성 | 내용 |
|---|---|
| 설명 | RunwayML은 고품질 결과의 고급 AI 이미지 생성을 제공해요 |
| LiteLLM 라우트 | runwayml/ |
| 지원 연산 | /images/generations |
| 공식 문서 | RunwayML API ↗ |
LiteLLM은 RunwayML의 Gen-4 이미지 생성 API를 지원해서, 텍스트 프롬프트로 고품질 이미지를 생성할 수 있어요.
빠른 시작
from litellm import image_generation
import os
os.environ["RUNWAYML_API_KEY"] = "your-api-key"
response = image_generation(
model="runwayml/gen4_image",
prompt="A serene mountain landscape at sunset",
size="1920x1080"
)
print(response.data[0].url)
인증
RunwayML API 키를 설정해요:
import os
os.environ["RUNWAYML_API_KEY"] = "your-api-key"
지원 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
model |
string | 예 | 사용할 모델 (예: runwayml/gen4_image) |
prompt |
string | 예 | 이미지에 대한 텍스트 설명 |
size |
string | 아니오 | 이미지 크기 (기본값: 1920x1080) |
지원 크기
1024x10241792x10241024x17921920x1080(기본값)1080x1920
비동기 사용법
from litellm import aimage_generation
import os
import asyncio
os.environ["RUNWAYML_API_KEY"] = "your-api-key"
async def generate_image():
response = await aimage_generation(
model="runwayml/gen4_image",
prompt="A futuristic city skyline at night",
size="1920x1080"
)
print(response.data[0].url)
asyncio.run(generate_image())
LiteLLM Proxy 사용법
config.yaml:
model_list:
- model_name: gen4-image
litellm_params:
model: runwayml/gen4_image
api_key: os.environ/RUNWAYML_API_KEY
Proxy 시작:
litellm --config /path/to/config.yaml
Proxy를 통해 이미지 생성:
curl --location 'http://localhost:4000/v1/images/generations' \
--header 'Content-Type: application/json' \
--header 'x-litellm-api-key: *** ' \
--data '{
"model": "runwayml/gen4_image",
"prompt": "A serene mountain landscape at sunset",
"size": "1920x1080"
}'
지원 모델
| 모델 | 설명 | 기본 크기 |
|---|---|---|
runwayml/gen4_image |
고품질 이미지 생성 | 1920x1080 |
비용 추적
LiteLLM은 RunwayML 이미지 생성 비용을 자동으로 추적해요:
from litellm import image_generation, completion_cost
response = image_generation(
model="runwayml/gen4_image",
prompt="A serene mountain landscape at sunset",
size="1920x1080"
)
cost = completion_cost(completion_response=response)
print(f"Image generation cost: ${cost}")
지원 기능
| 기능 | 지원 |
|---|---|
| Image Generation | ✅ |
| Cost Tracking | ✅ |
| Logging | ✅ |
| Fallbacks | ✅ |
| Load Balancing | ✅ |
동작 원리
RunwayML은 비동기 태스크 기반 API 패턴을 사용해요. LiteLLM이 폴링과 응답 변환을 자동으로 처리해요.
LiteLLM이 해주는 일
litellm.image_generation() 또는 /v1/images/generations를 호출하면:
- 요청 변환: OpenAI 이미지 생성 형식 → RunwayML 형식
- 태스크 제출: 변환된 요청을 RunwayML API로 전송
- Task ID 수신: 초기 응답에서 태스크 ID를 포착
- 자동 폴링:
- 2초마다 태스크 상태 엔드포인트 폴링
- 상태가
SUCCEEDED또는FAILED가 될 때까지 계속 - 기본 타임아웃: 10분 (
RUNWAYML_POLLING_TIMEOUT으로 설정 가능)
- 응답 변환: RunwayML 형식 → OpenAI 형식
- 결과 반환: 통합된 OpenAI 형식 응답을 클라이언트에 전송
폴링 구성:
- 기본 타임아웃: 600초 (10분)
RUNWAYML_POLLING_TIMEOUT환경 변수로 구성 가능- 호출 유형에 따라 동기(
time.sleep()) 또는 비동기(await asyncio.sleep()) 사용
info: 일반적인 처리 시간은 이미지 크기와 복잡도에 따라 10-30초예요.
더 알아보기 (Learn more)
- RunwayML API 공식 문서
- LiteLLM 이미지 생성 API