Stabilitas Layanan Gambar AI - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Stabilitas Layanan Gambar AI

Anda dapat menggunakan Stability AI Image Services dengan Amazon Bedrock untuk mengakses sembilan alat pengeditan gambar khusus yang dirancang untuk mempercepat alur kerja kreatif profesional. Dengan Stability AI Image Services, Anda dapat menghasilkan gambar dari sketsa, merestrukturisasi, dan menata ulang gambar yang ada, atau menghapus dan mengganti objek dalam gambar.

Bagian ini menjelaskan cara melakukan panggilan inferensi ke Stability AI Image Services menggunakan. InvokeModel Bagian ini juga memberikan contoh kode dalam Python dan contoh gambar sebelum dan sesudah menggunakan Stability AI Image Services.

Stability AI Image Services tersedia dalam kategori berikut:

  • Edit - Layanan pengeditan gambar berbasis AI, termasuk inpainting with mask (generative fill), atau dengan kata-kata. Termasuk alat untuk penempatan produk dan iklan, serta alat dasar seperti penghapusan latar belakang.

  • Kontrol - Dapat menerima petunjuk, peta, dan panduan lainnya. Layanan ini memanfaatkan ControlNets dan teknologi serupa yang dibangun di atas model Difusi Stabil.

catatan

Berlangganan untuk mengedit atau mengontrol Stability AI Image Service secara otomatis mendaftarkan Anda di sembilan Layanan Gambar AI Stabilitas yang tersedia.

Permintaan dan tanggapan

Badan permintaan diteruskan di body bidang permintaan ke InvokeModel.

Bidang badan permintaan pemanggilan model

Saat Anda melakukan InvokeModel panggilan menggunakan Stability AI Image Services, isi kolom body dengan objek JSON yang terlihat seperti di bawah ini.

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

Bidang tubuh respons pemanggilan model

Saat Anda melakukan InvokeModel panggilan menggunakan Stability AI Image Services, responsnya terlihat seperti di bawah ini

{ 'seeds': [2130420379], 'finish_reasons': [null], 'images': ['...'] }
  • seed — (string) Daftar benih yang digunakan untuk menghasilkan gambar untuk model.

  • finish_reasons - Enum menunjukkan apakah permintaan itu disaring atau tidak. nullakan menunjukkan bahwa permintaan itu berhasil. Nilai yang mungkin saat ini:"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null.

  • gambar - Daftar gambar yang dihasilkan dalam format string base64.

Untuk informasi lebih lanjut, lihat https://platform.us.stability. ai/docs/api-reference#tag/v1 generasi.

Edit

Bagian berikut menjelaskan edit Stability AI Image Services.

Inpaint secara cerdas memodifikasi gambar dengan mengisi atau mengganti area tertentu dengan konten baru berdasarkan konten gambar topeng.

Inpaint memiliki parameter yang diperlukan berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 untuk inpaint. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • style_preset - (string) Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • mask - (string) Mengontrol kekuatan proses inpainting pada basis per-piksel, baik melalui gambar kedua (diteruskan ke parameter ini) atau melalui saluran alfa dari parameter gambar.

    • Melewati Topeng - Gambar yang diteruskan ke parameter ini harus berupa gambar hitam putih yang mewakili, pada piksel apa pun, kekuatan inpainting berdasarkan seberapa gelap atau terang piksel yang diberikan. Piksel hitam sepenuhnya tidak mewakili kekuatan inpainting sementara piksel putih sepenuhnya mewakili kekuatan maksimum. Jika topeng memiliki ukuran yang berbeda dari parameter gambar, maka akan diubah ukurannya secara otomatis.

    • Dukungan Saluran Alpha - Jika Anda tidak memberikan topeng eksplisit, satu akan diturunkan dari saluran alfa dari parameter gambar. Piksel transparan akan dicat sementara piksel buram akan dipertahankan. Jika gambar dengan saluran alfa disediakan bersama dengan topeng, topeng akan diutamakan.

  • grow_mask - Menumbuhkan tepi topeng ke luar ke segala arah dengan jumlah piksel yang ditentukan. Area yang diperluas di sekitar topeng akan kabur, yang dapat membantu memperlancar transisi antara konten yang tidak dicat dan gambar asli. Rentang antara 0 dan 20. Default 5. Coba parameter ini jika Anda melihat jahitan atau tepi kasar di sekitar konten yang tidak dicat. Perhatikan bahwa pertumbuhan yang berlebihan dapat mengaburkan detail halus di topeng yang and/or menggabungkan daerah bertopeng di dekatnya.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Inpaint.

Input

Topeng

Output

“Man in metropolis” dihasilkan oleh Stable Image Ultra, Prompts dan suntingan oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Search and Recolor memungkinkan Anda mengubah warna objek tertentu dalam gambar menggunakan prompt. Layanan ini adalah versi inpainting khusus yang tidak memerlukan topeng. Ini akan secara otomatis mengelompokkan objek dan mewarnai ulang menggunakan warna yang diminta dalam prompt.

Search and Recolor memiliki parameter yang diperlukan berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 untuk mewarnai ulang. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

  • select_prompt ‐ (string) Deskripsi singkat tentang apa yang harus dicari dalam gambar. Maksimal 10000 karakter.

Parameter berikut ini bersifat opsional:

  • style_preset - (string) Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • grow_mask - Menumbuhkan tepi topeng ke luar ke segala arah dengan jumlah piksel yang ditentukan. Area yang diperluas di sekitar topeng akan kabur, yang dapat membantu memperlancar transisi antara konten yang tidak dicat dan gambar asli. Rentang antara 0 dan 20. Default 5. Coba parameter ini jika Anda melihat jahitan atau tepi kasar di sekitar konten yang tidak dicat. Perhatikan bahwa pertumbuhan yang berlebihan dapat mengaburkan detail halus di topeng yang and/or menggabungkan daerah bertopeng di dekatnya.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Search and Recolor menggunakan prompt berikut: jaket merah muda.

Input

Output

“Pria mengenakan jaket puffer” yang dihasilkan oleh Stable Image Ultra, Prompts dan suntingan oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Search and Replace memungkinkan Anda menggunakan prompt pencarian untuk mengidentifikasi objek dalam bahasa sederhana yang akan diganti. Layanan akan secara otomatis mengelompokkan objek dan menggantinya dengan objek yang diminta dalam prompt tanpa memerlukan topeng.

Cari dan Ganti memiliki parameter yang diperlukan berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 untuk mewarnai ulang. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

  • search_prompt - (string) Deskripsi singkat tentang apa yang harus dimasukkan dalam gambar. Maksimal 10000 karakter.

Parameter berikut ini bersifat opsional:

  • style_preset - (string) Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • grow_mask - Menumbuhkan tepi topeng ke luar ke segala arah dengan jumlah piksel yang ditentukan. Area yang diperluas di sekitar topeng akan kabur, yang dapat membantu memperlancar transisi antara konten yang tidak dicat dan gambar asli. Rentang antara 0 dan 20. Default 5. Coba parameter ini jika Anda melihat jahitan atau tepi kasar di sekitar konten yang tidak dicat. Perhatikan bahwa pertumbuhan yang berlebihan dapat mengaburkan detail halus di topeng yang and/or menggabungkan daerah bertopeng di dekatnya.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Cari dan Ganti menggunakan prompt berikut: jaket.

Input

Output

“Model wanita mengenakan sweater musim gugur” yang dihasilkan oleh Stable Image Ultra. Petunjuk dan pengeditan oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Hapus memungkinkan Anda untuk menghapus elemen yang tidak diinginkan menggunakan topeng gambar, sambil secara cerdas menjaga konsistensi latar belakang.

Hapus memiliki parameter yang diperlukan berikut:

  • image ‐ (string) Gambar Base64 untuk dihapus dari. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • mask - (string) Mengontrol kekuatan proses inpainting pada basis per-piksel, baik melalui gambar kedua (diteruskan ke parameter ini) atau melalui saluran alfa dari parameter gambar.

    • Melewati Topeng - Gambar yang diteruskan ke parameter ini harus berupa gambar hitam putih yang mewakili, pada piksel apa pun, kekuatan inpainting berdasarkan seberapa gelap atau terang piksel yang diberikan. Piksel hitam sepenuhnya tidak mewakili kekuatan inpainting sementara piksel putih sepenuhnya mewakili kekuatan maksimum. Jika topeng memiliki ukuran yang berbeda dari parameter gambar, maka akan diubah ukurannya secara otomatis.

    • Dukungan Saluran Alpha - Jika Anda tidak memberikan topeng eksplisit, satu akan diturunkan dari saluran alfa dari parameter gambar. Piksel transparan akan dicat sementara piksel buram akan dipertahankan. Jika gambar dengan saluran alfa disediakan bersama dengan topeng, topeng akan diutamakan.

  • grow_mask - Menumbuhkan tepi topeng ke luar ke segala arah dengan jumlah piksel yang ditentukan. Area yang diperluas di sekitar topeng akan kabur, yang dapat membantu memperlancar transisi antara konten yang tidak dicat dan gambar asli. Rentang antara 0 dan 20. Default 5. Coba parameter ini jika Anda melihat jahitan atau tepi kasar di sekitar konten yang tidak dicat. Perhatikan bahwa pertumbuhan yang berlebihan dapat mengaburkan detail halus di topeng yang and/or menggabungkan daerah bertopeng di dekatnya.

catatan

Untuk hasil penghapusan yang optimal, pastikan masker Anda secara akurat mendefinisikan area yang akan dihapus. Jika tidak ada topeng eksplisit yang disediakan, layanan akan menggunakan saluran alfa dari gambar input. Topeng akan diutamakan jika keduanya disediakan.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Erase.

Input

Topeng

Output

“Meja Siswa” dihasilkan oleh Stable Image Ultra. Petunjuk dan pengeditan oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Hapus Latar Belakang memungkinkan Anda untuk mengisolasi subjek dari latar belakang dengan presisi.

Hapus Latar Belakang memiliki parameter yang diperlukan berikut:

  • image - (string) Gambar Base64 untuk menghapus latar belakang dari. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Hapus Latar Belakang.

Input

Output

“Model wanita mengenakan sweater musim gugur” yang dihasilkan oleh Stable Image Ultra. Petunjuk dan pengeditan oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Kontrol

Bagian berikut menjelaskan kontrol Stabilitas AI Image Services.

Tingkatkan sketsa kasar yang digambar tangan ke output yang disempurnakan dengan kontrol yang tepat. Untuk gambar non-sketsa, Control Sketch memungkinkan manipulasi detail tampilan akhir dengan memanfaatkan garis kontur dan tepi dalam gambar.

Sketsa Kontrol memiliki parameter yang diperlukan berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 dari sketsa. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • control_strength ‐ (angka) Seberapa besar pengaruh, atau kontrol, gambar terhadap generasi. Diwakili sebagai float antara 0 dan 1, di mana 0 adalah pengaruh terkecil dan 1 adalah maksimum. Default 0,7.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • style_preset - Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

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)

Tabel berikut menunjukkan gambar input dan output dari panggilan Control Sketch menggunakan prompt berikut: rumah dengan latar belakang pegunungan dan sungai yang mengalir di dekatnya.

Input

Output

“Rumah, gunung, dan sketsa sungai” oleh Sanwal Yousaf. Berlisensi di bawah CC BY 4.0

Struktur Kontrol memungkinkan Anda untuk menghasilkan gambar sambil mempertahankan struktur gambar input. Ini sangat berharga untuk skenario pembuatan konten tingkat lanjut seperti membuat ulang adegan atau merender karakter dari model.

Struktur Kontrol memiliki parameter yang diperlukan sebagai berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 dari sketsa. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • control_strength ‐ (angka) Seberapa besar pengaruh, atau kontrol, gambar terhadap generasi. Diwakili sebagai float antara 0 dan 1, di mana 0 adalah pengaruh terkecil dan 1 adalah maksimum. Default 0,7.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • style_preset - Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

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)

Tabel berikut menunjukkan gambar input dan output dari operasi Struktur Kontrol menggunakan prompt berikut: struktur surealis dengan percikan yang dihasilkan gerakan menerangi pemandangan.

Input

Output

“Orang yang duduk di kotak coklat” oleh Pawel L. Berlisensi di bawah CC

Style Guide memungkinkan Anda untuk mengekstrak elemen gaya dari gambar input dan menggunakannya untuk memandu pembuatan gambar output berdasarkan prompt. Hasilnya adalah gambar baru dengan gaya yang sama dengan gambar input.

Panduan Gaya memiliki parameter yang diperlukan sebagai berikut:

  • prompt - Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru. Minimum 0 dan Maksimum 10000 karakter.

  • image ‐ (string) Gambar Base64 dari sketsa. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • aspect_ratio - (string) Mengontrol rasio aspek dari gambar yang dihasilkan. Parameter ini hanya berlaku untuk text-to-image permintaan. Standar 1:1. Enum: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. Standar 1:1.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • fidelity - (angka) Seberapa dekat gaya gambar keluaran menyerupai gaya gambar input. Rentang 0 hingga 1. Default 0,5.

  • style_preset - Memandu model gambar menuju gaya tertentu. Enum: model 3D, film analog, anime, sinematik, buku komik, seni digital, peningkatan, seni fantasi, isometrik, seni garis, poli rendah, senyawa pemodelan, neon-punk, origami, fotografi, seni piksel, tekstur ubin.

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)

Tabel berikut menunjukkan gambar input dan output dari panggilan Style Guide menggunakan prompt berikut: bidikan lebar kota metropolitan modern.

Input

Output

“Lukisan Abstrak” oleh Steven Johnson. Berlisensi di bawah CC

Style Transfer memungkinkan Anda menerapkan karakteristik visual dari gambar gaya referensi ke gambar target. Sementara layanan Style Guide mengekstrak elemen gaya dari gambar input dan menggunakannya untuk memandu pembuatan gambar output berdasarkan prompt, Style Transfer secara khusus mengubah konten yang ada sambil mempertahankan komposisi aslinya. Alat ini membantu membuat konten yang konsisten di beberapa aset.

Style Transfer memiliki parameter yang diperlukan berikut:

  • init_image ‐ (string) Gambar Base64 yang berisi subjek yang ingin Anda restyle. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

  • style_image ‐ (string) Gambar Base64 yang berisi subjek yang ingin Anda restyle. Setiap sisi gambar harus setidaknya 64 piksel. Jumlah piksel total tidak boleh melebihi 9.437.184 piksel. Rasio aspek gambar harus antara 1:2.5 dan 2.5:1. Format yang didukung: jpeg, png, webp.

Parameter berikut ini bersifat opsional:

  • prompt - (string) Apa yang ingin Anda lihat pada gambar output. Prompt deskriptif yang kuat yang mendefinisikan elemen, warna, dan subjek dengan jelas akan menghasilkan hasil yang lebih baik. Untuk mengontrol bobot kata tertentu gunakan format (kata: berat), di mana kata adalah kata yang ingin Anda kendalikan bobot dan berat adalah nilai. Nilai 0 dan 1.0 tidak menekankan kata dan nilai antara 1,1 dan 2 menekankan kata tersebut. Misalnya: Langit renyah (biru: 0,3) dan (hijau:1,8) akan menyampaikan langit yang biru dan hijau, tetapi lebih hijau daripada biru.

  • negative_prompt - (string) Uraian teks yang menjelaskan apa yang tidak ingin Anda lihat pada gambar output. Ini adalah fitur lanjutan. Maksimal 10000 karakter.

  • seed ‐ (angka) Nilai spesifik yang digunakan untuk memandu 'keacakan' generasi. (Abaikan parameter ini atau berikan 0 untuk menggunakan benih acak.) Rentang 0 hingga 4294967294. Default 0.

  • output_format - (string) Mendikte tipe konten dari gambar yang dihasilkan. Enum: jpeg, png, webp. PNG default.

  • composition_fidelity ‐ (angka) Seberapa dekat gaya gambar keluaran menyerupai gaya gambar input. Rentang antara 0 dan 1. Default 0.9.

  • style_strength - (angka) Kadang-kadang disebut sebagai denoising, parameter ini mengontrol seberapa besar pengaruh parameter style_image pada gambar yang dihasilkan. Nilai 0 akan menghasilkan gambar yang identik dengan input. Nilai 1 akan seolah-olah Anda tidak memberikan gambar sama sekali. Rentang antara 0 dan 1. Default 1.

  • change_strength ‐ (angka) Berapa banyak gambar asli harus berubah. Rentang antara 0,1 dan 1. Default 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)

Tabel berikut menunjukkan gambar input dan output dari panggilan Style Transfer.

Input

Gaya

Output

“Patung Wanita Berdiri” oleh Simon Berger. Berlisensi di bawah CC

“Lampu Terang Biru” oleh Pixabay. Berlisensi di bawah CC0