

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 影像產生的請求和回應結構
<a name="image-gen-req-resp-structure"></a>

**影像產生**  
下列範例顯示不同的影像產生使用案例。每個範例都會提供用於影像產生的欄位說明。

------
#### [ Text-to-image request ]

```
{
    "taskType": "TEXT_IMAGE",
    "textToImageParams": {
        "text": {{string}},
        "negativeText": {{string}},
        "style": "3D_ANIMATED_FAMILY_FILM" |
        "DESIGN_SKETCH" | "FLAT_VECTOR_ILLUSTRATION" |
        "GRAPHIC_NOVEL_ILLUSTRATION" | "MAXIMALISM" |
        "MIDCENTURY_RETRO" | "PHOTOREALISM" |
        "SOFT_DIGITAL_PAINTING"
    },
    "imageGenerationConfig": {
        "width": {{int}},
        "height": {{int}},
        "quality": "standard" | "premium",
        "cfgScale": {{float}},
        "seed": {{int}},
        "numberOfImages": {{int}}
    }
}
```

下列 `textToImageParams` 欄位用於此請求：
+ `text` (必填) – 用於產生影像的文字提示詞。提示詞的長度必須為 1-1024 個字元。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。
+ `style` (選用) – 指定用於產生此影像的風格。如需詳細資訊，請參閱[視覺化風格](image-gen-styles.md)。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `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}},
        "style": "3D_ANIMATED_FAMILY_FILM" |
        "DESIGN_SKETCH" | "FLAT_VECTOR_ILLUSTRATION" |
        "GRAPHIC_NOVEL_ILLUSTRATION" | "MAXIMALISM" |
        "MIDCENTURY_RETRO" | "PHOTOREALISM" |
        "SOFT_DIGITAL_PAINTING"
    },
    "imageGenerationConfig": {
        "width": {{int}},
        "height": {{int}},
        "quality": "standard" | "premium",
        "cfgScale": {{float}},
        "seed": {{int}},
        "numberOfImages": {{int}}
    }
}
```

下列 `textToImageParams` 欄位用於此請求：
+ `conditionImage` (必填) – 指引所產生影像的佈局和構圖的 JPEG 或 PNG 影像。影像必須格式化為 Base64 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `controlMode` (選用) – 指定要使用的調節模式。預設值為「CANNY\_EDGE」。
  + `CANNY_EDGE` – 產生的影像元素將緊密遵循條件影像的顯著輪廓或「邊緣」。
  + `SEGMENTATION` – 會自動分析條件影像，以識別顯著的內容形狀。此分析會產生分割遮罩來引導影像產生，使得產生的影像緊密遵循條件影像佈局，但允許模型在每個內容區域的邊界內有更多自由。
+ `controlStrength` (選用) – 指定所產生影像的佈局和構圖與 `conditionImage` 應有的相似程度。範圍為 0 到 1.0，較低的值會增加隨機性。預設值為 0.7。
+ `text` (必填) – 用於產生影像的文字提示詞。提示詞的長度必須為 1-1024 個字元。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。
+ `style` (選用) – 指定用於產生此影像的風格。如需詳細資訊，請參閱[視覺化風格](image-gen-styles.md)。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `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」格式表示為十六進位值。例如，「\#00FF00」為純綠色，而「\#FCF2AB」為暖黃色。`referenceImage` 未提供時，`colors` 清單具有最強效果。否則，清單中的顏色和參考影像中的顏色都會用於最終輸出。
+ `referenceImage` (選用) – 用作主題和風格參考的 JPEG 或 PNG 影像。該影像的顏色也會與 `colors` 清單中的顏色一起併入最終輸出。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `text` (必填) – 用於產生影像的文字提示詞。提示詞的長度必須為 1-1024 個字元。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `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 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `similarityStrength` (選用) – 指定產生的影像與輸入影像的相似程度。有效值介於 0.2-1.0 之間，使用較低的值來增加隨機性。
+ `text` (必填) – 用於產生影像的文字提示詞。提示詞的長度必須為 1-1024 個字元。如果省略此欄位，模型會移除遮罩區域內的元素。它們將被替換為影像背景的無縫延伸。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `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 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `maskPrompt` 或 `maskImage` (必填) – 必須指定 `maskPrompt` 或 `maskImage` 參數，但不能同時指定兩者。

  `maskPrompt` 為自然語言文字提示詞，描述要編輯的影像區域。

  `maskImage` 為定義要編輯之影像區域的影像。遮罩影像的大小必須與輸入影像相同。要編輯的區域為純黑色陰影，要忽略的區域則為純白色陰影。遮罩影像中不允許其他顏色。

  請注意，在遮罩影像的顏色要求方面，擴繪和補圖請求是相反的。
+ `text` (必填) – 文字提示詞，描述遮罩區域內要產生的內容。提示詞的長度必須為 1-1024 個字元。如果省略此欄位，模型會移除遮罩區域內的元素。它們將被替換為影像背景的無縫延伸。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `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 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `maskPrompt` 或 `maskImage` (必填) – 必須指定 `maskPrompt` 或 `maskImage` 參數，但不能同時指定兩者。

  `maskPrompt` 為自然語言文字提示詞，描述要編輯的影像區域。

  `maskImage` 為定義要編輯之影像區域的影像。遮罩影像的大小必須與輸入影像相同。要編輯的區域為純黑色陰影，要忽略的區域則為純白色陰影。遮罩影像中不允許其他顏色。

  請注意，在遮罩影像的顏色要求方面，擴繪和補圖請求是相反的。
+ `outPaintingMode` - 決定如何解譯您提供的遮罩。

  使用 `DEFAULT` 在遮罩區域和非遮罩區域之間順暢轉換。部分原始像素會用作新背景的起點。當您希望新背景使用與原始背景類似的顏色時，此模式通常更好。不過，如果您的提示詞要求與原始背景明顯不同的新背景，則可能會產生光暈效果。

  使用 `PRECISE` 嚴格遵守遮罩邊界。當您需要對背景進行重大變更時，此模式通常更好。
+ `text` (必填) – 文字提示詞，描述遮罩區域內要產生的內容。提示詞的長度必須為 1-1024 個字元。如果省略此欄位，模型會移除遮罩區域內的元素。它們將被替換為影像背景的無縫延伸。
+ `negativeText` (選用) – 文字提示詞，用於定義影像中不應包含的內容。此值的長度必須為 1-1024 個字元。

**注意**  
避免在 `text` 和 `negativeText` 值中使用否定詞 (「否」、「不」、「沒有」等)。例如，如果您不希望影像中有鏡像，則不是在 `text` 欄位中包含「無鏡像」或「沒有鏡像」，而是在 `negativeText` 欄位中使用「鏡像」一詞。

------
#### [ Background removal request ]

```
{
    "taskType": "BACKGROUND_REMOVAL",
    "backgroundRemovalParams": {
        "image": {{string}} (Base64 encoded image)
    }
}
```

下列 `backgroundRemovalParams` 欄位用於此請求：
+ `image` (必填) - 要修改的 JPEG 或 PNG，格式化為 Base64 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。

`BACKGROUND_REMOVAL` 任務將傳回具有完整 8 位元透明度的 PNG 影像。此格式可讓您順暢、乾淨地隔離前景物件，並可輕鬆將影像與影像編輯應用程式、簡報或網站中的其他元素複合。您可以使用簡單的自訂程式碼，輕鬆將背景變更為純色。

------
#### [ Virtual try-on ]

```
{
    "taskType": "VIRTUAL_TRY_ON",
    "virtualTryOnParams": {
        "sourceImage": {{string}} (Base64 encoded image),
        "referenceImage": {{string}} (Base64 encoded image),
        "maskType": "IMAGE" | "GARMENT" | "PROMPT",
        "imageBasedMask":{
            "maskImage": {{string}} (Base64 encoded image),
        },
        "garmentBasedMask":{
            "maskShape": "CONTOUR" | "BOUNDING_BOX" | "DEFAULT",
            "garmentClass": "UPPER_BODY" | "LOWER_BODY" |
            "FULL_BODY" | "FOOTWEAR" | "LONG_SLEEVE_SHIRT" |
            "SHORT_SLEEVE_SHIRT" | "NO_SLEEVE_SHIRT" |
            "OTHER_UPPER_BODY" | "LONG_PANTS" | "SHORT_PANTS" |
            "OTHER_LOWER_BODY" | "LONG_DRESS" | "SHORT_DRESS" |
            "FULL_BODY_OUTFIT" | "OTHER_FULL_BODY" | "SHOES" |
            "BOOTS" | "OTHER_FOOTWEAR",
            "garmentStyling":{ 
                "longSleeveStyle": "SLEEVE_DOWN" | "SLEEVE_UP",
                "tuckingStyle": "UNTUCKED" | "TUCKED",
                "outerLayerStyle": "CLOSED" | "OPEN",
            }
        },
        "promptBasedMask":{
            "maskShape": "BOUNDING_BOX" | "CONTOUR" | "DEFAULT",
            "maskPrompt": {{string}},
        },
        "maskExclusions": { 
            "preserveBodyPose": "ON" | "OFF" | "DEFAULT",
            "preserveHands": "ON" | "OFF" | "DEFAULT",
            "preserveFace": "OFF" | "ON" | "DEFAULT"
        },
        "mergeStyle" : "BALANCED" | "SEAMLESS" | "DETAILED" ,
        "returnMask": boolean,
    },
    "imageGenerationConfig": {
        "numberOfImages": {{int}},
        "quality": "standard" | "premium",
        "cfgScale": {{float}},
        "seed": {{int}}
    }
}
```

下列 `virtualTryOnParams` 欄位用於此請求：
+ `sourceImage` (必填) - 要修改的 JPEG 或 PNG，格式化為 Base64 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `referenceImage` (必填) – JPEG 或 PNG，其中包含您想要在來源影像上疊加的物件，格式為 Base64 字串。其他需求，請參閱 [用於產生影像的輸入影像](image-gen-access.md#image-gen-input-images)。
+ `maskType` (必填) – 指定遮罩是以影像、提示詞還是服裝遮罩的形式提供。
+ `imageBasedMask` – 當 `maskType` 為 `"IMAGE"` 時為必填。

  `maskImage` 為定義要編輯之影像區域的影像。遮罩影像的大小必須與輸入影像相同。要編輯的區域為純黑色陰影，要忽略的區域則為純白色陰影。遮罩影像中不允許其他顏色。
+ `garmentBasedMask` – 當 `maskType` 為 `"GARMENT"` 時為必填。
  + `maskShape` (選用) – 定義遮罩週框方塊的形狀。週框方塊的形狀和大小可能會影響參考影像轉移到來源影像的方式。
  + `garmentClass` (必填) – 定義正在轉移的衣物。此參數可讓模型專注於您要轉移的參考影像的特定部分。
  + `garmentStyling` (選用) – 為特定衣物的模型提供風格提示。`longSleeveStyle` 和 `tuckingStyle` 參數僅適用於上半身服裝。`outerLayerStyle` 參數僅適用於外層、上半身服裝。
+ `promptBasedMask` (必填) – 當 `maskType` 為 `"PROMPT"` 時為必填。
  + `maskShape` (選用) – 定義遮罩週框方塊的形狀。週框方塊的形狀和大小可能會影響參考影像轉移到來源影像的方式。
  + `maskPrompt` (必填) – 自然語言文字提示詞，描述要編輯的影像區域。
+ `maskExclusions` (選用) – 在來源影像中偵測到人物時，這些參數會判斷其身體姿勢、手部和臉部應保留在輸出影像中還是重新產生。
+ `mergeStyle` (選用) – 決定如何將來源和參考影像拼接在一起。每個合併樣式會採用不同的方法來將元素拼接在一起建立最終影像，且每個都具有自己的優點和權衡。
  + `"BALANCED"` - 保護原始影像中的任何非遮罩像素，確保它們與原始影像保持 100% 準確。在某些情況下，輸出影像中會有輕微可見的顏色或紋理不相符，並呈現為遮罩形狀的「鬼影」影像。當影像特徵為一個人站在純色或均勻紋理的背景前方時，最有可能發生這種情況。若要避免這種情況，您可以改為使用 `"SEAMLESS"` 合併樣式。
  + `"SEAMLESS"` - 確保最終影像中的遮罩和非遮罩影像區域之間永遠不會有明顯的接縫。權衡是此模式會導致影像中的所有像素稍微變更，有時會減少影像非遮罩區域中的精細細節。
  + `"DETAILED"` - 可大幅改善標誌和文字等精細細節，特別是遮罩區域相較於整體影像相對較小時。模型實現此目標的方法是，對原始影像的緊密裁剪、解析度更高且僅包含遮罩區域的版本進行修繪。然後再將結果合併回原始影像。如同使用 `"BALANCED"` 模式，此模式有時可能會導致可見的接縫。
+ `returnMask` (選用) – 指定是否隨輸出影像一起傳回遮罩影像。

------

**回應主體**  
回應主體將包含下列一或多個欄位：

```
{
    "images": "images": string[] (list of Base64 encoded images),
    "maskImage": string (Base64 encoded image),
    "error": string
}
```
+ `images` – 成功時，傳回代表產生之每個影像的 Base64 編碼字串清單。此清單不一定包含您請求的相同影像數量。如果個別映像不符合 AWS Responsible AI (RAI) 內容管制政策，可能會在產生後遭到封鎖。只會傳回符合 RAI 政策的影像。
+ `maskImage` - 當您指定遮罩影像應與輸出一起傳回時，這是傳回該影像的位置。
+ `error` – 如果任何影像不符合 RAI 政策，則會傳回此欄位。否則，回應中會省略此欄位。

`imageGenerationConfig` 欄位適用於除 `BACKGROUND_REMOVAL` 之外的所有任務類型。其為選用的，並包含下列欄位。如果您忽略此物件，則會使用預設組態。
+ `width` 和 `height` (選用) – 定義所產生影像的大小和長寬比。預設值為 1024。

  `"INPAINTING"`、`"OUTPAINTING"` 或 `"VIRTUAL_TRY_ON"` 任務類型不應提供 `width` 和 `height` 值。

  如需所支援解析度的完整清單，請參閱 [支援的影像解析度](image-gen-access.md#image-gen-resolutions)。
+ `quality` (選用) - 指定產生影像時要使用的品質 -「標準」(預設值) 或「高級」。
+ `cfgScale` (選用) – 指定模型應遵循提示詞的嚴格程度。值範圍介於 1.1-10 (含) 之間，預設值為 6.5。
  + 低值 (1.1-3) - 更多 AI 創意自由，可能更具美觀性，但對比度低且結果遵循提示詞的程度較低
  + 中等值 (4-7) - 平衡方法，通常建議用於大多數影像產生
  + 高值 (8-10) - 嚴格遵循提示詞，這可以產生更精確的結果，但有時會損失自然美且顏色飽和度更高
+ `numberOfImages` (選用) – 要產生的影像數量。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/nova/latest/userguide/image-gen-req-resp-structure.html)
+ `seed` (選用) – 決定產生程序的初始雜訊設定。變更種子值，同時讓所有其他參數保持不變，這會產生仍然遵循您的提示詞、維度和其他設定的全新影像。試驗各種種子值以尋找完美影像是很常見的做法。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/nova/latest/userguide/image-gen-req-resp-structure.html)

**重要**  
解析度 (`width` 和 `height`)、`numberOfImages` 和 `quality` 都會影響完成影像產生所需的時間。 AWS SDK 的 `read_timeout` 預設值為 60 秒，當這些參數使用較高的值時，可輕易超過此值。因此，建議您將調用呼叫的 `read_timeout` 增加到至少 5 分鐘 (300 秒)。下列程式碼範例會示範如何執行此作業。