ছবি তৈরি করুন

ইমেজ এপিআই হল প্রোডাক্ট স্টুডিও সাব-এপিআই-এর অংশ। এটি প্রোডাক্ট ইমেজ তৈরি এবং অপ্টিমাইজ করার জন্য গুগল প্রোডাক্ট স্টুডিও (জিপিএস) এপিআই-এর জেনারেটিভ এআই টুল ব্যবহার করে। আপনি গ্রাহকদের সাথে যোগাযোগ এবং রূপান্তর উন্নত করতে এটি ব্যবহার করতে পারেন।

API ব্যবহার করে আপনি কী তৈরি করতে পারেন?

  • প্রদত্ত পণ্য তথ্য এবং একটি টেক্সট প্রম্পটের উপর ভিত্তি করে AI-জেনারেটেড ব্যাকগ্রাউন্ড সহ পণ্যের ছবি।
  • মূল ছবির ব্যাকগ্রাউন্ড সহ পণ্যের ছবিগুলি সরানো হয়েছে
  • পণ্যের ছবি যেখানে মূল ছবির রেজোলিউশন উন্নত করা হয়

একটি ছবির ব্যাকগ্রাউন্ড তৈরি করুন

GenerateProductImageBackground পদ্ধতিটি আপনার আসল পণ্যের ছবি এবং ব্যাকগ্রাউন্ডের বিশদ বিবরণ সহ একটি টেক্সট প্রম্পট ব্যবহার করে AI-জেনারেটেড ব্যাকগ্রাউন্ড সহ পণ্যের ছবি তৈরি করতে পারে।

API গ্রহণ করে:

  • পণ্যের ছবি : এটি নিম্নলিখিত যেকোনো একটি হতে পারে:
    • পণ্যের ছবির দিকে নির্দেশ করে এমন একটি URI (যেমন, {"image_uri": "https://my-store.com/img/1.png"} )
    • কাঁচা চিত্র বাইট, যেমন, {"image_bytes": b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01'}
  • প্রম্পট : একটি স্ট্রিং যা তৈরি করার জন্য ব্যাকগ্রাউন্ড নির্দিষ্ট করে:
    • product_description : পণ্যের বর্ণনা।
    • background_description : কাঙ্ক্ষিত ব্যাকগ্রাউন্ডের বর্ণনা।

ছবির ব্যাকগ্রাউন্ড সরান

RemoveProductImageBackground পদ্ধতিটি আপনার মূল পণ্যের ছবি থেকে ব্যাকগ্রাউন্ড সরিয়ে ছবি তৈরি করতে পারে।

API গ্রহণ করে:

  • পণ্যের ছবি : এটি নিম্নলিখিত যেকোনো একটি হতে পারে:
    • পণ্যের ছবির দিকে নির্দেশ করে এমন একটি URI, যেমন, {"image_uri": "https://my-store.com/img/1.png"}
    • কাঁচা চিত্র বাইট, যেমন, {"image_bytes": b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01'}
  • পটভূমির রঙ : অপসারণের পরে পটভূমির রঙ, RGB ফর্ম্যাটে দেওয়া। যদি কোনও রঙ নির্দিষ্ট না করা থাকে, তাহলে পটভূমিটি একটি RGBA 4-চ্যানেল স্বচ্ছ চিত্র হবে।

একটি ছবি আপস্কেল করুন

UpscaleProductImage পদ্ধতিটি এমন ছবি তৈরি করতে পারে যেখানে আপনার মূল পণ্যের ছবির রেজোলিউশন উন্নত করা হয়।

API একটি Product Image গ্রহণ করে। এটি নিম্নলিখিত যেকোনো একটি হতে পারে:

  • পণ্যের ছবির দিকে নির্দেশ করে এমন একটি URI, যেমন, {"image_uri": "https://my-store.com/img/1.png"}
  • কাঁচা চিত্র বাইট, যেমন, {"image_bytes": "image_bytes"}

ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন

আমরা আপনাকে আপনার অনুরোধ জমা দেওয়ার জন্য ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিচ্ছি। যদি আপনার ভাষার জন্য সমর্থিত ক্লায়েন্ট লাইব্রেরি উপলব্ধ না হয়, তাহলে আমরা আপনার Maven প্রকল্পের মধ্যে ইনস্টল করার জন্য সরাসরি লাইব্রেরি ফাইলগুলি (ইমেল বা শেয়ার্ড ড্রাইভ ফোল্ডারে) সরবরাহ করতে পারি।

উদাহরণ

নিম্নলিখিত উদাহরণগুলি পণ্যের ছবি তৈরি বা অপ্টিমাইজ করার জন্য API ব্যবহার করে।

একটি পণ্যের ছবির জন্য একটি ব্যাকগ্রাউন্ড তৈরি করুন

উদাহরণটি দেখায় কিভাবে আপনার পছন্দের ব্যাকগ্রাউন্ড দিয়ে একটি পণ্যের ছবি তৈরি করবেন।

অনুরোধ

রিকোয়েস্ট বডিতে ইমেজ (URI অথবা বাইট) এবং ব্যাকগ্রাউন্ড জেনারেশনের জন্য প্রম্পট থাকে। ইমেজ URI ব্যবহার করে রিকোয়েস্ট স্ট্রাকচারের একটি উদাহরণ এখানে দেওয়া হল:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:generateProductImageBackground

{
   "input_image": {
      "image_uri": "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
   },
   "config": {
      "product_description": "a jar",
      "background_description": "sitting on a cracked stone surface surrounded by a cherry blossom tree and pink and white flowers in the background, high resolution, product photography, strong shadows and lights, creative"
   }
}

বিকল্পভাবে, আপনি কাঁচা চিত্র বাইট ব্যবহার করতে পারেন:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:generateProductImageBackground

{
   "input_image": {
      "image_bytes": "b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff'"
   },
   "config": {
      "product_description": "a jar",
      "background_description": "sitting on a cracked stone surface surrounded by a cherry blossom tree and pink and white flowers in the background, high resolution, product photography, strong shadows and lights, creative"
   }
}

প্রতিক্রিয়া

আপনি এরকম একটি প্রতিক্রিয়া আশা করতে পারেন:

{
  "generated_image": {
    "image_bytes": "b'\x7d\x1b\x8f\x04\x5c\x9e\x23\xf0\x6a\xd1\x4b\x87\x0c\x3e\xa9\x21\xb5'",
    "generation_time": "2025-05-13T00:06:54.754828Z"
  },
}

অথবা, যদি output_config-এ return_image_uri true তে সেট করা থাকে output_config, তাহলে এটি এরকম দেখাবে:

{
  "generated_image": {
    "uri": "https://lh3.googleusercontent.com/gps-generations/AI9LgEvIFfK0YaLKvwvIBc9ItJtJGFE6hi25o6-N3Fz6YTw57pFghfIVlCGve7eyJcQkhoAqGAf8NDzW70qjwGOCuHhiouqF2nqxBwCcfDxZPkYRl3h7CIjyev9asJw7x-0g0V_xvurfowZJ0moXu98kmV01A3Thv2ZRlTAiOPYuEb8wnY7EeyD9l48lDdwJgZ4jqxtTgrRbwvpno4NICj9q830RzATiBHuJ_WUFQJiHOMAqbGyrQIWQTQ",
    "generation_time": "2025-05-13T00:06:54.754828Z"
  }
}

কোড নমুনা

এখানে একটি কোড নমুনা দেওয়া হল যা দেখায় কিভাবে একটি পণ্যের ছবির ব্যাকগ্রাউন্ড তৈরি করতে হয়:

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.productstudio.v1alpha.GenerateImageBackgroundConfig;
import com.google.shopping.merchant.productstudio.v1alpha.GenerateProductImageBackgroundRequest;
import com.google.shopping.merchant.productstudio.v1alpha.GenerateProductImageBackgroundResponse;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceClient;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceSettings;
import com.google.shopping.merchant.productstudio.v1alpha.InputImage;
import com.google.shopping.merchant.productstudio.v1alpha.OutputImageConfig;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to create product images with generated backgrounds. */
public class GenerateProductImageBackgroundSample {

  private static String getName(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void generateProductImageBackground(Config config, String imageUri)
      throws Exception {
    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    ImageServiceSettings imageServiceSettings =
        ImageServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String name = getName(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (ImageServiceClient imageServiceClient = ImageServiceClient.create(imageServiceSettings)) {

      OutputImageConfig outputImageConfig =
          // Set this field to false to return the image bytes in the response instead.
          OutputImageConfig.newBuilder().setReturnImageUri(true).build();

      InputImage inputImage =
          InputImage.newBuilder()
              // You can also use image bytes here instead of a URI.
              .setImageUri(imageUri)
              .build();

      GenerateImageBackgroundConfig generateImageBackgroundConfig =
          GenerateImageBackgroundConfig.newBuilder()
              .setProductDescription("a jar")
              .setBackgroundDescription(
                  "sitting on a cracked stone surface surrounded by a cherry blossom tree and pink"
                      + " and white flowers in the background, high resolution, product"
                      + " photography, strong shadows and lights, creative")
              .build();

      GenerateProductImageBackgroundRequest request =
          GenerateProductImageBackgroundRequest.newBuilder()
              .setName(name)
              .setOutputConfig(outputImageConfig)
              .setInputImage(inputImage)
              .setConfig(generateImageBackgroundConfig)
              .build();

      System.out.println("Sending GenerateProductImageBackground request: " + name);
      GenerateProductImageBackgroundResponse response =
          imageServiceClient.generateProductImageBackground(request);
      System.out.println("Generated product image background response below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occurred: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // Replace with your image URI.
    String imageUri =
        "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg";
    generateProductImageBackground(config, imageUri);
  }
}

পাইথন

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_productstudio_v1alpha import GenerateImageBackgroundConfig
from google.shopping.merchant_productstudio_v1alpha import GenerateProductImageBackgroundRequest
from google.shopping.merchant_productstudio_v1alpha import ImageServiceClient
from google.shopping.merchant_productstudio_v1alpha import InputImage
from google.shopping.merchant_productstudio_v1alpha import OutputImageConfig


# Gets the merchant account ID from the user's configuration.
_ACCOUNT = configuration.Configuration().read_merchant_info()
# The name of the account to which the request is sent.
# Format: accounts/{account}
_NAME = f"accounts/{_ACCOUNT}"


def generate_product_image_background(image_uri: str) -> None:
  """Generates a product image with a custom background.

  Args:
    image_uri: The URI of the input image.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = ImageServiceClient(credentials=credentials)

  # Creates the output config.
  # Set `return_image_uri` to False to return the image bytes in the response.
  output_config = OutputImageConfig(return_image_uri=True)

  # Creates the input image.
  # You can also use image bytes here instead of a URI.
  input_image = InputImage(image_uri=image_uri)

  # Creates the generate image background config.
  generate_image_background_config = GenerateImageBackgroundConfig(
      product_description="a jar",
      background_description=(
          "sitting on a cracked stone surface surrounded by a cherry blossom"
          " tree and pink and white flowers in the background, high"
          " resolution, product photography, strong shadows and lights,"
          " creative"
      ),
  )

  # Creates the request.
  request = GenerateProductImageBackgroundRequest(
      name=_NAME,
      output_config=output_config,
      input_image=input_image,
      config=generate_image_background_config,
  )

  # Makes the request and catches and prints any error messages.
  try:
    print(f"Sending GenerateProductImageBackground request: {_NAME}")
    response = client.generate_product_image_background(request=request)
    print("Generated product image background response below:")
    print(response)
  except RuntimeError as e:
    print("Request failed.")
    print(e)


if __name__ == "__main__":
  # The URI of the image to use as the base for the generation.
  # Replace with your image URI.
  _IMAGE_URI = (
      "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
  )
  generate_product_image_background(_IMAGE_URI)


কোনও পণ্যের ছবি থেকে ব্যাকগ্রাউন্ড সরান

উদাহরণটি দেখায় কিভাবে একটি পণ্যের ছবি থেকে ব্যাকগ্রাউন্ড সরাতে হয়।

অনুরোধ

অনুরোধের বডিতে ছবি (URI অথবা বাইট) এবং ঐচ্ছিকভাবে, ব্যাকগ্রাউন্ড প্রতিস্থাপনের জন্য রঙ থাকে।

নোট:

  • [0-255] পরিসরে RGB ফর্ম্যাটে রঙের মান নির্দিষ্ট করুন।
  • যদি আপনি ব্যাকগ্রাউন্ডের রঙ নির্দিষ্ট না করেন, তাহলে এটি একটি RGBA 4-চ্যানেল স্বচ্ছ ছবি হবে।

এখানে একটি ইমেজ URI ব্যবহার করে অনুরোধ কাঠামোর একটি উদাহরণ দেওয়া হল এবং ব্যাকগ্রাউন্ড সবুজ (0, 255, 0) এ সেট করা হয়েছে:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:removeProductImageBackground

{
   "input_image": {
      "image_uri": "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
   },
   "config": {
      "background_color": {
      "red": 0,
      "green": 255,
      "blue": 0
    }
   }
}

বিকল্পভাবে, আপনি raw image বাইট ব্যবহার করে একই ফাংশন সম্পাদন করতে পারেন:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:removeProductImageBackground

{
   "input_image": {
      "image_bytes": "b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff'"
   },
   "config": {
      "background_color": {
      "red": 0,
      "green": 255,
      "blue": 0
    }
   }
}
প্রতিক্রিয়া

আপনি এরকম একটি প্রতিক্রিয়া আশা করতে পারেন:

{
  "generated_image": {
    "image_bytes": "b'\x7d\x1b\x8f\x04\x5c\x9e\x23\xf0\x6a\xd1\x4b\x87\x0c\x3e\xa9\x21\xb5'",
    "generation_time": "2025-05-13T00:06:54.754828Z"
  },
}

অথবা, যদি output_config তে return_image_uri true তে সেট করা থাকে, তাহলে এটি এরকম দেখাবে:

{
  "generated_image": {
    "uri": "https://lh3.googleusercontent.com/gps-generations/AI9LgEsYi83dcMKVV44i3vHDHzz_PJLuPyJHh9iX7IrsZ0ZIIRIS6SB4ovBmr0L9lZ1VNacZ5duwhcJ8Q8mXMYaIEArf2ieC2OuKEhRzVb-UxlkAUpitEpS5-M3Y3Ch3TGhQTZmBJXlsHLTuf0XcPwNHoNxJlgF0v_mQ6DIlPugZKC_WiYN2DNUkJivfr4WvifhMn5NaMKpDwpH4Acj-bdGNQ77M-8sj4SyEu3sHCF8ZtnMvF5DbGIYOJQ"
  }
}

কোড নমুনা

এখানে একটি কোড নমুনা দেওয়া হল যা দেখায় কিভাবে একটি পণ্যের ছবির ব্যাকগ্রাউন্ড অপসারণ করতে হয়:

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceClient;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceSettings;
import com.google.shopping.merchant.productstudio.v1alpha.InputImage;
import com.google.shopping.merchant.productstudio.v1alpha.OutputImageConfig;
import com.google.shopping.merchant.productstudio.v1alpha.RemoveImageBackgroundConfig;
import com.google.shopping.merchant.productstudio.v1alpha.RemoveProductImageBackgroundRequest;
import com.google.shopping.merchant.productstudio.v1alpha.RemoveProductImageBackgroundResponse;
import com.google.shopping.merchant.productstudio.v1alpha.RgbColor;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to create product images with the background removed. */
public class RemoveProductImageBackgroundSample {

  private static String getName(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void removeProductImageBackground(Config config, String imageUri) throws Exception {
    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    ImageServiceSettings imageServiceSettings =
        ImageServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String name = getName(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (ImageServiceClient imageServiceClient = ImageServiceClient.create(imageServiceSettings)) {

      OutputImageConfig outputImageConfig =
          // Set this field to false to return the image bytes in the response instead.
          OutputImageConfig.newBuilder().setReturnImageUri(true).build();

      InputImage inputImage =
          InputImage.newBuilder()
              // You can also use image bytes here instead of a URI.
              .setImageUri(imageUri)
              .build();

      RemoveImageBackgroundConfig removeImageBackgroundConfig =
          RemoveImageBackgroundConfig.newBuilder()
              // Setting the background color to green. Don't set this field if you want the image
              // to have a RGBA 4-channel transparent image as the background.
              .setBackgroundColor(RgbColor.newBuilder().setRed(0).setGreen(255).setBlue(0))
              .build();

      RemoveProductImageBackgroundRequest request =
          RemoveProductImageBackgroundRequest.newBuilder()
              .setName(name)
              .setOutputConfig(outputImageConfig)
              .setInputImage(inputImage)
              .setConfig(removeImageBackgroundConfig)
              .build();

      System.out.println("Sending RemoveProductImageBackground request: " + name);
      RemoveProductImageBackgroundResponse response =
          imageServiceClient.removeProductImageBackground(request);
      System.out.println("Removed product image background response below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occurred: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // Replace with your image URI.
    String imageUri =
        "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg";
    removeProductImageBackground(config, imageUri);
  }
}

পাইথন

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_productstudio_v1alpha import ImageServiceClient
from google.shopping.merchant_productstudio_v1alpha import InputImage
from google.shopping.merchant_productstudio_v1alpha import OutputImageConfig
from google.shopping.merchant_productstudio_v1alpha import RemoveImageBackgroundConfig
from google.shopping.merchant_productstudio_v1alpha import RemoveProductImageBackgroundRequest
from google.shopping.merchant_productstudio_v1alpha import RgbColor

# Gets the merchant account ID from the user's configuration.
_ACCOUNT = configuration.Configuration().read_merchant_info()
# The name of the account to which the request is sent.
# Format: accounts/{account}
_NAME = f"accounts/{_ACCOUNT}"


def remove_product_image_background(image_uri: str) -> None:
  """Removes the background from a product image.

  Args:
    image_uri: The URI of the input image.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = ImageServiceClient(credentials=credentials)

  # Creates the output config.
  # Set `return_image_uri` to False to return the image bytes in the response.
  output_config = OutputImageConfig(return_image_uri=True)

  # Creates the input image.
  # You can also use image bytes here instead of a URI.
  input_image = InputImage(image_uri=image_uri)

  # Creates the remove image background config.
  # Setting the background color to green. Don't set this field if you want the
  # image to have a RGBA 4-channel transparent image as the background.
  remove_image_background_config = RemoveImageBackgroundConfig(
      background_color=RgbColor(red=0, green=255, blue=0)
  )

  # Creates the request.
  request = RemoveProductImageBackgroundRequest(
      name=_NAME,
      output_config=output_config,
      input_image=input_image,
      config=remove_image_background_config,
  )

  # Makes the request and catches and prints any error messages.
  try:
    print(f"Sending RemoveProductImageBackground request: {_NAME}")
    response = client.remove_product_image_background(request=request)
    print("Removed product image background response below:")
    print(response)
  except RuntimeError as e:
    print("Request failed.")
    print(e)


if __name__ == "__main__":
  # The URI of the image to remove the background from.
  # Replace with your image URI.
  _IMAGE_URI = (
      "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
  )
  remove_product_image_background(_IMAGE_URI)


একটি পণ্যের ছবি আপস্কেল করুন

উদাহরণটি দেখায় কিভাবে আপনার পণ্যের ছবির মান এবং আকার উন্নত করা যায়।

অনুরোধ

অনুরোধের বডিতে ছবি (URI অথবা বাইট) থাকে। এখানে একটি ছবি URI ব্যবহার করে অনুরোধের কাঠামোর একটি উদাহরণ দেওয়া হল:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:upscaleProductImage

{
   "input_image": {
      "image_uri": "https://services.google.com/fh/files/misc/ring_image_400_600.jpg"
   }
}

বিকল্পভাবে, আপনি এর পরিবর্তে কাঁচা চিত্র বাইট ব্যবহার করতে পারেন:

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:upscaleProductImage

{
   "input_image": {
      "image_bytes": "b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff'"
   }
}
প্রতিক্রিয়া

তুমি এরকম একটা প্রতিক্রিয়া আশা করতে পারো

{
  "generated_image": {
    "image_bytes": "b'\x7d\x1b\x8f\x04\x5c\x9e\x23\xf0\x6a\xd1\x4b\x87\x0c\x3e\xa9\x21\xb5'",
    "generation_time": "2025-05-13T00:06:54.754828Z"
  },
}

অথবা, যদি output_config-এ return_image_uri true তে সেট করা থাকে output_config, তাহলে এটি এরকম দেখাবে:

{
  "generated_image": {
    "uri": "https://lh3.googleusercontent.com/gps-generations/AI9LgEvIFfK0YaLKvwvIBc9ItJtJGFE6hi25o6-N3Fz6YTw57pFghfIVlCGve7eyJcQkhoAqGAf8NDzW70qjwGOCuHhiouqF2nqxBwCcfDxZPkYRl3h7CIjyev9asJw7x-0g0V_xvurfowZJ0moXu98kmV01A3Thv2ZRlTAiOPYuEb8wnY7EeyD9l48lDdwJgZ4jqxtTgrRbwvpno4NICj9q830RzATiBHuJ_WUFQJiHOMAqbGyrQIWQTQ"
  }
}

কোড নমুনা

এখানে একটি কোড নমুনা দেওয়া হল যা দেখায় কিভাবে একটি পণ্যের ছবি আপস্কেল করা যায়:

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceClient;
import com.google.shopping.merchant.productstudio.v1alpha.ImageServiceSettings;
import com.google.shopping.merchant.productstudio.v1alpha.InputImage;
import com.google.shopping.merchant.productstudio.v1alpha.OutputImageConfig;
import com.google.shopping.merchant.productstudio.v1alpha.UpscaleProductImageRequest;
import com.google.shopping.merchant.productstudio.v1alpha.UpscaleProductImageResponse;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to create upscaled product images. */
public class UpscaleProductImageSample {

  private static String getName(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void upscaleProductImage(Config config, String imageUri) throws Exception {
    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    ImageServiceSettings imageServiceSettings =
        ImageServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String name = getName(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (ImageServiceClient imageServiceClient = ImageServiceClient.create(imageServiceSettings)) {

      OutputImageConfig outputImageConfig =
          // Set this field to false to return the image bytes in the response instead.
          OutputImageConfig.newBuilder().setReturnImageUri(true).build();

      InputImage inputImage =
          InputImage.newBuilder()
              // You can also use image bytes here instead of a URI.
              .setImageUri(imageUri)
              .build();

      UpscaleProductImageRequest request =
          UpscaleProductImageRequest.newBuilder()
              .setName(name)
              .setOutputConfig(outputImageConfig)
              .setInputImage(inputImage)
              .build();

      System.out.println("Sending UpscaleProductImage request: " + name);
      UpscaleProductImageResponse response = imageServiceClient.upscaleProductImage(request);
      System.out.println("Upscaled product image response below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occurred: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // Replace with your image URI.
    String imageUri = "https://services.google.com/fh/files/misc/ring_image_400_600.jpg";
    upscaleProductImage(config, imageUri);
  }
}

পাইথন

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_productstudio_v1alpha import ImageServiceClient
from google.shopping.merchant_productstudio_v1alpha import InputImage
from google.shopping.merchant_productstudio_v1alpha import OutputImageConfig
from google.shopping.merchant_productstudio_v1alpha import UpscaleProductImageRequest

# Gets the merchant account ID from the user's configuration.
_ACCOUNT = configuration.Configuration().read_merchant_info()
# The name of the account to which the request is sent.
# Format: accounts/{account}
_NAME = f"accounts/{_ACCOUNT}"


def upscale_product_image(image_uri: str) -> None:
  """Upscales a product image.

  Args:
    image_uri: The URI of the input image.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = ImageServiceClient(credentials=credentials)

  # Creates the output config.
  # Set `return_image_uri` to False to return the image bytes in the response.
  output_config = OutputImageConfig(return_image_uri=True)

  # Creates the input image.
  # You can also use image bytes here instead of a URI.
  input_image = InputImage(image_uri=image_uri)

  # Creates the request.
  request = UpscaleProductImageRequest(
      name=_NAME, output_config=output_config, input_image=input_image
  )

  # Makes the request and catches and prints any error messages.
  try:
    print(f"Sending UpscaleProductImage request: {_NAME}")
    response = client.upscale_product_image(request=request)
    print("Upscaled product image response below:")
    print(response)
  except RuntimeError as e:
    print("Request failed.")
    print(e)


if __name__ == "__main__":
  # The URI of the image to upscale.
  # Replace with your image URI.
  _IMAGE_URI = "https://services.google.com/fh/files/misc/ring_image_400_600.jpg"
  upscale_product_image(_IMAGE_URI)


সাধারণ ত্রুটি এবং সমস্যা

এখানে কিছু সাধারণ সমস্যা এবং তাদের সমাধান দেওয়া হল।

"ইনপুট ইমেজ প্রয়োজন"

যদি আপনি নিম্নলিখিত ত্রুটি বার্তাটি পান, তাহলে অনুরোধের বডিতে input_image যোগ করুন:

Error message:
"error": {
    "code": 400,
    "message": "[input_image] Input image is required to generate product image background.",
    "status": "INVALID_ARGUMENT",
 ...
}

"ছবির অন্তত একটি ক্ষেত্র প্রয়োজন"

যদি আপনি নিম্নলিখিত ত্রুটি বার্তাটি পান, তাহলে অনুরোধের বডিতে image_uri বা image_bytes এর মধ্যে কেবল একটি সঠিকভাবে পূরণ করুন।

Error message:
"error": {
    "code": 400,
    "message": "[input_image.image] At least one field of image is required to generate product image background.",
    "status": "INVALID_ARGUMENT",
 ...
}

উদাহরণস্বরূপ, এটি পোস্ট করলে একটি ত্রুটি দেখা দেবে।

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:generateProductImageBackground

{
   "config": {
      "product_description": "a jar",
      "background_description": "sitting on a cracked stone surface surrounded by a cherry blossom tree and pink and white flowers in the background, high resolution, product photography, strong shadows and lights, creative"
   }
}

"পণ্যের ছবির ব্যাকগ্রাউন্ড তৈরি করতে কনফিগ প্রয়োজন"

যদি আপনি এই ত্রুটিটি পান, তাহলে অনুরোধের বডিতে config যোগ করুন এবং product_description এবং background_description উভয়ই পূরণ করুন:

Error message:
"error": {
    "code": 400,
    "message": "[config] Config is required to generate product image background.",
    "status": "INVALID_ARGUMENT",
 ...
}

উদাহরণস্বরূপ, এটি পোস্ট করার ফলে একটি ত্রুটি দেখা দেয়।

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:generateProductImageBackground

{
   "input_image": {
      "image_uri": "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
   }
}

"পণ্যের ছবির ব্যাকগ্রাউন্ড তৈরি করতে পণ্যের বিবরণ প্রয়োজন"

যদি আপনি নিম্নলিখিত দুটি ত্রুটি বার্তার যেকোনো একটি পান, তাহলে configproduct_description এবং background_description উভয়ই পূরণ করতে ভুলবেন না:

এটি একটি অনুপস্থিত পণ্যের বিবরণের উদাহরণ:

Error message:
"error": {
    "code": 400,
    "message": "[config.product_description] Product description is required to generate product image background.",
    "status": "INVALID_ARGUMENT",
 ...
}

এটি একটি অনুপস্থিত পটভূমি বিবরণের একটি উদাহরণ:

Error message:
"error": {
    "code": 400,
    "message": "[config.background_description] Background description is required to generate product image background.",
    "status": "INVALID_ARGUMENT",
 ...
}

উদাহরণস্বরূপ, নিম্নলিখিত অনুরোধটি চালানোর ফলে একটি ত্রুটি দেখা দেবে।

POST https://merchantapi.googleapis.com/productstudio/v1alpha/accounts/{ACCOUNT_ID}/generatedImages:generateProductImageBackground

{
   "input_image": {
      "image_uri": "https://services.google.com/fh/files/misc/abundance_intention_bath_salts.jpg"
   },
   "config": {
   }
}