View a markdown version of this page

Stability AI Image Services - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stability AI Image Services

Sie können Stability AI Image Services mit Amazon Bedrock verwenden, um auf dreizehn spezielle Bildbearbeitungswerkzeuge zuzugreifen. Diese Tools wurden entwickelt, um professionelle kreative Arbeitsabläufe zu beschleunigen. Mit Stability AI Image Services können Sie Bilder aus einer Skizze generieren, ein vorhandenes Bild umstrukturieren und neu gestalten. Sie können auch Objekte in einem Bild entfernen und ersetzen.

In diesem Abschnitt wird beschrieben, wie Sie mithilfe von Inferenzaufrufen an die Stability AI Image Services senden. InvokeModel Dieser Abschnitt enthält auch Codebeispiele in Python sowie Beispiele für Bilder vor und nach der Verwendung von Stability AI Image Services.

Stability AI Image Services sind in den folgenden Kategorien verfügbar:

  • Bearbeiten — AI-based Bildbearbeitungsdienste, einschließlich Inpainting mit Masken (generatives Füllen) oder mit Wörtern. Beinhaltet Tools für Produktplatzierung und Werbung sowie grundlegende Tools wie die Entfernung des Hintergrunds.

  • Steuerung — Erlaubt Eingabeaufforderungen, Karten und andere Anleitungen. Diese Dienste verwenden ControlNets und ähnliche Technologien, die auf Stable Diffusion-Modellen basieren.

Anmerkung

Wenn Sie einen Stability AI Image Service abonnieren, bearbeiten oder steuern, werden Sie automatisch für alle dreizehn verfügbaren Stability AI Image Services registriert.

Anforderung und Antwort

Der Anfragetext wird im body Feld einer Anfrage an übergeben. InvokeModel

Feld für den Anforderungstext des Modellaufrufs

Wenn Sie mithilfe der Stability AI Image Services einen InvokeModel Anruf tätigen, füllen Sie das Textfeld mit einem JSON-Objekt, das wie folgt aussieht.

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

Textfeld für Modellaufrufantworten

Wenn Sie mithilfe der Stability AI Image Services einen InvokeModel Anruf tätigen, sieht die Antwort wie folgt aus

{ 'seeds': [2130420379], 'finish_reasons': [null], 'images': ['...'] }
  • seeds – (Zeichenfolge) Seed-Liste zum Generieren von Bildern für das Modell

  • finish_reasons – Aufzählung, die angibt, ob die Anforderung gefiltert wurde oder nicht. null gibt an, dass die Anforderung erfolgreich war. Aktuelle mögliche Werte: "Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null.

  • images – Eine Liste generierter Bilder im base64-Zeichenfolgenformat.

Weitere Informationen finden Sie unter https://platform.us.stability.ai/docs/api-reference # tag/v1generation.

Gehoben

Im folgenden Abschnitt werden die Upscale Stability AI Image Services beschrieben.

Creative Upscale nimmt Bilder zwischen 64 x 64 und 1 Megapixel auf und skaliert sie auf eine 4K-Auflösung hoch. Dieser Service kann Bilder um das 20- bis 40-fache hochskalieren, wobei die Qualität erhalten bleibt und häufig verbessert wird. Creative Upscale eignet sich am besten für stark verschlechterte Bilder und ist nicht für Fotos mit 1 Megapixel oder höher geeignet, da es umfangreiche Neudarstellungen durchführt.

Creative Upscale hat die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild, das hochskaliert werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtzahl der Pixel muss zwischen 4.096 und 1.048.576 Pixeln liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • Kreativität — (Zahl) Gibt an, wie kreativ das Modell beim Hochskalieren eines Bilds sein sollte. Höhere Werte führen dazu, dass dem Bild beim Hochskalieren mehr Details hinzugefügt werden. Bereich zwischen 0,1 und 0,5. Standard 0,3

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • style_preset — Führt das Bildmodell zu einem bestimmten Stil. Aufzählung: 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.

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-creative-upscale-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": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } 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-creative-upscale-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": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } 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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Creative Upscale-Vorgangs. Die verwendete Aufforderung lautet: Diese traumhafte digitale Kunst fängt einen lebendigen, kaleidoskopischen Big Ben in London ein.

Conservative Upscale nimmt Bilder zwischen 64 x 64 und 1 Megapixel auf und skaliert sie auf eine 4K-Auflösung. Dieser Service kann Bilder um das 20- bis 40-fache hochskalieren und dabei alle Aspekte beibehalten. Conservative Upscale minimiert Änderungen am Bild und sollte nicht zur Neugestaltung eines Bilds verwendet werden.

Conservative Upscale hat die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild, das hochskaliert werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • creativity — (Zahl) Gibt an, wie kreativ das Modell beim Hochskalieren eines Bilds sein sollte. Höhere Werte führen dazu, dass dem Bild beim Hochskalieren mehr Details hinzugefügt werden. Bereich zwischen 0,1 und 0,5. Standard 0,35

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

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-conservative-upscale-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": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } 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-conservative-upscale-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": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London", "creativity": 0.30 } 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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder einer Conservative Upscale-Operation. Die verwendete Aufforderung lautet: Diese traumhafte digitale Kunst fängt einen lebendigen, kaleidoskopischen Big Ben in London ein.

Fast Upscale verbessert die Bildauflösung mithilfe von prädiktiver und generativer KI um das Vierfache. Dieser leichte und schnelle Dienst ist ideal, um die Qualität komprimierter Bilder zu verbessern und eignet sich daher für Beiträge in sozialen Netzwerken und andere Anwendungen.

Fast Upscale hat die folgenden erforderlichen Parameter:

  • image — (string) Das Base64-Bild, das hochskaliert werden soll. Die Breite muss zwischen 32 und 1.536 Pixeln liegen. Die Höhe muss zwischen 32 und 1.536 Pixeln liegen. Die Gesamtzahl der Pixel muss zwischen 1.024 und 1.048.576 Pixeln liegen. Unterstützte Formate: JPEG, PNG, WebP.

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

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-fast-upscale-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.jpg" region = "us-east-1" model_id = "us.stability.stable-fast-upscale-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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Fast-Upscale-Vorgangs.

Bearbeiten

Im folgenden Abschnitt wird die Bearbeitung von Stability AI Image Services beschrieben.

Mit Inpaint werden Bilder auf intelligente Weise geändert, indem bestimmte Bereiche ausgefüllt oder durch neuen Inhalt ersetzt werden, der auf dem Inhalt eines Maskenbilds basiert.

Inpaint verfügt über die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild zum Einmalen. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • style_preset – (Zeichenfolge) richtet das Bildmodell auf einen bestimmten Stil aus. Aufzählung: 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.

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • mask — (string) Steuert die Stärke des Inpainting-Prozesses pro Pixel. Sie können ihn über ein zweites Bild (das an diesen Parameter übergeben wird) oder über den Alphakanal des Bildparameters steuern.

    • Übergeben einer Maske — Das an diesen Parameter übergebene Bild sollte ein Schwarzweißbild sein, das bei jedem Pixel die Stärke der Einmalung darstellt, je nachdem, wie dunkel oder hell das jeweilige Pixel ist. Vollständig schwarze Pixel stellen keine Inpainting-Stärke dar, vollständig weiße Pixel stehen hingegeben für maximale Stärke. Falls die Maske eine andere Größe als der Bildparameter aufweist, wird ihre Größe automatisch angepasst.

    • Alphakanal-Unterstützung — Wenn Sie keine explizite Maske angeben, wird eine vom Alphakanal des Bildparameters abgeleitet. Für transparente Pixel erfolgt ein Inpainting, undurchsichtige Pixel hingegeben werden beibehalten. Falls ein Bild mit einem Alphakanal zusammen mit einer Maske bereitgestellt wird, hat die Maske Vorrang.

  • grow_mask — Vergrössert die Kanten der Maske in alle Richtungen um die angegebene Anzahl von Pixeln nach außen. Der erweiterte Bereich um die Maske herum wird unscharf, was dazu beitragen kann, den Übergang zwischen Inhalt, für den ein Inpainting durchgeführt wurde, und dem Originalbild zu glätten. Der Bereich liegt zwischen 0 und 20. Standard: 5 Probieren Sie diesen Parameter aus, wenn Sie am Inhalt, für den kein Inpainting durchgeführt wurde, Übergänge oder raue Kanten bemerken. Beachten Sie, dass durch übermäßiges Wachstum feine Details in der Maske verdeckt werden können, wenn sich in der Nähe befindliche maskierte Bereiche vermischen and/or .

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)

In der folgenden Tabelle sind die Eingabe- und Ausgabebilder eines Inpaint-Vorgangs aufgeführt.

Input

Maske

Ausgabe

Mann im blauen dreiteiligen Anzug steht nachts draußen mit der Skyline der Stadt im Hintergrund.

„Mann in Metropolis“ wurde von Stable Image Ultra generiert. Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Ein Maskenbild, das den für das Inpainting ausgewählten Bereich zeigt, wobei der ausgewählte Bereich hervorgehoben ist.
Person in futuristischer Rüstung mit leuchtenden blauen Elementen vor der nächtlichen Skyline der Stadt.

Outpaint fügt zusätzlichen Inhalt in ein Bild ein, um den Raum in einer beliebigen Richtung auszufüllen. Andere automatische oder manuelle Methoden zur Erweiterung des Bildinhalts können sichtbare Artefakte hinterlassen. Der Outpaint-Dienst minimiert Hinweise darauf, dass das Originalbild bearbeitet wurde.

Outpaint hat die folgenden erforderlichen Parameter:

  • image — (string) Das Base64-Bild, das übermalt werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

    Anmerkung

    Für mindestens eine Outpaint-Richtung (links, rechts, oben oder unten) muss ein Wert ungleich Null angegeben werden. Um eine optimale Qualität zu erzielen, sollten Sie bei der Auswahl der Ausdruckrichtung die Zusammensetzung und den Inhalt Ihres Originalbilds berücksichtigen.

Die folgenden Parameter sind optional:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • style_preset – (Zeichenfolge) richtet das Bildmodell auf einen bestimmten Stil aus. Aufzählung: 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.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • creativity — (Zahl) Gibt an, wie kreativ das Modell sein soll, wenn es ein Bild übermalt. Höhere Werte führen dazu, dass dem Bild beim Ausmalen mehr kreativer Inhalt hinzugefügt wird. Bereich zwischen 0,1 und 1,0. Standard: 0,5

  • left — (integer) Die Anzahl der Pixel, die auf der linken Seite des Bilds übermalt werden sollen. Für mindestens eine Richtung beim Übermalen muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Standard 0.

  • right — (integer) Die Anzahl der Pixel, die auf der rechten Seite des Bildes übermalt werden sollen. Für mindestens eine Richtung beim Übermalen muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Standard 0.

  • up — (Ganzzahl) Die Anzahl der Pixel, die am oberen Bildrand übermalt werden sollen. Für mindestens eine Richtung beim Übermalen muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Standard 0.

  • nach unten — (Ganzzahl) Die Anzahl der Pixel, die am unteren Bildrand übermalt werden sollen. Für mindestens eine Richtung beim Ausmalen muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Standard 0.

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-outpaint-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, "left": 512, "right": 512, "up": 200, "down": 100 } 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-outpaint-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, "left": 512, "right": 512, "up": 200, "down": 100 } 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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder einer Outpaint-Operation.

Mit „Suchen und umfärben“ können Sie die Farbe eines bestimmten Objekts in einem Bild mithilfe eines Prompts ändern. Bei diesem Service handelt es sich um eine spezielle Version von Inpainting, für die keine Maske erforderlich ist. Er segmentiert das Objekt automatisch und färbt es mit den im Prompt angeforderten Farben um.

„Suchen und umfärben“ verfügt über die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild, das neu gefärbt werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

  • select_prompt — (string) Kurze Beschreibung dessen, wonach im Bild gesucht werden soll. Maximal 10000 Zeichen.

Die folgenden Parameter sind optional:

  • style_preset – (Zeichenfolge) richtet das Bildmodell auf einen bestimmten Stil aus. Aufzählung: 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.

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • grow_mask — Vergrössert die Kanten der Maske in alle Richtungen um die angegebene Anzahl von Pixeln nach außen. Der erweiterte Bereich um die Maske herum wird unscharf, was dazu beitragen kann, den Übergang zwischen Inhalt, für den ein Inpainting durchgeführt wurde, und dem Originalbild zu glätten. Der Bereich liegt zwischen 0 und 20. Standard: 5 Probieren Sie diesen Parameter aus, wenn Sie am Inhalt, für den kein Inpainting durchgeführt wurde, Übergänge oder raue Kanten bemerken. Beachten Sie, dass durch übermäßiges Wachstum feine Details in der Maske verdeckt werden können, die sich in der Nähe befindliche maskierte Bereiche vermischen and/or .

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Such- und Neufärbungsvorgangs. Die verwendete Eingabeaufforderung lautet: pinke Jacke.

Input

Ausgabe

Person mit Sonnenbrille und blauer Pufferjacke mit Rucksack in verschneiter Bergkulisse.

„Mann mit Pufferjacke“, generiert von Stable Image Ultra, Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Person mit Sonnenbrille und lila Winterjacke mit Rucksack in verschneiter Bergkulisse.

„Suchen und ersetzen“ ermöglicht es Ihnen, mithilfe eines Such-Prompts ein Objekt in einfacher Sprache zu identifizieren, das ersetzt werden soll. Der Service segmentiert das Objekt automatisch und ersetzt es durch das im Prompt angeforderte Objekt, ohne dass eine Maske erforderlich ist.

„Suchen und ersetzen“ verfügt über die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild, das neu gefärbt werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

  • search_prompt — (string) Kurze Beschreibung dessen, was in das Bild eingefügt werden soll. Maximal 10000 Zeichen.

Die folgenden Parameter sind optional:

  • style_preset – (Zeichenfolge) richtet das Bildmodell auf einen bestimmten Stil aus. Aufzählung: 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.

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • grow_mask — Vergrössert die Kanten der Maske in alle Richtungen um die angegebene Anzahl von Pixeln nach außen. Der erweiterte Bereich um die Maske herum wird unscharf, was dazu beitragen kann, den Übergang zwischen Inhalt, für den ein Inpainting durchgeführt wurde, und dem Originalbild zu glätten. Der Bereich liegt zwischen 0 und 20. Standard: 5 Probieren Sie diesen Parameter aus, wenn Sie am Inhalt, für den kein Inpainting durchgeführt wurde, Übergänge oder raue Kanten bemerken. Beachten Sie, dass durch übermäßiges Wachstum feine Details in der Maske verdeckt werden können, die sich in der Nähe befindliche maskierte Bereiche vermischen and/or .

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Such- und Ersetzen-Vorgangs. Die verwendete Eingabeaufforderung lautet: Jacke.

Input

Ausgabe

Frau trägt orangefarbenen Pullover im Freien mit Herbstlaub im Hintergrund.

„Weibliches Model trägt Herbstpullover“, generiert von Stable Image Ultra. Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Frau trägt olivgrüne Jacke und weißes Hemd im Freien mit Herbstlaub im Hintergrund.

Mit „Löschen“ können Sie unerwünschte Elemente mithilfe von Bildmasken entfernen und gleichzeitig die Konsistenz des Hintergrunds auf intelligente Weise beibehalten.

„Löschen“ verfügt über die folgenden erforderlichen Parameter:

  • image — (string) Das Base64-Bild, aus dem gelöscht werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • mask — (string) Steuert die Stärke des Inpainting-Prozesses pro Pixel. Sie können ihn über ein zweites Bild (das an diesen Parameter übergeben wird) oder über den Alphakanal des Bildparameters steuern.

    • Übergeben einer Maske — Das an diesen Parameter übergebene Bild sollte ein Schwarzweißbild sein, das bei jedem Pixel die Stärke der Einmalung darstellt, je nachdem, wie dunkel oder hell das jeweilige Pixel ist. Vollständig schwarze Pixel stellen keine Inpainting-Stärke dar, vollständig weiße Pixel stehen hingegeben für maximale Stärke. Falls die Maske eine andere Größe als der Bildparameter aufweist, wird ihre Größe automatisch angepasst.

    • Alphakanal-Unterstützung — Wenn Sie keine explizite Maske angeben, wird eine vom Alphakanal des Bildparameters abgeleitet. Für transparente Pixel erfolgt ein Inpainting, undurchsichtige Pixel hingegeben werden beibehalten. Falls ein Bild mit einem Alphakanal zusammen mit einer Maske bereitgestellt wird, hat die Maske Vorrang.

  • grow_mask — Vergrössert die Kanten der Maske in alle Richtungen um die angegebene Anzahl von Pixeln nach außen. Der erweiterte Bereich um die Maske herum wird unscharf, was dazu beitragen kann, den Übergang zwischen Inhalt, für den ein Inpainting durchgeführt wurde, und dem Originalbild zu glätten. Der Bereich liegt zwischen 0 und 20. Standard: 5 Probieren Sie diesen Parameter aus, wenn Sie am Inhalt, für den kein Inpainting durchgeführt wurde, Übergänge oder raue Kanten bemerken. Beachten Sie, dass durch übermäßiges Wachstum feine Details in der Maske verdeckt werden können, die sich in der Nähe befindliche maskierte Bereiche vermischen and/or .

Anmerkung

Stellen Sie sicher, dass Ihre Maske die zu entfernenden Bereiche genau definiert, um optimale Radierergebnisse zu erzielen. Wenn keine explizite Maske angegeben wird, verwendet der Service den Alphakanal des Eingabebildes. Wenn beide angegeben sind, hat die Maske Vorrang.

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)

In der folgenden Tabelle sind die Eingabe- und Ausgabebilder eines Löschvorgangs aufgeführt.

Input

Maske

Ausgabe

Blick von oben auf einen gut organisierten Schreibtisch mit Laptop, offenen Notizbüchern, Stiften und Pflanzen auf einer Holzoberfläche.

„Schülerschreibtisch“, generiert von Stable Image Ultra. Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Ein Maskenbild, das das zum Entfernen ausgewählte Objekt zeigt, wobei der Zielbereich hervorgehoben ist.
Blick von oben auf einen gut organisierten Schreibtisch mit Laptop, offenen Notizbüchern, Stiften und blauen Tagebüchern.

Mit der Option „Hintergrund entfernen“ können Sie Objekte präzise vom Hintergrund isolieren.

„Hintergrund entfernen“ verfügt über die folgenden erforderlichen Parameter:

  • image — (string) Das Base64-Bild, aus dem der Hintergrund entfernt werden soll. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines „Hintergrund entfernen“-Vorgangs.

Input

Ausgabe

Frau trägt orangefarbenen Pullover im Freien mit Herbstlaub im Hintergrund.

„Weibliches Model trägt Herbstpullover“, generiert von Stable Image Ultra. Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Person, die einen orangefarbenen Strickpullover vor einem Hintergrund mit horizontalen Streifen trägt.

Steuerung

Im folgenden Abschnitt wird die Steuerung für Stability AI Image Services beschrieben.

Werten Sie grobe Handskizzen mit präziser Steuerung zu verfeinerten Ausgaben auf. Bei Bildern, die keine Skizzen sind, ermöglicht Control Sketch eine detaillierte Manipulation des endgültigen Aussehens, indem die Konturlinien und Kanten im Bild verwendet werden.

„Steuerungsskizze“ verfügt über die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild der Skizze. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • control_strength — (number) Wie viel Einfluss oder Kontrolle das Bild auf die Generierung hat. Wird als Gleitkommazahl zwischen „0“ und „1“ dargestellt, wobei „0“ den geringsten und „1“ den maximalen Einfluss darstellt. Standard: 0,7

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • style_preset — Führt das Bildmodell zu einem bestimmten Stil. Aufzählung: 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.

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Control Sketch-Aufrufs. Die verwendete Eingabeaufforderung lautet: ein Haus mit Bergen und einem Fluss im Hintergrund, der in der Nähe fließt.

Input

Ausgabe

Einfache Strichzeichnung eines Hauses auf einem Hang mit Bergen im Hintergrund.

„Skizze von Haus, Bergen und Fluss“ von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Gebirgstal mit Fluss, grünen Wiesen, traditionellen Gebäuden und schneebedeckten Gipfeln.

Mithilfe der Steuerungsstruktur können Sie Bilder generieren und dabei die Struktur eines Eingabebildes beibehalten. Dies ist besonders hilfreich für Szenarien der erweiterten Inhaltserstellung, wie beispielsweise die Neuerstellung von Szenen oder das Rendern von Zeichen aus Modellen.

Die Steuerungsstruktur verfügt über die folgenden erforderlichen Parameter:

  • prompt — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild der Skizze. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • control_strength — (number) Wie viel Einfluss oder Kontrolle das Bild auf die Generierung hat. Wird als Gleitkommazahl zwischen „0“ und „1“ dargestellt, wobei „0“ den geringsten und „1“ den maximalen Einfluss darstellt. Standard: 0,7

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • style_preset — Führt das Bildmodell zu einem bestimmten Stil. Aufzählung: 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.

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder einer Control Structure-Operation. Die verwendete Eingabeaufforderung lautet: surreale Struktur mit bewegungsgenerierten Funken, die die Szene beleuchten.

Mit dem Styleguide können Sie Stilelemente aus einem Eingabebild extrahieren. Er verwendet sie, um die Erstellung eines Ausgabebilds auf der Grundlage der Eingabeaufforderung zu steuern. Das Ergebnis ist ein neues Bild im selben Stil wie das Eingabebild.

Der Styleguide verfügt über die folgenden erforderlichen Parameter:

  • Eingabeaufforderung — Was Sie im Ausgabebild sehen möchten. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist. Mindestens 0 und maximal 10 000 Zeichen.

  • image — (string) Das Base64-Bild der Skizze. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • aspect_ratio – (Zeichenfolge) steuert das Seitenverhältnis des generierten Bildes. Dieser Parameter ist nur für Text-zu-Bild-Anfragen gültig. Standard: 1:1 Aufzählung: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. Standard: 1:1

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • fidelity — (Zahl) Wie sehr der Stil des Ausgabebilds dem Stil des Eingabebilds ähnelt. Der Bereich liegt zwischen 0 und 1. Standard: 0,5

  • style_preset — Führt das Bildmodell zu einem bestimmten Stil. Aufzählung: 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.

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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines StyleGuide-Aufrufs. Die verwendete Eingabeaufforderung lautet: Weitwinkelaufnahme einer modernen Metropole.

Input

Ausgabe

Abstrakte Malerei mit lebendigen Farben wie blauen, gelben, grünen, orangen und roten Pinselstrichen.

„Abstrakte Malerei“ von Steven Johnson. Lizenziert unter CC

Buntes abstraktes Stadtbild mit Gebäuden in Blau-, Gelb-, Grün-, Orange- und Rottönen.

Mit der Stilübertragung können Sie visuelle Merkmale aus Referenzstilbildern auf Zielbilder anwenden. Der Styleguide-Service extrahiert Stilelemente aus einem Eingabebild und verwendet sie als Leitfaden für die Erstellung eines Ausgabebilds auf der Grundlage der Eingabeaufforderung. Mit Style Transfer werden vorhandene Inhalte gezielt transformiert, wobei die ursprüngliche Komposition erhalten bleibt. Dieses Tool hilft bei der Erstellung konsistenter Inhalte für mehrere Ressourcen.

„Stilübertragung“ verfügt über die folgenden erforderlichen Parameter:

  • init_image — (string) Ein Base64-Bild, das das Objekt enthält, das Sie neu gestalten möchten. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

  • style_image — (string) Ein Base64-Bild, das das Objekt enthält, das Sie neu gestalten möchten. Jede Seite des Bilds muss mindestens 64 Pixel groß sein. Die Gesamtpixelzahl darf 9 437 184 Pixel nicht überschreiten. Das Seitenverhältnis des Bilds muss zwischen 1:2,5 und 2,5:1 liegen. Unterstützte Formate: JPEG, PNG, WebP.

Die folgenden Parameter sind optional:

  • prompt – (Zeichenfolge) Was im Ausgabebild angezeigt werden soll. Ein starker, aussagekräftiger Prompt, der Elemente, Farben und Motive klar definiert, führt zu besseren Ergebnissen. Um die Gewichtung eines bestimmten Wortes zu steuern, verwenden Sie das Format (word:weight), wobei „word“ das Wort darstellt, dessen Gewichtung Sie steuern möchten, und „weight“ ein Wert ist. Bei den Werten „0“ und „1,0“ wurde das Wort weniger betont und bei einem Wert zwischen „1,1“ und „2“ wurde es hervorgehoben. Zum Beispiel: Der Himmel war klar (blue:0.3) und (green:1.8) würde einen Himmel vermitteln, der blau und grün, jedoch eher grün als blau ist.

  • negative_prompt — (string) Ein Textblock, der beschreibt, was Sie im Ausgabebild nicht sehen möchten. Dies ist ein erweitertes Feature. Maximal 10000 Zeichen.

  • seed – (Zahl) Ein bestimmter Wert, der als Richtwert für die „Zufälligkeit“ der Generierung dient. (Lassen Sie diesen Parameter weg oder übergeben Sie „0“, um einen zufälligen Seed-Wert zu verwenden.) Der Bereich liegt zwischen 0 und 4294967294. Standard: 0

  • output_format — (string) Diktiert den Inhaltstyp des generierten Bildes. Aufzählung: jpeg, png, webp. Standard: png

  • composition_fidelity — (Zahl) Wie sehr der Stil des Ausgabebilds dem Stil des Eingabebilds ähnelt. Der Bereich liegt zwischen 0 und 1. Standard: 0,9

  • style_strength — (number) Dieser Parameter wird manchmal als Rauschunterdrückung bezeichnet und steuert, wie viel Einfluss der style_image-Parameter auf das generierte Bild hat. Der Wert 0 würde ein Bild ergeben, das mit der Eingabe identisch ist. Der Wert 1 würde bedeuten, dass überhaupt kein Bild übergeben wurde. Der Bereich liegt zwischen 0 und 1. Standard: 1

  • change_strength — (Zahl) Wie stark sich das Originalbild ändern soll. Der Bereich liegt zwischen 0,1 und 1. Standard: 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)

Die folgende Tabelle zeigt die Eingabe- und Ausgabebilder eines Stilübertragungsaufrufs.

Input

Style

Ausgabe

Netzwerk beleuchteter blauer Linien, die Gebäude in einem nächtlichen Stadtbild verbinden.

„Blaue helle Lichter“ von Pixabay. Lizenziert unter CC0

Klassische Statue mit türkisfarbener Beleuchtung in urbaner Umgebung mit moderner Architektur im Hintergrund.