跳至主要內容

AWS Bedrock - 圖像生成

使用 Bedrock 搭配 Stable Diffusion、Amazon Titan Image Generator 和 Amazon Nova Canvas 模型進行圖像生成。

支援的模型

模型名稱函式呼叫成本追蹤
Stable Diffusion 3 - v0image_generation(model="bedrock/stability.stability.sd3-large-v1:0", prompt=prompt)
Stable Diffusion - v0image_generation(model="bedrock/stability.stable-diffusion-xl-v0", prompt=prompt)
Stable Diffusion - v1image_generation(model="bedrock/stability.stable-diffusion-xl-v1", prompt=prompt)
Amazon Titan Image Generator - v1image_generation(model="bedrock/amazon.titan-image-generator-v1", prompt=prompt)
Amazon Titan Image Generator - v2image_generation(model="bedrock/amazon.titan-image-generator-v2:0", prompt=prompt)
Amazon Nova Canvas - v1image_generation(model="bedrock/amazon.nova-canvas-v1:0", prompt=prompt)

用法

基本用法

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

設定選用參數

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",
### OPENAI-COMPATIBLE ###
size="128x512", # width=128, height=512
### PROVIDER-SPECIFIC ### see `AmazonStabilityConfig` in bedrock.py for all params
seed=30
)
print(f"response: {response}")

Amazon Nova Canvas - 圖像編輯

搭配 Bedrock Nova Canvas(amazon.nova-canvas-v1:0)使用與 OpenAI 相容的 image_edit()。請求使用與生成相同的 InvokeModel API;LiteLLM 會將輸入映射到 Nova Canvas task types

情境傳送至 Bedrock 的 taskType
圖像 + 提示詞(無遮罩)IMAGE_VARIATION
圖像 + 提示詞 + 遮罩INPAINTINGinPaintingParams.imagemaskImagemaskPrompt
taskType: OUTPAINTING + maskmaskPromptOUTPAINTING(Bedrock 需要其中一個;如果兩者都缺少,LiteLLM 會清楚地報錯)
taskType: BACKGROUND_REMOVALBACKGROUND_REMOVAL
from litellm import image_edit

response = image_edit(
image=open("photo.png", "rb"),
prompt="Add soft sunset lighting",
model="bedrock/amazon.nova-canvas-v1:0",
)

對於 BACKGROUND_REMOVAL,AWS 請求不得包含 imageGenerationConfig;即使您傳入 sizenseed 等,LiteLLM 也會在該任務中省略它。用於圖像編輯的其他 Nova Canvas inference IDs 應在 model_prices_and_context_window.json 中設定 supports_nova_canvas_image_edit: true(請參閱 amazon.nova-canvas-v1:0)。

使用圖像生成的 Inference Profiles

對於帶有圖像生成功能的 AWS Bedrock Application Inference Profiles,請使用 model_id 參數來指定 inference profile ARN:

from litellm import image_generation

response = image_generation(
model="bedrock/amazon.nova-canvas-v1:0",
model_id="arn:aws:bedrock:eu-west-1:000000000000:application-inference-profile/a0a0a0a0a0a0",
prompt="A cute baby sea otter"
)
print(f"response: {response}")

驗證

圖像生成支援所有標準 Bedrock 驗證方法。詳情請參閱 Bedrock Authentication