Stability.ai Diffusion 1.0 da testo a immagine - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Stability.ai Diffusion 1.0 da testo a immagine

Il modello Stability.ai Diffusion 1.0 ha i seguenti parametri di inferenza e la risposta del modello per effettuare chiamate di inferenza da testo a immagine.

Richiesta e risposta

Il corpo della richiesta viene passato nel body campo di una richiesta a InvokeModelo InvokeModelWithResponseStream.

Per ulteriori informazioni, consulta https://platform.stability.ai/docs/api-reference#tag/v1generation.

Request

Il modello Stability.ai Diffusion 1.0 ha i seguenti parametri di inferenza per effettuare chiamate di inferenza da testo a immagine.

{ "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 (obbligatorio): una matrice di prompt di testo da utilizzare per la generazione. Ogni elemento è un oggetto JSON che contiene un prompt e un peso per il prompt.

    • text: il prompt che desideri passare al modello.

      Minimo Massimo

      0

      2000

    • weight (facoltativo): il peso che il modello deve applicare al prompt. Un valore inferiore a zero dichiara un prompt negativo. Utilizza un prompt negativo per indicare al modello di evitare determinati concetti. Il valore predefinito per weight è uno.

  • cfg_scale (facoltativo): determina in che misura l'immagine finale ritrae il prompt. Utilizza un numero più basso per aumentare la casualità nella generazione.

    Minimo Massimo Predefinita

    0

    35

    7

  • clip_guidance_preset (facoltativo) Enum: FAST_BLUE, FAST_GREEN, NONE, SIMPLE SLOW, SLOWER, SLOWEST

  • height (facoltativo): altezza dell'immagine da generare, in pixel, con un incremento divisibile per 64.

    Il valore deve essere uno tra 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152.

  • width (facoltativo): larghezza dell'immagine da generare, in pixel, con un incremento divisibile per 64.

    Il valore deve essere uno tra 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152.

  • sampler (facoltativo): il campionatore da utilizzare per il processo di diffusione. Se questo valore viene omesso, il modello seleziona automaticamente un campionatore appropriato.

    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.

  • samples (facoltativo): il numero di immagini da generare. Attualmente Amazon Bedrock supporta la generazione di un'immagine. Se fornisci un valore per samples, il valore deve essere uno.

    Predefinita Minimo Massimo

    1

    1

    1

  • seed (facoltativo): il seed determina l'impostazione iniziale del rumore. Utilizza lo stesso seed e le stesse impostazioni dell'esecuzione precedente per consentire all'inferenza di creare un'immagine simile. Se non imposti questo valore, o il valore è 0, viene impostato su un numero random.

    Minimo Massimo Predefinita

    0

    4294967295

    0

  • steps (facoltativo): la fase di generazione determina quante volte l'immagine viene campionata. Ulteriori passaggi possono portare a un risultato più accurato.

    Minimo Massimo Predefinita

    10

    50

    30

  • style_preset (facoltativo): una preimpostazione di stile che guida il modello di immagine verso uno stile particolare. Questo elenco di preimpostazioni di stile è soggetto a modifiche.

    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.

  • extras (facoltativo): parametri aggiuntivi passati al motore. Utilizza questa soluzione con cautela. Questi parametri vengono utilizzati per funzionalità in fase di sviluppo o sperimentali e possono cambiare senza preavviso.

Response

Il modello Stability.ai Diffusion 1.0 ha i seguenti campi per effettuare chiamate di inferenza da testo a immagine.

{ "result": string, "artifacts": [ { "seed": int, "base64": string, "finishReason": string } ] }
  • result: il risultato dell'operazione. In caso di successo, la risposta è success.

  • artifacts: una serie di immagini, una per ogni immagine richiesta.

    • seed: il valore del seed utilizzato per generare l'immagine.

    • base64: l'immagine con codifica base64 generata dal modello.

    • finishedReason: il risultato del processo di generazione dell'immagine. I valori validi sono:

      • SUCCESS: il processo di generazione dell'immagine è riuscito.

      • ERROR: si è verificato un errore.

      • CONTENT_FILTERED: il filtro dei contenuti ha filtrato l'immagine e l'immagine potrebbe essere sfocata.

esempio di codice

L'esempio seguente mostra come eseguire l'inferenza con il modello Stability.ai Diffusion 1.0 e la velocità di trasmissione effettiva on demand. L'esempio invia un prompt di testo a un modello, recupera la risposta dal modello e infine mostra l'immagine.

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