本页介绍了如何使用 Firebase AI Logic SDK 通过 Imagen 进行外绘,以将图片的内容扩展到其原始边界之外。
扩绘是一种基于蒙版的修改。蒙版是一种数字叠加层,用于定义您要修改的特定区域。
工作原理:您提供原始图片和相应的蒙版图片(自动生成或由您提供),用于定义新扩展区域的蒙版。您还可以选择性地提供文字提示,描述您希望在扩展区域中显示的内容,或者让模型智能地决定哪些内容可以合理地延续现有场景。模型会生成新内容并填充遮盖区域。
例如,您可以更改图片的宽高比或添加更多背景内容。
准备工作
仅在将 Vertex AI Gemini API 用作 API 提供方时可用。 |
如果您尚未完成入门指南,请先完成该指南。该指南介绍了如何设置 Firebase 项目、将应用连接到 Firebase、添加 SDK、为所选的 API 提供程序初始化后端服务,以及创建 ImagenModel
实例。
支持此功能的模型
Imagen 通过其 capability
模型提供图片编辑功能:
imagen-3.0-capability-001
请注意,对于 Imagen 模型,global
位置不受支持。
扩展图片内容
在试用此示例之前,请完成本指南的准备工作部分,以设置您的项目和应用。 |
以下示例展示了如何使用您提供的图片中定义的遮罩,将图片扩展到其原始边框之外。您提供原始图片、文本提示和蒙版图片。请注意,原始图片和遮盖图片存在以下差异:
遮盖的图片必须具有最终外绘图片的像素尺寸。
原始图片必须包含额外的内边距,以匹配遮罩图片的像素尺寸。
如果您希望模型智能地决定哪些内容可以合理地延续现有场景,则可以不提供文本提示。如果您想在扩展区域中添加特定内容,需要在文字提示中指定。
Swift
Swift 不支持使用 Imagen 模型进行图片编辑。今年晚些时候再回来查看!
Kotlin
如需扩展图片,请使用 editImage()
并将编辑配置设置为使用 ImagenEditMode.OUTPAINT
。
请注意,您可以选择使用 outpaintImage()
而不是 editImage()
,并且无需指定编辑模式。
如需查看外绘的示例代码,请参阅快速入门。
Java
如需扩展图片,请使用 editImage()
并将编辑配置设置为使用 ImagenEditMode.OUTPAINT
。
请注意,您可以选择使用 outpaintImage()
而不是 editImage()
,并且无需指定编辑模式。
如需查看外绘的示例代码,请参阅快速入门。
Web
Web 应用不支持使用 Imagen 模型进行图片编辑。今年晚些时候再回来查看!
Dart
如需扩展图片,请使用 editImage()
并将编辑配置设置为使用 ImagenEditMode.OUTPAINT
。
如需查看外绘的示例代码,请参阅快速入门。
Unity
Unity 不支持使用 Imagen 模型进行图片编辑。今年晚些时候再回来查看!
最佳做法和限制
建议您在编辑图片时扩大遮罩。这有助于平滑编辑的边界,使其看起来更逼真。一般来说,建议使用 1% 或 2% 的扩张值(0.01
或 0.02
)。
就您使用 Firebase AI Logic 的体验提供反馈