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