Servizi di immagine Stability AI - 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à.

Servizi di immagine Stability AI

Puoi utilizzare Stability AI Image Services con Amazon Bedrock per accedere a nove strumenti di modifica delle immagini specializzati progettati per accelerare i flussi di lavoro creativi professionali. Con Stability AI Image Services puoi generare immagini da uno schizzo, ristrutturare e ridisegnare un'immagine esistente o rimuovere e sostituire oggetti all'interno di un'immagine.

Questa sezione descrive come effettuare chiamate di inferenza a Stability AI Image Services utilizzando. InvokeModel Questa sezione fornisce anche esempi di codice in Python ed esempi di immagini prima e dopo l'utilizzo di Stability AI Image Services.

I servizi di immagine di Stability AI sono disponibili nelle seguenti categorie:

  • Edit ‐ Servizi di modifica delle immagini basati sull'intelligenza artificiale, tra cui la pittura con maschere (riempimento generativo) o con parole. Include strumenti per il posizionamento e la pubblicità dei prodotti, oltre a strumenti di base come la rimozione dello sfondo.

  • Control ‐ Può richiedere istruzioni, mappe e altre guide. Questi servizi sfruttano ControlNets tecnologie simili basate su modelli Stable Diffusion.

Nota

L'abbonamento a qualsiasi servizio di modifica o controllo di Stability AI Image Service ti iscrive automaticamente a tutti e nove gli Stability AI Image Services disponibili.

Richiesta e risposta

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

Campo del corpo della richiesta di invocazione del modello

Quando effettui una InvokeModel chiamata utilizzando Stability AI Image Services, compila il campo body con un oggetto JSON simile al seguente.

{ 'prompt': 'Create an image of a panda' }

Modella le risposte di invocazione (body field)

Quando effettui una InvokeModel chiamata utilizzando Stability AI Image Services, la risposta è la seguente

{ 'seeds': [2130420379], 'finish_reasons': [null], 'images': ['...'] }
  • seeds — (string) Elenco dei semi utilizzati per generare immagini per il modello.

  • finish_reasons — Enum che indica se la richiesta è stata filtrata o meno. nullindicherà che la richiesta è andata a buon fine. Valori attuali possibili:"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null.

  • images: un elenco di immagini generate in formato stringa base64.

Per ulteriori informazioni, consultate https://platform.us.stability. ai/docs/api-reference#tag/v1 generazione.

Edit (Modifica)

La sezione seguente descrive la modifica di Stability AI Image Services.

Inpaint modifica in modo intelligente le immagini riempiendo o sostituendo aree specifiche con nuovi contenuti basati sul contenuto di un'immagine di maschera.

Inpaint ha i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine in uscita. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (string) L'immagine Base64 da colorare. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • style_preset ‐ (string) Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, ritocco, arte fantasy, isometrico, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

  • negative_prompt ‐ (stringa) Un testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • mask ‐ (string) Controlla l'intensità del processo di inpainting per pixel, tramite una seconda immagine (passata a questo parametro) o tramite il canale alfa del parametro image.

    • Inserimento di una maschera ‐ L'immagine passata a questo parametro deve essere un'immagine in bianco e nero che rappresenti, in ogni pixel, la forza della pittura in base al grado di oscurità o luce del pixel in questione. I pixel completamente neri non rappresentano alcuna forza di verniciatura, mentre i pixel completamente bianchi rappresentano la resistenza massima. Se la maschera ha una dimensione diversa dal parametro dell'immagine, verrà ridimensionata automaticamente.

    • Alpha Channel Support ‐ Se non si fornisce una maschera esplicita, ne verrà derivata una dal canale alfa del parametro image. I pixel trasparenti saranno inverniciati mentre i pixel opachi verranno preservati. Nel caso in cui venga fornita un'immagine con un canale alfa insieme a una maschera, la maschera avrà la precedenza.

  • grow_mask ‐ Ingrandisce i bordi della maschera verso l'esterno in tutte le direzioni del numero di pixel specificato. L'area espansa attorno alla maschera sarà sfocata, il che può aiutare a rendere più fluida la transizione tra il contenuto non dipinto e l'immagine originale. Intervallo compreso tra 0 e 20. Valore predefinito 5. Prova questo parametro se noti cuciture o bordi irregolari attorno al contenuto non verniciato. Nota che una crescita eccessiva può oscurare i dettagli più piccoli della maschera e and/or unire le aree mascherate vicine.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-inpaint-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64, "prompt": "artificer of time and space" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-inpaint-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64, "prompt": "artificer of time and space" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione Inpaint.

Input

Mask (Maschera)

Output

«Man in metropolis» generato da Stable Image Ultra, istruzioni e modifiche da Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Cerca e ricolora consente di cambiare il colore di un oggetto specifico in un'immagine utilizzando un prompt. Questo servizio è una versione specifica di Inpainting che non richiede una maschera. Segmenterà automaticamente l'oggetto e lo ricolorerà utilizzando i colori richiesti nel prompt.

Search and Recolor ha i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine di output. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (string) L'immagine Base64 da ricolorare. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

  • select_prompt ‐ (stringa) Breve descrizione di cosa cercare nell'immagine. Massimo 10000 caratteri.

I parametri seguenti sono facoltativi:

  • style_preset ‐ (string) Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, ritocco, arte fantasy, isometrico, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

  • negative_prompt ‐ (stringa) Un testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • grow_mask ‐ Ingrandisce i bordi della maschera verso l'esterno in tutte le direzioni per il numero di pixel specificato. L'area espansa attorno alla maschera sarà sfocata, il che può aiutare a rendere più fluida la transizione tra il contenuto non dipinto e l'immagine originale. Intervallo compreso tra 0 e 20. Valore predefinito 5. Prova questo parametro se noti cuciture o bordi irregolari attorno al contenuto non verniciato. Nota che una crescita eccessiva può oscurare i dettagli più piccoli della maschera e and/or unire le aree mascherate vicine.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-recolor-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "pink jacket", "select_prompt": "jacket" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-recolor-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "pink jacket", "select_prompt": "jacket" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione di ricerca e ricolora utilizzando il seguente prompt: pink jacket.

Input

Output

«Uomo che indossa un piumino» generato da Stable Image Ultra, istruzioni e modifiche di Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Search and Replace consente di utilizzare un prompt di ricerca per identificare un oggetto in un linguaggio semplice da sostituire. Il servizio segmenterà automaticamente l'oggetto e lo sostituirà con l'oggetto richiesto nel prompt senza richiedere una maschera.

Search and Replace ha i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine di output. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (string) L'immagine Base64 da ricolorare. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

  • search_prompt ‐ (stringa) Breve descrizione di cosa inserire nell'immagine. Massimo 10000 caratteri.

I parametri seguenti sono facoltativi:

  • style_preset ‐ (string) Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, ritocco, arte fantasy, isometrico, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

  • negative_prompt ‐ (stringa) Un testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • grow_mask ‐ Ingrandisce i bordi della maschera verso l'esterno in tutte le direzioni per il numero di pixel specificato. L'area espansa attorno alla maschera sarà sfocata, il che può aiutare a rendere più fluida la transizione tra il contenuto non dipinto e l'immagine originale. Intervallo compreso tra 0 e 20. Valore predefinito 5. Prova questo parametro se noti cuciture o bordi irregolari attorno al contenuto non verniciato. Nota che una crescita eccessiva può oscurare i dettagli più piccoli della maschera e and/or unire le aree mascherate vicine.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-replace-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "jacket", "search_prompt": "sweater", } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-search-replace-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "jacket", "search_prompt": "sweater", } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione di ricerca e sostituzione utilizzando il seguente prompt: jacket.

Input

Output

«Modella femminile che indossa un maglione autunnale» generato da Stable Image Ultra. Istruzioni e modifiche di Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Erase consente di rimuovere elementi indesiderati utilizzando maschere di immagini, mantenendo al contempo in modo intelligente la coerenza dello sfondo.

Erase ha i seguenti parametri obbligatori:

  • image ‐ (string) L'immagine Base64 da cui cancellare. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • mask ‐ (string) Controlla l'intensità del processo di inpainting per pixel, tramite una seconda immagine (passata a questo parametro) o tramite il canale alfa del parametro image.

    • Inserimento di una maschera ‐ L'immagine passata a questo parametro deve essere un'immagine in bianco e nero che rappresenti, in ogni pixel, la forza della pittura in base al grado di oscurità o luce del pixel in questione. I pixel completamente neri non rappresentano alcuna forza di verniciatura, mentre i pixel completamente bianchi rappresentano la resistenza massima. Se la maschera ha una dimensione diversa dal parametro dell'immagine, verrà ridimensionata automaticamente.

    • Alpha Channel Support ‐ Se non si fornisce una maschera esplicita, ne verrà derivata una dal canale alfa del parametro image. I pixel trasparenti saranno inverniciati mentre i pixel opachi verranno preservati. Nel caso in cui venga fornita un'immagine con un canale alfa insieme a una maschera, la maschera avrà la precedenza.

  • grow_mask ‐ Ingrandisce i bordi della maschera verso l'esterno in tutte le direzioni del numero di pixel specificato. L'area espansa attorno alla maschera sarà sfocata, il che può aiutare a rendere più fluida la transizione tra il contenuto non dipinto e l'immagine originale. Intervallo compreso tra 0 e 20. Valore predefinito 5. Prova questo parametro se noti cuciture o bordi irregolari attorno al contenuto non verniciato. Nota che una crescita eccessiva può oscurare i dettagli più piccoli della maschera e and/or unire le aree mascherate vicine.

Nota

Per risultati di cancellazione ottimali, assicuratevi che la maschera definisca accuratamente le aree da rimuovere. Se non viene fornita alcuna maschera esplicita, il servizio utilizzerà il canale alfa dell'immagine di input. La maschera avrà la precedenza se vengono fornite entrambe.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-erase-object-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8'), with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64 } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" mask = "./content/mask.png" region = "us-east-1" model_id = "us.stability.stable-image-erase-object-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8'), with open(mask, "rb") as mask_file: mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8') params = { "image": image_base64, "mask": mask_base64 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione di cancellazione.

Input

Mask (Maschera)

Output

«Students Desk» generato da Stable Image Ultra. Istruzioni e modifiche di Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Rimuovi sfondo consente di isolare i soggetti dallo sfondo con precisione.

Remove Background ha i seguenti parametri obbligatori:

  • image ‐ (string) L'immagine Base64 da cui rimuovere lo sfondo. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-remove-background-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.png" region = "us-east-1" model_id = "us.stability.stable-image-remove-background-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64 } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione Rimuovi sfondo.

Input

Output

«Modella femminile che indossa un maglione autunnale» generato da Stable Image Ultra. Istruzioni e modifiche di Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Controllo

La sezione seguente descrive il controllo Stability AI Image Services.

Trasforma schizzi grezzi disegnati a mano in risultati raffinati con un controllo preciso. Per le immagini non disegnate, Control Sketch consente una manipolazione dettagliata dell'aspetto finale sfruttando le linee di contorno e i bordi all'interno dell'immagine.

Control Sketch ha i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine in uscita. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (stringa) L'immagine Base64 dello schizzo. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • control_strength ‐ (number) Quanta influenza o controllo ha l'immagine sulla generazione. Rappresentata come un float compreso tra 0 e 1, dove 0 è l'influenza minima e 1 è la massima. Valore predefinito 0,7.

  • negative_prompt ‐ (stringa) Un blurb di testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • style_preset ‐ Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, illustrazione, arte fantasy, isometrica, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-sketch-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "a house with background of mountains and river flowing nearby" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-sketch-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "a house with background of mountains and river flowing nearby" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di una chiamata Control Sketch utilizzando il seguente prompt: una casa con sullo sfondo le montagne e il fiume che scorre nelle vicinanze.

Input

Output

«Schizzo di casa, montagne e fiume» di Sanwal Yousaf. Concesso in licenza con CC BY 4.0

Control Structure consente di generare immagini mantenendo la struttura di un'immagine di input. Ciò è particolarmente utile per scenari avanzati di creazione di contenuti, come la ricreazione di scene o il rendering di personaggi a partire da modelli.

Control Structure presenta i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine di output. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (stringa) L'immagine Base64 dello schizzo. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • control_strength ‐ (number) Quanta influenza o controllo ha l'immagine sulla generazione. Rappresentata come un float compreso tra 0 e 1, dove 0 è l'influenza minima e 1 è la massima. Valore predefinito 0,7.

  • negative_prompt ‐ (stringa) Un blurb di testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • style_preset ‐ Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, ritocco, arte fantasy, isometrico, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-structure-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "surreal structure with motion generated sparks lighting the scene" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-control-structure-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "surreal structure with motion generated sparks lighting the scene" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di un'operazione Control Structure utilizzando il seguente prompt: struttura surreale con scintille generate dal movimento che illuminano la scena.

La Guida di stile consente di estrarre elementi stilistici da un'immagine di input e utilizzarli per guidare la creazione di un'immagine di output in base al prompt. Il risultato è una nuova immagine nello stesso stile dell'immagine di input.

La Style Guide ha i seguenti parametri obbligatori:

  • prompt ‐ Cosa si desidera vedere nell'immagine in uscita. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu. Minimo 0 e massimo 10000 caratteri.

  • image ‐ (stringa) L'immagine Base64 dello schizzo. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • aspect_ratio ‐ (string) Controlla le proporzioni dell'immagine generata. Questo parametro è valido solo per le richieste. text-to-image Valore predefinito 1:1. Enum: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. Predefinito 1:1.

  • negative_prompt ‐ (string) Un blurb di testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • fidelity ‐ (numero) Quanto lo stile dell'immagine di output assomiglia allo stile dell'immagine di input. Intervallo da 0 a 1. Valore predefinito 0,5.

  • style_preset ‐ Guida il modello dell'immagine verso uno stile particolare. Enum: modello 3D, film analogico, anime, cinema, fumetti, arte digitale, ritocco, arte fantasy, isometrico, line-art, low-poly, modeling-compound, neon-punk, origami, fotografia, pixel-art, tile texture.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-style-guide-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "wide shot of modern metropolis" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/input.jpg" region = "us-east-1" model_id = "us.stability.stable-image-style-guide-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') params = { "image": image_base64, "prompt": "wide shot of modern metropolis" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di una chiamata Style Guide utilizzando il seguente prompt: wide shot of modern metropolis.

Style Transfer consente di applicare le caratteristiche visive delle immagini di stile di riferimento alle immagini di destinazione. Mentre il servizio Style Guide estrae gli elementi stilistici da un'immagine di input e li utilizza per guidare la creazione di un'immagine di output in base al prompt, Style Transfer trasforma specificamente il contenuto esistente preservando la composizione originale. Questo strumento aiuta a creare contenuti coerenti su più risorse.

Style Transfer ha i seguenti parametri obbligatori:

  • init_image ‐ (string) Un'immagine Base64 contenente il soggetto a cui desiderate modificare lo stile. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

  • style_image ‐ (string) Un'immagine Base64 contenente il soggetto a cui desideri modificare lo stile. Ogni lato dell'immagine deve avere una dimensione di almeno 64 pixel. Il numero totale di pixel non può superare 9.437.184 pixel. Le proporzioni dell'immagine devono essere comprese tra 1:2,5 e 2, 5:1. Formati supportati: jpeg, png, webp.

I parametri seguenti sono facoltativi:

  • prompt ‐ (stringa) Cosa si desidera vedere nell'immagine di output. Un messaggio forte e descrittivo che definisca chiaramente elementi, colori e soggetti porterà a risultati migliori. Per controllare il peso di una determinata parola usa il formato (word:weight), dove parola è la parola di cui vuoi controllare il peso e peso è un valore. Un valore compreso tra 0 e 1,0 deenfatizzava la parola e un valore compreso tra 1,1 e 2 enfatizzava la parola. Ad esempio: il cielo era nitido (blu:0,3) e (verde:1,8) indicava un cielo blu e verde, ma più verde che blu.

  • negative_prompt ‐ (stringa) Una stringa di testo che descrive ciò che non si desidera vedere nell'immagine di output. Questa è una caratteristica avanzata. Massimo 10000 caratteri.

  • seed ‐ (number) Un valore specifico utilizzato per determinare la «casualità» della generazione. (Omettete questo parametro o passate 0 per usare un seme casuale.) Intervallo da 0 a 4294967294. Valore predefinito 0.

  • output_format ‐ (string) Indica il tipo di contenuto dell'immagine generata. Enum: jpeg, png, webp. Png predefinito.

  • composition_fidelity ‐ (number) Quanto lo stile dell'immagine di output assomiglia allo stile dell'immagine di input. Intervallo tra 0 e 1. Valore predefinito 0,9.

  • style_strength ‐ (number) A volte chiamato denoising, questo parametro controlla l'influenza del parametro style_image sull'immagine generata. Un valore pari a 0 restituirebbe un'immagine identica all'input. Un valore pari a 1 sarebbe come se non fosse stata trasmessa alcuna immagine. Intervallo compreso tra 0 e 1. Impostazione predefinita 1.

  • change_strength ‐ (numero) Quanto deve cambiare l'immagine originale. Intervallo compreso tra 0,1 e 1. Valore predefinito 0,9.

API
import base64 import json import requests import io import os from PIL import Image image = "./content/input.jpg" style_image = "./content/style.jpg" region = "us-east-1" model_id = "us.stability.stable-style-transfer-v1:0" url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke" api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html headers = { "Content-Type":"application/json", "Authorization":f"Bearer {api_key}" } try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(style_image, "rb") as style_image_file: style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8') params = { "init_image": image_base64, "style_image": style_image_base64, "prompt": "statue" } response = requests.request("POST", url, json=params, headers=headers) response.raise_for_status() model_response = json.loads(response.text) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)
Python
import boto3 import base64 import io import json from PIL import Image image = "./content/cat_statue_512x512.jpg" style_image = "./content/glowbot_style.jpg" region = "us-east-1" model_id = "us.stability.stable-style-transfer-v1:0" bedrock = boto3.client("bedrock-runtime", region_name=region) try: with open(image, "rb") as image_file: image_base64 = base64.b64encode(image_file.read()).decode('utf-8') with open(style_image, "rb") as style_image_file: style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8') params = { "init_image": image_base64, "style_image": style_image_base64, "prompt": "statue" } request = json.dumps(params) response = bedrock.invoke_model(modelId=model_id, body=request) model_response = json.loads(response["body"].read()) base64_image_data = model_response["images"][0] if not base64_image_data: raise ValueError("No image data found in model response.") image_data = base64.b64decode(base64_image_data) image = Image.open(io.BytesIO(image_data)) image.save("image.png") print("Successfully saved image.") except Exception as e: print(e)

La tabella seguente mostra le immagini di input e output di una chiamata Style Transfer.