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 spezialisierte Bildbearbeitungstools zuzugreifen, die professionelle kreative Workflows beschleunigen sollen. Mit Stability AI Image Services können Sie Bilder aus einer Skizze generieren, ein vorhandenes Bild umstrukturieren und neugestalten oder die in einem Bild enthaltenen Objekte entfernen und ersetzen.

In diesem Abschnitt wird beschrieben, wie Sie mithilfe von Inferenzaufrufen an 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 – KI-basierte Bildbearbeitungsservices, 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 – Kann Prompts, Karten und andere Anleitungen verwenden. Diese Dienste nutzen ControlNets und ähnliche Technologien, die auf stabilen Diffusionsmodellen basieren.

Anmerkung

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

Anforderung und Antwort

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

Feld für den Hauptteil der Modellaufrufanforderung

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

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

Textfeld für Modellaufrufantworten

Wenn Sie mit 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/v1 Generation.

Gehoben

Im folgenden Abschnitt werden die hochwertigen 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. Mit diesem Service können Bilder um das 20- bis 40-fache hochskaliert werden, wobei die Qualität erhalten bleibt und häufig sogar verbessert wird. Creative Upscale funktioniert am besten bei stark verschlechterten Bildern und eignet sich nicht für Fotos mit 1 Megapixel oder mehr, da es umfangreiche Bildbearbeitungen erfordert.

Creative Upscale hat die folgenden erforderlichen Parameter:

  • prompt – 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. 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 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. Die Standardeinstellung ist 0,3

  • negative_prompt – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

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

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 mit der folgenden Eingabeaufforderung: Diese traumhafte digitale Kunst zeigt einen lebendigen, kaleidoskopischen Vogel in einem üppigen Regenwald.

Conservative 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 und dabei alle Aspekte beibehalten. Conservative Upscale minimiert Änderungen am Bild und sollte nicht verwendet werden, um ein Bild neu zu erfinden.

Conservative Upscale hat die folgenden erforderlichen Parameter:

  • prompt – 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. 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:

  • Kreativität ‐ (Zahl) Gibt an, wie kreativ das Modell sein sollte, wenn es ein Bild hochskaliert. Höhere Werte führen dazu, dass dem Bild beim Hochskalieren mehr Details hinzugefügt werden. Bereich zwischen 0,1 und 0,5. Die Standardeinstellung ist 0,35

  • negative_prompt – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. 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 Operation im Bereich Conservative Upscale unter Verwendung der folgenden Eingabeaufforderung: Foto eines riesigen Huhns in einem Wald.

Input

Ausgabe

Fast Upscale verbessert die Bildauflösung mithilfe prädiktiver und generativer KI um das Vierfache. Dieser einfache und schnelle Dienst eignet sich ideal zur Verbesserung der Qualität komprimierter Bilder und eignet sich daher für Beiträge in sozialen Medien und andere Anwendungen.

Für Fast Upscale sind die folgenden Parameter erforderlich:

  • 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 Gesamtpixelzahl muss zwischen 1.024 und 1.048.576 Pixeln liegen. Unterstützte Formate: JPEG, PNG, WebP.

  • output_format – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. 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.

Input

Ausgabe

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 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) Das Base64-Bild, für das Inpainting durchgeführt 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:

  • 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 – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • mask – (Zeichenfolge) Steuert die Stärke des Inpainting-Prozesses pro Pixel, entweder über ein zweites Bild (das an diesen Parameter übergeben wird) oder über den Alphakanal des Bildparameters.

    • Maske übergeben – Das an diesen Parameter übergebene Bild sollte ein Schwarzweißbild sein, das an jedem Pixel die Inpainting-Stärke darstellt, basierend darauf, 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 aus dem 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ößert die Kanten der Maske nach außen in alle Richtungen um die angegebene Anzahl von Pixeln. 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 and/or Maskenverschmelzung in der Nähe maskierter Bereiche verdeckt werden können.

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 in Metropolis“ wurde von Stable Image Ultra generiert. Prompts und Änderungen von Sanwal Yousaf. Lizenziert unter CC BY 4.0

Outpaint fügt zusätzlichen Inhalt in ein Bild ein, um den Raum in beliebiger Richtung auszufüllen. Im Vergleich zu anderen automatisierten oder manuellen Versuchen, den Inhalt in einem Bild zu erweitern, minimiert der Outpaint-Dienst Hinweise darauf, dass das Originalbild bearbeitet wurde.

Outpaint hat die folgenden erforderlichen Parameter:

  • image ‐ (Zeichenfolge) 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 Ausmalrichtung (links, rechts, oben oder unten) muss ein Wert ungleich Null angegeben werden. Um optimale Ergebnisse zu erzielen, sollten Sie bei der Auswahl der Ausmalrichtungen die Zusammensetzung und den Inhalt Ihres Originalbilds berücksichtigen.

Die folgenden Parameter sind optional:

  • prompt – 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. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • Kreativität ‐ (Zahl) Gibt an, wie kreativ das Modell sein sollte, wenn es ein Bild übermalt. Höhere Werte führen dazu, dass dem Bild beim Übermalen mehr kreativer Inhalt hinzugefügt wird. Bereich zwischen 0,1 und 1,0. Standard: 0,5

  • left ‐ (Ganzzahl) Die Anzahl der Pixel, die auf der linken Seite des Bilds übermalt werden sollen. Für mindestens eine Übermalrichtung muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Der Standardwert ist 0.

  • right ‐ (Ganzzahl) Die Anzahl der Pixel, die auf der rechten Seite des Bildes übermalt werden sollen. Für mindestens eine Übermalrichtung muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Der Standardwert ist 0.

  • up ‐ (Ganzzahl) Die Anzahl der Pixel, die oben im Bild übermalt werden sollen. Für mindestens eine Übermalrichtung muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Der Standardwert ist 0.

  • down ‐ (Ganzzahl) Die Anzahl der Pixel, die am unteren Bildrand übermalt werden sollen. Für mindestens eine Ausmalrichtung muss ein Wert ungleich Null angegeben werden. Bereich 0 bis 2000. Der Standardwert ist 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.

Input

Ausgabe

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 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) Das Base64-Bild, das umgefä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 – (Zeichenfolge) Eine 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 – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • grow_mask – Vergrößert die Kanten der Maske nach außen in alle Richtungen um die angegebene Anzahl von Pixeln. 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 and/or Maskenverschmelzung in der Nähe maskierter Bereiche verdeckt werden können.

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 „Suchen und umfärben“-Vorgangs mit dem folgenden Prompt: pink jacket.

Input

Ausgabe

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

„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 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) Das Base64-Bild, das umgefä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 – (Zeichenfolge) Eine 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 – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • grow_mask – Vergrößert die Kanten der Maske nach außen in alle Richtungen um die angegebene Anzahl von Pixeln. 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 and/or Maskenverschmelzung in der Nähe maskierter Bereiche verdeckt werden können.

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 „Suchen und ersetzen“-Vorgangs mit dem folgenden Prompt: jacket.

Input

Ausgabe

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

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 – (Zeichenfolge) 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • mask – (Zeichenfolge) Steuert die Stärke des Inpainting-Prozesses pro Pixel, entweder über ein zweites Bild (das an diesen Parameter übergeben wird) oder über den Alphakanal des Bildparameters.

    • Maske übergeben – Das an diesen Parameter übergebene Bild sollte ein Schwarzweißbild sein, das an jedem Pixel die Inpainting-Stärke darstellt, basierend darauf, 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 aus dem 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ößert die Kanten der Maske nach außen in alle Richtungen um die angegebene Anzahl von Pixeln. 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 übermäßiges Wachstum feine Details in der Maskenverschmelzung in der Nähe von and/or maskierten Bereichen verdecken kann.

Anmerkung

Stellen Sie sicher, dass Ihre Maske die zu entfernenden Bereiche genau definiert, um optimale Löschergebnisse 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

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

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

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

  • image – (Zeichenfolge) 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. 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

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

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, bei denen es sich nicht um Skizzen handelt, ermöglicht „Steuerungsskizze“ eine detaillierte Bearbeitung des endgültigen Erscheinungsbilds durch die Nutzung der Konturlinien und Kanten innerhalb des Bilds.

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

  • prompt – 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) 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 – (Zahl) Gibt an, inwiefern das Bild die Generierung beeinflusst bzw. steuert. Wird als Gleitkommazahl zwischen „0“ und „1“ dargestellt, wobei „0“ den geringsten und „1“ den maximalen Einfluss darstellt. Standard: 0,7

  • negative_prompt – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

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

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 des Aufrufs einer Steuerungsskizze mit dem folgenden Prompt: ein Haus mit Bergen im Hintergrund und einem Fluss, der in der Nähe fließt.

Input

Ausgabe

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

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 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) 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 – (Zahl) Gibt an, inwiefern das Bild die Generierung beeinflusst bzw. steuert. Wird als Gleitkommazahl zwischen „0“ und „1“ dargestellt, wobei „0“ den geringsten und „1“ den maximalen Einfluss darstellt. Standard: 0,7

  • negative_prompt – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

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

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 eines „Steuerungsstruktur“-Vorgangs mit dem folgenden Prompt: Surreale Struktur mit durch Bewegung erzeugten Funken, die die Szene beleuchten.

Mit dem Styleguide können Sie Stilelemente aus einem Eingabebild extrahieren und diese als Vorlage für die Erstellung eines Ausgabebildes auf Basis des Prompts verwenden. Das Ergebnis ist ein neues Bild im selben Stil wie das Eingabebild.

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

  • prompt – 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. Mindestens 0 und maximal 10 000 Zeichen.

  • image – (Zeichenfolge) 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 Bilds. Dieser Parameter ist nur für text-to-image 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 – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • fidelity – (Zahl) Gibt an, wie sehr der Stil des Ausgabebilds dem Stil des Eingabebildes ähnelt. Der Bereich liegt zwischen 0 und 1. Standard: 0,5

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

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 des Styleguide-Aufrufs mit dem folgenden Prompt: Weitwinkelaufnahme einer modernen Metropole.

Input

Ausgabe

„Abstrakte Malerei“ von Steven Johnson. Lizenziert unter CC

Mit der Stilübertragung können Sie visuelle Merkmale aus Referenzstilbildern auf Zielbilder anwenden. Während der Styleguide-Service Stilelemente aus einem Eingabebild extrahiert und diese als Vorlage für die Erstellung eines Ausgabebildes auf Basis des Prompts verwendet, werden mit der Stilübertragung insbesondere vorhandene Inhalte unter Beibehaltung der ursprünglichen Komposition transformiert. Dieses Tool hilft bei der Erstellung konsistenter Inhalte für mehrere Ressourcen.

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

  • init_image – (Zeichenfolge) Ein Base64-Bild, das den Betreff enthält, den Sie neugestalten 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 – (Zeichenfolge) Ein Base64-Bild mit dem Motiv, das Sie neugestalten 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 – (Zeichenfolge) Ein kurzer Text, der beschreibt, was im Ausgabebild nicht angezeigt werden soll. 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 – (Zeichenfolge) Gibt den Inhaltstyp des generierten Bilds vor. Aufzählung: jpeg, png, webp. Standard: png

  • composition_fidelity – (Zahl) Gibt an, wie stark der Stil des Ausgabebildes dem Stil des Eingabebildes ähnelt. Der Bereich liegt zwischen 0 und 1. Standard: 0,9

  • style_strength – (Zahl) Dieser Parameter wird manchmal auch als Rauschunterdrückung bezeichnet und steuert, wie viel Einfluss der Parameter „style_image“ 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) Gibt an, wie stark das ursprüngliche Bild geändert werden 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

„Blaue helle Lichter“ von Pixabay. Lizenziert unter CC0