Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Model Stability.ai Diffusion 1.0 memiliki parameter inferensi berikut dan respons model untuk membuat panggilan inferensi teks ke gambar.
Permintaan dan Tanggapan
Badan permintaan diteruskan di body
bidang permintaan ke InvokeModelatau InvokeModelWithResponseStream.
Untuk informasi lebih lanjut, lihat https://platform.stability. ai/docs/api-reference#tag/v1 generasi
Model Stability.ai Diffusion 1.0 memiliki parameter inferensi berikut untuk panggilan inferensi teks ke gambar.
{
"text_prompts": [
{
"text": string,
"weight": float
}
],
"height": int,
"width": int,
"cfg_scale": float,
"clip_guidance_preset": string,
"sampler": string,
"samples",
"seed": int,
"steps": int,
"style_preset": string,
"extras" :JSON object
}
-
text_prompts (Wajib) - Sebuah array teks yang diminta untuk digunakan untuk pembuatan. Setiap elemen adalah objek JSON yang berisi prompt dan bobot untuk prompt.
text — Prompt yang ingin Anda teruskan ke model.
Minimum Maksimum 0
2000
-
berat (Opsional) - Bobot yang harus diterapkan model pada prompt. Nilai yang kurang dari nol menyatakan prompt negatif. Gunakan prompt negatif untuk memberi tahu model untuk menghindari konsep tertentu. Nilai default untuk
weight
adalah satu.
-
cfg_scale — (Opsional) Menentukan seberapa banyak gambar akhir menggambarkan prompt. Gunakan angka yang lebih rendah untuk meningkatkan keacakan dalam generasi.
Minimum Maksimum Default 0
35
7
-
clip_guidance_preset — (Opsional) Enum:.
FAST_BLUE, FAST_GREEN, NONE, SIMPLE SLOW, SLOWER, SLOWEST
-
height — (Opsional) Tinggi gambar yang akan dihasilkan, dalam piksel, dalam peningkatan yang dapat dibagi 64.
Nilainya harus salah satunya
1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
. -
lebar — (Opsional) Lebar gambar untuk menghasilkan, dalam piksel, dalam peningkatan yang dapat dibagi 64.
Nilainya harus salah satunya
1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152
. -
sampler — (Opsional) Sampler yang digunakan untuk proses difusi. Jika nilai ini dihilangkan, model secara otomatis memilih sampler yang sesuai untuk Anda.
Enum:
DDIM, DDPM, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN K_LMS
. -
sampel - (Opsional) Jumlah gambar yang akan dihasilkan. Saat ini Amazon Bedrock mendukung pembuatan satu gambar. Jika Anda memberikan nilai untuk
samples
, nilainya harus satu.Default Minimum Maksimum 1
1
1
-
benih — (Opsional) Benih menentukan pengaturan kebisingan awal. Gunakan seed yang sama dan pengaturan yang sama seperti proses sebelumnya untuk memungkinkan inferensi membuat gambar serupa. Jika Anda tidak menetapkan nilai ini, atau nilainya 0, itu ditetapkan sebagai angka acak.
Minimum Maksimum Default 0
4294967295
0
-
langkah - (Opsional) Langkah pembuatan menentukan berapa kali gambar diambil sampelnya. Lebih banyak langkah dapat menghasilkan hasil yang lebih akurat.
Minimum Maksimum Default 10
150
30
-
style_preset (Opsional) - Sebuah preset gaya yang memandu model gambar menuju gaya tertentu. Daftar preset gaya ini dapat berubah.
Enum:
3d-model, analog-film, animé, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture
. -
ekstra (Opsional) — Parameter ekstra diteruskan ke mesin. Berhati-hatilah saat menggunakannya. Parameter ini digunakan untuk fitur dalam pengembangan atau eksperimental dan dapat berubah tanpa peringatan.
Contoh kode
Contoh berikut menunjukkan cara menjalankan inferensi dengan model Stability.ai Diffusion 1.0 dan throughput sesuai permintaan. Contoh mengirimkan prompt teks ke model, mengambil respons dari model, dan akhirnya menunjukkan gambar.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate an image with SDXL 1.0 (on demand).
"""
import base64
import io
import json
import logging
import boto3
from PIL import Image
from botocore.exceptions import ClientError
class ImageError(Exception):
"Custom exception for errors returned by SDXL"
def __init__(self, message):
self.message = message
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_image(model_id, body):
"""
Generate an image using SDXL 1.0 on demand.
Args:
model_id (str): The model ID to use.
body (str) : The request body to use.
Returns:
image_bytes (bytes): The image generated by the model.
"""
logger.info("Generating image with SDXL model %s", model_id)
bedrock = boto3.client(service_name='bedrock-runtime')
accept = "application/json"
content_type = "application/json"
response = bedrock.invoke_model(
body=body, modelId=model_id, accept=accept, contentType=content_type
)
response_body = json.loads(response.get("body").read())
print(response_body['result'])
base64_image = response_body.get("artifacts")[0].get("base64")
base64_bytes = base64_image.encode('ascii')
image_bytes = base64.b64decode(base64_bytes)
finish_reason = response_body.get("artifacts")[0].get("finishReason")
if finish_reason == 'ERROR' or finish_reason == 'CONTENT_FILTERED':
raise ImageError(f"Image generation error. Error code is {finish_reason}")
logger.info("Successfully generated image withvthe SDXL 1.0 model %s", model_id)
return image_bytes
def main():
"""
Entrypoint for SDXL example.
"""
logging.basicConfig(level = logging.INFO,
format = "%(levelname)s: %(message)s")
model_id='stability.stable-diffusion-xl-v1'
prompt="""Sri lanka tea plantation."""
# Create request body.
body=json.dumps({
"text_prompts": [
{
"text": prompt
}
],
"cfg_scale": 10,
"seed": 0,
"steps": 50,
"samples" : 1,
"style_preset" : "photographic"
})
try:
image_bytes=generate_image(model_id = model_id,
body = body)
image = Image.open(io.BytesIO(image_bytes))
image.show()
except ClientError as err:
message=err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
except ImageError as err:
logger.error(err.message)
print(err.message)
else:
print(f"Finished generating text with SDXL model {model_id}.")
if __name__ == "__main__":
main()