محتوای یک تصویر را با استفاده از نقاشی بیرونی با Imagen گسترش دهید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این صفحه نحوه استفاده از نقاشی بیرونی با استفاده از Imagen را برای گسترش محتوای تصویر فراتر از مرزهای اصلی آن با استفاده از Firebase AI Logic SDK توضیح میدهد.
Outpainting نوعی ویرایش مبتنی بر ماسک است. ماسک یک پوشش دیجیتالی است که ناحیه خاصی را که می خواهید ویرایش کنید، تعریف می کند.
چگونه کار میکند : شما یک تصویر اصلی و یک تصویر ماسکدار مربوطه را ارائه میدهید - که بهطور خودکار ایجاد شده یا توسط شما ارائه شده است - که ماسکی از ناحیه جدید و گسترده را مشخص میکند. همچنین میتوانید بهصورت اختیاری یک پیام متنی برای توصیف آنچه میخواهید در ناحیه گسترشیافته ارائه دهید، یا مدل میتواند به طور هوشمند تصمیم بگیرد که چه چیزی منطقاً صحنه موجود را ادامه میدهد. مدل محتوای جدید را تولید می کند و ناحیه ماسک شده را پر می کند.
برای مثال، میتوانید نسبت تصویر را تغییر دهید یا زمینه پسزمینه بیشتری اضافه کنید.
فقط در صورت استفاده از Vertex AI Gemini API به عنوان ارائهدهنده API در دسترس است.
اگر قبلاً این کار را نکردهاید، راهنمای شروع را تکمیل کنید، که نحوه راهاندازی پروژه Firebase را توضیح میدهد، برنامه خود را به Firebase متصل کنید، SDK را اضافه کنید، سرویس Backend را برای ارائهدهنده API انتخابی خود مقداردهی اولیه کنید و یک نمونه ImagenModel ایجاد کنید.
مدل هایی که از این قابلیت پشتیبانی می کنند
Imagen ویرایش تصویر را از طریق مدل capability خود ارائه می دهد:
imagen-3.0-capability-001
توجه داشته باشید که برای مدل های Imagen ، موقعیت global پشتیبانی نمی شود.
محتوای یک تصویر را گسترش دهید
قبل از امتحان این نمونه، بخش قبل از شروع این راهنما را تکمیل کنید تا پروژه و برنامه خود را راه اندازی کنید.
نمونه زیر نشان می دهد که چگونه می توان یک تصویر را فراتر از مرزهای اصلی آن گسترش داد - با استفاده از یک ماسک تعریف شده در تصویری که ارائه می کنید. شما تصویر اصلی، یک پیام متنی و تصویر ماسک شده را ارائه می دهید. در مورد تصویر اصلی و ماسک شده به نکات زیر توجه کنید:
تصویر پوشانده شده باید ابعاد پیکسلی اندازه هدف تصویر نهایی را داشته باشد.
تصویر اصلی باید دارای بالشتک اضافی باشد تا با ابعاد پیکسل تصویر پوشانده شده مطابقت داشته باشد.
اگر می خواهید مدل به طور هوشمندانه تصمیم بگیرد که چه چیزی به طور منطقی صحنه موجود را ادامه می دهد، ارائه یک پیام متنی اختیاری است. اگر محتوای خاصی را در ناحیه گسترش یافته می خواهید، باید آن را در یک درخواست متنی مشخص کنید.
سویفت
ویرایش تصویر با مدل های Imagen برای Swift پشتیبانی نمی شود. اواخر امسال دوباره بررسی کنید!
Kotlin
برای بزرگ کردن یک تصویر، از editImage() استفاده کنید و پیکربندی ویرایش را برای استفاده از ImagenEditMode.OUTPAINT تنظیم کنید. توجه داشته باشید که می توانید به صورت اختیاری از outpaintImage() به جای editImage() استفاده کنید و نیازی به تعیین حالت ویرایش ندارید.
برای بزرگ کردن یک تصویر، از editImage() استفاده کنید و پیکربندی ویرایش را برای استفاده از ImagenEditMode.OUTPAINT تنظیم کنید. توجه داشته باشید که می توانید به صورت اختیاری از outpaintImage() به جای editImage() استفاده کنید و نیازی به تعیین حالت ویرایش ندارید.
ویرایش تصویر با مدل های Imagen برای Unity پشتیبانی نمی شود. اواخر امسال دوباره بررسی کنید!
بهترین شیوه ها و محدودیت ها
توصیه می کنیم هنگام ویرایش تصویر، ماسک را گشاد کنید. این می تواند به صاف کردن مرزهای یک ویرایش کمک کند و آن را قانع کننده تر به نظر برساند. به طور کلی، مقدار اتساع 1٪ یا 2٪ توصیه می شود ( 0.01 یا 0.02 ).
تاریخ آخرین بهروزرسانی 2025-09-09 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-09-09 بهوقت ساعت هماهنگ جهانی."],[],[],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"]]