图像生成
快速开始
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 代理
设置 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")
启动代理
litellm --config /path/to/config.yaml
# RUNNING on http://0.0.0.0:4000
测试
- Curl
- OpenAI
curl -X POST 'http://0.0.0.0:4000/v1/images/generations' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "gpt-image-1",
"prompt": "A cute baby sea otter",
"n": 1,
"size": "1024x1024"
}'
from openai import OpenAI
client = openai.OpenAI(
api_key="sk-1234",
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() 的输入参数
任何非 OpenAI 参数将被视为提供商特定参数,并作为 kwargs 在请求体中发送给提供商。
必需字段
prompt
: string - 对所需图像的文本描述。
可选 LiteLLM 字段
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-1n
: _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() 的输出
{
"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 图像生成模型
用法
from litellm import image_generation
import os
os.environ['OPENAI_API_KEY'] = ""
response = image_generation(model='gpt-image-1', prompt="cute baby otter")
模型名称 | 函数调用 | 必需的操作系统变量 |
---|---|---|
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 图像生成模型
API 密钥
这可以设置为环境变量或作为 **参数传递给 litellm.image_generation()**
import os
os.environ['AZURE_API_KEY'] =
os.environ['AZURE_API_BASE'] =
os.environ['AZURE_API_VERSION'] =
用法
from litellm import embedding
response = embedding(
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") |
OpenAI 兼容的图像生成模型
用于调用 OpenAI 兼容服务器上的 `/image_generation` 端点,例如 https://github.com/xorbitsai/inference
注意在模型名称前添加 `openai/` 前缀,以便 litellm 知道路由到 OpenAI
用法
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 - Stable Diffusion
用于在 Bedrock 上进行 Stable Diffusion
用法
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 上使用图像生成模型
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}")