이미지 생성을 위한 요청 및 응답 구조 - Amazon Nova

이미지 생성을 위한 요청 및 응답 구조

다음 예제에서는 다양한 이미지 생성 사용 사례를 보여줍니다. 각 예제에서는 이미지 생성에 사용되는 필드에 대한 설명을 제공합니다.

Text-to-image request
{ "taskType": "TEXT_IMAGE", "textToImageParams": { "text": string, "negativeText": string }, "imageGenerationConfig": { "width": int, "height": int, "quality": "standard" | "premium", "cfgScale": float, "seed": int, "numberOfImages": int } }

이 요청에는 다음 textToImageParams 필드가 사용됩니다.

  • text(필수) - 이미지를 생성하기 위한 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Text-to-image request with image conditioning
{ "taskType": "TEXT_IMAGE", "textToImageParams": { "conditionImage": string (Base64 encoded image), "controlMode": "CANNY_EDGE" | "SEGMENTATION", "controlStrength": float, "text": string, "negativeText": string }, "imageGenerationConfig": { "width": int, "height": int, "quality": "standard" | "premium", "cfgScale": float, "seed": int, "numberOfImages": int } }

이 요청에는 다음 textToImageParams 필드가 사용됩니다.

  • conditionImage(필수) - 생성된 이미지의 레이아웃과 구성을 안내하는 JPEG 또는 PNG 이미지입니다. 이미지는 Base64 문자열 형식이어야 합니다. 추가 요구 사항은 이미지 생성을 위한 입력 이미지 섹션을 참조하세요.

  • controlMode(선택 사항) - 어떤 컨디셔닝 모드를 사용할지 지정합니다. 기본값은 ‘CANNY_EDGE’입니다.

    • CANNY_EDGE - 생성된 이미지의 요소는 조건 이미지의 눈에 띄는 윤곽 또는 ‘엣지’를 따라 밀접하게 배치됩니다.

    • SEGMENTATION - 조건 이미지가 자동으로 분석되어 눈에 띄는 콘텐츠 모양을 식별합니다. 이 분석은 생성을 안내하는 세그먼테이션 마스크를 생성하여 조건 이미지의 레이아웃을 밀접하게 따르면서도 각 콘텐츠 영역의 범위 내에서 모델이 더 자유롭게 이미지를 생성할 수 있도록 합니다.

  • controlStrength(선택 사항) - 생성된 이미지의 레이아웃 및 구성이 conditionImage와 얼마나 유사해야 하는지 지정합니다. 범위는 0~1.0이며 값이 낮을수록 무작위성이 높아집니다. 기본값은 0.7입니다.

  • text(필수) - 이미지를 생성하기 위한 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Color guided image generation request
{ "taskType": "COLOR_GUIDED_GENERATION", "colorGuidedGenerationParams": { "colors": string[] (list of hexadecimal color values), "referenceImage": string (Base64 encoded image), "text": string, "negativeText": string }, "imageGenerationConfig": { "width": int, "height": int, "quality": "standard" | "premium", "cfgScale": float, "seed": int, "numberOfImages": int } }

이 요청에는 다음 colorGuidedGenerationParams 필드가 사용됩니다.

  • colors(필수) - 이미지에 원하는 색상 팔레트를 정의하는 최대 10개의 색상 코드 목록입니다. ‘#RRGGBB’ 형식의 16진수 값으로 표현됩니다. 예를 들어 '#00FF00'은 순수한 녹색이고 '#FCF2AB'는 따뜻한 노란색입니다. colors 목록은 referenceImage가 제공되지 않을 때 가장 강력한 효과를 발휘합니다. 그렇지 않으면 목록의 색상과 참조 이미지의 색상이 최종 출력에 모두 사용됩니다.

  • referenceImage(선택 사항) - 피사체 및 스타일 참조로 사용할 JPEG 또는 PNG 이미지입니다. 이미지의 색상은 colors 목록의 색상과 함께 최종 출력에 통합됩니다. 추가 요구 사항은 이미지 생성을 위한 입력 이미지 섹션을 참조하세요.

  • text(필수) - 이미지를 생성하기 위한 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Image variation request
{ "taskType": "IMAGE_VARIATION", "imageVariationParams": { "images": string[] (list of Base64 encoded images), "similarityStrength": float, "text": string, "negativeText": string }, "imageGenerationConfig": { "height": int, "width": int, "cfgScale": float, "seed": int, "numberOfImages": int } }

이 요청에는 다음 imageVariationParams 필드가 사용됩니다.

  • images(필수) - 참조로 사용할 1~5개 이미지의 목록입니다. 각각 JPEG 또는 PNG 형식이어야 하며 Base64 문자열로 인코딩되어야 합니다. 추가 요구 사항은 이미지 생성을 위한 입력 이미지 섹션을 참조하세요.

  • similarityStrength(선택 사항) - 생성된 이미지가 입력 이미지와 얼마나 유사해야 하는지 지정합니다. 유효한 값은 0.2~1.0이며, 더 낮은 값을 사용할 수록 무작위성이 높아집니다.

  • text(필수) - 이미지를 생성하기 위한 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다. 이 필드를 생략하면 모델이 마스킹된 영역 내부의 요소를 제거합니다. 이미지 배경의 매끄러운 확장으로 대체됩니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Inpainting request
{ "taskType": "INPAINTING", "inPaintingParams": { "image": string (Base64 encoded image), "maskPrompt": string, "maskImage": string (Base64 encoded image), "text": string, "negativeText": string }, "imageGenerationConfig": { "numberOfImages": int, "quality": "standard" | "premium", "cfgScale": float, "seed": int } }

이 요청에는 다음 inPaintingParams 필드가 사용됩니다.

  • image(필수) - 수정하려는 JPEG 또는 PNG로, Base64 문자열 형식입니다. 추가 요구 사항은 이미지 생성을 위한 입력 이미지 섹션을 참조하세요.

  • maskPrompt 또는 maskImage(필수) - maskPrompt 또는 maskImage 파라미터 중 하나만 지정해야 하며, 둘 다 지정할 수는 없습니다.

    maskPrompt는 편집할 이미지 영역을 설명하는 자연어 텍스트 프롬프트입니다.

    maskImage는 편집할 이미지 영역을 정의하는 이미지입니다. 마스크 이미지는 입력 이미지와 같은 크기여야 합니다. 편집될 영역은 순수한 검은색으로 음영 처리되고 무시할 영역은 순수한 흰색으로 음영 처리됩니다. 다른 색상은 마스크 이미지에 허용되지 않습니다.

    마스크 이미지의 색상 요구 사항과 관련하여 인페인팅 요청과 아웃페인팅 요청은 서로 반대입니다.

  • text(필수) - 마스킹된 영역 내에서 무엇을 생성할지 설명하는 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다. 이 필드를 생략하면 모델이 마스킹된 영역 내부의 요소를 제거합니다. 이미지 배경의 매끄러운 확장으로 대체됩니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Outpainting request
{ "taskType": "OUTPAINTING", "outPaintingParams": { "image": string (Base64 encoded image), "maskPrompt": string, "maskImage": string (Base64 encoded image), "outPaintingMode": "DEFAULT" | "PRECISE", "text": string, "negativeText": string }, "imageGenerationConfig": { "numberOfImages": int, "quality": "standard" | "premium" "cfgScale": float, "seed": int } }

이 요청에는 다음 outPaintingParams 필드가 사용됩니다.

  • image(필수) - 수정하려는 JPEG 또는 PNG로, Base64 문자열 형식입니다. 추가 요구 사항은 이미지 생성을 위한 입력 이미지 섹션을 참조하세요.

  • maskPrompt 또는 maskImage(필수) - maskPrompt 또는 maskImage 파라미터 중 하나만 지정해야 하며, 둘 다 지정할 수는 없습니다.

    maskPrompt는 편집할 이미지 영역을 설명하는 자연어 텍스트 프롬프트입니다.

    maskImage는 편집할 이미지 영역을 정의하는 이미지입니다. 마스크 이미지는 입력 이미지와 같은 크기여야 합니다. 편집될 영역은 순수한 흰색으로 음영 처리되고 무시할 영역은 순수한 검은색으로 음영 처리됩니다. 다른 색상은 마스크 이미지에 허용되지 않습니다.

    마스크 이미지의 색상 요구 사항과 관련하여 인페인팅 요청과 아웃페인팅 요청은 서로 반대입니다.

  • outPaintingMode - 사용자가 제공하는 마스크가 해석되는 방식을 결정합니다.

    마스킹된 영역과 마스킹 처리되지 않은 영역 간에 부드럽게 전환하려면 DEFAULT를 사용합니다. 원래 픽셀 중 일부는 새 배경의 시작점으로 사용됩니다. 이 모드는 일반적으로 새 배경에 원래 배경과 비슷한 색상을 사용하려는 경우에 더 좋습니다. 그러나 프롬프트에 원래 배경과 크게 다른 새 배경이 필요한 경우 후광 효과를 얻을 수 있습니다.

    마스크 경계를 엄격하게 준수하려면 PRECISE를 사용합니다. 이 모드는 일반적으로 배경을 크게 변경할 때 더 좋습니다.

  • text(필수) - 마스킹된 영역 내에서 무엇을 생성할지 설명하는 텍스트 프롬프트입니다. 프롬프트는 1~1,024자 길이여야 합니다. 이 필드를 생략하면 모델이 마스킹된 영역 내부의 요소를 제거합니다. 이미지 배경의 매끄러운 확장으로 대체됩니다.

  • negativeText(선택 사항) - 이미지에 포함하지 않을 내용을 정의하는 텍스트 프롬프트입니다. 이 값은 1~1,024자 길이여야 합니다.

참고

textnegativeText 값에 부정어('안돼', '아니요', '없음' 등)를 사용하지 마세요. 예를 들어, 이미지에 거울을 원하지 않으면 text 필드에 ‘거울 없음’ 또는 '거울 없이'를 포함하는 대신 negativeText 필드에 ‘거울’이라는 단어를 사용하세요.

Background removal request
{ "taskType": "BACKGROUND_REMOVAL", "backgroundRemovalParams": { "image": string (Base64 encoded image) } }

이 요청에는 다음 backgroundRemovalParams 필드가 사용됩니다.

BACKGROUND_REMOVAL 태스크는 전체 8비트 투명도를 가진 PNG 이미지를 반환합니다. 이 형식을 사용하면 전경 개체를 부드럽고 깔끔하게 분리할 수 있으며 이미지 편집 앱, 프레젠테이션 또는 웹 사이트에서 다른 요소와 이미지를 쉽게 합성할 수 있습니다. 간단한 사용자 지정 코드를 사용하여 배경을 단색으로 쉽게 변경할 수 있습니다.

Response body
{ "images": "images": string[] (list of Base64 encoded images), "error": string }

응답 본문에는 다음 필드 중 하나 이상이 포함됩니다.

  • images - 성공하면 생성된 각 이미지를 나타내는 Base64로 인코딩된 문자열 목록이 반환됩니다. 이 목록에 요청한 것과 동일한 수의 이미지가 항상 포함되어 있지는 않습니다. 개별 이미지가 AWS 책임 있는 AI(RAI) 콘텐츠 조정 정책에 부합하지 않는 경우 생성 후 차단될 수 있습니다. RAI 정책에 부합하는 이미지만 반환됩니다.

  • error - 이미지가 RAI 정책에 부합하지 않으면 이 필드가 반환됩니다. 그렇지 않으면 응답에서 이 필드가 생략됩니다.

imageGenerationConfig 필드는 BACKGROUND_REMOVAL을 제외한 모든 태스크 유형에 공통됩니다. 선택 사항이며 다음 필드를 포함합니다. 이 객체를 생략하면 기본 구성이 사용됩니다.

  • widthheight(선택 사항) - 생성된 이미지의 크기와 가로 세로 비율을 정의합니다. 둘 다 기본값은 1,024입니다. 지원되는 해상도의 전체 목록은 지원되는 이미지 해상도 섹션을 참조하세요.

  • quality(선택 사항) - 이미지를 생성할 때 사용할 품질(‘standard‘(기본값) 또는 ‘premium‘)을 지정합니다.

  • cfgScale(선택 사항) - 생성된 이미지가 프롬프트를 얼마나 강력하게 준수해야 하는지를 지정합니다. 생성 과정에서 더 많은 무작위화를 도입하려면 낮은 값을 사용합니다.

    Minimum Maximum Default
    1.1 10 6.5
  • numberOfImages(선택 사항) - 생성할 이미지 수입니다.

    Minimum Maximum Default
    1 5 1
  • seed(선택 사항) - 생성 프로세스의 초기 노이즈 설정을 결정합니다. 다른 모든 파라미터를 동일하게 유지하면서 시드 값을 변경하면 프롬프트, 치수 및 기타 설정을 여전히 준수하는 완전히 새로운 이미지가 생성됩니다. 완벽한 이미지를 찾기 위해 다양한 시드 값으로 실험하는 것이 일반적입니다.

    Minimum Maximum Default
    0 858,993,459 12
중요

해상도(widthheight), numberOfImagesquality는 모두 생성이 완료되는 데 걸리는 시간에 영향을 줍니다. AWS SDK의 기본 read_timeout은 60초로, 이러한 파라미터에 더 높은 값을 사용하면 쉽게 초과될 수 있습니다. 따라서 간접 호출의 read_timeout을 최소 5분(300초)으로 늘리는 것이 좋습니다. 코드 예제에서는 이를 수행하는 방법을 설명합니다.