Imagen ব্যবহার করে একটি নির্দিষ্ট বিষয়ের উপর ভিত্তি করে ছবি কাস্টমাইজ করুন


Firebase AI লজিক SDK ব্যবহার করে একটি নির্দিষ্ট বিষয়ের উপর ভিত্তি করে ছবি সম্পাদনা বা তৈরি করতে Imagen থেকে কাস্টমাইজেশন ক্ষমতা কীভাবে ব্যবহার করা যায় তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।

এটি কীভাবে কাজ করে : আপনি একটি পাঠ্য প্রম্পট এবং অন্তত একটি রেফারেন্স ইমেজ প্রদান করেন যা একটি নির্দিষ্ট বিষয় (যেমন একটি পণ্য, ব্যক্তি বা প্রাণীর সহচর) দেখায়। মডেলটি রেফারেন্স চিত্রগুলিতে নির্দিষ্ট বিষয়ের উপর ভিত্তি করে একটি নতুন চিত্র তৈরি করতে এই ইনপুটগুলি ব্যবহার করে।

উদাহরণস্বরূপ, আপনি মডেলটিকে একটি শিশুর ফটোতে কার্টুন শৈলী প্রয়োগ করতে বা ছবিতে একটি সাইকেলের রঙ পরিবর্তন করতে বলতে পারেন।

কোডে ঝাঁপ দাও



আপনি শুরু করার আগে

আপনার API প্রদানকারী হিসাবে Vertex AI Gemini API ব্যবহার করার সময় শুধুমাত্র উপলব্ধ।

যদি আপনি ইতিমধ্যেই না করে থাকেন, শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন, যা বর্ণনা করে যে কীভাবে আপনার Firebase প্রকল্প সেট আপ করবেন, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করবেন, SDK যোগ করবেন, আপনার নির্বাচিত API প্রদানকারীর জন্য ব্যাকএন্ড পরিষেবা শুরু করবেন এবং একটি ImagenModel উদাহরণ তৈরি করবেন।

মডেল যে এই ক্ষমতা সমর্থন করে

ইমেজেন তার capability মডেলের মাধ্যমে চিত্র সম্পাদনা অফার করে:

  • imagen-3.0-capability-001

মনে রাখবেন যে Imagen মডেলের জন্য, global অবস্থান সমর্থিত নয়

একটি বিষয় কাস্টমাইজেশন অনুরোধ পাঠান

নিম্নলিখিত নমুনা একটি বিষয় কাস্টমাইজেশন অনুরোধ দেখায় যা মডেলকে প্রদত্ত রেফারেন্স চিত্রের উপর ভিত্তি করে একটি নতুন ছবি তৈরি করতে বলে (এই উদাহরণে, একটি বিড়াল)। যেহেতু একটি বিড়াল একটি প্রাণী তাই এটি ImagenSubjectReferenceType.ANIMAL ব্যবহার করে।

যদি আপনার বিষয় একজন ব্যক্তি বা পণ্য হয় তবে আপনি এই উদাহরণটি ব্যবহার করতে পারেন তবে নিম্নলিখিত পরিবর্তনগুলি সহ:

  • যদি আপনার বিষয় একজন ব্যক্তি হয়, তাহলে বিষয়ের ধরন ImagenSubjectReferenceType.PERSON ব্যবহার করুন। ইমেজ জেনারেশনকে আরও গাইড করতে আপনি ফেস মেশ কন্ট্রোল ইমেজ সহ বা ছাড়া এই ধরনের অনুরোধ পাঠাতে পারেন।

  • যদি আপনার বিষয় একটি পণ্য হয়, তাহলে বিষয় প্রকার ImagenSubjectReferenceType.PRODUCT ব্যবহার করুন।

এই পৃষ্ঠায় পরে প্রম্পট টেমপ্লেটগুলি পর্যালোচনা করুন প্রম্পট লেখার বিষয়ে এবং তাদের মধ্যে রেফারেন্স চিত্রগুলি কীভাবে ব্যবহার করবেন তা শিখতে।

সুইফট

ইমেজেন মডেলের সাথে ছবি সম্পাদনা সুইফটের জন্য সমর্থিত নয়। এই বছরের পরে আবার চেক করুন!

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(
        references = 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 = result.getImages().get(0).asBitmap();
        // Use the bitmap to display the image in your UI
    }

    @Override
    public void onFailure(Throwable t) {
        // ...
    }
}, Executors.newSingleThreadExecutor());

Web

ইমেজেন মডেলের সাথে ইমেজ এডিটিং ওয়েব অ্যাপের জন্য সমর্থিত নয়। এই বছরের পরে আবার চেক করুন!

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 সংজ্ঞায়িত করে রেফারেন্স ইমেজ (4টি ছবি পর্যন্ত) প্রদান করেন যেখানে আপনি একটি ছবির জন্য একটি রেফারেন্স আইডি উল্লেখ করেন (এবং ঐচ্ছিকভাবে একটি বিষয়ের বিবরণও)। মনে রাখবেন যে একাধিক ছবিতে একই রেফারেন্স আইডি থাকতে পারে (উদাহরণস্বরূপ, একই বিড়ালের একাধিক ফটো)।

তারপর, প্রম্পট লেখার সময়, আপনি এই আইডিগুলি উল্লেখ করুন। উদাহরণস্বরূপ, আপনি রেফারেন্স আইডি 1 সহ চিত্রগুলি উল্লেখ করতে প্রম্পটে [1] ব্যবহার করেন। আপনি যদি একটি বিষয়ের বিবরণ প্রদান করেন তবে আপনি এটিকে প্রম্পটে অন্তর্ভুক্ত করতে পারেন যাতে প্রম্পটটি একজন মানুষের পক্ষে পড়তে সহজ হয়।

নিম্নলিখিত টেবিলটি প্রম্পট টেমপ্লেটগুলি বর্ণনা করে যা একটি বিষয়ের উপর ভিত্তি করে কাস্টমাইজেশনের জন্য প্রম্পট লেখার জন্য একটি সূচনা বিন্দু হতে পারে (যেমন একটি পণ্য, ব্যক্তি বা প্রাণীর সহচর)।

কেস ব্যবহার করুন রেফারেন্স ইমেজ প্রম্পট টেমপ্লেট উদাহরণ
পণ্যের চিত্র শৈলীকরণ - বিজ্ঞাপন বিষয় চিত্র (4 পর্যন্ত) বর্ণনার সাথে মেলে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি চিত্র তৈরি করুন: ${PROMPT}

বর্ণনার সাথে মেলাতে Luxe Elixir hair oil, golden liquid in glass bottle [1] সম্পর্কে একটি চিত্র তৈরি করুন: একটি ক্লোজ-আপ, হাই-কি ইমেজ একটি মহিলার হাত ধরে আছে Luxe Elixir hair oil, golden liquid in glass bottle [1] একটি বিশুদ্ধ সাদা পটভূমিতে। মহিলার হাত ভালভাবে আলোকিত এবং ফোকাস বোতলের উপর তীক্ষ্ণ, ক্ষেত্রের অগভীর গভীরতা পটভূমিকে ঝাপসা করে এবং পণ্যটির উপর জোর দেয়। আলো নরম এবং বিচ্ছুরিত, বোতল এবং হাতের চারপাশে একটি সূক্ষ্ম আভা তৈরি করে। সামগ্রিক রচনাটি সহজ এবং মার্জিত, পণ্যটির বিলাসবহুল আবেদনকে হাইলাইট করে।

পণ্যের চিত্র শৈলীকরণ - বৈশিষ্ট্য পরিবর্তন বিষয় চিত্র (4 পর্যন্ত) একটি SUBJECT_DESCRIPTION এর একটি ছবি তৈরি করুন কিন্তু ${PROMPT}

একটি Seiko watch [1] কিন্তু নীল রঙে

ফেস মেশ ইনপুট ছাড়াই ব্যক্তির ছবি স্টাইলাইজেশন বিষয় চিত্র (4 পর্যন্ত) বর্ণনার সাথে মেলে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি চিত্র তৈরি করুন: SUBJECT_DESCRIPTION [1] ${PROMPT} এর একটি প্রতিকৃতি বর্ণনার সাথে মেলাতে a woman with short hair[1] সম্পর্কে একটি চিত্র তৈরি করুন: ঝাপসা পটভূমি সহ 3d-কার্টুন শৈলীতে a woman with short hair[1] প্রতিকৃতি৷ একটি চতুর এবং সুন্দর চরিত্র, একটি হাস্যোজ্জ্বল মুখ, ক্যামেরার দিকে তাকিয়ে, প্যাস্টেল রঙের টোন ...
ফেস মেশ ইনপুট ছাড়াই ব্যক্তির ছবি স্টাইলাইজেশন বিষয় চিত্র (4 পর্যন্ত) বর্ণনার সাথে মেলে 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] প্রতিকৃতি। একটি চতুর এবং সুন্দর চরিত্র, একটি হাস্যোজ্জ্বল মুখ, ক্যামেরার দিকে তাকিয়ে, প্যাস্টেল রঙের টোন ...
ফেস মেশ ইনপুট সহ ব্যক্তির ছবি স্টাইলাইজেশন বিষয় চিত্র (3 পর্যন্ত)

ফেস মেশ কন্ট্রোল ইমেজ (1)
Face mesh from the control image [2] দিয়ে SUBJECT_DESCRIPTION [1] এর একটি ছবি তৈরি করুন [2]। ${PROMPT} face mesh from the control image [2] দিয়ে the person [1]ব্যক্তি একটি নিরপেক্ষ অভিব্যক্তি সঙ্গে সরাসরি সামনে তাকান উচিত. পটভূমি একটি হতে হবে ...
ফেস মেশ ইনপুট সহ ব্যক্তির ছবি স্টাইলাইজেশন বিষয় চিত্র (3 পর্যন্ত)

ফেস মেশ কন্ট্রোল ইমেজ (1)
বর্ণনার সাথে মেলে CONTROL_IMAGE [2] এর ভঙ্গিতে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি চিত্র তৈরি করুন: SUBJECT_DESCRIPTION [1] ${PROMPT} এর একটি প্রতিকৃতি কন্ট্রোল ইমেজের ভঙ্গিতে a woman with short hair [1] সম্পর্কে একটি চিত্র তৈরি করুন control image [2] বর্ণনার সাথে মিলিত হতে: অস্পষ্ট পটভূমি সহ 3d-কার্টুন শৈলীতে a woman with short hair [1] প্রতিকৃতি৷ একটি চতুর এবং সুন্দর চরিত্র, একটি হাস্যোজ্জ্বল মুখ, ক্যামেরার দিকে তাকিয়ে, প্যাস্টেল রঙের টোন ...
ফেস মেশ ইনপুট সহ ব্যক্তির ছবি স্টাইলাইজেশন বিষয় চিত্র (3 পর্যন্ত)

ফেস মেশ কন্ট্রোল ইমেজ (1)
বর্ণনার সাথে মেলে CONTROL_IMAGE [2] এর ভঙ্গিতে SUBJECT_DESCRIPTION [1] সম্পর্কে একটি STYLE_DESCRIPTION [3] চিত্র তৈরি করুন: SUBJECT_DESCRIPTION [1] ${PROMPT} এর একটি প্রতিকৃতি কন্ট্রোল ইমেজের ভঙ্গিতে a woman with short hair [1] 3d-cartoon style [3] [3] চিত্র তৈরি করুন control image [2] বর্ণনার সাথে মিল রাখতে: 3d-কার্টুন শৈলীতে ঝাপসা ব্যাকগ্রাউন্ড সহ একটি a woman with short hair [1] প্রতিকৃতি। একটি চতুর এবং সুন্দর চরিত্র, একটি হাস্যোজ্জ্বল মুখ, ক্যামেরার দিকে তাকিয়ে, প্যাস্টেল রঙের টোন ...



সর্বোত্তম অনুশীলন এবং সীমাবদ্ধতা

আপনি যদি একজন ব্যক্তিকে আপনার বিষয় হিসাবে ব্যবহার করেন, আমরা সুপারিশ করি যে আপনার রেফারেন্স চিত্রের মুখের নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:

  • কেন্দ্রীভূত এবং সমগ্র চিত্রের অন্তত অর্ধেক দখল করে
  • সামনের দৃশ্যে সব দিকে ঘোরানো হয় (রোল, পিচ এবং ইয়াও)
  • সানগ্লাস বা মুখোশের মতো বস্তু দ্বারা আবদ্ধ নয়

কেস ব্যবহার করুন

কাস্টমাইজেশন ক্ষমতা ফ্রি-স্টাইল প্রম্পটিং অফার করে, যা এই ধারণা দিতে পারে যে মডেলটি প্রশিক্ষিত হওয়ার চেয়ে বেশি কিছু করতে পারে। নিম্নলিখিত বিভাগগুলি কাস্টমাইজেশনের জন্য উদ্দিষ্ট ব্যবহারের ক্ষেত্রে এবং অপ্রত্যাশিত ব্যবহারের ক্ষেত্রেগুলির অ-সম্পূর্ণ উদাহরণ বর্ণনা করে।

আমরা উদ্দেশ্যপ্রণোদিত ব্যবহারের ক্ষেত্রে এই ক্ষমতা ব্যবহার করার পরামর্শ দিই, যেহেতু আমরা সেই ব্যবহারের ক্ষেত্রে মডেলটিকে প্রশিক্ষণ দিয়েছি এবং তাদের জন্য ভাল ফলাফল আশা করি৷ বিপরীতভাবে, আপনি যদি মডেলটিকে উদ্দেশ্যপ্রণোদিত ব্যবহারের ক্ষেত্রের বাইরে কিছু করতে চাপ দেন, তাহলে আপনার খারাপ ফলাফল আশা করা উচিত।

উদ্দেশ্যে ব্যবহার ক্ষেত্রে

একটি বিষয়ের উপর ভিত্তি করে কাস্টমাইজেশনের জন্য নিম্নলিখিতগুলি উদ্দেশ্যমূলক ব্যবহারের ক্ষেত্রে:

  • একজন ব্যক্তির ছবি স্টাইলাইজ করুন।

  • একজন ব্যক্তির একটি ফটো স্টাইলাইজ করুন এবং ব্যক্তির মুখের অভিব্যক্তি সংরক্ষণ করুন।

  • (নিম্ন সাফল্য) একটি পণ্য রাখুন, যেমন একটি পালঙ্ক বা একটি কুকি, বিভিন্ন পণ্য কোণ সহ বিভিন্ন দৃশ্যে।

  • এমন একটি পণ্যের বৈচিত্র তৈরি করুন যা সঠিক বিবরণ সংরক্ষণ করে না।

  • মুখের অভিব্যক্তি সংরক্ষণ করার সময় একজন ব্যক্তির একটি ফটো স্টাইলাইজ করুন।

অনিচ্ছাকৃত ব্যবহারের ক্ষেত্রে উদাহরণ

নিম্নলিখিত একটি বিষয়ের উপর ভিত্তি করে কাস্টমাইজেশনের জন্য অপ্রত্যাশিত ব্যবহারের ক্ষেত্রেগুলির একটি অ-সম্পূর্ণ তালিকা। মডেলটি এই ব্যবহারের ক্ষেত্রে প্রশিক্ষিত নয় এবং সম্ভবত খারাপ ফলাফল দেবে।

  • তাদের পরিচয় সংরক্ষণ করার সময় বিভিন্ন দৃশ্যে দুই বা ততোধিক লোককে রাখুন।

  • দুই বা ততোধিক লোককে তাদের পরিচয় সংরক্ষণ করার সময় বিভিন্ন দৃশ্যে রাখুন এবং শৈলীর জন্য ইনপুট হিসাবে একটি উদাহরণ চিত্র ব্যবহার করে আউটপুট চিত্রের শৈলী নির্দিষ্ট করুন।

  • তাদের পরিচয় সংরক্ষণ করার সময় দুই বা ততোধিক ব্যক্তির একটি ফটো স্টাইলাইজ করুন।

  • একটি পোষা প্রাণীকে তার পরিচয় সংরক্ষণের সময় বিভিন্ন দৃশ্যে রাখুন।

  • পোষা প্রাণীর একটি ফটো স্টাইলাইজ করুন এবং এটিকে একটি অঙ্কনে পরিণত করুন।

  • একটি পোষা প্রাণীর একটি ছবি স্টাইলাইজ করুন এবং ছবিটির শৈলী (যেমন জলের রঙ) সংরক্ষণ বা নির্দিষ্ট করার সময় এটিকে একটি অঙ্কনে পরিণত করুন।

  • একটি পোষা প্রাণী এবং একজন ব্যক্তিকে একটি ভিন্ন দৃশ্যে রাখুন, উভয়ের পরিচয় সংরক্ষণ করুন৷

  • একটি পোষা প্রাণী এবং এক বা একাধিক লোকের একটি ফটো স্টাইলাইজ করুন এবং এটিকে একটি অঙ্কনে পরিণত করুন৷

  • একটি দুটি পণ্যকে বিভিন্ন দৃশ্যে বিভিন্ন পণ্যের কোণে রাখুন।

  • একটি পণ্য, যেমন একটি কুকি বা একটি পালঙ্ক, বিভিন্ন পণ্য কোণ সহ বিভিন্ন দৃশ্যে রাখুন এবং একটি নির্দিষ্ট চিত্র শৈলী অনুসরণ করুন (যেমন নির্দিষ্ট রঙ, আলোর শৈলী, বা অ্যানিমেশন সহ ফটোরিয়ালিস্টিক)।

  • একটি কন্ট্রোল ইমেজ দ্বারা নির্দিষ্ট করা দৃশ্যের নির্দিষ্ট কম্পোজিশন সংরক্ষণ করার সময় একটি পণ্যকে একটি ভিন্ন দৃশ্যে রাখুন।

  • ইনপুট হিসাবে একটি নির্দিষ্ট চিত্র ব্যবহার করে (যেমন নির্দিষ্ট রঙ, আলোর শৈলী বা অ্যানিমেশন সহ ফটোরিয়ালিস্টিক) ব্যবহার করে দুটি পণ্যকে বিভিন্ন পণ্য কোণ সহ বিভিন্ন দৃশ্যে রাখুন।

  • একটি কন্ট্রোল ইমেজ দ্বারা নির্দিষ্ট করা দৃশ্যের নির্দিষ্ট রচনা সংরক্ষণ করার সময় দুটি পণ্যকে বিভিন্ন দৃশ্যে রাখুন।