Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Stability.ai Difusi 1.0 teks ke gambar
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/v1generation.
- Request
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.
-
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 untuk menghasilkan, dalam piksel, dalam kenaikan dibagi 64.
Nilai harus salah satunya1024x1024, 1152x896,
1216x832, 1344x768, 1536x640, 640x1536, 768x1344,
832x1216, 896x1152
.
-
lebar — (Opsional) Lebar gambar untuk menghasilkan, dalam piksel, dalam peningkatan dibagi dengan 64.
Nilai harus salah satunya1024x1024, 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 untuksamples
, 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, anime, 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.
- Response
-
Model Stability.ai Diffusion 1.0 mengembalikan bidang berikut untuk panggilan inferensi teks ke gambar.
{
"result": string,
"artifacts": [
{
"seed": int,
"base64": string,
"finishReason": string
}
]
}
Hasil — Hasil dari operasi. Jika berhasil, jawabannya adalahsuccess
.
-
artefak — Sebuah array gambar, satu untuk setiap gambar yang diminta.
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()