Stability.ai Diffusion 1.0 이미지-이미지 - Amazon Bedrock

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

Stability.ai Diffusion 1.0 이미지-이미지

Stability.ai Diffusion 1.0 모델에는 이미지-이미지 추론 직접 호출을 생성하기 위한 다음의 추론 파라미터와 모델 응답이 있습니다.

요청 및 응답

요청 본문은 요청 body 필드에서 InvokeModel또는 으로 전달됩니다 InvokeModelWithResponseStream.

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

Request

Stability.ai Diffusion 1.0 모델에는 이미지-이미지 추론 직접 호출용으로 다음과 같은 추론 파라미터가 포함되어 있습니다.

{ "text_prompts": [ { "text": string, "weight": float } ], "init_image" : string , "init_image_mode" : string, "image_strength" : float, "cfg_scale": float, "clip_guidance_preset": string, "sampler": string, "samples" : int, "seed": int, "steps": int, "style_preset": string, "extras" : json object }

다음은 필수 파라미터입니다.

  • text_prompt - (필수) 생성에 사용할 텍스트 프롬프트의 배열입니다. 각 요소는 프롬프트와 프롬프트에 대한 가중치를 포함하는 JSON 객체입니다.

    • text - 모델에 전달하려는 프롬프트입니다.

      최소 Maximum

      0

      2000

    • weight - (선택 사항) 모델이 프롬프트에 적용해야 하는 가중치입니다. 값이 0보다 작으면 음수 프롬프트가 선언됩니다. 음수 프롬프트를 사용하여 모델에 특정 개념을 피하도록 전달합니다. weight의 기본값은 하나입니다.

  • init_image - (필수) 확산 프로세스를 초기화하는 데 사용하려는 base64 인코딩 이미지입니다.

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

  • init_image_mode - (선택 사항) init_image의 이미지가 결과에 미치는 영향을 제어하기 위해 image_strength 또는 step_schedule_*을 사용할지 결정합니다. 가능한 값은 IMAGE_STRENGTH 또는 STEP_SCHEDULE입니다. 기본값은 IMAGE _입니다STRENGTH.

  • image_strength - (선택 사항) init_image의 소스 이미지가 확산 프로세스에 미치는 영향을 결정합니다. 값이 1에 가까우면 소스 이미지와 매우 유사한 이미지가 생성됩니다. 값이 0에 가까우면 소스 이미지와 매우 다른 이미지가 생성됩니다.

  • cfg_scale - (선택 사항) 최종 이미지가 프롬프트를 얼마나 잘 나타내는지를 결정합니다. 생성 시 무작위성을 높이려면 낮은 숫자를 사용합니다.

    기본값 최소 Maximum

    7

    0

    35

  • clip_guidance_preset - (선택 사항) 열거형: FAST_BLUE, FAST_GREEN, NONE, SIMPLE, SLOW, SLOWER, SLOWEST

  • sampler - (선택 사항) 확산 프로세스에 사용할 샘플러입니다. 이 값을 생략하면 모델이 적합한 샘플러를 자동으로 선택합니다.

    열거형: DDIM DDPM, K_DPMPP_2M, K_DPMPP_2S_ANCESTRAL, K_DPM_2, K_DPM_2_ANCESTRAL, K_EULER, K_EULER_ANCESTRAL, K_HEUN K_LMS

  • samples - (선택 사항) 생성할 이미지 수입니다. 현재 Amazon Bedrock은 하나의 이미지 생성을 지원합니다. samples에 대한 값을 제공하는 경우 값은 하나여야 합니다().

    기본값 최소 Maximum

    1

    1

    1

  • seed - (선택 사항) 시드는 초기 노이즈 설정을 결정합니다. 추론을 통해 비슷한 이미지를 만들 수 있도록 하려면 이전 실행과 동일한 시드 및 동일한 설정을 사용합니다. 이 값을 설정하지 않거나 값이 0이면 난수로 설정됩니다.

    기본값 최소 Maximum

    0

    0

    4294967295

  • steps - (선택 사항) 생성 단계는 이미지를 샘플링하는 횟수를 결정합니다. 단계가 많을수록 더 정확한 결과를 얻을 수 있습니다.

    기본값 최소 Maximum

    30

    10

    50

  • style_preset - (선택 사항) 이미지 모델을 특정 스타일로 안내하는 스타일 사전 설정입니다. 이 스타일 사전 설정 목록은 변경될 수 있습니다.

    열거형: 3d-model, analog-film, animé, cinematic, comic-book, digital-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture

  • extras - (선택 사항) 엔진에 전달되는 추가 파라미터입니다. 주의해서 사용하세요. 이 파라미터는 개발 중이거나 실험적인 기능에 사용되며 경고 없이 변경될 수 있습니다.

Response

Stability.ai Diffusion 1.0 모델에는 텍스트-이미지 추론 직접 호출을 위해 다음과 같은 추론 파라미터가 반환됩니다.

{ "result": string, "artifacts": [ { "seed": int, "base64": string, "finishReason": string } ] }
  • result - 작업 결과입니다. 성공하면 응답은 success입니다.

  • artifacts - 요청된 이미지당 하나씩 있는 이미지 배열입니다.

    • seed - 이미지를 생성하는 데 사용되는 시드의 값입니다.

    • base64 - 모델이 생성한 base64 인코딩 이미지입니다.

    • finishedReason— 이미지 생성 프로세스의 결과. 유효한 값은 다음과 같습니다.

      • SUCCESS— 이미지 생성 프로세스가 성공했습니다.

      • ERROR— 오류가 발생했습니다.

      • CONTENT_ FILTERED — 콘텐츠 필터가 이미지를 필터링하여 이미지가 흐릿해질 수 있습니다.

코드 예제

다음 예제는 Stability.ai Diffusion 1.0 모델 및 온디맨드 처리량을 사용하여 추론을 실행하는 방법을 보여 줍니다. 이 예제에서는 모델에 텍스트 프롬프트 및 추론 이미지를 제출하고 모델에서 응답을 검색한 다음 마지막으로 이미지를 보여 줍니다.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Shows how to generate an image from a reference image with SDXL 1.0 (on demand). """ import base64 import io import json import logging import boto3 from PIL import Image from botocore.exceptions import ClientError class ImageError(Exception): "Custom exception for errors returned by SDXL" def __init__(self, message): self.message = message logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_image(model_id, body): """ Generate an image using SDXL 1.0 on demand. Args: model_id (str): The model ID to use. body (str) : The request body to use. Returns: image_bytes (bytes): The image generated by the model. """ logger.info("Generating image with SDXL model %s", model_id) bedrock = boto3.client(service_name='bedrock-runtime') accept = "application/json" content_type = "application/json" response = bedrock.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type ) response_body = json.loads(response.get("body").read()) print(response_body['result']) base64_image = response_body.get("artifacts")[0].get("base64") base64_bytes = base64_image.encode('ascii') image_bytes = base64.b64decode(base64_bytes) finish_reason = response_body.get("artifacts")[0].get("finishReason") if finish_reason == 'ERROR' or finish_reason == 'CONTENT_FILTERED': raise ImageError(f"Image generation error. Error code is {finish_reason}") logger.info("Successfully generated image withvthe SDXL 1.0 model %s", model_id) return image_bytes def main(): """ Entrypoint for SDXL example. """ logging.basicConfig(level = logging.INFO, format = "%(levelname)s: %(message)s") model_id='stability.stable-diffusion-xl-v1' prompt="""A space ship.""" # Read reference image from file and encode as base64 strings. with open("/path/to/image", "rb") as image_file: init_image = base64.b64encode(image_file.read()).decode('utf8') # Create request body. body=json.dumps({ "text_prompts": [ { "text": prompt } ], "init_image": init_image, "style_preset" : "isometric" }) try: image_bytes=generate_image(model_id = model_id, body = body) image = Image.open(io.BytesIO(image_bytes)) image.show() except ClientError as err: message=err.response["Error"]["Message"] logger.error("A client error occurred: %s", message) print("A client error occured: " + format(message)) except ImageError as err: logger.error(err.message) print(err.message) else: print(f"Finished generating text with SDXL model {model_id}.") if __name__ == "__main__": main()