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à.
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/v1 generazione
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
150
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, animé, 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.
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()