এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে Firebase AI Logic SDK ব্যবহার করে Imagen- এর কাস্টমাইজেশন সুবিধার মাধ্যমে একটি নির্দিষ্ট বিষয়ের উপর ভিত্তি করে ছবি সম্পাদনা বা তৈরি করা যায় ।
এটি যেভাবে কাজ করে : আপনি একটি টেক্সট প্রম্পট এবং অন্তত একটি রেফারেন্স ইমেজ প্রদান করেন, যেখানে একটি নির্দিষ্ট বিষয় (যেমন কোনো পণ্য, ব্যক্তি বা পোষা প্রাণী) দেখানো থাকে। মডেলটি এই ইনপুটগুলো ব্যবহার করে রেফারেন্স ইমেজগুলোতে থাকা নির্দিষ্ট বিষয়ের উপর ভিত্তি করে একটি নতুন ইমেজ তৈরি করে।
উদাহরণস্বরূপ, আপনি মডেলকে একটি শিশুর ছবিতে কার্টুন শৈলী প্রয়োগ করতে বা ছবিতে থাকা একটি সাইকেলের রঙ পরিবর্তন করতে বলতে পারেন।
শুরু করার আগে
| শুধুমাত্র তখনই উপলব্ধ যখন আপনার এপিআই প্রদানকারী হিসেবে ভার্টেক্স এআই জেমিনি এপিআই ব্যবহার করা হয়। |
যদি আপনি ইতিমধ্যে তা না করে থাকেন, তাহলে ‘ গেটিং স্টার্টেড গাইড’টি সম্পূর্ণ করুন, যেখানে আপনার Firebase প্রজেক্ট সেট আপ করা, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করা, SDK যোগ করা, আপনার নির্বাচিত API প্রোভাইডারের জন্য ব্যাকএন্ড সার্ভিস ইনিশিয়ালাইজ করা এবং একটি ImagenModel ইনস্ট্যান্স তৈরি করার পদ্ধতি বর্ণনা করা হয়েছে।
যে মডেলগুলো এই সক্ষমতা সমর্থন করে
ইমেজেন তার capability মডেলের মাধ্যমে ছবি সম্পাদনার সুবিধা প্রদান করে:
-
imagen-3.0-capability-001
উল্লেখ্য যে, Imagen মডেলগুলোর জন্য global লোকেশন সমর্থিত নয় ।
বিষয় কাস্টমাইজেশনের জন্য অনুরোধ পাঠান
নিম্নলিখিত নমুনাটি একটি সাবজেক্ট কাস্টমাইজেশন অনুরোধ দেখাচ্ছে, যা মডেলকে প্রদত্ত রেফারেন্স ছবির (এই উদাহরণে, একটি বিড়াল) উপর ভিত্তি করে একটি নতুন ছবি তৈরি করতে বলছে। যেহেতু বিড়াল একটি প্রাণী , তাই এটি ImagenSubjectReferenceType.ANIMAL সাবজেক্ট টাইপটি ব্যবহার করে।
আপনার বিষয়বস্তু যদি কোনো ব্যক্তি বা পণ্য হয়, তাহলেও আপনি এই উদাহরণটি ব্যবহার করতে পারেন, তবে নিম্নলিখিত পরিবর্তনগুলো সহ:
আপনার সাবজেক্ট যদি কোনো ব্যক্তি হয়, তাহলে
ImagenSubjectReferenceType.PERSONসাবজেক্ট টাইপটি ব্যবহার করুন। ইমেজ জেনারেশনকে আরও ভালোভাবে পরিচালনা করার জন্য আপনি ফেস মেশ কন্ট্রোল ইমেজ সহ বা ছাড়াই এই ধরনের রিকোয়েস্ট পাঠাতে পারেন।আপনার বিষয়বস্তু যদি কোনো পণ্য হয়, তাহলে
ImagenSubjectReferenceType.PRODUCTসাবজেক্ট টাইপটি ব্যবহার করুন।
রাইটিং প্রম্পট এবং সেগুলোর মধ্যে কীভাবে রেফারেন্স ইমেজ ব্যবহার করতে হয়, সে সম্পর্কে জানতে এই পৃষ্ঠার পরবর্তী অংশে থাকা প্রম্পট টেমপ্লেটগুলো পর্যালোচনা করুন।
সুইফট
Swift-এ Imagen মডেল ব্যবহার করে ছবি সম্পাদনা করা সমর্থিত নয়। এই বছরের শেষের দিকে আবার দেখুন!
Kotlin
// Using this SDK to access Imagen models is a Preview release and requires opt-in
@OptIn(PublicPreviewAPI::class)
suspend fun customizeImage() {
// Initialize the Vertex AI Gemini API backend service
// Optionally specify the location to access the model (for example, `us-central1`)
val ai = Firebase.ai(backend = GenerativeBackend.vertexAI(location = "us-central1"))
// Create an `ImagenModel` instance with an Imagen "capability" model
val model = ai.imagenModel("imagen-3.0-capability-001")
// This example assumes 'referenceImage' is a pre-loaded Bitmap.
// In a real app, this might come from the user's device or a URL.
val referenceImage: Bitmap = TODO("Load your reference image Bitmap here")
// Define the subject reference using the reference image.
val subjectReference = ImagenSubjectReference(
image = referenceImage,
referenceID = 1,
description = "cat",
subjectType = ImagenSubjectReferenceType.ANIMAL
)
// Provide a prompt that describes the final image.
// The "[1]" links the prompt to the subject reference with ID 1.
val prompt = "A cat[1] flying through outer space"
// Use the editImage API to perform the subject customization.
// Pass the list of references, the prompt, and an editing configuration.
val editedImage = model.editImage(
referenceImages = listOf(subjectReference),
prompt = prompt,
config = ImagenEditingConfig(
editSteps = 50 // Number of editing steps, a higher value can improve quality
)
)
// Process the result
}
Java
// Initialize the Vertex AI Gemini API backend service
// Optionally specify the location to access the model (for example, `us-central1`)
// Create an `ImagenModel` instance with an Imagen "capability" model
ImagenModel imagenModel = FirebaseAI.getInstance(GenerativeBackend.vertexAI("us-central1"))
.imagenModel(
/* modelName */ "imagen-3.0-capability-001");
ImagenModelFutures model = ImagenModelFutures.from(imagenModel);
// This example assumes 'referenceImage' is a pre-loaded Bitmap.
// In a real app, this might come from the user's device or a URL.
Bitmap referenceImage = null; // TODO("Load your image Bitmap here");
// Define the subject reference using the reference image.
ImagenSubjectReference subjectReference = new ImagenSubjectReference.Builder()
.setImage(referenceImage)
.setReferenceID(1)
.setDescription("cat")
.setSubjectType(ImagenSubjectReferenceType.ANIMAL)
.build();
// Provide a prompt that describes the final image.
// The "[1]" links the prompt to the subject reference with ID 1.
String prompt = "A cat[1] flying through outer space";
// Define the editing configuration.
ImagenEditingConfig imagenEditingConfig = new ImagenEditingConfig.Builder()
.setEditSteps(50) // Number of editing steps, a higher value can improve quality
.build();
// Use the editImage API to perform the subject customization.
// Pass the list of references, the prompt, and an editing configuration.
Futures.addCallback(model.editImage(Collections.singletonList(subjectReference), prompt, imagenEditingConfig), new FutureCallback<ImagenGenerationResponse>() {
@Override
public void onSuccess(ImagenGenerationResponse result) {
if (result.getImages().isEmpty()) {
Log.d("TAG", "No images generated");
}
Bitmap bitmap = ((ImagenInlineImage) result.getImages().get(0)).asBitmap();
// Use the bitmap to display the image in your UI
}
@Override
public void onFailure(Throwable t) {
// ...
}
}, Executors.newSingleThreadExecutor());
Web
ওয়েব অ্যাপের জন্য Imagen মডেল ব্যবহার করে ছবি সম্পাদনা করা সমর্থিত নয়। এই বছরের শেষের দিকে আবার দেখুন!
Dart
import 'dart:typed_data';
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 Vertex AI Gemini API backend service
// Optionally specify a location to access the model (for example, `us-central1`)
final ai = FirebaseAI.vertexAI(location: 'us-central1');
// Create an `ImagenModel` instance with an Imagen "capability" model
final model = ai.imagenModel(model: 'imagen-3.0-capability-001');
// This example assumes 'referenceImage' is a pre-loaded Uint8List.
// In a real app, this might come from the user's device or a URL.
final Uint8List referenceImage = Uint8List(0); // TODO: Load your reference image data here
// Define the subject reference using the reference image.
final subjectReference = ImagenSubjectReference(
image: referenceImage,
referenceId: 1,
description: 'cat',
subjectType: ImagenSubjectReferenceType.animal,
);
// Provide a prompt that describes the final image.
// The "[1]" links the prompt to the subject reference with ID 1.
final prompt = "A cat[1] flying through outer space.";
try {
// Use the editImage API to perform the subject customization.
// Pass the list of references, the prompt, and an editing configuration.
final response = await model.editImage(
[subjectReference],
prompt,
config: ImagenEditingConfig(
editSteps: 50, // Number of editing steps, a higher value can improve quality
),
);
// Process the result.
if (response.images.isNotEmpty) {
final editedImage = response.images.first.bytes;
// Use the editedImage (a Uint8List) to display the image, save it, etc.
print('Image successfully generated!');
} else {
// Handle the case where no images were generated.
print('Error: No images were generated.');
}
} catch (e) {
// Handle any potential errors during the API call.
print('An error occurred: $e');
}
ঐক্য
ইউনিটিতে ইমেজেন মডেল ব্যবহার করে ইমেজ এডিটিং সমর্থিত নয়। এই বছরের শেষের দিকে আবার চেষ্টা করুন!
প্রম্পট টেমপ্লেট
অনুরোধে, আপনি একটি ImagenSubjectReference নির্ধারণ করে রেফারেন্স ছবি (সর্বোচ্চ ৪টি) প্রদান করেন, যেখানে আপনি ছবিটির জন্য একটি রেফারেন্স আইডি (এবং ঐচ্ছিকভাবে একটি বিষয়বস্তুর বিবরণও) উল্লেখ করেন। উল্লেখ্য যে, একাধিক ছবির একই রেফারেন্স আইডি থাকতে পারে (উদাহরণস্বরূপ, একই বিড়ালের একাধিক ছবি)।
তারপর, প্রম্পট লেখার সময়, আপনি এই আইডিগুলো উল্লেখ করবেন। উদাহরণস্বরূপ, রেফারেন্স আইডি 1 সহ ছবিগুলোকে বোঝাতে আপনি প্রম্পটে [1] ব্যবহার করবেন। যদি আপনি একটি বিষয় বিবরণ প্রদান করেন, তবে আপনি সেটিও প্রম্পটে অন্তর্ভুক্ত করতে পারেন যাতে মানুষের জন্য প্রম্পটটি পড়া সহজ হয়।
নিম্নলিখিত সারণিতে এমন কিছু প্রম্পট টেমপ্লেট বর্ণনা করা হয়েছে, যা কোনো বিষয় (যেমন কোনো পণ্য, ব্যক্তি বা পোষা প্রাণী) অনুসারে নিজের মতো করে প্রম্পট লেখার সূচনা হিসেবে কাজ করতে পারে।
| ব্যবহারের ক্ষেত্র | রেফারেন্স ছবি | প্রম্পট টেমপ্লেট | উদাহরণ |
|---|---|---|---|
| পণ্যের ছবির শৈলীকরণ - বিজ্ঞাপন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৪টি) | SUBJECT_DESCRIPTION [1] সম্পর্কে ${PROMPT} বর্ণনার সাথে মেলে এমন একটি ছবি তৈরি করুন। | বর্ণনার সাথে মিলিয়ে Luxe Elixir hair oil, golden liquid in glass bottle [1] সম্পর্কে একটি ছবি তৈরি করুন: একটি বিশুদ্ধ সাদা পটভূমির বিপরীতে, Luxe Elixir hair oil, golden liquid in glass bottle [1] হাতে ধরা একজন মহিলার হাতের একটি ক্লোজ-আপ, হাই-কি ছবি। মহিলার হাতটি ভালোভাবে আলোকিত এবং বোতলটির উপর ফোকাস তীক্ষ্ণ, যেখানে শ্যালো ডেপথ অফ ফিল্ড পটভূমিকে ঝাপসা করে পণ্যটির উপর জোর দেয়। আলো নরম এবং বিচ্ছুরিত, যা বোতল এবং হাতের চারপাশে একটি সূক্ষ্ম আভা তৈরি করে। সামগ্রিক কম্পোজিশনটি সহজ এবং মার্জিত, যা পণ্যটির বিলাসবহুল আবেদনকে তুলে ধরে। |
| পণ্যের ছবির শৈলী পরিবর্তন - বৈশিষ্ট্য পরিবর্তন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৪টি) | SUBJECT_DESCRIPTION এর একটি ছবি তৈরি করুন কিন্তু ${PROMPT} | একটি Seiko watch [1] ছবি তৈরি করুন কিন্তু নীল রঙে । |
| ফেস মেশ ইনপুট ছাড়া ব্যক্তির ছবির স্টাইলাইজেশন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৪টি) | SUBJECT_DESCRIPTION [1] এর বর্ণনার সাথে মেলে এমন একটি ছবি তৈরি করুন: SUBJECT_DESCRIPTION [1] এর একটি প্রতিকৃতি ${PROMPT} | বর্ণনার সাথে মিল রেখে a woman with short hair[1] একটি ছবি তৈরি করুন: ঝাপসা পটভূমি সহ 3D-কার্টুন শৈলীতে a woman with short hair[1] প্রতিকৃতি । একটি মিষ্টি এবং মনোরম চরিত্র, হাসিমুখ, ক্যামেরার দিকে তাকানো, প্যাস্টেল রঙের টোন... |
| ফেস মেশ ইনপুট ছাড়া ব্যক্তির ছবির স্টাইলাইজেশন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৪টি) | SUBJECT_DESCRIPTION [1] এর বর্ণনার সাথে মেলে এমন একটি STYLE_DESCRIPTION [2] ছবি তৈরি করুন: SUBJECT_DESCRIPTION [1] এর একটি প্রতিকৃতি STYLE_PROMPT | বর্ণনার সাথে মিল রেখে a woman with short hair [1] একটি 3d-cartoon style [2] ছবি তৈরি করুন: ঝাপসা পটভূমি সহ 3D-কার্টুন শৈলীতে a woman with short hair [1] প্রতিকৃতি । একটি মিষ্টি এবং মনোরম চরিত্র, হাসিমুখ, ক্যামেরার দিকে তাকানো, প্যাস্টেল রঙের টোন... |
| ফেস মেশ ইনপুট ব্যবহার করে ব্যক্তির ছবির স্টাইলাইজেশন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৩টি) মুখের জাল নিয়ন্ত্রণ চিত্র (1) | Face mesh from the control image [2] ব্যবহার করে SUBJECT_DESCRIPTION [1] এর একটি ইমেজ তৈরি করুন। ${PROMPT} | face mesh from the control image [2] ব্যবহার করে the person [1] -এর একটি ছবি তৈরি করুন। ব্যক্তিটির মুখমণ্ডল স্বাভাবিক ও সোজা সামনের দিকে তাকিয়ে থাকবে। পটভূমি হবে একটি ... |
| ফেস মেশ ইনপুট ব্যবহার করে ব্যক্তির ছবির স্টাইলাইজেশন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৩টি) মুখের জাল নিয়ন্ত্রণ চিত্র (1) | বর্ণনার সাথে মিল রেখে CONTROL_IMAGE [2] এর ভঙ্গিতে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি ছবি তৈরি করুন: SUBJECT_DESCRIPTION [1] এর একটি প্রতিকৃতি ${PROMPT} | বর্ণনার সাথে মিল রেখে control image [2] -এর ভঙ্গিতে a woman with short hair [1] একটি ছবি তৈরি করুন: ঝাপসা পটভূমিসহ 3D-কার্টুন শৈলীতে a woman with short hair [1] প্রতিকৃতি । একটি মিষ্টি ও সুন্দর চরিত্র, হাসিমুখ, ক্যামেরার দিকে তাকানো, প্যাস্টেল রঙের ব্যবহার... |
| ফেস মেশ ইনপুট ব্যবহার করে ব্যক্তির ছবির স্টাইলাইজেশন | বিষয়বস্তুর ছবি (সর্বোচ্চ ৩টি) মুখের জাল নিয়ন্ত্রণ চিত্র (1) | বর্ণনার সাথে মিল রেখে CONTROL_IMAGE [2] এর ভঙ্গিতে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি STYLE_DESCRIPTION [3] ছবি তৈরি করুন: SUBJECT_DESCRIPTION [1] এর একটি প্রতিকৃতি ${PROMPT} | বর্ণনার সাথে মিল রেখে control image [2] -এর ভঙ্গিতে a woman with short hair [1] একটি 3d-cartoon style [3] ছবি তৈরি করুন: ঝাপসা পটভূমি সহ 3D-কার্টুন শৈলীতে a woman with short hair [1] প্রতিকৃতি । একটি মিষ্টি এবং মনোরম চরিত্র, হাসিমুখ, ক্যামেরার দিকে তাকানো, প্যাস্টেল রঙের টোন... |
সর্বোত্তম অনুশীলন এবং সীমাবদ্ধতা
আপনি যদি কোনো ব্যক্তিকে আপনার বিষয়বস্তু হিসেবে ব্যবহার করেন, তবে আমরা সুপারিশ করি যে আপনার রেফারেন্স ছবির মুখটিতে নিম্নলিখিত বৈশিষ্ট্যগুলো যেন থাকে:
- এটি কেন্দ্রে অবস্থিত এবং সম্পূর্ণ ছবির অন্তত অর্ধেক জায়গা জুড়ে রয়েছে।
- সম্মুখ দৃশ্য থেকে সকল দিকে (রোল, পিচ এবং ইয়ো) ঘোরানো হয়।
- সানগ্লাস বা মাস্কের মতো বস্তু দ্বারা আবৃত হয় না।
ব্যবহারের ক্ষেত্র
কাস্টমাইজেশন ক্ষমতাটি ফ্রি-স্টাইল প্রম্পটিং-এর সুযোগ দেয়, যা এই ধারণা দিতে পারে যে মডেলটি তার প্রশিক্ষণের চেয়েও বেশি কিছু করতে সক্ষম। নিম্নলিখিত বিভাগগুলিতে কাস্টমাইজেশনের উদ্দিষ্ট ব্যবহার এবং অনাকাঙ্ক্ষিত ব্যবহারের কিছু অসম্পূর্ণ উদাহরণ বর্ণনা করা হয়েছে।
আমরা এই সক্ষমতাটি উদ্দিষ্ট ব্যবহারের ক্ষেত্রেই ব্যবহার করার পরামর্শ দিই, কারণ আমরা মডেলটিকে সেইসব ব্যবহারের ক্ষেত্রেই প্রশিক্ষণ দিয়েছি এবং সেগুলোর জন্য ভালো ফলাফল আশা করি। বিপরীতভাবে, আপনি যদি মডেলটিকে উদ্দিষ্ট ব্যবহারের বাইরের কোনো কাজ করতে বাধ্য করেন, তবে আপনার খারাপ ফলাফল আশা করা উচিত।
উদ্দিষ্ট ব্যবহারের ক্ষেত্র
বিষয়ভিত্তিক কাস্টমাইজেশনের জন্য নিম্নলিখিতগুলি হল উদ্দিষ্ট ব্যবহারের ক্ষেত্র:
কোনো ব্যক্তির ছবিকে শৈল্পিকভাবে সাজান।
কোনো ব্যক্তির একটি ছবিকে শৈল্পিকভাবে উপস্থাপন করুন এবং তার মুখের অভিব্যক্তি অক্ষুণ্ণ রাখুন।
(সাফল্যের হার কম) একটি পণ্য, যেমন একটি সোফা বা একটি কুকি, বিভিন্ন দৃশ্য এবং ভিন্ন ভিন্ন কোণ থেকে স্থাপন করুন।
পণ্যের এমন বিভিন্ন সংস্করণ তৈরি করুন যাতে হুবহু একই বিবরণ বজায় থাকে না।
কোনো ব্যক্তির ছবিকে শৈল্পিক রূপ দিন, তবে মুখের অভিব্যক্তি অক্ষুণ্ণ রাখুন।
অনিচ্ছাকৃত ব্যবহারের উদাহরণ
নিম্নলিখিতটি বিষয়ভিত্তিক কাস্টমাইজেশনের কিছু অনাকাঙ্ক্ষিত ব্যবহারের একটি অসম্পূর্ণ তালিকা। মডেলটি এই ব্যবহারের ক্ষেত্রগুলোর জন্য প্রশিক্ষিত নয়, এবং সম্ভবত এর ফলাফল ভালো হবে না।
দুই বা ততোধিক ব্যক্তিকে তাদের পরিচয় অক্ষুণ্ণ রেখে ভিন্ন ভিন্ন দৃশ্যে স্থাপন করুন।
দুই বা ততোধিক ব্যক্তিকে ভিন্ন ভিন্ন দৃশ্যে স্থাপন করুন, তাদের পরিচয় অক্ষুণ্ণ রাখুন এবং স্টাইলের জন্য ইনপুট হিসেবে একটি উদাহরণ চিত্র ব্যবহার করে আউটপুট চিত্রের স্টাইল নির্দিষ্ট করুন।
দুই বা ততোধিক ব্যক্তির পরিচয় অক্ষুণ্ণ রেখে একটি ছবিকে শৈল্পিক রূপ দিন।
একটি পোষা প্রাণীর পরিচয় অক্ষুণ্ণ রেখে সেটিকে বিভিন্ন দৃশ্যে স্থাপন করুন।
একটি পোষা প্রাণীর ছবিকে শৈল্পিক রূপ দিয়ে অঙ্কনে পরিণত করুন।
পোষা প্রাণীর একটি ছবিকে শৈল্পিকভাবে অঙ্কনে রূপান্তর করুন এবং একই সাথে ছবিটির শৈলী (যেমন জলরং) বজায় রাখুন বা নির্দিষ্ট করে দিন।
একটি পোষা প্রাণী এবং একজন ব্যক্তিকে উভয়ের পরিচয় অক্ষুণ্ণ রেখে ভিন্ন একটি দৃশ্যে রাখুন।
একটি পোষা প্রাণী এবং এক বা একাধিক ব্যক্তির ছবিকে শৈল্পিক রূপ দিয়ে একটি অঙ্কনে পরিণত করুন।
দুটি পণ্যকে ভিন্ন ভিন্ন দৃশ্যে এবং ভিন্ন ভিন্ন কোণ থেকে রাখুন।
একটি পণ্যকে (যেমন একটি কুকি বা একটি সোফা) বিভিন্ন দৃশ্যে, ভিন্ন ভিন্ন কোণ থেকে এবং একটি নির্দিষ্ট চিত্রশৈলী (যেমন নির্দিষ্ট রঙ, আলোর ধরন বা অ্যানিমেশন সহ ফটোরিয়ালিস্টিক) অনুসরণ করে স্থাপন করুন।
একটি কন্ট্রোল ইমেজ দ্বারা নির্দিষ্ট করা দৃশ্যের গঠন অপরিবর্তিত রেখে একটি পণ্যকে ভিন্ন কোনো দৃশ্যে স্থাপন করুন।
একটি নির্দিষ্ট ছবিকে (যেমন নির্দিষ্ট রঙ, আলোর ধরণ বা অ্যানিমেশন সহ ফটোরিয়ালিস্টিক) ইনপুট হিসেবে ব্যবহার করে, দুটি পণ্যকে ভিন্ন ভিন্ন কোণ থেকে আলাদা আলাদা দৃশ্যে স্থাপন করুন।
একটি কন্ট্রোল ইমেজ দ্বারা নির্দিষ্ট করা দৃশ্যের গঠন অপরিবর্তিত রেখে দুটি পণ্যকে ভিন্ন ভিন্ন দৃশ্যে স্থাপন করুন।