跳到主要内容

图像生成

快速开始

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 -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"
}'

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-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() 的输出


{
"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-1image_generation(model='gpt-image-1', prompt="cute baby otter")os.environ['OPENAI_API_KEY']
dall-e-3image_generation(model='dall-e-3', prompt="cute baby otter")os.environ['OPENAI_API_KEY']
dall-e-2image_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-1image_generation(model="azure/<your deployment name>", prompt="cute baby otter")
dall-e-3image_generation(model="azure/<your deployment name>", prompt="cute baby otter")
dall-e-2image_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}")