Firebase AI লজিক SDK গুলি আপনাকে Imagen 3 মডেলগুলিতে অ্যাক্সেস দেয় ( Imagen API এর মাধ্যমে) যাতে আপনি একটি টেক্সট প্রম্পট থেকে ছবি তৈরি করতে পারেন। এই ক্ষমতা দিয়ে, আপনি এই ধরনের কাজ করতে পারেন:
- প্রাকৃতিক ভাষায় লেখা প্রম্পট থেকে ছবি তৈরি করুন
- বিস্তৃত বিন্যাস এবং শৈলীতে ছবি তৈরি করুন
- ছবিতে পাঠ্য রেন্ডার করুন
মনে রাখবেন Firebase AI লজিক এখনও Imagen মডেলের জন্য উপলব্ধ সমস্ত বৈশিষ্ট্য সমর্থন করে না। এই পৃষ্ঠায় পরে সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য সম্পর্কে আরও জানুন।
শুধুমাত্র পাঠ্য ইনপুটের জন্য কোডে যান
আপনি শুরু করার আগে
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী এবং কোড দেখতে আপনার Gemini API প্রদানকারীতে ক্লিক করুন। |
যদি আপনি ইতিমধ্যেই না করে থাকেন, শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন, যা বর্ণনা করে যে কীভাবে আপনার Firebase প্রকল্প সেট আপ করবেন, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করবেন, SDK যোগ করবেন, আপনার নির্বাচিত API প্রদানকারীর জন্য ব্যাকএন্ড পরিষেবা শুরু করবেন এবং একটি ImagenModel
উদাহরণ তৈরি করবেন।
মডেল যে এই ক্ষমতা সমর্থন করে
ইমেজ জেনারেশন ইমেজেন 3 মডেল দ্বারা সমর্থিত।
মনে রাখবেন যে Firebase AI লজিক জেমিনি মডেলগুলির দ্বারা ইমেজ তৈরিকেও সমর্থন করে—ডকুমেন্টেশন শীঘ্রই আসছে!
শুধুমাত্র পাঠ্য ইনপুট থেকে ছবি তৈরি করুন
আপনি একটি ইমেজেন মডেলকে টেক্সট সহ প্রম্পট করে ছবি তৈরি করতে বলতে পারেন। আপনি একটি ছবি বা একাধিক ছবি তৈরি করতে পারেন।
শুধুমাত্র পাঠ্য ইনপুট থেকে একটি চিত্র তৈরি করুন
এই নমুনাটি চেষ্টা করার আগে, আপনার প্রকল্প এবং অ্যাপ সেট আপ করতে এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করুন। সেই বিভাগে, আপনি আপনার নির্বাচিত Gemini API প্রদানকারীর জন্য একটি বোতামে ক্লিক করবেন যাতে আপনি এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী দেখতে পান । |
আপনি একটি ইমেজেন মডেলকে পাঠ্য সহ প্রম্পট করে একটি একক চিত্র তৈরি করতে বলতে পারেন।
একটি ImagenModel
ইন্সট্যান্স তৈরি করা নিশ্চিত করুন এবং generateImages
কল করুন।
সুইফট
import FirebaseAI
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create an `ImagenModel` instance with a model that supports your use case
let model = ai.imagenModel(modelName: "imagen-3.0-generate-002")
// Provide an image generation prompt
let prompt = "An astronaut riding a horse"
// To generate an image, call `generateImages` with the text prompt
let response = try await model.generateImages(prompt: prompt)
// Handle the generated image
guard let image = response.images.first else {
fatalError("No image in the response.")
}
let uiImage = UIImage(data: image.data)
Kotlin
// Using this SDK to access Imagen models is a Preview release and requires opt-in
@OptIn(PublicPreviewAPI::class)
suspend fun generateImage() {
// Initialize the Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
val imagenModel = Firebase.ai(backend = GenerativeBackend.googleAI()).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 Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
ImagenModel imagenModel = FirebaseAI.getInstance(GenerativeBackend.googleAI()).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());
Web
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create an `ImagenModel` instance with an Imagen 3 model that supports your use case
const imagenModel = getImagenModel(ai, { model: "imagen-3.0-generate-002" });
// Provide an image generation prompt
const prompt = "An astronaut riding a horse.";
// To generate an image, call `generateImages` with the text prompt
const response = await imagenModel.generateImages(prompt)
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if (response.filteredReason) {
console.log(response.filteredReason);
}
if (response.images.length == 0) {
throw new Error("No images in the response.")
}
const image = response.images[0];
Dart
import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
// Initialize FirebaseApp
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
final model =
FirebaseAI.googleAI().imagenModel(model: 'imagen-3.0-generate-002');
// Provide an image generation prompt
const prompt = 'An astronaut riding a horse.';
// To generate an image, call `generateImages` with the text prompt
final response = await model.generateImages(prompt);
if (response.images.isNotEmpty) {
final image = response.images[0];
// Process the image
} else {
// Handle the case where no images were generated
print('Error: No images were generated.');
}
ঐক্য
ইমেজেন ব্যবহার করা এখনও ইউনিটির জন্য সমর্থিত নয়, তবে শীঘ্রই আবার চেক করুন!
আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি মডেল কীভাবে চয়ন করবেন তা শিখুন।
শুধুমাত্র পাঠ্য ইনপুট থেকে একাধিক ছবি তৈরি করুন
এই নমুনাটি চেষ্টা করার আগে, আপনার প্রকল্প এবং অ্যাপ সেট আপ করতে এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করুন। সেই বিভাগে, আপনি আপনার নির্বাচিত Gemini API প্রদানকারীর জন্য একটি বোতামে ক্লিক করবেন যাতে আপনি এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী দেখতে পান । |
ডিফল্টরূপে, Imagen 3 মডেল প্রতি অনুরোধে শুধুমাত্র একটি ছবি তৈরি করে। যাইহোক, আপনি ImagenModel
ইনস্ট্যান্স তৈরি করার সময় একটি ImagenGenerationConfig
প্রদান করে অনুরোধ প্রতি একাধিক ছবি তৈরি করতে একটি Imagen মডেলকে বলতে পারেন।
একটি ImagenModel
ইন্সট্যান্স তৈরি করা নিশ্চিত করুন এবং generateImages
কল করুন।
সুইফট
import FirebaseAI
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create an `ImagenModel` instance with a model that supports your use case
let model = ai.imagenModel(
modelName: "imagen-3.0-generate-002",
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/ai-logic/model-parameters
generationConfig: ImagenGenerationConfig(numberOfImages: 4)
)
// Provide an image generation prompt
let prompt = "An astronaut riding a horse"
// To generate images, call `generateImages` with the text prompt
let response = try await model.generateImages(prompt: prompt)
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if let filteredReason = response.filteredReason {
print(filteredReason)
}
// Handle the generated images
let uiImages = response.images.compactMap { UIImage(data: $0.data) }
Kotlin
// Using this SDK to access Imagen models is a Preview release and requires opt-in
@OptIn(PublicPreviewAPI::class)
suspend fun generateImage() {
// Initialize the Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
val imagenModel = Firebase.ai(backend = GenerativeBackend.googleAI()).imagenModel(
modelName = "imagen-3.0-generate-002",
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/ai-logic/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/ai-logic/model-parameters
ImagenGenerationConfig imagenGenerationConfig = new ImagenGenerationConfig.Builder()
.setNumberOfImages(4)
.build();
// Initialize the Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
ImagenModel imagenModel = FirebaseAI.getInstance(GenerativeBackend.googleAI()).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());
Web
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create an `ImagenModel` instance with an Imagen 3 model that supports your use case
const imagenModel = getImagenModel(
ai,
{
model: "imagen-3.0-generate-002",
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/ai-logic/model-parameters
generationConfig: {
numberOfImages: 4
}
}
);
// Provide an image generation prompt
const prompt = "An astronaut riding a horse.";
// To generate images, call `generateImages` with the text prompt
const response = await imagenModel.generateImages(prompt)
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if (response.filteredReason) {
console.log(response.filteredReason);
}
if (response.images.length == 0) {
throw new Error("No images in the response.")
}
const images = response.images[0];
Dart
import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
// Initialize FirebaseApp
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create an `ImagenModel` instance with an Imagen model that supports your use case
final model =
FirebaseAI.googleAI().imagenModel(
model: 'imagen-3.0-generate-002',
// Configure the model to generate multiple images for each request
// See: https://firebase.google.com/docs/ai-logic/model-parameters
generationConfig: ImagenGenerationConfig(numberOfImages: 4),
);
// Provide an image generation prompt
const prompt = 'An astronaut riding a horse.';
// To generate images, call `generateImages` with the text prompt
final response = await model.generateImages(prompt);
// If fewer images were generated than were requested,
// then `filteredReason` will describe the reason they were filtered out
if (response.filteredReason != null) {
print(response.filteredReason);
}
if (response.images.isNotEmpty) {
final images = response.images;
for(var image in images) {
// Process the image
}
} else {
// Handle the case where no images were generated
print('Error: No images were generated.');
}
ঐক্য
ইমেজেন ব্যবহার করা এখনও ইউনিটির জন্য সমর্থিত নয়, তবে শীঘ্রই আবার চেক করুন!
আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি মডেল কীভাবে চয়ন করবেন তা শিখুন।
সমর্থিত বৈশিষ্ট্য এবং প্রয়োজনীয়তা
ইমেজেন 3 মডেলগুলি ইমেজ তৈরির সাথে সম্পর্কিত অনেক বৈশিষ্ট্য অফার করে। Firebase AI লজিকের সাথে মডেলগুলি ব্যবহার করার সময় কী সমর্থিত তা এই বিভাগটি বর্ণনা করে।
সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য
Firebase AI লজিক Imagen 3 মডেলের এই বৈশিষ্ট্যগুলিকে সমর্থন করে৷
মানুষ এবং মুখ তৈরি করা হচ্ছে (প্রদত্ত যে আপনার ফায়ারবেস প্রকল্পের Google Cloud থেকে অনুমোদন রয়েছে)
জেনারেট করা ইমেজের মধ্যে টেক্সট তৈরি করা হচ্ছে
জেনারেট করা ছবিতে একটি ওয়াটারমার্ক যোগ করা হচ্ছে
ইমেজ জেনারেশন প্যারামিটার কনফিগার করা, যেমন জেনারেট করা ছবির সংখ্যা, আকৃতির অনুপাত এবং ওয়াটারমার্কিং
নিরাপত্তা সেটিংস কনফিগার করা হচ্ছে
Firebase AI লজিক Imagen 3 মডেলের এই উন্নত বৈশিষ্ট্যগুলিকে সমর্থন করে না ।
মনে রাখবেন যে এই বৈশিষ্ট্যগুলির বেশিরভাগই ইমেজেন মডেল সার্ভার-সাইড ব্যবহার করার সময়ও ব্যবহারকারীদের একটি অনুমোদিত তালিকায় থাকা প্রয়োজন।
ইমেজ এডিটিং বা ম্যানিপুলেশন ফিচার, যার মধ্যে আছে আপস্কেলিং ইমেজ
মডেলের অনুরোধে ছবি সহ (যেমন কয়েক শট শেখার জন্য)
SDK ব্যবহার করে ডিজিটাল ওয়াটারমার্ক যাচাই করা হচ্ছে
আপনি যদি একটি ছবিতে একটি জলছাপ আছে কিনা তা যাচাই করতে চান, আপনি তার মিডিয়া ট্যাব ব্যবহার করে Vertex AI স্টুডিওতে ছবিটি আপলোড করতে পারেন।পাঠ্য থেকে "লাইভ চিত্র" তৈরি করা হচ্ছে (MP4 প্রজন্ম)
একটি পূর্বনির্ধারিত শৈলী ব্যবহার করে ছবি তৈরি করা হচ্ছে
includeSafetyAttributes
সক্ষম করা, যার মানে হলsafetyAttributes.categories
এবংsafetyAttributes.scores
ফেরত দেওয়া যাবে নাপ্রম্পট এনহান্সমেন্ট অক্ষম করা (
enhancePrompt
প্যারামিটার), যার অর্থ হল একটি এলএলএম-ভিত্তিক প্রম্পট পুনর্লিখন টুল সর্বদা স্বয়ংক্রিয়ভাবে প্রদত্ত প্রম্পটে আরও বিশদ যোগ করবে যাতে উচ্চ মানের ছবিগুলি সরবরাহ করা যায় যা প্রদত্ত প্রম্পটকে আরও ভালভাবে প্রতিফলিত করে।মডেল (
storageUri
প্যারামিটার) থেকে প্রতিক্রিয়ার অংশ হিসাবে সরাসরি Google Cloud Storage একটি জেনারেট করা ছবি লেখা। পরিবর্তে, প্রতিক্রিয়ায় চিত্রগুলি সর্বদা বেস 64-এনকোডেড চিত্র বাইট হিসাবে ফেরত দেওয়া হয়।
আপনি যদি Cloud Storage এ একটি জেনারেটেড ইমেজ আপলোড করতে চান, আপনি Cloud Storage for Firebase ব্যবহার করতে পারেন।
স্পেসিফিকেশন এবং সীমাবদ্ধতা
সীমা (প্রতি অনুরোধ) | চিত্র 3 | ছবি 3 দ্রুত |
---|---|---|
ইনপুট টোকেনের সর্বোচ্চ সংখ্যা | 480 টোকেন | 480 টোকেন |
আউটপুট ইমেজ সর্বোচ্চ সংখ্যা | 4টি ছবি | 4টি ছবি |
সমর্থিত আউটপুট ইমেজ রেজোলিউশন (পিক্সেল) |
|
|
আপনি আর কি করতে পারেন?
- উত্পাদনের জন্য প্রস্তুতির বিষয়ে চিন্তা করা শুরু করুন ( উৎপাদন চেকলিস্ট দেখুন), সহ:
- Gemini API কে অননুমোদিত ক্লায়েন্টদের অপব্যবহার থেকে রক্ষা করতে Firebase App Check সেট আপ করা হচ্ছে ।
- একটি নতুন অ্যাপ সংস্করণ প্রকাশ না করেই আপনার অ্যাপে (মডেলের নামের মতো) মান আপডেট করতে Firebase Remote Config একীভূত করা ।
বিষয়বস্তু তৈরি নিয়ন্ত্রণ কিভাবে শিখুন
- সর্বোত্তম অনুশীলন, কৌশল এবং উদাহরণ প্রম্পট সহ প্রম্পট ডিজাইন বুঝুন ।
- ইমেজেন মডেল প্যারামিটার কনফিগার করুন যেমন আকৃতির অনুপাত, ব্যক্তি প্রজন্ম এবং ওয়াটারমার্কিং।
- ক্ষতিকারক বলে বিবেচিত প্রতিক্রিয়া পাওয়ার সম্ভাবনা সামঞ্জস্য করতে নিরাপত্তা সেটিংস ব্যবহার করুন ।
সমর্থিত মডেল সম্পর্কে আরও জানুন
বিভিন্ন ব্যবহারের ক্ষেত্রে উপলব্ধ মডেল এবং তাদের কোটা এবং মূল্য সম্পর্কে জানুন।Firebase AI লজিকের সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন