Vertex AI in Firebase SDK'ları, metin isteminden resim oluşturabilmeniz için Imagen 3 modellerine (Imagen API aracılığıyla) erişim sağlar. Bu özellik sayesinde şunları yapabilirsiniz:
- Doğal dilde yazılmış istemlerden resim oluşturma
- Çeşitli biçim ve stillerde resimler oluşturun
- Resimlerdeki metni oluşturma
Vertex AI in Firebase'ün henüz Imagen modellerinde kullanılabilen tüm özellikleri desteklemediğini unutmayın. Bu sayfanın ilerleyen bölümlerinde yer alan Desteklenen özellikler ve özellikler bölümünden daha fazla bilgi edinebilirsiniz.
Yalnızca metin girişi için koda atlama
Başlamadan önce
Henüz yapmadıysanız başlangıç kılavuzunu tamamlayın. Firebase projenizi oluşturma, uygulamanızı Firebase'e bağlama, SDK'yı ekleme ve Vertex AI hizmetini başlatma bu kapsamdadır. Vertex AI in Firebase SDK'larını kullanarak bir Imagen modeline istem isteği gönderebilmek için tüm bu görevleri tamamlamanız gerekir.
Imagen modellerini kullanarak resim oluşturmak için:
En az şu Firebase kitaplığı sürümlerini kullandığınızdan emin olun:
iOS+: v11.9.1+ | Android: v16.2.0+ (BoM: v33.10.0+) | Web: v11.4.1+ | Flutter: v1.4.0+ (BoM: v3.8.0+)ImagenModel
(GenerativeModel
değil) başlatmaİsteminizi
generateImages()
ile yaptığınız bir aramada gönderin (generateContent()
veyagenerateContentStream()
ile yaptığınız aramalarda değil)
ImagenModel
'ün bu şekilde başlatılması ve generateImages()
'un kullanımı bu sayfadaki örneklerde gösterilmektedir.
Bu özelliği destekleyen modeller
Resim oluşturma, Imagen 3 modelleri tarafından desteklenir. Gemini 2.0 modelleri tarafından resim oluşturma desteği yakında kullanıma sunulacaktır.
Yalnızca metin girişinden resim oluşturma
Imagen modelinden metin istemi vererek resim oluşturmasını isteyebilirsiniz. Tek bir resim veya birden fazla resim oluşturabilirsiniz.
Yalnızca metin içeren girişten bir resim oluşturma
Bu örneği denemeden önce bu kılavuzun Başlamadan önce bölümünü tamamladığınızdan emin olun.
Metin istemi göndererek Imagen modelinden tek bir resim oluşturmasını isteyebilirsiniz.
Kotlin
// Using Imagen with Vertex AI in Firebase is in public preview
// It requires opt-in to use the API
@OptIn(PublicPreviewAPI::class)
suspend fun generateImage() {
// Initialize the Vertex AI service and Imagen model
// Specify an Imagen 3 model that supports your use case
val imagenModel = Firebase.vertexAI.imagenModel("imagen-3.0-generate-002")
// Provide an image generation prompt
val prompt = "An astronaut riding a horse"
// To generate an image, call `generateImages` with the text prompt
val imageResponse = imagenModel.generateImages(prompt)
// Handle the generated image
val image = imageResponse.images.first()
val bitmapImage = image.asBitmap()
}
Java
// Initialize the Vertex AI service and Imagen model
// Specify an Imagen 3 model that supports your use case
ImagenModel imagenModel = FirebaseVertexAI.getInstance().imagenModel(
/* modelName */ "imagen-3.0-generate-002");
ImagenModelFutures model = ImagenModelFutures.from(imagenModel);
// Provide an image generation prompt
String prompt = "An astronaut riding a horse";
// To generate an image, call `generateImages` with the text prompt
Futures.addCallback(model.generateImages(prompt), new FutureCallback<ImagenGenerationResponse<ImagenInlineImage>>() {
@Override
public void onSuccess(ImagenGenerationResponse<ImagenInlineImage> result) {
if (result.getImages().isEmpty()) {
Log.d("TAG", "No images generated");
}
Bitmap bitmap = result.getImages().get(0).asBitmap();
// Use the bitmap to display the image in your UI
}
@Override
public void onFailure(Throwable t) {
// ...
}
}, Executors.newSingleThreadExecutor());
Kullanım alanınıza ve uygulamanıza uygun bir modeli ve isteğe bağlı olarak bir konum nasıl seçeceğinizi öğrenin.
Yalnızca metin içeren girişlerden birden fazla resim oluşturma
Bu örneği denemeden önce bu kılavuzun Başlamadan önce bölümünü tamamladığınızdan emin olun.
Varsayılan olarak Imagen 3 modelleri istek başına yalnızca bir resim oluşturur.
Ancak model başlatma sırasında bir generationConfig
sağlayarak Imagen modelinden istek başına birden fazla resim oluşturmasını isteyebilirsiniz.
Kotlin
// Using Imagen with Vertex AI in Firebase is in public preview
// It requires opt-in to use the API
@OptIn(PublicPreviewAPI::class)
suspend fun generateImage() {
// Initialize the Vertex AI service and Imagen model
// Specify an Imagen 3 model that supports your use case
val imagenModel = Firebase.vertexAI.imagenModel(
modelName = "imagen-3.0-generate-002",
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/vertex-ai/model-parameters
generationConfig = ImagenGenerationConfig(numberOfImages = 4)
)
// Provide an image generation prompt
val prompt = "An astronaut riding a horse"
// To generate images, call `generateImages` with the text prompt
val imageResponse = imagenModel.generateImages(prompt)
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if (imageResponse.filteredReason != null) {
Log.d(TAG, "FilteredReason: ${imageResponse.filteredReason}")
}
for (image in imageResponse.images) {
val bitmap = image.asBitmap()
// Use the bitmap to display the image in your UI
}
}
Java
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/vertex-ai/model-parameters
ImagenGenerationConfig imagenGenerationConfig = new ImagenGenerationConfig.Builder()
.setNumberOfImages(4)
.build();
// Initialize the Vertex AI service and Imagen model
// Specify an Imagen 3 model that supports your use case
ImagenModel imagenModel = FirebaseVertexAI.getInstance().imagenModel(
/* modelName */ "imagen-3.0-generate-002",
/* imageGenerationConfig */ imagenGenerationConfig);
ImagenModelFutures model = ImagenModelFutures.from(imagenModel);
// Provide an image generation prompt
String prompt = "An astronaut riding a horse";
// To generate images, call `generateImages` with the text prompt
Futures.addCallback(model.generateImages(prompt), new FutureCallback<ImagenGenerationResponse<ImagenInlineImage>>() {
@Override
public void onSuccess(ImagenGenerationResponse<ImagenInlineImage> result) {
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if (result.getFilteredReason() != null){
Log.d("TAG", "FilteredReason: " + result.getFilteredReason());
}
// Handle the generated images
List<ImagenInlineImage> images = result.getImages();
for (ImagenInlineImage image : images) {
Bitmap bitmap = image.asBitmap();
// Use the bitmap to display the image in your UI
}
}
@Override
public void onFailure(Throwable t) {
// ...
}
}, Executors.newSingleThreadExecutor());
Kullanım alanınıza ve uygulamanıza uygun bir modeli ve isteğe bağlı olarak bir konum nasıl seçeceğinizi öğrenin.
Desteklenen özellikler ve koşullar
Imagen 3 modelleri, resim oluşturmayla ilgili birçok özellik sunar. Bu bölümde, Vertex AI in Firebase ile modelleri kullanırken desteklenenler açıklanmaktadır.
Desteklenen özellikler ve özellikler
Vertex AI in Firebase, Imagen 3 modellerinin bu özelliklerini destekler.
Kişi ve yüz oluşturma (Firebase projenizin Google Cloud'den onay almış olması gerekir)
Oluşturulan resimlerde metin oluşturma
Oluşturulan resimlere filigran ekleme
Oluşturulan resim sayısı, en boy oranı ve filigran gibi resim oluşturma parametrelerini yapılandırma
Güvenlik ayarlarını yapılandırma
Vertex AI in Firebase, Imagen 3 modellerinin bu ileri seviye özelliklerini desteklemez.
Bu özelliklerin çoğunun, Imagen modellerini sunucu tarafında kullanırken bile onaylanmış bir kullanıcı listesinde yer almayı gerektirdiğini unutmayın.
Resim düzenleme veya değiştirme özellikleri (resimleri büyütme dahil)
Modele gönderilen isteğe resim ekleme (ör. az sayıda örnekle öğrenme için)
SDK'ları kullanarak dijital filigranları doğrulama
Bir görüntünün filigran içerdiğini doğrulamak istiyorsanız görüntüyü Medya sekmesini kullanarak Vertex AI Studio'ya yükleyebilirsiniz.Metinden "canlı resimler" oluşturma (MP4 oluşturma)
Önceden tanımlanmış bir stili kullanarak resim oluşturma
includeSafetyAttributes
etkinleştirildiğindesafetyAttributes.categories
vesafetyAttributes.scores
iade edilemez.İstem geliştirme'yi (
enhancePrompt
parametresi) devre dışı bırakmak. Bu durumda, LLM tabanlı bir istem yeniden yazma aracı, sağlanan istemi daha iyi yansıtan daha yüksek kaliteli resimler sunmak için her zaman sağlanan istemin üzerine otomatik olarak daha fazla ayrıntı ekler.Oluşturulan resmi, modelden gelen yanıtın (
storageUri
parametresi) bir parçası olarak doğrudan Google Cloud Storage içine yazma. Bunun yerine, resimler yanıtta her zaman base64 kodlu resim baytları olarak döndürülür.
Oluşturulan bir resmi Cloud Storage'a yüklemek istiyorsanız Cloud Storage for Firebase'ı kullanabilirsiniz.
Özellikler ve sınırlamalar
Sınırlar (istek başına) | Imagen 3 | Imagen 3 Fast |
---|---|---|
Maksimum giriş jetonu sayısı | 480 jeton | 480 jeton |
Maksimum çıkış resmi sayısı | 4 resim | 4 resim |
Desteklenen çıkış resim çözünürlükleri (piksel) |
|
|
Başka neler yapabilirsiniz?
- Uygulamanızda kullandığınız API'leri yetkisiz istemciler tarafından kötüye kullanıma karşı korumak için Firebase App Check ayarlarını yapmak da dahil olmak üzere üretime hazırlanmaya başlayın. Ayrıca üretim kontrol listesini de inceleyin.
İçerik oluşturmayı nasıl kontrol edeceğinizi öğrenin
- En iyi uygulamalar, stratejiler ve örnek istemler dahil olmak üzere istem tasarımını anlama
- En boy oranı, kişi oluşturma ve filigran gibi Imagen model parametrelerini yapılandırın.
- Zararlı olarak değerlendirilebilecek yanıtlar alma olasılığını ayarlamak için güvenlik ayarlarını kullanın.
Desteklenen modeller hakkında daha fazla bilgi
Çeşitli kullanım alanları için kullanılabilen modeller, kotaları ve fiyatlandırmaları hakkında bilgi edinin.Vertex AI in Firebase ile ilgili deneyiminiz hakkında geri bildirim verme