

# 图像生成和编辑
<a name="image-gen-access"></a>

Amazon Nova Canvas 可通过 Bedrock [InvokeModel API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) 使用，并在执行模型推理时支持以下推理参数和模型回复。

**Topics**
+ [图像生成请求和回复格式](#image-gen-req-resp-format)
+ [用于图像生成的输入图像](#image-gen-input-images)
+ [遮罩图像](#image-gen-masking)
+ [支持的图像分辨率](#image-gen-resolutions)

## 图像生成请求和回复格式
<a name="image-gen-req-resp-format"></a>

使用 Amazon Nova Canvas 模型调用 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) 时，请将请求的 `body` 字段替换为与应用场景匹配的格式。所有任务共享一个 `imageGenerationConfig` 对象，但每个任务都有一个特定于该任务的参数对象。支持以下应用场景：


| 任务类型值 | 任务参数字段 | 任务类别 | 说明 | 
| --- | --- | --- | --- | 
| TEXT\_IMAGE，仅带文本 | textToImageParams | 生成 | 使用文本提示生成图像。 | 
| TEXT\_IMAGE，带图像调节 | textToImageParams | 生成 | 除文本提示外，还提供了输入调节图像，用来生成与调节图像的布局和构图一致的图像。 | 
| COLOR\_GUIDED\_GENERATION | colorGuidedGenerationParams | 生成 | 除文本提示和可选的参考图像外，还提供十六进制格式的颜色值列表（例如 \#FF9800），用来生成符合指定调色板的图像。 | 
| IMAGE\_VARIATION | imageVariationParams | 生成 | 提供一个或多个输入图像（带或不带文本提示）来影响生成的图像。可用于影响生成的图像的视觉风格（与文本提示结合使用时）、生成单个图像的变体（在无文本提示的情况下使用时）、以及用于其他创意效果和控制。 | 
| INPAINTING | inPaintingParams | 编辑 | 通过更改被遮罩区域内的面积来修改图像。可用于添加、移除或替换图像元素。 | 
| OUTPAINTING | outPaintingParams | 编辑 | 通过更改被遮罩区域外的面积来修改图像。可用于替换对象背后的背景。 | 
| BACKGROUND\_REMOVAL | backgroundRemovalParams | 编辑 | 自动移除任何图像的背景，并将背景替换为透明像素。如果您计划以后在图像编辑应用、演示文稿或网站中将该图像与其他元素进行合成，此功能将非常实用。通过自定义代码也可轻松地将背景更改为纯色。 | 
| VIRTUAL\_TRY\_ON | virtualTryOnParams | 编辑 | 提供源图像和参考图像，并将参考图像中的对象叠加到源图像上。可用于直观地显示在不同模特身上或不同姿势穿着的服装和配饰，改变对象、物品或服装的风格和外观，或者将风格和设计从一个对象转移到另一个对象。 | 

## 用于图像生成的输入图像
<a name="image-gen-input-images"></a>

许多任务类型都要求在请求中包含一张或多张输入图像。请求中所用的任何图像都必须编码为 Base64 字符串。图像通常采用 PNG 或 JPEG 格式，但每个颜色通道必须为 8 位（RGB）。PNG 图像可以包含额外的 Alpha 通道，但该通道不得包含任何透明或半透明像素。有关支持的输入图像尺寸的具体详细信息，请参阅[支持的图像分辨率](#image-gen-resolutions)。

*遮罩图像*是一种指明要进行补绘或扩绘的区域的图像。这种图像只能包含纯黑色和纯白色像素。

对于补绘请求，涂成黑色的区域称为*遮罩区域*，将被更改。遮罩图像的其余部分必须仅包含纯白色像素。纯白色像素表示遮罩区域之外的部分。

对于扩绘请求，模型将更改涂成白色的区域。

遮罩图像不得包含任何非纯黑色或纯白色的像素。如果使用 JPEG 图像作为遮罩，则必须以 100% 的质量对其进行压缩，以免在压缩过程中引入非白色或非黑色像素。

有关如何在 Base64 字符串中对图像进行编码或解码的示例，请参阅[代码示例](https://docs.aws.amazon.com/nova/latest/userguide/image-gen-code-examples.html)。

## 遮罩图像
<a name="image-gen-masking"></a>

编辑图像时，遮罩是定义要编辑区域的一种方式。可以通过以下三种方式之一定义遮罩：
+ `maskPrompt` – 编写一个自然语言文本提示来描述图像中要遮罩的部分。
+ `maskImage` – 黑白图像，其中纯黑色像素表示遮罩内的区域，纯白色像素表示遮罩外的区域。

  对于补绘请求，模型将更改黑色像素区域。对于扩绘请求，模型将更改白色像素区域。
+ `garmentBasedMask` – 基于图像的遮罩，用于定义要替换的区域以及一些有限的风格选项。

可以使用照片编辑工具来绘制遮罩，也可以使用自定义代码来创建遮罩。否则，请用 maskPrompt 字段让模型推断遮罩。

## 支持的图像分辨率
<a name="image-gen-resolutions"></a>

您可以为生成任务指定任何输出分辨率，只要图像符合以下要求：
+ 每条边的像素必须在 320 到 4096 像素之间（含两端值）。
+ 每条边必须均可被 16 整除。
+ 宽高比必须在 1:4 到 4:1 之间。也就是说，一边的长度不能超过另一边的 4 倍。
+ 总像素数必须小于 4,194,304。

这些限制条件中的大多数也适用于输入图像。不过，图像的每条边不要求被 16 整除。