

# Amazon Nova Canvas 提示最佳实践
<a name="prompting-image-generation"></a>

图像生成模型提示不同于大型语言模型（LLM）提示。图像生成模型无法推理或解释显式命令。因此，最好把您的提示当作图像标题而不是命令或对话来表达。您可能需要包括有关拍摄对象、动作、环境、灯光、风格和摄像机位置的详细信息。

在编写图像生成提示时，请注意以下要求和最佳实践：
+ 提示长度不得超过 1024 个字符。对于很长的提示，请将提示中最不重要的细节放在接近末尾处。
+ 请勿在提示中使用*“否”**“不是”**“没有”*等否定词。模型无法理解提示中的否定含义，尝试使用否定会导致与您想要的相反的结果。例如，像*“没有香蕉的水果篮”*这样的提示实际上会向模型发出包含香蕉的指示。相反，您可以通过 `negativeText` 参数，使用否定提示来指定要从图像中排除的任何对象或特征。例如*“香蕉”*。
+ 与提示一样，应在否定提示中省略否定词。
+ 如果您从提示获得的输出接近想要的结果但还不太完美，可以依次尝试以下技巧来完善结果：
  + 使用一致的 `seed` 值，对提示或否定提示进行微小的更改，然后重新运行提示。这样您就可以更好地了解提示词如何影响输出，从而以可控的方式迭代改进结果。
  + 根据自己的喜好对提示进行完善后，使用相同的提示但不同的 `seed` 值生成更多变体。通过使用不同的种子运行示例提示来生成图像的多个变体，以找到完美的输出图像，此方法通常很有用。

有效的提示通常包括对以下对象的简短描述：

1. 拍摄对象

1. 环境

1. （可选）拍摄对象的位置或姿势

1. （可选）灯光描述

1. （可选）摄像机位置/取景

1. （可选）视觉风格或媒介（“照片”、“插图”、“绘画”等）

## 示例 1：库存照片
<a name="generate-collapsable1"></a>

**提示：**女老师带着温暖的笑容站在黑板前的逼真编辑摄影照片

**否定提示：**双臂交叉

![\[女老师带着温暖的笑容站在黑板前的逼真编辑摄影照片\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/example1.png)


## 示例 2：故事插图
<a name="generate-collapsable2"></a>

**提示：**奇幻空灵且色彩柔和的故事插图：一位戴着大帽子的女士站在船的栏杆旁眺望大海

**否定提示：**云层、海浪

![\[奇幻空灵且色彩柔和的故事插图：一位戴着大帽子的女士站在船的栏杆旁眺望大海\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/simple-image-output-1.png)


## 示例 3：电视和电影制作的预可视化
<a name="generate-collapsable3"></a>

**提示：**无人机视角下的黑暗河流蜿蜒穿过荒凉的冰岛地貌，电影画质

![\[无人机视角下的黑暗河流蜿蜒穿过荒凉的冰岛地貌，电影画质\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/previs.png)


## 示例 4：时尚或编辑内容
<a name="generate-collapsable4"></a>

**提示：**一位穿着橙色外套、深色皮肤、戴着反光眼镜的时尚男士。从略低的角度拍摄，脸部和胸部可见，背景为水蓝色的时尚建筑形状。

![\[一位穿着橙色外套、深色皮肤、戴着反光眼镜的时尚男士。从略低的角度拍摄，脸部和胸部可见，背景为水蓝色的时尚建筑形状。\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/output.png)


**Topics**
+ [否定提示](prompting-image-negative.md)
+ [遮罩提示](prompting-image-masks.md)
+ [补绘提示](prompting-image-inpainting.md)
+ [扩绘提示](prompting-image-outpainting.md)

# 否定提示
<a name="prompting-image-negative"></a>

否定提示（以 `negativeText` 参数表示）非常实用，可用于排除可能因主要提示而自然生成的对象或样式特征。见下列。

**提示：***“奇幻空灵且色彩柔和的故事插图：一位戴着大帽子的女士站在船的栏杆旁眺望大海”*

**不带否定提示**

![\[奇幻空灵且色彩柔和的故事插图：一位戴着大帽子的女士站在船的栏杆旁眺望大海\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/image_1.png)


**带否定提示**“海浪、云朵”

![\[上一张带否定提示“海浪、云朵”的图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/image_1(1).png)


# 遮罩提示
<a name="prompting-image-masks"></a>

遮罩提示用于编辑操作，遮罩提示支持通过自然语言描述图像中要修改（如补绘）或保留（如扩绘）的元素。可通过 `maskPrompt` 参数将遮罩提示作为请求的一部分进行传递。以下是有关遮罩提示效果的一些视觉化示例，其中遮罩区域以深蓝色标注。

**遮罩提示：“狗”**

![\[狗\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/Screenshot1.png)


**maskPrompt: "dog"**

![\[狗\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/Screenshot3.png)


**遮罩提示：“水桶里的狗”**

![\[水桶里的狗\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/Screenshot2.png)


**maskPrompt: "black dog"**

![\[黑狗\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/Screenshot4.png)


# 补绘提示
<a name="prompting-image-inpainting"></a>

补绘是一种编辑操作，可在图像中添加、删除或替换元素。补绘需要有输入图像，并通过自然语言遮罩提示 (`maskPrompt`) 或用户提供的遮罩图像 (`maskImage`) 来指定图像中需要修改的区域。

## 示例 1：从图像中删除元素
<a name="generate-collapsable5"></a>

要从图像中删除元素，需要提供一个完全覆盖待删除内容的遮罩，并在请求中省略 `text` 参数。此举会指示模型删除该元素。

**输入图像**

![\[三个花盆\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/three_pots.jpg)


**遮罩提示**

“花盆中的花朵”

**结果**

![\[场景中没有花盆\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/remove-with-prompt.png)


## 示例 2：向图像添加元素
<a name="generate-collapsable6"></a>

要向图像添加元素，需要使用遮罩定义要添加元素的区域边界，并通过文本提示描述编辑后图像的*整体*效果。使用遮罩图像通常更高效，但也可改用遮罩提示。

以下示例使用的 `text` 值为*“温室桌子下的花园地精”*。

**输入图像**

![\[三个花盆\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/three_pots.jpg)


**遮罩图像**

![\[遮罩图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/three_pots-add_mask_INVERTED.png)


**结果**

![\[新元素已添加到遮罩位置\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/add-with-mask-image-1.png)


## 示例 3：替换图像中的元素
<a name="generate-collapsable7"></a>

可通过补绘功能将旧元素替换为新元素。常用方法是使用遮罩提示来描述要替换的内容。使用这种方法时，新内容的轮廓将紧密贴合要替换元素的轮廓。若想避免此结果，则可创建一个完全覆盖要替换元素但不与其轮廓紧密贴合的遮罩图像。

以下示例使用的 `text` 值为*“棕榈树图形”*，`negativeText` 值为*“彩色”*。

**输入图像**

![\[参考图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/ref-img-seed-1.png)


**遮罩提示**

*“狗”*

**结果**

![\[补绘后的图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/ref-inpainted-1.png)


# 扩绘提示
<a name="prompting-image-outpainting"></a>

扩绘用于替换图像背景。为获得最佳效果，扩绘提示需描述替换后图像的*整体*效果（包括图像中无需修改的部分）。

以下示例使用的 `text` 值为*“简约时尚的厨房中有一台咖啡机，咖啡机旁边放着一盘糕点和一杯咖啡”*。

**输入图像**

![\[Amazon 咖啡机\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/amazon-coffee-maker-1.png)


**遮罩提示**：*“咖啡机”*

**结果**

![\[背景替换后的图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/background-replacement-mask-prompt-example-1.png)


另一示例使用的 `text` 值为*“户外盆栽工作台上摆放着的花盆的细节照片”。*

**输入图像**

![\[三个花盆\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/three_pots.jpg)


**遮罩图像**

![\[遮罩图像\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/three_pots-remove_mask_INVERTED.png)


**结果**

![\[遮罩花盆已移至新背景中\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/potted.png)
