Stability.ai Difusi 1.0 gambar 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 gambar ke gambar

Model Stability.ai Diffusion 1.0 memiliki parameter inferensi berikut dan respons model untuk membuat panggilan inferensi gambar 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/operation/ imageToImage.

Request

Model Stability.ai Diffusion 1.0 memiliki parameter inferensi berikut untuk panggilan inferensi gambar ke gambar.

{ "text_prompts": [ { "text": string, "weight": float } ], "init_image" : string , "init_image_mode" : string, "image_strength" : float, "cfg_scale": float, "clip_guidance_preset": string, "sampler": string, "samples" : int, "seed": int, "steps": int, "style_preset": string, "extras" : json object }

Berikut ini adalah parameter yang diperlukan.

  • text_prompts — (Wajib) Sebuah array teks meminta untuk digunakan untuk pembuatan. Setiap elemen adalah JSON objek 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.

  • init_image - (Wajib) Gambar berenkode base64 yang ingin Anda gunakan untuk menginisialisasi proses difusi.

Berikut ini adalah parameter opsional.

  • init_image_mode — (Opsional) Menentukan apakah akan menggunakan image_strength atau step_schedule_* mengontrol seberapa besar pengaruh gambar pada hasil. init_image Nilai yang mungkin adalah IMAGE_STRENGTH atauSTEP_SCHEDULE. Defaultnya adalah IMAGE _STRENGTH.

  • image_strength — (Opsional) Menentukan seberapa besar pengaruh gambar sumber pada proses init_image difusi. Nilai yang mendekati 1 menghasilkan gambar yang sangat mirip dengan gambar sumber. Nilai mendekati 0 menghasilkan gambar yang sangat berbeda dari gambar sumber.

  • cfg_scale — (Opsional) Menentukan seberapa banyak gambar akhir menggambarkan prompt. Gunakan angka yang lebih rendah untuk meningkatkan keacakan dalam generasi.

    Default Minimum Maksimum

    7

    0

    35

  • clip_guidance_preset — (Opsional) Enum:. FAST_BLUE, FAST_GREEN, NONE, SIMPLE, SLOW, SLOWER, SLOWEST

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

    Default Minimum Maksimum

    0

    0

    4294967295

  • langkah - (Opsional) Langkah pembuatan menentukan berapa kali gambar diambil sampelnya. Lebih banyak langkah dapat menghasilkan hasil yang lebih akurat.

    Default Minimum Maksimum

    30

    10

    50

  • style_preset — (Opsional) 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.

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:

      • SUCCESS— Proses pembuatan gambar berhasil.

      • ERROR— Terjadi kesalahan.

      • CONTENT_ FILTERED — Filter konten memfilter 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 dan gambar referensi 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 from a reference 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="""A space ship.""" # Read reference image from file and encode as base64 strings. with open("/path/to/image", "rb") as image_file: init_image = base64.b64encode(image_file.read()).decode('utf8') # Create request body. body=json.dumps({ "text_prompts": [ { "text": prompt } ], "init_image": init_image, "style_preset" : "isometric" }) 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()