Z tego artykułu dowiesz się, jak używać rozszerzania obrazu za pomocą Imagen do rozszerzenia zawartości obrazu poza jego pierwotne granice za pomocą pakietów SDK Firebase AI Logic.
Rozszerzanie obrazu to rodzaj edycji opartej na maskach. Maska to cyfrowa nakładka określająca konkretny obszar, który chcesz edytować.
Jak to działa: przesyłasz oryginalny obraz i odpowiadający mu obraz z maską – wygenerowany automatycznie lub przez Ciebie – który określa maskę nowego, rozszerzonego obszaru. Opcjonalnie możesz też podać prompta tekstowego opisującego, co chcesz umieścić w rozszerzonym obszarze, albo model może inteligentnie zdecydować, co logicznie będzie kontynuować istniejącą scenę. Model generuje nowe treści i wypełnia zamaskowany obszar.
Możesz na przykład zmienić proporcje obrazu lub dodać więcej kontekstu tła.
Zanim zaczniesz
| Dostępne tylko wtedy, gdy jako dostawcę interfejsu API używasz Vertex AI Gemini API. |
Jeśli jeszcze tego nie zrobisz, zapoznaj się z
przewodnikiem dla początkujących, w którym
opisujemy, jak skonfigurować projekt Firebase, połączyć aplikację z Firebase, dodać pakiet SDK, zainicjować usługę backendu dla wybranego dostawcy interfejsu API i
utworzyć instancję ImagenModel.
Modele obsługujące tę funkcję
Imagen oferuje edycję obrazów za pomocą modelu capability:
imagen-3.0-capability-001
Pamiętaj, że w przypadku Imagen modeli lokalizacja global jest
nie obsługiwana.
Rozszerzanie zawartości obrazu
| Zanim wypróbujesz ten przykład, zapoznaj się z sekcją Zanim zaczniesz w tym przewodniku aby skonfigurować projekt i aplikację. |
Poniższy przykład pokazuje, jak rozszerzyć obraz poza jego pierwotne granice – za pomocą maski zdefiniowanej na obrazie, który przesyłasz. Przesyłasz oryginalny obraz, prompta tekstowego i obraz z maską. Pamiętaj o tych kwestiach dotyczących oryginalnego obrazu i obrazu z maską:
Obraz z maską musi mieć wymiary w pikselach odpowiadające docelowemu rozmiarowi końcowego rozszerzonego obrazu.
Oryginalny obraz musi zawierać dodatkowe dopełnienie, aby pasować do wymiarów w pikselach obrazu z maską.
Podanie prompta tekstowego jest opcjonalne, jeśli chcesz, aby model inteligentnie zdecydował, co logicznie będzie kontynuować istniejącą scenę. Jeśli chcesz, aby w rozszerzonym obszarze znalazły się konkretne treści, musisz je określić w prompcie tekstowym.
Swift
Edytowanie obrazów za pomocą modeli Imagen nie jest obsługiwane w przypadku języka Swift. Sprawdź ponownie w dalszej części tego roku.
Kotlin
Aby rozszerzyć obraz, użyj
editImage()
i ustaw konfigurację edycji na ImagenEditMode.OUTPAINT.
Zamiast editImage()możesz też opcjonalnie użyć
outpaintImage(), a tryb edycji nie musi być określony.
Przykładowy kod do rozszerzania obrazu znajdziesz w przewodniku dla początkujących.
Java
Aby rozszerzyć obraz, użyj
editImage()
i ustaw konfigurację edycji na ImagenEditMode.OUTPAINT.
Zamiast editImage()możesz też opcjonalnie użyć
outpaintImage(), a tryb edycji nie musi być określony.
Przykładowy kod do rozszerzania obrazu znajdziesz w przewodniku dla początkujących.
Web
Edytowanie obrazów za pomocą modeli Imagen nie jest obsługiwane w przypadku aplikacji internetowych. Sprawdź ponownie w dalszej części tego roku.
Dart
Aby rozszerzyć obraz, użyj
editImage()
i ustaw konfigurację edycji na ImagenEditMode.OUTPAINT.
Przykładowy kod do rozszerzania obrazu znajdziesz w przewodniku dla początkujących.
Unity
Edytowanie obrazów za pomocą modeli Imagen nie jest obsługiwane w przypadku Unity. Sprawdź ponownie w dalszej części tego roku.
Sprawdzone metody i ograniczenia
Podczas edytowania obrazu zalecamy rozszerzenie maski. Może to pomóc wygładzić
granice edycji i sprawić, że będzie ona bardziej przekonująca. Zwykle zalecana jest wartość rozszerzenia
wynosząca 1% lub 2% (0.01 lub 0.02).
Prześlij opinię o korzystaniu z Firebase AI Logic