Stability.ai Difusi 1.0 teks ke gambar - Amazon Bedrock

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.

      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 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.

    • seed — Nilai benih yang digunakan untuk menghasilkan gambar.

    • base64 - Gambar yang dikodekan base64 yang dihasilkan model.

    • FinishedReason — Hasil dari proses pembuatan gambar. Nilai yang valid adalah:

      • SUKSES — Proses pembuatan gambar berhasil.

      • ERROR - Terjadi kesalahan.

      • CONTENT_FILTERED - Filter konten menyaring gambar dan gambar mungkin kabur.

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()