Firebase SDK-তে Vertex AI আপনাকে Imagen 3 মডেলে অ্যাক্সেস দেয় ( Imagen API এর মাধ্যমে) যাতে আপনি একটি টেক্সট প্রম্পট থেকে ছবি তৈরি করতে পারেন। এই ক্ষমতা দিয়ে, আপনি এই ধরনের কাজ করতে পারেন:
- প্রাকৃতিক ভাষায় লেখা প্রম্পট থেকে ছবি তৈরি করুন
- বিস্তৃত বিন্যাস এবং শৈলীতে ছবি তৈরি করুন
- ছবিতে পাঠ্য রেন্ডার করুন
মনে রাখবেন যে Firebase-এ Vertex AI এখনও Imagen মডেলের জন্য উপলব্ধ সমস্ত বৈশিষ্ট্য সমর্থন করে না। এই পৃষ্ঠায় পরে সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য সম্পর্কে আরও জানুন।
শুধুমাত্র পাঠ্য ইনপুটের জন্য কোডে যান
আপনি শুরু করার আগে
যদি আপনি ইতিমধ্যেই না করে থাকেন তবে শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন৷ এর মধ্যে রয়েছে আপনার ফায়ারবেস প্রজেক্ট সেট আপ করা, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করা, SDK যোগ করা এবং Vertex AI পরিষেবা শুরু করা — এই সমস্ত প্রয়োজনীয় কাজগুলি হল Firebase SDK-তে Vertex AI ব্যবহার করে একটি Imagen মডেলের কাছে প্রম্পট অনুরোধ পাঠানোর আগে।
মনে রাখবেন ইমেজেন মডেল ব্যবহার করে ছবি তৈরি করতে:
নিশ্চিত করুন যে আপনি ন্যূনতম এই Firebase লাইব্রেরি সংস্করণগুলি ব্যবহার করছেন:
iOS+ : v11.9.1+ | Android : v16.2.0+ ( BoM : v33.10.0+) | ওয়েব : v11.4.1+ | ফ্লটার : v1.4.0+ (BoM: v3.8.0+)একটি
ImagenModel
শুরু করুন (একটিGenerativeModel
নয় )generateImages()
(generateContent()
বাgenerateContentStream()
) না করতে একটি কলে আপনার প্রম্পট পাঠান
একটি ImagenModel
এর এই সূচনা এবং generateImages()
এর ব্যবহার এই পৃষ্ঠার উদাহরণগুলিতে দেখানো হয়েছে।
মডেল যে এই ক্ষমতা সমর্থন করে
ইমেজ জেনারেশন ইমেজেন 3 মডেল দ্বারা সমর্থিত। Gemini 2.0 মডেলের দ্বারা ইমেজ তৈরির জন্য সমর্থন শীঘ্রই আসছে।
শুধুমাত্র পাঠ্য ইনপুট থেকে ছবি তৈরি করুন
আপনি একটি ইমেজেন মডেলকে টেক্সট সহ প্রম্পট করে ছবি তৈরি করতে বলতে পারেন। আপনি একটি ছবি বা একাধিক ছবি তৈরি করতে পারেন।
শুধুমাত্র পাঠ্য ইনপুট থেকে একটি চিত্র তৈরি করুন
এই নমুনা চেষ্টা করার আগে নিশ্চিত করুন যে আপনি এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করেছেন।
আপনি একটি ইমেজেন মডেলকে পাঠ্য সহ প্রম্পট করে একটি একক চিত্র তৈরি করতে বলতে পারেন।
// 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()
}
// 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());
আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি মডেল এবং ঐচ্ছিকভাবে একটি অবস্থান কীভাবে চয়ন করবেন তা শিখুন।
শুধুমাত্র পাঠ্য ইনপুট থেকে একাধিক ছবি তৈরি করুন
এই নমুনা চেষ্টা করার আগে নিশ্চিত করুন যে আপনি এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করেছেন।
ডিফল্টরূপে, Imagen 3 মডেল প্রতি অনুরোধে শুধুমাত্র একটি ছবি তৈরি করে। যাইহোক, আপনি মডেল ইনিশিয়ালাইজেশনের সময় একটি generationConfig
প্রদান করে প্রতি অনুরোধে একাধিক ছবি তৈরি করতে একটি ইমেজেন মডেলকে বলতে পারেন।
// 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
}
}
// 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());
আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি মডেল এবং ঐচ্ছিকভাবে একটি অবস্থান কীভাবে চয়ন করবেন তা শিখুন।
সমর্থিত বৈশিষ্ট্য এবং প্রয়োজনীয়তা
ইমেজেন 3 মডেলগুলি ইমেজ তৈরির সাথে সম্পর্কিত অনেক বৈশিষ্ট্য অফার করে। Firebase-এ Vertex AI সহ মডেলগুলি ব্যবহার করার সময় কী সমর্থিত তা এই বিভাগটি বর্ণনা করে।
সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য
Firebase-এ Vertex AI Imagen 3 মডেলের এই বৈশিষ্ট্যগুলিকে সমর্থন করে।
মানুষ এবং মুখ তৈরি করা হচ্ছে (প্রদত্ত যে আপনার ফায়ারবেস প্রকল্পের Google Cloud থেকে অনুমোদন রয়েছে)
জেনারেট করা ইমেজের মধ্যে টেক্সট তৈরি করা হচ্ছে
জেনারেট করা ছবিতে একটি ওয়াটারমার্ক যোগ করা হচ্ছে
ইমেজ জেনারেশন প্যারামিটার কনফিগার করা, যেমন জেনারেট করা ছবির সংখ্যা, আকৃতির অনুপাত এবং ওয়াটারমার্কিং
নিরাপত্তা সেটিংস কনফিগার করা হচ্ছে
Firebase-এ Vertex 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টি ছবি |
সমর্থিত আউটপুট ইমেজ রেজোলিউশন (পিক্সেল) |
|
|
আপনি আর কি করতে পারেন?
- অননুমোদিত ক্লায়েন্টদের দ্বারা অপব্যবহার থেকে আপনার অ্যাপে ব্যবহার করা APIগুলিকে রক্ষা করার জন্য Firebase App Check সেট আপ করা সহ উত্পাদনের জন্য প্রস্তুতির বিষয়ে চিন্তা করা শুরু করুন৷ এছাড়াও, উত্পাদন চেকলিস্ট পর্যালোচনা করতে ভুলবেন না।
বিষয়বস্তু তৈরি নিয়ন্ত্রণ কিভাবে শিখুন
- সর্বোত্তম অনুশীলন, কৌশল এবং উদাহরণ প্রম্পট সহ প্রম্পট ডিজাইন বুঝুন ।
- ইমেজেন মডেল প্যারামিটার কনফিগার করুন যেমন আকৃতির অনুপাত, ব্যক্তি প্রজন্ম এবং ওয়াটারমার্কিং।
- ক্ষতিকারক বলে বিবেচিত প্রতিক্রিয়া পাওয়ার সম্ভাবনা সামঞ্জস্য করতে নিরাপত্তা সেটিংস ব্যবহার করুন ।
সমর্থিত মডেল সম্পর্কে আরও জানুন
বিভিন্ন ব্যবহারের ক্ষেত্রে উপলব্ধ মডেল এবং তাদের কোটা এবং মূল্য সম্পর্কে জানুন।Firebase-এ Vertex AI-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন