Stability AI Image Services - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Stability AI Image Services

Amazon Bedrock과 함께 Stability AI Image Services를 사용하여 전문적인 크리에이티브 워크플로를 가속화하도록 설계된 13개의 특수 이미지 편집 도구에 액세스할 수 있습니다. Stability AI Image Services를 사용하면 스케치에서 이미지를 생성하거나, 기존 이미지를 재구성 및 다시 스타일화하거나, 이미지 내의 객체를 제거 및 교체할 수 있습니다.

이 섹션에서는 InvokeModel을 사용하여 Stability AI Image Services를 추론 직접 호출하는 방법을 설명합니다. 또한 이 섹션에서는 Python의 코드 예제와 Stability AI Image Services 사용 전후의 이미지 예제를 제공합니다.

Stability AI Image Services는 다음 범주에서 사용할 수 있습니다.

  • 편집 - 마스크(생성형 채우기) 또는 단어를 사용한 인페인팅을 포함한 AI 기반 이미지 편집 서비스입니다. 제품 배치 및 광고를 위한 도구와 배경 제거와 같은 기본 도구를 포함합니다.

  • 제어 - 프롬프트, 맵 및 기타 가이드를 사용할 수 있습니다. 이러한 서비스는 안정적인 확산 모델을 기반으로 구축된 ControlNets 및 이와 유사한 기술을 활용합니다.

참고

편집 또는 제어 Stability AI Image Service를 구독하면 사용 가능한 13개의 모든 Stability AI Image Services에 자동으로 등록됩니다.

요청 및 응답

요청 본문은 InvokeModel 요청의 body 필드에 전달됩니다.

모델 간접 호출 요청 본문 필드

Stability AI Image Services를 사용하여 InvokeModel 직접 호출을 수행할 경우, 아래와 같은 모습의 JSON 객체로 본문 필드를 채웁니다.

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

모델 간접 호출 응답 본문 필드

Stability AI Image Services를 사용하여 InvokeModel 직접 호출을 수행할 경우, 응답은 다음과 같습니다.

{ 'seeds': [2130420379], 'finish_reasons': [null], 'images': ['...'] }
  • seeds - (문자열) 모델의 이미지를 생성하는 데 사용되는 시드 목록입니다.

  • finish_reasons – 요청이 필터링되었는지 여부를 나타내는 열거형입니다. null은 요청이 성공했음을 나타냅니다. 현재 가능한 값: "Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null.

  • images - base64 문자열 형식으로 생성된 이미지 목록입니다.

자세한 내용은 https://platform.us.stability.ai/docs/api-reference#tag/v1generation 참조하십시오.

업스케일링

다음 섹션에서는 업스케일 안정성 AI 이미지 서비스에 대해 설명합니다.

크리에이티브 업스케일은 64x64에서 1메가픽셀 사이의 이미지를 가져와 4K 해상도로 업스케일링합니다. 이 서비스는 품질을 보존하고 자주 개선하면서 이미지를 20~40회 확장할 수 있습니다. 크리에이티브 업스케일은 성능이 저하된 이미지에서 가장 잘 작동하며 1메가픽셀 이상의 사진에는 적합하지 않습니다. 심하게 재구상하기 때문입니다.

Creative Upscale에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 확장할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 4,096~1,048,576픽셀이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • 창의성 ‐ (숫자) 이미지를 업스케일링할 때 모델이 얼마나 창의적이어야 하는지를 나타냅니다. 값이 높을수록 확장 중에 이미지에 더 많은 세부 정보가 추가됩니다. 범위는 0.1~0.5입니다. 기본값 0.3

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • style_preset - 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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)

다음 표는 다음 프롬프트를 사용하여 크리에이티브 업스케일 작업의 입력 및 출력 이미지를 보여줍니다. 이 몽환적인 디지털 아트는 무성한 열대우림에서 생생하고 달콤한 새를 캡처합니다.

입력

출력

Willemijn Doelman"Iconic Big Ben Tower Against Cloudy Sky". CC에 따라 라이선스가 부여됨

보수적 업스케일은 64x64에서 1메가픽셀 사이의 이미지를 가져와 4K 해상도로 업스케일링합니다. 이 서비스는 모든 측면을 유지하면서 이미지를 20~40회 확장할 수 있습니다. 보수적 업스케일은 이미지 변경을 최소화하며 이미지를 재구상하는 데 사용해서는 안 됩니다.

Conservative Upscale에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 확장할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • 창의성 ‐ (숫자) 이미지를 업스케일링할 때 모델이 얼마나 창의적이어야 하는지를 나타냅니다. 값이 높을수록 확장 중에 이미지에 더 많은 세부 정보가 추가됩니다. 범위는 0.1~0.5입니다. 기본값 0.35

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 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)

다음 표에는 포리스트에 있는 거대한 닭의 사진 프롬프트를 사용한 보존적 업스케일 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Willemijn Doelman"Iconic Big Ben Tower Against Cloudy Sky". CC에 따라 라이선스가 부여됨

Fast Upscale은 예측 및 생성형 AI를 사용하여 이미지 해상도를 4배 높입니다. 이 가볍고 빠른 서비스는 압축된 이미지의 품질을 개선하는 데 이상적이며 소셜 미디어 게시물 및 기타 애플리케이션에 적합합니다.

빠른 확장에는 다음과 같은 필수 파라미터가 있습니다.

  • image ‐ (문자열) 확장할 Base64 이미지입니다. 너비는 32~1,536픽셀이어야 합니다. 높이는 32~1,536픽셀이어야 합니다. 총 픽셀 수는 1,024~1,048,576픽셀이어야 합니다. 지원되는 형식: jpeg, png, webp.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 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)

다음 표에는 Fast Upscale 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Willemijn Doelman"Iconic Big Ben Tower Against Cloudy Sky". CC에 따라 라이선스가 부여됨

편집

다음 섹션에서는 Stability AI Image Services 편집에 대해 설명합니다.

인페인팅은 마스크 이미지의 콘텐츠를 기반으로 지정된 영역을 채우거나 새 콘텐츠로 대체하여 이미지를 지능적으로 수정합니다.

인페인팅에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 인페인팅을 수행할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • style_preset - (문자열) 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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 ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • mask ‐ (문자열) 두 번째 이미지(이 파라미터로 전달됨) 또는 이미지 파라미터의 알파 채널을 통해 픽셀 단위로 인페인팅 프로세스의 강도를 제어합니다.

    • Passing in a Mask - 이 파라미터에 전달되는 이미지는 지정된 픽셀이 얼마나 어둡거나 밝은지에 따라 어떤 픽셀에서든 인페인팅 강도를 나타내는 검은색 및 흰색 이미지여야 합니다. 완전히 검은색 픽셀은 인페인팅 강도가 없음을 나타내고 완전히 흰색 픽셀은 최대 강도를 나타냅니다. 마스크의 크기가 이미지 파라미터와 다른 경우 마스크의 크기가 자동으로 조정됩니다.

    • Alpha Channel Support - 명시적 마스크를 제공하지 않으면 이미지 파라미터의 알파 채널에서 마스크가 파생됩니다. 투명 픽셀은 페인팅되고 불투명 픽셀은 보존됩니다. 알파 채널이 있는 이미지가 마스크와 함께 제공되는 경우 마스크가 우선합니다.

  • grow_mask - 마스크 가장자리를 지정된 픽셀 수만큼 모든 방향으로 바깥쪽으로 자릅니다. 마스크 주위의 확장된 영역이 흐려져 인페인팅된 콘텐츠와 원본 이미지 간의 전환을 원활하게 하는 데 도움이 될 수 있습니다. 범위: 0~20. 기본값은 5입니다. 인페인팅된 콘텐츠 주위에 이음매가 보이거나 가장자리가 거칠게 보이면 이 파라미터를 사용해 보세요. 과도한 증가는 마스크의 세부 정보를 가리거나 근처의 마스킹 처리된 영역을 병합할 수 있습니다.

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)

다음 표에는 인페인팅 작업의 입력 및 출력 이미지가 나와 있습니다.

Input

Mask

출력

Sanwal Yousaf의 프롬프트 및 편집으로 Stable Image Ultra에서 생성한 ‘Man in metropolis.’ CC BY 4.0에 따라 라이선스 부여

Outpaint는 이미지에 추가 콘텐츠를 삽입하여 어떤 방향으로든 공간을 채웁니다. 이미지의 콘텐츠를 확장하려는 다른 자동 또는 수동 시도와 비교하여 Outpaint 서비스는 원본 이미지가 편집되었다는 표시를 최소화합니다.

Outpaint에는 다음과 같은 필수 파라미터가 있습니다.

  • image ‐ (string) 아웃페인트할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

    참고

    하나 이상의 아웃페인트 방향(왼쪽, 오른쪽, 위 또는 아래)에 0이 아닌 값을 제공해야 합니다. 최상의 품질을 얻으려면 아웃페인팅 방향을 선택할 때 원본 이미지의 구성과 내용을 고려하세요.

다음 파라미터는 선택적입니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • style_preset - (문자열) 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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 - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • 창의성 ‐ (숫자) 이미지를 아웃페인팅할 때 모델이 얼마나 창의적이어야 하는지를 나타냅니다. 값이 높을수록 아웃페인팅 중에 이미지에 더 창의적인 콘텐츠가 추가됩니다. 범위는 0.1~1.0입니다. 기본값은 0.5입니다.

  • left ‐ (정수) 이미지 왼쪽에서 아웃페인트할 픽셀 수입니다. 0이 아닌 값으로 출력 방향을 하나 이상 제공해야 합니다. 범위는 0~2000입니다. Detault 0.

  • 오른쪽 ‐ (정수) 이미지 오른쪽에 아웃페인트할 픽셀 수입니다. 0이 아닌 값으로 출력 방향을 하나 이상 제공해야 합니다. 범위는 0~2000입니다. Detault 0.

  • up ‐ (정수) 이미지 상단에서 아웃페인트할 픽셀 수입니다. 0이 아닌 값으로 출력 방향을 하나 이상 제공해야 합니다. 범위는 0~2000입니다. Detault 0.

  • down ‐ (정수) 이미지 하단에서 아웃페인트할 픽셀 수입니다. 0이 아닌 값으로 출력 방향을 하나 이상 제공해야 합니다. 범위는 0~2000입니다. Detault 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)

다음 표에는 Outpaint 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Willemijn Doelman"Iconic Big Ben Tower Against Cloudy Sky". CC에 따라 라이선스가 부여됨

검색 및 색상 재지정을 사용하면 프롬프트를 사용하여 이미지에서 특정 객체의 색상을 변경할 수 있습니다. 이 서비스는 마스크가 필요하지 않은 특정 버전의 인페인팅입니다. 자동으로 객체를 분할하고 프롬프트에서 요청한 색상을 사용하여 다시 색상을 지정합니다.

검색 및 색상 재지정에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (string) 다시 색상을 지정할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

  • select_prompt ‐ (문자열) 이미지에서 검색할 항목에 대한 간략한 설명입니다. 최대 10,000자입니다.

다음 파라미터는 선택적입니다.

  • style_preset - (문자열) 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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 ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • grow_mask - 마스크 가장자리를 지정된 픽셀 수만큼 모든 방향으로 바깥쪽으로 자릅니다. 마스크 주위의 확장된 영역이 흐려져 인페인팅된 콘텐츠와 원본 이미지 간의 전환을 원활하게 하는 데 도움이 될 수 있습니다. 범위: 0~20. 기본값은 5입니다. 인페인팅된 콘텐츠 주위에 이음매가 보이거나 가장자리가 거칠게 보이면 이 파라미터를 사용해 보세요. 과도한 증가는 마스크의 세부 정보를 가리거나 근처의 마스킹 처리된 영역을 병합할 수 있습니다.

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)

다음 표에는 pink jacket 프롬프트를 사용한 검색 및 색상 재지정 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Sanwal Yousaf의 프롬프트 및 편집으로 Stable Image Ultra에서 생성한 ‘Man wearing puffer jacket.’ CC BY 4.0에 따라 라이선스 부여

검색 및 교체를 사용하면 검색 프롬프트를 사용하여 대체할 간단한 언어로 객체를 식별할 수 있습니다. 서비스는 자동으로 객체를 분할하고 마스크 없이 프롬프트에서 요청된 객체로 바꿉니다.

검색 및 교체에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (string) 다시 색상을 지정할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

  • search_prompt ‐ (문자열) 이미지에서 인페인팅할 항목에 대한 간략한 설명입니다. 최대 10,000자입니다.

다음 파라미터는 선택적입니다.

  • style_preset - (문자열) 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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 ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • grow_mask - 마스크 가장자리를 지정된 픽셀 수만큼 모든 방향으로 바깥쪽으로 자릅니다. 마스크 주위의 확장된 영역이 흐려져 인페인팅된 콘텐츠와 원본 이미지 간의 전환을 원활하게 하는 데 도움이 될 수 있습니다. 범위: 0~20. 기본값은 5입니다. 인페인팅된 콘텐츠 주위에 이음매가 보이거나 가장자리가 거칠게 보이면 이 파라미터를 사용해 보세요. 과도한 증가는 마스크의 세부 정보를 가리거나 근처의 마스킹 처리된 영역을 병합할 수 있습니다.

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)

다음 표에는 jacket 프롬프트를 사용한 검색 및 교체 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Stable Image Ultra에서 생성한 ‘Female model wearing Fall’ Sanwal Yousaf의 프롬프트 및 편집. CC BY 4.0에 따라 라이선스 부여

지우기를 사용하면 배경 일관성을 지능적으로 유지하면서 이미지 마스크를 사용하여 원치 않는 요소를 제거할 수 있습니다.

지우기에는 다음과 같은 필수 파라미터가 있습니다.

  • image ‐ (문자열) 지우기를 수행할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • mask ‐ (문자열) 두 번째 이미지(이 파라미터로 전달됨) 또는 이미지 파라미터의 알파 채널을 통해 픽셀 단위로 인페인팅 프로세스의 강도를 제어합니다.

    • Passing in a Mask - 이 파라미터에 전달되는 이미지는 지정된 픽셀이 얼마나 어둡거나 밝은지에 따라 어떤 픽셀에서든 인페인팅 강도를 나타내는 검은색 및 흰색 이미지여야 합니다. 완전히 검은색 픽셀은 인페인팅 강도가 없음을 나타내고 완전히 흰색 픽셀은 최대 강도를 나타냅니다. 마스크의 크기가 이미지 파라미터와 다른 경우 마스크의 크기가 자동으로 조정됩니다.

    • Alpha Channel Support - 명시적 마스크를 제공하지 않으면 이미지 파라미터의 알파 채널에서 마스크가 파생됩니다. 투명 픽셀은 페인팅되고 불투명 픽셀은 보존됩니다. 알파 채널이 있는 이미지가 마스크와 함께 제공되는 경우 마스크가 우선합니다.

  • grow_mask - 마스크 가장자리를 지정된 픽셀 수만큼 모든 방향으로 바깥쪽으로 자릅니다. 마스크 주위의 확장된 영역이 흐려져 인페인팅된 콘텐츠와 원본 이미지 간의 전환을 원활하게 하는 데 도움이 될 수 있습니다. 범위: 0~20. 기본값은 5입니다. 인페인팅된 콘텐츠 주위에 이음매가 보이거나 가장자리가 거칠게 보이면 이 파라미터를 사용해 보세요. 과도한 증가는 마스크의 세부 정보를 가리거나 근처의 마스킹 처리된 영역을 병합할 수 있습니다.

참고

최적의 지우기 결과를 얻으려면 마스크가 제거할 영역을 정확하게 정의해야 합니다. 명시적 마스크가 제공되지 않은 경우 서비스는 입력 이미지의 알파 채널을 사용합니다. 둘 다 제공된 경우 마스크가 우선합니다.

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)

다음 표에는 지우기 작업의 입력 및 출력 이미지가 나와 있습니다.

Input

Mask

출력

Stable Image Ultra에서 생성한 ‘Students Desk’. Sanwal Yousaf의 프롬프트 및 편집. CC BY 4.0에 따라 라이선스 부여

배경 제거를 사용하면 배경에서 주제를 정확하게 격리할 수 있습니다.

배경 제거에는 다음과 같은 필수 파라미터가 있습니다.

  • image ‐ (string) 배경을 제거할 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 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)

다음 표에는 배경 제거 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Stable Image Ultra에서 생성한 ‘Female model wearing Fall’ Sanwal Yousaf의 프롬프트 및 편집. CC BY 4.0에 따라 라이선스 부여

컨트롤

다음 섹션에서는 제어 Stability AI Image Services에 대해 설명합니다.

정확한 제어로 대략적인 수작업 스케치를 정교한 출력으로 업그레이드합니다. 스케치가 아닌 이미지의 경우 스케치 제어를 사용하면 이미지 내의 윤곽선과 엣지를 활용하여 최종 모양을 세부적으로 조작할 수 있습니다.

스케치 제어에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 스케치의 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • control_ strength ‐ (숫자) 이미지가 생성에 미치는 영향 또는 제어 정도입니다. 0에서 1 사이의 부동 소수점으로 표시됩니다. 여기서 0은 최소 영향이고 1은 최대 영향입니다. 기본값은 0.7입니다.

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • style_preset - 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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)

다음 표에는 산 배경과 근처로 흐르는 강이 있는 집이라는 프롬프트를 사용한 스케치 제어 직접 호출의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Sanwal Yousaf의 ‘하우스, 산, 강 스케치’. CC BY 4.0에 따라 라이선스 부여

제어 구조를 사용하면 입력 이미지의 구조를 유지하면서 이미지를 생성할 수 있습니다. 이는 장면을 다시 생성하거나 모델에서 캐릭터를 렌더링하는 등의 고급 콘텐츠 생성 시나리오에 특히 유용합니다.

제어 구조에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 스케치의 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • control_ strength ‐ (숫자) 이미지가 생성에 미치는 영향 또는 제어 정도입니다. 0에서 1 사이의 부동 소수점으로 표시됩니다. 여기서 0은 최소 영향이고 1은 최대 영향입니다. 기본값은 0.7입니다.

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • style_preset - 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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)

다음 표에는 모션이 생성된 초현실 구조가 장면을 비추는 프롬프트를 사용한 제어 구조 작업의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

Pawel L의 ‘’Person sitting on brown box. CC에 따라 라이선스가 부여됨

스타일 가이드를 사용하면 입력 이미지에서 스타일 요소를 추출하고 이를 사용하여 프롬프트를 기반으로 출력 이미지를 생성할 수 있습니다. 그 결과 입력 이미지와 동일한 스타일의 새 이미지가 생성됩니다.

스타일 가이드에는 다음과 같은 필수 파라미터가 있습니다.

  • prompt - 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다. 최소 0자 및 최대 10,000자입니다.

  • image ‐ (문자열) 스케치의 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • aspect_ratio - (문자열) 생성된 이미지의 종횡비를 제어합니다. 이 파라미터는 텍스트 투 이미지 요청에만 유효합니다. 기본값은 1:1입니다. 열거형: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. 기본값은 1:1입니다.

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • fidelity ‐ (숫자) 출력 이미지의 스타일이 입력 이미지의 스타일과 얼마나 유사한지를 설정합니다. 범위: 0~1. 기본값은 0.5입니다.

  • style_preset - 이미지 모델을 특정 스타일로 안내합니다. 열거형: 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)

다음 표에는 현대적인 대도시의 와이드 샷 프롬프트를 사용한 스타일 가이드 직접 호출의 입력 및 출력 이미지가 나와 있습니다.

입력

출력

‘Abstract Painting’ - Steven Johnson. CC에 따라 라이선스가 부여됨

스타일 전송을 사용하면 참조 스타일 이미지의 시각적 특성을 대상 이미지에 적용할 수 있습니다. 스타일 가이드 서비스는 입력 이미지에서 스타일 요소를 추출하여 프롬프트를 기반으로 출력 이미지를 생성하는 데 사용하는 동안 스타일 전송은 원래 구성을 유지하면서 기존 콘텐츠를 특별히 트랜스포밍합니다. 이 도구는 여러 자산에서 일관된 콘텐츠를 생성하는 데 도움이 됩니다.

스타일 전송에는 다음과 같은 필수 파라미터가 있습니다.

  • init_image ‐ (문자열) 스타일을 바꾸려는 주제가 포함된 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

  • style_image ‐ (문자열) 다시 스타일링할 대상이 포함된 Base64 이미지입니다. 이미지의 모든 측면은 64픽셀 이상이어야 합니다. 총 픽셀 수는 9,437,184픽셀을 초과할 수 없습니다. 이미지 종횡비는 1:2.5 및 2.5:1이어야 합니다. 지원되는 형식: jpeg, png, webp.

다음 파라미터는 선택적입니다.

  • prompt – (문자열) 출력 이미지에서 확인하려는 내용입니다. 요소, 색상 및 주제를 명확하게 정의하는 강력하고 설명적인 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다. 지정된 단어의 가중치를 제어하려면 형식(word:weight)을 사용합니다. 여기서 word는 가중치를 제어하려는 단어이고 weight는 값입니다. 값 0과 1.0은 단어를 강조하지 않고 1.1과 2 사이의 값은 단어를 강조했습니다. 예: 하늘이 선명한 (blue:0.3) 및 (green:1.8)이라면 파란색과 녹색이지만 파란색보다 녹색이 더 진한 하늘을 나타냅니다.

  • negative_prompt ‐ (문자열) 출력 이미지에서 보고 싶지 않은 내용을 설명하는 간단한 텍스트 설명입니다. 이는 고급 기능입니다. 최대 10,000자입니다.

  • seed - (숫자) 생성의 '무작위성'을 안내하는 데 사용되는 특정 값입니다. (임의 시드를 사용하려면 이 파라미터를 생략하거나 0을 전달합니다.) 범위: 0~4294967294. 기본값은 0입니다.

  • output_format ‐ (문자열) 생성된 이미지의 콘텐츠 유형을 지정합니다. 열거형: jpeg, png, webp. 기본값은 png입니다.

  • composition_fidelity ‐ (숫자) 출력 이미지의 스타일이 입력 이미지의 스타일과 얼마나 유사한지를 설정합니다. 범위: 0~1. 기본값은 0.9입니다.

  • style_strength ‐ (숫자) 노이즈 제거라고도 하는 이 파라미터는 이미지 파라미터가 생성된 이미지에 미치는 영향을 제어합니다. 값이 0이면 입력과 동일한 이미지가 생성됩니다. 값이 1이면 이미지를 전혀 전달하지 않은 것처럼 됩니다. 범위: 0~1. 기본값은 1입니다.

  • change_ strength ‐ (숫자) 원본 이미지가 얼마나 변경되어야 하는지를 설정합니다. 범위: 0.1~1. 기본값은 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)

다음 표에는 스타일 전송 직접 호출의 입력 및 출력 이미지가 나와 있습니다.

Input

스타일

출력

Simon Berger‘Standing Woman Statue’. CC에 따라 라이선스가 부여됨

Pixabay‘Blue Bright Lights’. CC0에 따라 라이선스가 부여됨