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을 참조하세요.

Request

Stability.ai Diffusion 1.0 모델에는 텍스트-이미지 추론 직접 호출을 생성하기 위한 다음의 추론 파라미터가 포함되어 있습니다.

{ "text_prompts": [ { "text": string, "weight": float } ], "height": int, "width": int, "cfg_scale": float, "clip_guidance_preset": string, "sampler": string, "samples", "seed": int, "steps": int, "style_preset": string, "extras" :JSON object }
  • text_prompt(필수) - 생성에 사용할 텍스트 프롬프트의 배열입니다. 각 요소는 프롬프트와 프롬프트에 대한 가중치를 포함하는 JSON 객체입니다.

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

      최소 Maximum

      0

      2000

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

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

    최소 Maximum 기본값

    0

    35

    7

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

  • 높이 — (선택 사항) 생성할 이미지의 높이 (픽셀 단위) 를 64로 나눌 수 있는 증분 단위입니다.

    값은 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152 중 하나여야 합니다.

  • width — (선택 사항) 생성할 이미지의 너비 (픽셀 단위) 를 64로 나눌 수 있는 증분 단위로 나타냅니다.

    값은 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, 896x1152 중 하나여야 합니다.

  • 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

    4294967295

    0

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

    최소 Maximum 기본값

    10

    150

    30

  • 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 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="""Sri lanka tea plantation.""" # Create request body. body=json.dumps({ "text_prompts": [ { "text": prompt } ], "cfg_scale": 10, "seed": 0, "steps": 50, "samples" : 1, "style_preset" : "photographic" }) 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()