图像生成
快速开始
from litellm import image_generation
import os
# 设置API密钥
os.environ["OPENAI_API_KEY"] = ""
response = image_generation(prompt="一只可爱的海獭宝宝", model="dall-e-3")
print(f"响应: {response}")
代理使用
设置 config.yaml
model_list:
- model_name: dall-e-2 ### 接收的模型名称 ###
litellm_params: # litellm.image_generation() 接受的所有参数
model: azure/dall-e-2 ### 发送到 `litellm.image_generation()` 的模型名称 ###
api_base: https://my-endpoint-europe-berri-992.openai.azure.com/
api_key: "os.environ/AZURE_API_KEY_EU" # 执行 os.getenv("AZURE_API_KEY_EU")
rpm: 6 # [可选] 此部署的速率限制:每分钟请求数 (rpm)
启动代理
litellm --config /path/to/config.yaml
# 运行在 http://0.0.0.0:4000
测试
curl -X POST 'http://0.0.0.0:4000/v1/images/generations' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "dall-e-2",
"prompt": "一只可爱的海獭宝宝",
"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="一只可爱的海獭宝宝",
model="dall-e-3",
)
print(image)
litellm.image_generation()
的输入参数
任何非 OpenAI 的参数将被视为特定于提供者的参数,并以 kwargs 的形式发送到请求体中。
必填字段
prompt
: 字符串 - 所需图像的文本描述。
可选的 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, # 默认 10 分钟
api_key: Optional[str] = None,
api_base: Optional[str] = None,
api_version: Optional[str] = None,
litellm_logging_obj=None,
custom_llm_provider=None,
model
: 字符串 (可选) 用于图像生成的模型。默认为 openai/dall-e-2n
: 整数 (可选) 要生成的图像数量。必须在 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 之一。timeout
: 整数 - 等待 API 响应的最长时间,以秒为单位。默认为 600 秒(10 分钟)。user
: 字符串 (可选) 表示最终用户的唯一标识符,api_base
: 字符串 (可选) - 要调用模型的 API 端点api_version
: 字符串 (可选) - (Azure 特定) 调用的 API 版本;Azure 上 dall-e-3 必需api_key
: 字符串 (可选) - 用于身份验证和授权请求的 API 密钥。如果未提供,则使用默认 API 密钥。api_type
: 字符串 (可选) - 要使用的 API 类型。
litellm.image_generation()
的输出
{
"created": 1703658209,
"data": [{
'b64_json': None,
'revised_prompt': '一只可爱的海獭宝宝,厚厚的棕色毛皮,在蓝色海洋中嬉戏游泳。它好奇、明亮的眼睛在水中闪烁,小爪子紧贴胸前,在夕阳的柔和光芒下在轻柔的波浪中嬉戏旋转。',
'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='dall-e-2', prompt="可爱的海獭宝宝")
模型名称 | 函数调用 | 必需的操作系统变量 |
---|---|---|
dall-e-2 | image_generation(model='dall-e-2', 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'] |
Azure OpenAI 图像生成模型
API 密钥
可以设置为环境变量或作为 params 传递给 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)
模型名称 | 函数调用 |
---|---|
dall-e-2 | 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") |
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>", # 为模型添加 `openai/` 前缀,以便 litellm 知道路由到 OpenAI
api_base="http://0.0.0.0:8000/" # 设置自定义 OpenAI 端点的 API 基础
prompt="cute baby otter"
)
Bedrock - 稳定扩散
用于在 bedrock 上进行稳定扩散
用法
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}")