Memperluas konten gambar menggunakan perluasan dengan Imagen
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan cara menggunakan outpainting menggunakan Imagen untuk
memperluas konten gambar di luar batas aslinya
menggunakan SDK Firebase AI Logic.
Perluasan gambar adalah jenis pengeditan berbasis mask. Masker adalah overlay digital yang menentukan area spesifik yang ingin Anda edit.
Cara kerjanya: Anda memberikan gambar asli dan
gambar yang sesuai dengan mask — baik yang dibuat secara otomatis maupun yang Anda berikan — yang
menentukan mask area baru yang diperluas. Anda juga dapat secara opsional memberikan perintah teks yang menjelaskan apa yang Anda inginkan di area yang diluaskan, atau model dapat secara cerdas memutuskan apa yang akan melanjutkan adegan yang ada secara logis. Model
membuat konten baru dan mengisi area yang tertutup.
Misalnya, Anda dapat mengubah rasio aspek gambar atau menambahkan konteks latar belakang.
Hanya tersedia saat menggunakan Vertex AI Gemini API sebagai
penyedia API Anda.
Jika belum, selesaikan
panduan memulai, yang
menjelaskan cara menyiapkan project Firebase, menghubungkan aplikasi ke Firebase,
menambahkan SDK, menginisialisasi layanan backend untuk penyedia API yang Anda pilih, dan
membuat instance ImagenModel.
Model yang mendukung kemampuan ini
Imagen menawarkan pengeditan gambar melalui model capability:
imagen-3.0-capability-001
Perhatikan bahwa untuk model Imagen, lokasi globaltidak didukung.
Memperluas konten gambar
Sebelum mencoba contoh ini, selesaikan bagian
Sebelum memulai dari panduan ini
untuk menyiapkan project dan aplikasi Anda.
Contoh berikut menunjukkan cara memperluas gambar di luar batas aslinya
— menggunakan mask yang ditentukan dalam gambar yang Anda berikan.
Anda memberikan gambar asli, perintah teks, dan gambar yang diberi mask. Perhatikan
hal berikut tentang gambar asli dan gambar yang disamarkan:
Gambar yang ditutupi harus memiliki dimensi piksel dari ukuran target gambar akhir yang diisi.
Gambar asli harus menyertakan padding tambahan agar sesuai dengan dimensi piksel gambar yang ditutupi.
Memberikan perintah teks bersifat opsional jika Anda ingin model secara cerdas
memutuskan apa yang secara logis akan melanjutkan adegan yang ada. Jika Anda menginginkan konten tertentu di area yang diperluas, Anda harus menentukannya dalam perintah teks.
Swift
Pengeditan gambar dengan model Imagen tidak didukung untuk Swift. Periksa kembali nanti tahun ini.
Kotlin
Untuk memperluas gambar, gunakan
editImage()
dan tetapkan konfigurasi pengeditan untuk menggunakan ImagenEditMode.OUTPAINT.
Perhatikan bahwa Anda dapat menggunakan
outpaintImage()
alih-alih editImage(), dan Anda tidak perlu menentukan mode pengeditan.
Untuk memperluas gambar, gunakan
editImage()
dan tetapkan konfigurasi pengeditan untuk menggunakan ImagenEditMode.OUTPAINT.
Perhatikan bahwa Anda dapat menggunakan
outpaintImage()
alih-alih editImage(), dan Anda tidak perlu menentukan mode pengeditan.
Pengeditan gambar dengan model Imagen tidak didukung untuk Unity. Periksa kembali nanti tahun ini.
Praktik terbaik dan batasan
Sebaiknya perluas mask saat mengedit gambar. Hal ini dapat membantu memperhalus batas hasil edit dan membuatnya tampak lebih meyakinkan. Umumnya, nilai
pelebaran 1% atau 2% direkomendasikan (0.01 atau 0.02).
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-10 UTC."],[],[],null,["\u003cbr /\u003e\n\n\n| **Preview** : Using the Firebase AI Logic SDKs to access Imagen models is a feature that's in Preview, which means that it isn't subject to any SLA or deprecation policy and could change in backwards-incompatible ways.\n|\n| Editing with Imagen is only supported if you're using the\n| Vertex AI Gemini API. It's also currently only supported for\n| Android and Flutter apps. Support for other platforms is coming later in the\n| year.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nThis page describes how to use *outpainting* using Imagen to\n**expand the content of an image beyond its original borders**\nusing the Firebase AI Logic SDKs.\n\nOutpainting is a type of *mask-based editing* . A *mask* is a digital overlay\ndefining the specific area you want to edit.\n\n\n**How it works**: You provide an original image and a\ncorresponding masked image --- either auto-generated or provided by you --- that\ndefines a mask of the new, expanded area. You can also optionally provide a\ntext prompt describing what you want in the expanded area, or the model can\nintelligently decide what will logically continue the existing scene. The\nmodel generates the new content and fills in the masked area.\n\n\nFor example, you can change an image's aspect ratio or add more background\ncontext.\n\n\u003cbr /\u003e\n\n[arrow_downward Jump to code](#expand-image)\n\nBefore you begin\n\n\n|----------------------------------------------------------------------------|\n| *Only available when using the Vertex AI Gemini API as your API provider.* |\n\n\nIf you haven't already, complete the\n[getting started guide](/docs/ai-logic/get-started), which\ndescribes how to set up your Firebase project, connect your app to Firebase,\nadd the SDK, initialize the backend service for your chosen API provider, and\ncreate an `ImagenModel` instance.\n| **This guide assumes you're using the latest\n| Firebase AI Logic SDKs.** If you're still using the \"Vertex AI in Firebase\" SDKs, see the [migration guide](/docs/ai-logic/migrate-to-latest-sdk).\n\nModels that support this capability\n\n\nImagen offers image editing through its `capability`\nmodel:\n\n- `imagen-3.0-capability-001`\n\n\nNote that for Imagen models, the `global` location is\n***not*** supported.\n\n\u003cbr /\u003e\n\nExpand content of an image\n\n\n|---------------------------------------------------------------------------------------------------------------------------------------|\n| *Before trying this sample, complete the [Before you begin](#before-you-begin) section of this guide to set up your project and app.* |\n\n\u003cbr /\u003e\n\nThe following sample shows how to expand an image beyond its original borders\n--- using a mask defined in an image that you provide.\nYou provide the original image, a text prompt, and the masked image. Note the\nfollowing about the original and masked image:\n\n- The masked image must have the pixel dimensions of the targeted size of the\n final outpainted image.\n\n- The original image must include additional padding to match the pixel\n dimensions of the masked image.\n\nProviding a text prompt is optional if you want the model to intelligently\ndecide what will logically continue the existing scene. If you want specific\ncontent within the expanded area, you need to specify that in a text prompt. \n\nSwift\n\nImage editing with Imagen models isn't supported for Swift. Check back later this year!\n\nKotlin\n\nTo expand an image, use\n[`editImage()`](/docs/reference/kotlin/com/google/firebase/ai/ImagenModel#editImage(kotlin.collections.List,kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig))\nand set the editing config to use `ImagenEditMode.OUTPAINT`.\n\nNote that you can optionally use\n[`outpaintImage()`](/docs/reference/kotlin/com/google/firebase/ai/ImagenModel#outpaintImage(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.Dimensions,com.google.firebase.ai.type.ImagenImagePlacement,kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig))\ninstead of `editImage()`, and you don't need to specify the editing mode.\n| **Note:** The SDK provides a helper function [`generateMaskAndPadForOutpainting()`](https://firebase.google.com/docs/reference/kotlin/com/google/firebase/ai/type/ImagenMaskReference) to generate a masked image with your specified dimensions and the original image centered within the expanded area.\n\nCheck out the\n[quickstart for sample code for outpainting](https://github.com/firebase/quickstart-android/blob/master/firebase-ai/app/src/main/java/com/google/firebase/quickstart/ai/feature/media/imagen/ImagenViewModel.kt).\n\n\u003cbr /\u003e\n\nJava\n\nTo expand an image, use\n[`editImage()`](/docs/reference/android/com/google/firebase/ai/ImagenModel#editImage(kotlin.collections.List,kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig))\nand set the editing config to use `ImagenEditMode.OUTPAINT`.\n\nNote that you can optionally use\n[`outpaintImage()`](/docs/reference/android/com/google/firebase/ai/ImagenModel#outpaintImage(com.google.firebase.ai.type.ImagenInlineImage,com.google.firebase.ai.type.Dimensions,com.google.firebase.ai.type.ImagenImagePlacement,kotlin.String,com.google.firebase.ai.type.ImagenEditingConfig))\ninstead of `editImage()`, and you don't need to specify the editing mode.\n| **Note:** The SDK provides a helper function [`generateMaskAndPadForOutpainting()`](https://firebase.google.com/docs/reference/android/com/google/firebase/ai/type/ImagenMaskReference) to generate a masked image with your specified dimensions and the original image centered within the expanded area.\n\nCheck out the\n[quickstart for sample code for outpainting](https://github.com/firebase/quickstart-android/blob/master/firebase-ai/app/src/main/java/com/google/firebase/quickstart/ai/feature/media/imagen/ImagenViewModel.kt).\n\n\u003cbr /\u003e\n\nWeb\n\nImage editing with Imagen models isn't supported for Web apps. Check back later this year!\n\nDart\n\nTo expand an image, use\n[`editImage()`](https://pub.dev/documentation/firebase_ai/latest/firebase_ai/ImagenModel/editImage.html)\nand set the editing config to use `ImagenEditMode.OUTPAINT`.\n\nCheck out the\n[quickstart for sample code for outpainting](https://github.com/firebase/flutterfire/blob/main/packages/firebase_ai/firebase_ai/example/lib/utils/image_utils.dart).\n\n\u003cbr /\u003e\n\nUnity\n\nImage editing with Imagen models isn't supported for Unity. Check back later this year!\n\nBest practices and limitations\n\n\nWe recommend dilating the mask when editing an image. This can help smooth\nthe borders of an edit and make it seem more convincing. Generally, a dilation\nvalue of 1% or 2% is recommended (`0.01` or `0.02`).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n[Give feedback\nabout your experience with Firebase AI Logic](/docs/ai-logic/feedback)\n\n\u003cbr /\u003e"]]