使用 Imagen 的扩绘功能扩展图片内容


本页介绍了如何使用 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.010.02)。


就您使用 Firebase AI Logic 的体验提供反馈