Skip to content

Add imagen editing options like inpainting and outpainting #7075

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

davidmotson
Copy link
Collaborator

No description provided.

Copy link
Contributor

Firebase AI Mock Responses Check ⚠️

A newer major version of the mock responses for Firebase AI unit tests is available. update_responses.sh should be updated to clone the latest version of the responses: v14.1

Copy link
Contributor

github-actions bot commented Jun 24, 2025

Javadoc Changes:
--- /home/runner/diff/original/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml	2025-06-25 19:39:04.887664595 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml	2025-06-25 19:35:32.348276213 +0000
@@ -106,6 +106,14 @@
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagePart.html"
     - title: "ImagenAspectRatio"
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagenAspectRatio.html"
+    - title: "ImagenEditMode"
+      path: "/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html"
+    - title: "ImagenEditingConfig"
+      path: "/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html"
+    - title: "ImagenEditingConfig.Builder"
+      path: "/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html"
+    - title: "ImagenEditingConfigKt"
+      path: "/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html"
     - title: "ImagenGenerationConfig"
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationConfig.html"
     - title: "ImagenGenerationConfig.Builder"
@@ -118,6 +126,8 @@
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagenImageFormat.html"
     - title: "ImagenInlineImage"
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html"
+    - title: "ImagenInlineImageKt"
+      path: "/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html"
     - title: "ImagenPersonFilterLevel"
       path: "/docs/reference/android/com/google/firebase/ai/type/ImagenPersonFilterLevel.html"
     - title: "ImagenSafetyFilterLevel"
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/ImagenModel.html	2025-06-25 19:39:04.878664547 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/ImagenModel.html	2025-06-25 19:35:32.345276185 +0000
@@ -28,6 +28,12 @@
           <tr>
             <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</code></td>
             <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;config)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</code></td>
+            <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html#generateImages(kotlin.String)">generateImages</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt)</code></div>
               <p>Generates an image, returning the result directly to the caller.</p>
             </td>
@@ -37,6 +43,10 @@
     </div>
     <div class="list">
       <h2>Public methods</h2>
+      <div class="api-item"><a name="editImage(kotlin.String, com.google.firebase.ai.type.ImagenEditingConfig)"></a><a name="editImage-kotlin.String-com.google.firebase.ai.type.ImagenEditingConfig-"></a><a name="editimage"></a>
+        <h3 class="api-name" id="editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;config)</pre>
+      </div>
       <div class="api-item"><a name="generateImages-kotlin.String-"></a><a name="generateimages"></a>
         <h3 class="api-name" id="generateImages(kotlin.String)">generateImages</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html#generateImages(kotlin.String)">generateImages</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt)</pre>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/java/ImagenModelFutures.html	2025-06-25 19:39:04.886664590 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/java/ImagenModelFutures.html	2025-06-25 19:35:32.347276204 +0000
@@ -65,6 +65,12 @@
         </thead>
         <tbody class="list">
           <tr>
+            <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;</code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;config)</code></div>
+            </td>
+          </tr>
+          <tr>
             <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.html">ImagenModelFutures</a></code></td>
             <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.Companion.html#from(com.google.firebase.ai.ImagenModel)">from</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html">ImagenModel</a>&nbsp;model)</code></div>
@@ -89,6 +95,10 @@
     </div>
     <div class="list">
       <h2>Public methods</h2>
+      <div class="api-item"><a name="editImage(kotlin.String, com.google.firebase.ai.type.ImagenEditingConfig)"></a><a name="editImage-kotlin.String-com.google.firebase.ai.type.ImagenEditingConfig-"></a><a name="editimage"></a>
+        <h3 class="api-name" id="editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;prompt,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;config)</pre>
+      </div>
       <div class="api-item"><a name="from-com.google.firebase.ai.ImagenModel-"></a><a name="from"></a>
         <h3 class="api-name" id="from(com.google.firebase.ai.ImagenModel)">from</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.html">ImagenModelFutures</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/ImagenModelFutures.Companion.html#from(com.google.firebase.ai.ImagenModel)">from</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/ImagenModel.html">ImagenModel</a>&nbsp;model)</pre>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html	2025-06-25 19:35:32.338276121 +0000
@@ -0,0 +1,65 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditMode.Companion</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditMode.Companion</h1>
+    <p>
+      <pre>public static class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html">ImagenEditMode.Companion</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public fields</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_INSERTION()">INPAINT_INSERTION</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_REMOVAL()">INPAINT_REMOVAL</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#OUTPAINT()">OUTPAINT</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public fields</h2>
+      <div class="api-item"><a name="getINPAINT_INSERTION()"></a><a name="setINPAINT_INSERTION()"></a><a name="getINPAINT_INSERTION--"></a><a name="setINPAINT_INSERTION--"></a>
+        <h3 class="api-name" id="INPAINT_INSERTION()">INPAINT_INSERTION</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_INSERTION()">INPAINT_INSERTION</a></pre>
+      </div>
+      <div class="api-item"><a name="getINPAINT_REMOVAL()"></a><a name="setINPAINT_REMOVAL()"></a><a name="getINPAINT_REMOVAL--"></a><a name="setINPAINT_REMOVAL--"></a>
+        <h3 class="api-name" id="INPAINT_REMOVAL()">INPAINT_REMOVAL</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_REMOVAL()">INPAINT_REMOVAL</a></pre>
+      </div>
+      <div class="api-item"><a name="getOUTPAINT()"></a><a name="setOUTPAINT()"></a><a name="getOUTPAINT--"></a><a name="setOUTPAINT--"></a>
+        <h3 class="api-name" id="OUTPAINT()">OUTPAINT</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html#OUTPAINT()">OUTPAINT</a></pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditMode.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditMode.html	2025-06-25 19:35:32.344276176 +0000
@@ -0,0 +1,37 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditMode</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditMode</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Nested types</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code>public static class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.Companion.html">ImagenEditMode.Companion</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html	2025-06-25 19:35:32.335276093 +0000
@@ -0,0 +1,190 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfig.Builder</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditingConfig.Builder</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public fields</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editMode()">editMode</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editSteps()">editSteps</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#image()">image</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#mask()">mask</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Double.html">Double</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#maskDilation()">maskDilation</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#Builder()">Builder</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public methods</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#build()">build</a>()</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;editMode)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditSteps(kotlin.Int)">setEditSteps</a>(int&nbsp;editSteps)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;image)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;mask)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMaskDilation(kotlin.Double)">setMaskDilation</a>(double&nbsp;maskDilation)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public fields</h2>
+      <div class="api-item"><a name="getEditMode()"></a><a name="setEditMode()"></a><a name="getEditMode--"></a><a name="setEditMode--"></a>
+        <h3 class="api-name" id="editMode()">editMode</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editMode()">editMode</a></pre>
+      </div>
+      <div class="api-item"><a name="getEditSteps()"></a><a name="setEditSteps()"></a><a name="getEditSteps--"></a><a name="setEditSteps--"></a>
+        <h3 class="api-name" id="editSteps()">editSteps</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editSteps()">editSteps</a></pre>
+      </div>
+      <div class="api-item"><a name="getImage()"></a><a name="setImage()"></a><a name="getImage--"></a><a name="setImage--"></a>
+        <h3 class="api-name" id="image()">image</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#image()">image</a></pre>
+      </div>
+      <div class="api-item"><a name="getMask()"></a><a name="setMask()"></a><a name="getMask--"></a><a name="setMask--"></a>
+        <h3 class="api-name" id="mask()">mask</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#mask()">mask</a></pre>
+      </div>
+      <div class="api-item"><a name="getMaskDilation()"></a><a name="setMaskDilation()"></a><a name="getMaskDilation--"></a><a name="setMaskDilation--"></a>
+        <h3 class="api-name" id="maskDilation()">maskDilation</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Double.html">Double</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#maskDilation()">maskDilation</a></pre>
+      </div>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="Builder--"></a><a name="builder"></a>
+        <h3 class="api-name" id="Builder()">Builder</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#Builder()">Builder</a>()</pre>
+      </div>
+    </div>
+    <div class="list">
+      <h2>Public methods</h2>
+      <div class="api-item"><a name="build--"></a><a name="build"></a>
+        <h3 class="api-name" id="build()">build</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#build()">build</a>()</pre>
+      </div>
+      <div class="api-item"><a name="setEditMode-com.google.firebase.ai.type.ImagenEditMode-"></a><a name="seteditmode"></a>
+        <h3 class="api-name" id="setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;editMode)</pre>
+      </div>
+      <div class="api-item"><a name="setEditSteps-kotlin.Int-"></a><a name="seteditsteps"></a>
+        <h3 class="api-name" id="setEditSteps(kotlin.Int)">setEditSteps</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditSteps(kotlin.Int)">setEditSteps</a>(int&nbsp;editSteps)</pre>
+      </div>
+      <div class="api-item"><a name="setImage-com.google.firebase.ai.type.ImagenInlineImage-"></a><a name="setimage"></a>
+        <h3 class="api-name" id="setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;image)</pre>
+      </div>
+      <div class="api-item"><a name="setMask-com.google.firebase.ai.type.ImagenInlineImage-"></a><a name="setmask"></a>
+        <h3 class="api-name" id="setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;mask)</pre>
+      </div>
+      <div class="api-item"><a name="setMaskDilation-kotlin.Double-"></a><a name="setmaskdilation"></a>
+        <h3 class="api-name" id="setMaskDilation(kotlin.Double)">setMaskDilation</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMaskDilation(kotlin.Double)">setMaskDilation</a>(double&nbsp;maskDilation)</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html	2025-06-25 19:35:32.332276066 +0000
@@ -0,0 +1,45 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfig.Companion</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditingConfig.Companion</h1>
+    <p>
+      <pre>public static class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html">ImagenEditingConfig.Companion</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public methods</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html#builder()">builder</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public methods</h2>
+      <div class="api-item"><a name="builder--"></a><a name="builder"></a>
+        <h3 class="api-name" id="builder()">builder</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html#builder()">builder</a>()</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfig.html	2025-06-25 19:35:32.341276148 +0000
@@ -0,0 +1,69 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditingConfig</h1>
+    <p>
+      <pre>@<a href="/docs/reference/android/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Nested types</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <div><code>public static class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html">ImagenEditingConfig.Companion</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html#ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;image,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;editMode,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;mask,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Double.html">Double</a>&nbsp;maskDilation,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;editSteps<br>)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage, com.google.firebase.ai.type.ImagenEditMode, com.google.firebase.ai.type.ImagenInlineImage, kotlin.Double, kotlin.Int)"></a><a name="ImagenEditingConfig-com.google.firebase.ai.type.ImagenInlineImage-com.google.firebase.ai.type.ImagenEditMode-com.google.firebase.ai.type.ImagenInlineImage-kotlin.Double-kotlin.Int-"></a><a name="imageneditingconfig"></a>
+        <h3 class="api-name" id="ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html#ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;image,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>&nbsp;editMode,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;mask,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Double.html">Double</a>&nbsp;maskDilation,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;editSteps<br>)</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html	2025-06-25 19:35:32.337276111 +0000
@@ -0,0 +1,44 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfigKt</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <h1>ImagenEditingConfigKt</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html">ImagenEditingConfigKt</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public methods</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td>
+              <div><code>@<a href="/docs/reference/android/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html#imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;init<br>)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public methods</h2>
+      <div class="api-item"><a name="imagenEditingConfig-kotlin.Function1-"></a><a name="imageneditingconfig"></a>
+        <h3 class="api-name" id="imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</h3>
+        <pre class="api-signature no-pretty-print">@<a href="/docs/reference/android/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html#imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;init<br>)</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenInlineImageKt.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/ImagenInlineImageKt.html	2025-06-25 19:35:32.335276093 +0000
@@ -0,0 +1,44 @@
+<html devsite="true">
+  <head>
+    <title>ImagenInlineImageKt</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <h1>ImagenInlineImageKt</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html">ImagenInlineImageKt</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public methods</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>static&nbsp;final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a></code></td>
+            <td>
+              <div><code>@<a href="/docs/reference/android/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html">ImagenInlineImageKt</a>.<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html#(android.graphics.Bitmap).toImagenInlineImage()">toImagenInlineImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html">Bitmap</a>&nbsp;receiver)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public methods</h2>
+      <div class="api-item"><a name="-android.graphics.Bitmap-.toImagenInlineImage--"></a><a name="toimageninlineimage"></a>
+        <h3 class="api-name" id="(android.graphics.Bitmap).toImagenInlineImage()">ImagenInlineImageKt.toImagenInlineImage</h3>
+        <pre class="api-signature no-pretty-print">@<a href="/docs/reference/android/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>public&nbsp;static&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html">ImagenInlineImageKt</a>.<a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html#(android.graphics.Bitmap).toImagenInlineImage()">toImagenInlineImage</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html">Bitmap</a>&nbsp;receiver)</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html	2025-06-25 19:39:04.874664525 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html	2025-06-25 19:35:32.343276167 +0000
@@ -211,6 +211,22 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenEditingConfigKt.html">ImagenEditingConfigKt</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenGenerationConfig.html">ImagenGenerationConfig</a></code></td>
             <td></td>
           </tr>
@@ -243,6 +259,10 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenInlineImageKt.html">ImagenInlineImageKt</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/ImagenPersonFilterLevel.html">ImagenPersonFilterLevel</a></code></td>
             <td>
               <p>A filter used to prevent images from containing depictions of children or people.</p>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml	2025-06-25 19:39:04.824664253 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml	2025-06-25 19:35:32.329276038 +0000
@@ -100,6 +100,12 @@
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagePart.html"
     - title: "ImagenAspectRatio"
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.html"
+    - title: "ImagenEditMode"
+      path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html"
+    - title: "ImagenEditingConfig"
+      path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html"
+    - title: "ImagenEditingConfig.Builder"
+      path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html"
     - title: "ImagenGenerationConfig"
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.html"
     - title: "ImagenGenerationConfig.Builder"
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/ImagenModel.html	2025-06-25 19:39:04.822664242 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/ImagenModel.html	2025-06-25 19:35:32.327276019 +0000
@@ -28,6 +28,12 @@
           <tr>
             <td><code>suspend <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</code></td>
             <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/ImagenModel.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>,&nbsp;config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>suspend <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</code></td>
+            <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/ImagenModel.html#generateImages(kotlin.String)">generateImages</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>)</code></div>
               <p>Generates an image, returning the result directly to the caller.</p>
             </td>
@@ -37,6 +43,10 @@
     </div>
     <div class="list">
       <h2>Public functions</h2>
+      <div class="api-item"><a name="editImage(kotlin.String, com.google.firebase.ai.type.ImagenEditingConfig)"></a><a name="editImage-kotlin.String-com.google.firebase.ai.type.ImagenEditingConfig-"></a><a name="editimage"></a>
+        <h3 class="api-name" id="editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</h3>
+        <pre class="api-signature no-pretty-print">suspend&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/ImagenModel.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>,&nbsp;config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</pre>
+      </div>
       <div class="api-item"><a name="generateImages-kotlin.String-"></a><a name="generateimages"></a>
         <h3 class="api-name" id="generateImages(kotlin.String)">generateImages</h3>
         <pre class="api-signature no-pretty-print">suspend&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/ImagenModel.html#generateImages(kotlin.String)">generateImages</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;</pre>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html	2025-06-25 19:39:04.823664248 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html	2025-06-25 19:35:32.328276029 +0000
@@ -68,6 +68,12 @@
           <tr>
             <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;</code></td>
             <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>,&nbsp;config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;</code></td>
+            <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html#generateImages(kotlin.String)">generateImages</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>)</code></div>
               <p>Generates an image, returning the result directly to the caller.</p>
             </td>
@@ -112,6 +118,10 @@
     </div>
     <div class="list">
       <h2>Public functions</h2>
+      <div class="api-item"><a name="editImage(kotlin.String, com.google.firebase.ai.type.ImagenEditingConfig)"></a><a name="editImage-kotlin.String-com.google.firebase.ai.type.ImagenEditingConfig-"></a><a name="editimage"></a>
+        <h3 class="api-name" id="editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</h3>
+        <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html#editImage(kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig)">editImage</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>,&nbsp;config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;</pre>
+      </div>
       <div class="api-item"><a name="generateImages-kotlin.String-"></a><a name="generateimages"></a>
         <h3 class="api-name" id="generateImages(kotlin.String)">generateImages</h3>
         <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/ImagenModelFutures.html#generateImages(kotlin.String)">generateImages</a>(prompt:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.html">ImagenGenerationResponse</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>&gt;&gt;</pre>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditMode.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditMode.html	2025-06-25 19:35:32.326276010 +0000
@@ -0,0 +1,65 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditMode</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditMode</h1>
+    <p>
+      <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public companion properties</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_INSERTION()">INPAINT_INSERTION</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_REMOVAL()">INPAINT_REMOVAL</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#OUTPAINT()">OUTPAINT</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public companion properties</h2>
+      <div class="api-item"><a name="getINPAINT_INSERTION()"></a><a name="setINPAINT_INSERTION()"></a><a name="getINPAINT_INSERTION--"></a><a name="setINPAINT_INSERTION--"></a>
+        <h3 class="api-name" id="INPAINT_INSERTION()">INPAINT_INSERTION</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_INSERTION()">INPAINT_INSERTION</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></pre>
+      </div>
+      <div class="api-item"><a name="getINPAINT_REMOVAL()"></a><a name="setINPAINT_REMOVAL()"></a><a name="getINPAINT_REMOVAL--"></a><a name="setINPAINT_REMOVAL--"></a>
+        <h3 class="api-name" id="INPAINT_REMOVAL()">INPAINT_REMOVAL</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#INPAINT_REMOVAL()">INPAINT_REMOVAL</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></pre>
+      </div>
+      <div class="api-item"><a name="getOUTPAINT()"></a><a name="setOUTPAINT()"></a><a name="getOUTPAINT--"></a><a name="setOUTPAINT--"></a>
+        <h3 class="api-name" id="OUTPAINT()">OUTPAINT</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.Companion.html#OUTPAINT()">OUTPAINT</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html	2025-06-25 19:35:32.320275955 +0000
@@ -0,0 +1,190 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfig.Builder</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditingConfig.Builder</h1>
+    <p>
+      <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#Builder()">Builder</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public functions</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#build()">build</a>()</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</a>(editMode:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditSteps(kotlin.Int)">setEditSteps</a>(editSteps:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</a>(image:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</a>(mask:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMaskDilation(kotlin.Double)">setMaskDilation</a>(maskDilation:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public properties</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editMode()">editMode</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editSteps()">editSteps</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#image()">image</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#mask()">mask</a></code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#maskDilation()">maskDilation</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="Builder--"></a><a name="builder"></a>
+        <h3 class="api-name" id="Builder()">Builder</h3>
+        <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#Builder()">Builder</a>()</pre>
+      </div>
+    </div>
+    <div class="list">
+      <h2>Public functions</h2>
+      <div class="api-item"><a name="build--"></a><a name="build"></a>
+        <h3 class="api-name" id="build()">build</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#build()">build</a>():&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></pre>
+      </div>
+      <div class="api-item"><a name="setEditMode-com.google.firebase.ai.type.ImagenEditMode-"></a><a name="seteditmode"></a>
+        <h3 class="api-name" id="setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditMode(com.google.firebase.ai.type.ImagenEditMode)">setEditMode</a>(editMode:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+      <div class="api-item"><a name="setEditSteps-kotlin.Int-"></a><a name="seteditsteps"></a>
+        <h3 class="api-name" id="setEditSteps(kotlin.Int)">setEditSteps</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setEditSteps(kotlin.Int)">setEditSteps</a>(editSteps:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+      <div class="api-item"><a name="setImage-com.google.firebase.ai.type.ImagenInlineImage-"></a><a name="setimage"></a>
+        <h3 class="api-name" id="setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setImage(com.google.firebase.ai.type.ImagenInlineImage)">setImage</a>(image:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+      <div class="api-item"><a name="setMask-com.google.firebase.ai.type.ImagenInlineImage-"></a><a name="setmask"></a>
+        <h3 class="api-name" id="setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMask(com.google.firebase.ai.type.ImagenInlineImage)">setMask</a>(mask:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+      <div class="api-item"><a name="setMaskDilation-kotlin.Double-"></a><a name="setmaskdilation"></a>
+        <h3 class="api-name" id="setMaskDilation(kotlin.Double)">setMaskDilation</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#setMaskDilation(kotlin.Double)">setMaskDilation</a>(maskDilation:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+    </div>
+    <div class="list">
+      <h2>Public properties</h2>
+      <div class="api-item"><a name="getEditMode()"></a><a name="setEditMode()"></a><a name="getEditMode--"></a><a name="setEditMode--"></a>
+        <h3 class="api-name" id="editMode()">editMode</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editMode()">editMode</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>?</pre>
+      </div>
+      <div class="api-item"><a name="getEditSteps()"></a><a name="setEditSteps()"></a><a name="getEditSteps--"></a><a name="setEditSteps--"></a>
+        <h3 class="api-name" id="editSteps()">editSteps</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#editSteps()">editSteps</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</pre>
+      </div>
+      <div class="api-item"><a name="getImage()"></a><a name="setImage()"></a><a name="getImage--"></a><a name="setImage--"></a>
+        <h3 class="api-name" id="image()">image</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#image()">image</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>?</pre>
+      </div>
+      <div class="api-item"><a name="getMask()"></a><a name="setMask()"></a><a name="getMask--"></a><a name="setMask--"></a>
+        <h3 class="api-name" id="mask()">mask</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#mask()">mask</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>?</pre>
+      </div>
+      <div class="api-item"><a name="getMaskDilation()"></a><a name="setMaskDilation()"></a><a name="getMaskDilation--"></a><a name="setMaskDilation--"></a>
+        <h3 class="api-name" id="maskDilation()">maskDilation</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html#maskDilation()">maskDilation</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>?</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html	2025-06-25 19:35:32.324275992 +0000
@@ -0,0 +1,92 @@
+<html devsite="true">
+  <head>
+    <title>ImagenEditingConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>ImagenEditingConfig</h1>
+    <p>
+      <pre>@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></pre>
+    </p>
+    <hr>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Nested types</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public companion functions</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html#builder()">builder</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html#ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;editMode:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;mask:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;maskDilation:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;editSteps:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?<br>)</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public companion functions</h2>
+      <div class="api-item"><a name="builder--"></a><a name="builder"></a>
+        <h3 class="api-name" id="builder()">builder</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Companion.html#builder()">builder</a>():&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></pre>
+      </div>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage, com.google.firebase.ai.type.ImagenEditMode, com.google.firebase.ai.type.ImagenInlineImage, kotlin.Double, kotlin.Int)"></a><a name="ImagenEditingConfig-com.google.firebase.ai.type.ImagenInlineImage-com.google.firebase.ai.type.ImagenEditMode-com.google.firebase.ai.type.ImagenInlineImage-kotlin.Double-kotlin.Int-"></a><a name="imageneditingconfig"></a>
+        <h3 class="api-name" id="ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</h3>
+        <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html#ImagenEditingConfig(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.ImagenEditMode,com.google.firebase.ai.type.ImagenInlineImage,kotlin.Double,kotlin.Int)">ImagenEditingConfig</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;editMode:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;mask:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a>? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;maskDilation:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html">Double</a>? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;editSteps:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>? = null<br>)</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html	2025-06-25 19:39:04.815664204 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html	2025-06-25 19:35:32.326276010 +0000
@@ -188,6 +188,18 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditMode.html">ImagenEditMode</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a></code></td>
+            <td></td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.html">ImagenGenerationConfig</a></code></td>
             <td></td>
           </tr>
@@ -531,6 +543,12 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></code></td>
+            <td>
+              <div><code>@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br><a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</a>(init:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>.() <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)</code></div>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.html">ImagenGenerationConfig</a></code></td>
             <td>
               <div><code>@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br><a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#imagenGenerationConfig(kotlin.Function1)">imagenGenerationConfig</a>(init:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.Builder.html">ImagenGenerationConfig.Builder</a>.() <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)</code></div>
@@ -583,6 +601,12 @@
               <p>Returns the part as a <code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></code> if it represents text, and null otherwise</p>
             </td>
           </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a></code></td>
+            <td>
+              <div><code>@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br><a href="https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html">Bitmap</a>.<a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#(android.graphics.Bitmap).toImagenInlineImage()">toImagenInlineImage</a>()</code></div>
+            </td>
+          </tr>
         </tbody>
       </table>
     </div>
@@ -602,6 +626,10 @@
       <p>Example Usage:</p>
       <pre class="prettyprint">generationConfig {<br>  temperature = 0.75f<br>  topP = 0.5f<br>  topK = 30<br>  candidateCount = 4<br>  maxOutputTokens = 300<br>  stopSequences = listOf(&quot;in conclusion&quot;, &quot;-----&quot;, &quot;do you need&quot;)<br>}</pre>
     </div>
+    <div class="api-item"><a name="imagenEditingConfig-kotlin.Function1-"></a><a name="imageneditingconfig"></a>
+      <h3 class="api-name" id="imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</h3>
+      <pre class="api-signature no-pretty-print">@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#imagenEditingConfig(kotlin.Function1)">imagenEditingConfig</a>(init:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.Builder.html">ImagenEditingConfig.Builder</a>.() <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.html">ImagenEditingConfig</a></pre>
+    </div>
     <div class="api-item"><a name="imagenGenerationConfig-kotlin.Function1-"></a><a name="imagengenerationconfig"></a>
       <h3 class="api-name" id="imagenGenerationConfig(kotlin.Function1)">imagenGenerationConfig</h3>
       <pre class="api-signature no-pretty-print">@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#imagenGenerationConfig(kotlin.Function1)">imagenGenerationConfig</a>(init:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.Builder.html">ImagenGenerationConfig.Builder</a>.() <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.html">ImagenGenerationConfig</a></pre>
@@ -637,6 +665,10 @@
       <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Part.html">Part</a>.<a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#(com.google.firebase.ai.type.Part).asTextOrNull()">asTextOrNull</a>():&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>?</pre>
       <p>Returns the part as a <code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></code> if it represents text, and null otherwise</p>
     </div>
+    <div class="api-item"><a name="-android.graphics.Bitmap-.toImagenInlineImage--"></a><a name="toimageninlineimage"></a>
+      <h3 class="api-name" id="(android.graphics.Bitmap).toImagenInlineImage()">toImagenInlineImage</h3>
+      <pre class="api-signature no-pretty-print">@<a href="/docs/reference/kotlin/com/google/firebase/ai/type/PublicPreviewAPI.html">PublicPreviewAPI</a><br>fun&nbsp;<a href="https://developer.android.com/reference/kotlin/android/graphics/Bitmap.html">Bitmap</a>.<a href="/docs/reference/kotlin/com/google/firebase/ai/type/package-summary.html#(android.graphics.Bitmap).toImagenInlineImage()">toImagenInlineImage</a>():&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/ImagenInlineImage.html">ImagenInlineImage</a></pre>
+    </div>
   </body>
 </html>
 

@google-oss-bot
Copy link
Contributor

1 Warning
⚠️ Did you forget to add a changelog entry? (Add the 'no-changelog' label to the PR to silence this warning.)

Generated by 🚫 Danger

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @davidmotson, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces image editing capabilities to the Firebase AI Imagen model, allowing developers to perform inpainting and outpainting operations. It includes new configuration options and request construction logic to support these features, as well as a utility function for converting Bitmap objects to ImagenInlineImage.

Highlights

  • Imagen Editing Functionality: Introduces the ability to edit images using inpainting and outpainting techniques via the editImage function in ImagenModel.kt.
  • New Configuration Options: Adds ImagenEditingConfig to configure image editing parameters such as edit mode, mask, and mask dilation.
  • Request Construction: Modifies the request construction logic to handle both image generation and editing requests, including the use of reference images and masks.
  • Bitmap Conversion: Adds a utility function to convert Bitmap objects to ImagenInlineImage for easier integration with existing Android code.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The code changes introduce new image editing options, including inpainting and outpainting, by adding new classes and modifying existing ones to support these features. The changes include new data classes for edit modes and configurations, as well as modifications to the request construction logic to handle image editing requests.

Comment on lines +64 to +67
public fun imagenEditingConfig(init: ImagenEditingConfig.Builder.() -> Unit): ImagenEditingConfig {
val builder = ImagenEditingConfig.builder()
builder.init()
return builder.build()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Consider adding a default value for maskDilation and editSteps in the ImagenEditingConfig constructor to avoid having to use nullable types. This would simplify the usage of the class and reduce the risk of null pointer exceptions.

Suggested change
public fun imagenEditingConfig(init: ImagenEditingConfig.Builder.() -> Unit): ImagenEditingConfig {
val builder = ImagenEditingConfig.builder()
builder.init()
return builder.build()
public class ImagenEditingConfig(
public val image: ImagenInlineImage,
public val editMode: ImagenEditMode,
public val mask: ImagenInlineImage? = null,
public val maskDilation: Double = 0.0,
public val editSteps: Int = 0,
)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bad idea, the server has default values that should be prefered over these, especially 0 edit steps would likely cause issues.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jun 24, 2025

Copy link
Contributor

github-actions bot commented Jun 24, 2025

Test Results

 24 files   -  1 034   24 suites   - 1 034   44s ⏱️ - 35m 15s
102 tests  -  5 883  102 ✅  -  5 861  0 💤  - 22  0 ❌ ±0 
204 runs   - 11 829  204 ✅  - 11 785  0 💤  - 44  0 ❌ ±0 

Results for commit e710498. ± Comparison against base commit e4955d9.

This pull request removes 5883 tests.
com.google.android.datatransport.cct.CctBackendFactoryTest ‑ create_returnCCTBackend_WhenBackendNameIsCCT
com.google.android.datatransport.cct.CctDestinationTest ‑ cctDestination_shouldOnlySupportProtoAndJson
com.google.android.datatransport.cct.CctDestinationTest ‑ cctDestination_shouldSupportProtoAndJson
com.google.android.datatransport.cct.CctTransportBackendTest ‑ decorate_whenOffline_shouldProperlyPopulateNetworkInfo
com.google.android.datatransport.cct.CctTransportBackendTest ‑ decorate_whenOnline_shouldProperlyPopulateNetworkInfo
com.google.android.datatransport.cct.CctTransportBackendTest ‑ schedule_shouldAddCookieOnPseudonymousIds
com.google.android.datatransport.cct.CctTransportBackendTest ‑ schedule_shouldDropCookieOnMixedPseudonymousIds
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_CompressedResponseIsUncompressed
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_whenBackendRedirectsMoreThan5Times_shouldOnlyRedirect4Times
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_whenBackendRedirects_shouldCorrectlyFollowTheRedirectViaPost
…

♻️ This comment has been updated with latest results.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-ai:
error: Added method com.google.firebase.ai.ImagenModel.editImage(String,com.google.firebase.ai.type.ImagenEditingConfig,kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>) [AddedMethod]
error: Added class com.google.firebase.ai.type.ImagenEditMode [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenEditingConfig [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenEditingConfigKt [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenInlineImageKt [AddedClass]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jun 24, 2025

Size Report 1

Affected Products

  • firebase-ai

    TypeBase (8b33282)Merge (a71bd1f)Diff
    aar829 kB873 kB+43.7 kB (+5.3%)
    apk (aggressive)1.56 MB1.58 MB+19.1 kB (+1.2%)
    apk (release)9.53 MB9.56 MB+30.8 kB (+0.3%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/t3raTYTIHl.html

val storageUri: String?,
val negativePrompt: String?,
val aspectRatio: String?,
val safetySetting: String?,
val personGeneration: String?,
val addWatermark: Boolean?,
val imageOutputOptions: ImagenImageFormat.Internal?,
val editMode: String?,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be ImagenEditMode instead of String?

@@ -0,0 +1,68 @@
package com.google.firebase.ai.type
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(I'm not sure what the "same" here is referring to)

}

internal fun toInternal(): Internal {
return Internal(baseSteps = editSteps)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could the difference in name cause issues with error messages returned by the server? See shortn/_sPJ9lr7YkR

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, it could, but maybe users could figure it out? or we could include it in the documentation?

I can rename it if you think thats the best solution, but I'd prefer a more descriptive name.

@PublicPreviewAPI
public fun Bitmap.toImagenImage(): ImagenInlineImage {
val byteArrayOutputStream = ByteArrayOutputStream()
this.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously we decided to go with JPEG for these conversions, see

Any reason to go with PNG in this scenario?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For image editing like this, I figured the lossless format would make a better default.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can replace it with the 80% jpeg, or we could change it to PNG across the board.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's go with JPEG for consistency. That being said, it's absolutely true that we need to provide better interfaces to allow devs to pass the raw bytes (and/or file descriptors) for better compatibility

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-ai:
error: Added method com.google.firebase.ai.ImagenModel.editImage(String,com.google.firebase.ai.type.ImagenEditingConfig,kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>) [AddedMethod]
error: Added class com.google.firebase.ai.type.ImagenEditMode [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenEditingConfig [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenEditingConfigKt [AddedClass]
error: Added class com.google.firebase.ai.type.ImagenInlineImageKt [AddedClass]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants