মূল কনটেন্টে যান
এআই টিউটোরিয়াল

APIMart-এর মাধ্যমে GPT-Image-2.5 দিয়ে ছবি তৈরি ও সম্পাদনা

cURL ও Python ব্যবহার করে APIMart গেটওয়ের মাধ্যমে GPT-Image-2.5 কীভাবে কল করতে হয় তা জানুন। এই টিউটোরিয়ালে Flare ও Sunburst রুট, ফ্ল্যাট বনাম টোকেনভিত্তিক বিলিং, টেক্সট-টু-ইমেজ ও রেফারেন্সভিত্তিক সম্পাদনা, অ্যাসিনক্রোনাস টাস্ক পোলিং, আউটপুট ব্যবস্থাপনা এবং প্রোডাকশনে ব্যবহারের বাস্তব পরামর্শ ব্যাখ্যা করা হয়েছে।

APIMart-এর মাধ্যমে GPT-Image-2.5 দিয়ে ছবি তৈরি ও সম্পাদনা

image2.5 APIMart গেটওয়ে কী করে

image2.5 গেটওয়ে APIMart API-এর মাধ্যমে GPT Image 2.5-এর জেনারেশন ও এডিটিং পরিবারের অ্যাক্সেস প্রদান করে। প্রতিটি ইমেজ মডেলের জন্য আলাদা ক্রেডেনশিয়াল ও রিকোয়েস্ট ফরম্যাট ইন্টিগ্রেট করার পরিবর্তে, আপনি একটি বেস URL, একটি bearer token এবং OpenAI-স্টাইলের /v1/images/generations এন্ডপয়েন্ট ব্যবহার করেন।

API-টি অ্যাসিঙ্ক্রোনাস। একটি জেনারেশন রিকোয়েস্ট ইনলাইন ইমেজের পরিবর্তে একটি task ID ফেরত দেয়। এরপর প্রসেসিং সম্পন্ন বা ব্যর্থ না হওয়া পর্যন্ত আপনার অ্যাপ্লিকেশন টাস্ক এন্ডপয়েন্টে পোল করে। সফল টাস্কগুলোতে সাময়িক আউটপুট URL থাকে, যেগুলো মেয়াদ শেষ হওয়ার আগে ডাউনলোড করা উচিত।

রিপোজিটরি অনুযায়ী নথিভুক্ত সার্ভিসটি হলো APIMart। gpt-image-2.5-ext এন্ডপয়েন্টটি একটি তৃতীয় পক্ষের রিলে রুট, আর gpt-image-2.5-flare ও gpt-image-2.5-sunburst হলো টোকেন-ভিত্তিক বিলিংয়ের রুট। প্রোডাকশনে চালানোর আগে বর্তমান সীমা ও মূল্য যাচাই করুন।

মূল বৈশিষ্ট্য

  • একটি API বেস URL: রিকোয়েস্টে https://api.apimart.ai/v1 ব্যবহার করা হয়।
  • দুটি মডেল ভ্যারিয়েন্ট: দৈনন্দিন জেনারেশন ও ব্যাচ ড্রাফটের জন্য Flare, অথবা নিখুঁত এডিটিং ও প্রোডাকশনমুখী অ্যাসেটের জন্য Sunburst বেছে নিন।
  • দুটি বিলিং পদ্ধতি: রিলে করা রুটে সরবরাহ করা প্রতিটি ইমেজ অনুযায়ী বিল হয়, আর অফিসিয়াল রুটগুলোতে টোকেন-ভিত্তিক বিলিং ব্যবহৃত হয়।
  • অ্যাসিঙ্ক্রোনাস প্রসেসিং: একটি রিকোয়েস্ট জমা দিন এবং অগ্রগতির জন্য GET /v1/tasks/{task_id}-এ পোল করুন।
  • একাধিক আউটপুট স্তর: রিলে করা রুটে 1K, 2K এবং 4K সমর্থিত।
  • নমনীয় কম্পোজিশন: দশটি অ্যাসপেক্ট রেশিও থেকে বেছে নিন অথবা auto ব্যবহার করুন।
  • রেফারেন্স-নির্ভর জেনারেশন: ইমেজ-টু-ইমেজ বা এডিটিংয়ের জন্য image_urls-এ সর্বোচ্চ 16টি এন্ট্রি দিন।
  • ছোট ব্যাচ: রিলে করা রুটে n ব্যবহার করে এক থেকে চারটি সরবরাহযোগ্য ইমেজের অনুরোধ করুন।

সঠিক মডেল রুট বেছে নিন

প্রতি-ইমেজ বিলিংয়ের রিলে রুট

প্রতি সরবরাহযোগ্য ইমেজে নির্দিষ্ট বিলিং চাইলে model: "gpt-image-2.5-ext" ব্যবহার করুন। version: "flare" অথবা version: "sunburst" দিয়ে অন্তর্নিহিত ভ্যারিয়েন্ট বেছে নিন।

  • flare উচ্চ-পরিমাণের জেনারেশন, দৈনন্দিন ইমেজ ও ড্রাফটের জন্য উপযোগী।
  • sunburst এডিটিং ও রেফারেন্স-নির্ভর প্রোডাকশন কাজের জন্য উপযোগী।

রিপোজিটরিতে 16 সেপ্টেম্বর, 2026 তারিখে উভয় ভ্যারিয়েন্টের জন্য প্রতি সরবরাহযোগ্য 1K ইমেজে $0.0085 মূল্য দেখা গেছে। এছাড়াও 2K-এর জন্য $0.014, 4K Flare-এর জন্য $0.021 রেকর্ড করা হয়েছে এবং 4K Sunburst-এর বর্তমান মূল্য যাচাই করার পরামর্শ দেওয়া হয়েছে। এগুলো পর্যবেক্ষণের তারিখভিত্তিক তথ্য, স্থায়ী নিশ্চয়তা নয়।

অফিসিয়াল টোকেন-ভিত্তিক বিলিংয়ের রুট

টোকেন-ভিত্তিক বিলিংয়ের জন্য সরাসরি gpt-image-2.5-flare অথবা gpt-image-2.5-sunburst ব্যবহার করুন। এই রুটগুলোতে version ফিল্ড থাকে না এবং low, medium, high, xhigh ও max কোয়ালিটি ল্যাডার সমর্থিত। অফিসিয়াল রুটে নির্দিষ্ট পিক্সেল মাত্রাও সমর্থিত।

ব্যবহারিক নিয়ম হিসেবে, নির্দিষ্ট প্রতি-ইমেজ খরচ গুরুত্বপূর্ণ হলে রিলে করা রুট ব্যবহার করুন, আর কোয়ালিটি নিয়ন্ত্রণ বা নির্দিষ্ট মাত্রা প্রয়োজন হলে অফিসিয়াল রুট বিবেচনা করুন।

আউটপুটের উদাহরণ পরিসর

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

GPT Image 2.5 দিয়ে তৈরি আউটপুটের উদাহরণ

GPT Image 2.5 দিয়ে তৈরি দ্বিতীয় আউটপুট

ইনস্টলেশন ও সেটআপ

1. একটি API key তৈরি করুন

APIMart-এর API key পেজ থেকে একটি key সংগ্রহ করুন। এটি সরাসরি সোর্স কোডে না রেখে একটি environment variable-এ সংরক্ষণ করুন।

export APIMART_API_KEY="your-api-key"

2. একটি ক্লায়েন্ট বেছে নিন

cURL-এর জন্য স্ট্যান্ডার্ড কমান্ড-লাইন ইনস্টলেশনের বাইরে কোনো প্রজেক্ট নির্ভরতা প্রয়োজন নেই। Python উদাহরণের জন্য requests প্যাকেজ ইনস্টল করুন:

python -m pip install requests

রিপোজিটরিতে Node.js 18 বা পরবর্তী সংস্করণের জন্য একটি JavaScript উদাহরণও রয়েছে, যেখানে fetch গ্লোবালি উপলভ্য।

3. রিকোয়েস্ট হেডার বুঝে নিন

Authorization হেডারে API key পাঠান। রিলে-রুটের উদাহরণগুলোতে একটি response-version header এবং একটি অনন্য idempotency key-ও ব্যবহার করা হয়েছে।

  • Authorization: Bearer $APIMART_API_KEY
  • Content-Type: application/json
  • X-APIMart-Response-Version: 2026-07-27
  • Idempotency-Key: unique-request-value

একই submission পুনরায় চেষ্টা করার সময় একই idempotency key ব্যবহার করুন। ইচ্ছাকৃতভাবে নতুন ইমেজ টাস্ক চাইলে নতুন key তৈরি করুন।

মৌলিক ব্যবহার: cURL দিয়ে একটি ইমেজ জেনারেট করুন

নিচের রিকোয়েস্টটি প্রতি-ইমেজ রুট ব্যবহার করে, Flare নির্বাচন করে এবং একটি বর্গাকার 1K ইমেজের অনুরোধ জানায়:

IDEMPOTENCY_KEY="$(uuidgen)"

curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header "Authorization: Bearer $APIMART_API_KEY" \
  --header "Content-Type: application/json" \
  --header "X-APIMart-Response-Version: 2026-07-27" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data '{
    "model": "gpt-image-2.5-ext",
    "version": "flare",
    "prompt": "A cozy reading nook beside a window on a rainy day, warm table lamp, cinematic lighting",
    "size": "1:1",
    "resolution": "1K",
    "n": 1
  }'

সফলভাবে সাবমিট করলে HTTP 202 ফেরত আসে। data.id থেকে টাস্ক শনাক্তকারী পড়ুন অথবা ফেরত আসা data.poll_url ব্যবহার করুন।

টাস্কের স্ট্যাটাস দেখুন

ফেরত আসা টাস্ক ID দিয়ে task_01EXAMPLE প্রতিস্থাপন করুন:

curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01EXAMPLE \
  --header "Authorization: Bearer $APIMART_API_KEY" \
  --header "X-APIMart-Response-Version: 2026-07-27"

টাস্কের স্ট্যাটাস pending এবং processing অতিক্রম করে completed অথবা failed-এ পৌঁছায়। প্রতিক্রিয়ায় progress, cost এবং credits_cost-ও থাকতে পারে। সম্পন্ন হলে result.images[].url থেকে ছবির URL সংগ্রহ করুন এবং expires_at পরীক্ষা করুন।

শুরু থেকে শেষ পর্যন্ত Python উদাহরণ

এই উদাহরণটি একটি ছবি সাবমিট করে এবং টাস্কটি চূড়ান্ত অবস্থায় পৌঁছানো পর্যন্ত প্রতি পাঁচ সেকেন্ডে পরীক্ষা করে:

import os
import time
import uuid
import requests

BASE_URL = "https://api.apimart.ai/v1"
COMMON_HEADERS = {
    "Authorization": f"Bearer {os.environ['APIMART_API_KEY']}",
    "Content-Type": "application/json",
    "X-APIMart-Response-Version": "2026-07-27",
}

def generate_image(prompt, version="flare", resolution="1K", size="1:1"):
    submit_headers = {
        **COMMON_HEADERS,
        "Idempotency-Key": str(uuid.uuid4()),
    }

    response = requests.post(
        f"{BASE_URL}/images/generations",
        headers=submit_headers,
        json={
            "model": "gpt-image-2.5-ext",
            "version": version,
            "prompt": prompt,
            "size": size,
            "resolution": resolution,
            "n": 1,
        },
        timeout=60,
    )
    response.raise_for_status()
    task_id = response.json()["data"]["id"]

    while True:
        task_response = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers=COMMON_HEADERS,
            timeout=60,
        )
        task_response.raise_for_status()
        task = task_response.json()["data"]

        if task["status"] == "completed":
            return task
        if task["status"] == "failed":
            raise RuntimeError(f"Generation failed: {task}")

        time.sleep(5)

result = generate_image(
    "A sky garden at dawn, architectural photography",
    version="flare",
    resolution="1K",
    size="16:9",
)

for image in result["result"]["images"]:
    print(image["url"], image.get("expires_at"))

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

এডিটিংয়ের জন্য রেফারেন্স ছবি ব্যবহার

রিলে করা রুটে image-to-image জেনারেশন বা এডিটিং করতে image_urls অ্যারে যোগ করুন। এতে সর্বোচ্চ 16টি URL বা ডেটা URL থাকতে পারে। রিপোজিটরি অনুযায়ী, এই রুটে রেফারেন্স ছবির জন্য অতিরিক্ত আলাদা চার্জ লাগে না।

{
  "model": "gpt-image-2.5-ext",
  "version": "sunburst",
  "prompt": "Preserve the product label, replace the background with soft off-white, and add a natural cast shadow",
  "image_urls": [
    "https://example.com/source-product.jpg"
  ],
  "size": "1:1",
  "resolution": "2K",
  "n": 1
}

এডিটিংয়ের নির্ভুলতা এবং রেফারেন্স-নির্ভর কাজের জন্য রিপোজিটরিতে Sunburst ভ্যারিয়েন্ট ব্যবহারের পরামর্শ দেওয়া হয়েছে। অ্যাক্সেসযোগ্য URL বা বৈধ ডেটা URL ব্যবহার করুন এবং তালিকাটি নথিভুক্ত সীমার মধ্যে রাখুন।

রিলে করা রুটের রিকোয়েস্ট ফিল্ড রেফারেন্স

  • model: আবশ্যক। এটি gpt-image-2.5-ext সেট করুন।
  • version: flare অথবা sunburst গ্রহণ করে; ডিফল্ট হলো Flare।
  • prompt: আবশ্যক এবং ট্রিম করার পর খালি থাকা যাবে না।
  • resolution: 1K, 2K অথবা 4K গ্রহণ করে; ডিফল্ট হলো 1K।
  • size: auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5 অথবা 21:9 গ্রহণ করে।
  • n: 1 থেকে 4 পর্যন্ত একটি পূর্ণসংখ্যা গ্রহণ করে।
  • image_urls: সর্বোচ্চ 16টি রেফারেন্স URL বা ডেটা URL-সম্বলিত একটি ঐচ্ছিক অ্যারে।

টোকেন-ভিত্তিক চার্জের রুট কল করা

অফিশিয়াল রুটটি একই জেনারেশন পাথ ব্যবহার করে, তবে মডেল ID পরিবর্তন করে, version সরিয়ে দেয় এবং একটি কোয়ালিটি সেটিং যোগ করে। এই উদাহরণে উচ্চ কোয়ালিটিসহ Sunburst নির্বাচন করা হয়েছে:

curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header "Authorization: Bearer $APIMART_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "gpt-image-2.5-sunburst",
    "prompt": "Preserve the product label, replace the background with soft off-white, add a natural cast shadow",
    "size": "1:1",
    "resolution": "1k",
    "quality": "high",
    "n": 1
  }'

বর্তমান ফিল্ডের সংজ্ঞার জন্য অফিশিয়াল-রুট রেফারেন্স এবং রিলে করা রুটের রেফারেন্স দেখুন।

নির্ভরযোগ্য ইন্টিগ্রেশনের জন্য উন্নত পরামর্শ

  1. রিট্রাইকে আইডেমপোটেন্ট করুন। কোনো সাবমিশন টাইম-আউট হলে এবং টাস্ক তৈরি হয়েছে কি না নিশ্চিত না থাকলে, মূল আইডেমপোটেন্সি কী সংরক্ষণ করুন। নতুন কী ব্যবহার করলে আরেকটি বিলযোগ্য জেনারেশন তৈরি হতে পারে।
  2. পোলিংকে স্বাভাবিক ওয়ার্কফ্লো হিসেবে বিবেচনা করুন। completed এবং failed উভয় অবস্থাই পরিচালনা করুন। দ্রুত ঘন ঘন পোলিং এড়িয়ে চলুন; রিপোজিটরির উদাহরণে প্রতিটি চেকের মধ্যে পাঁচ সেকেন্ড অপেক্ষা করা হয়।
  3. ফেরত দেওয়া পোল URL ব্যবহার করুন। রেসপন্সে data.poll_url থাকে, তাই ম্যানুয়ালি টাস্ক এন্ডপয়েন্ট পুনর্গঠন করতে হয় না।
  4. আউটপুট দ্রুত ডাউনলোড করুন। জেনারেট করা ছবির URL অস্থায়ী। প্রতিটি আউটপুটের expires_at সময়ের আগে তা নিজের স্টোরেজে কপি করুন।
  5. প্রকৃত খরচ রেকর্ড করুন। টাস্ক রেসপন্স থেকে cost এবং credits_cost সংরক্ষণ করুন। এতে পর্যবেক্ষিত বিলিংয়ের সঙ্গে প্রকাশিত মূল্যের তুলনা করা যায়।
  6. একটি পেইড রিকোয়েস্ট দিয়ে খরচ যাচাই করুন। মূল্য এবং প্রচারণামূলক রাউটিং পরিবর্তিত হতে পারে, তাই বড় ব্যাচ চালুর আগে ছোট একটি পরীক্ষা করুন।
  7. উপযুক্ত রুট ব্যবহার করুন। পূর্বানুমানযোগ্য প্রতি-ছবি বিলিং এবং সর্বোচ্চ চারটি ছবির ব্যাচের জন্য রিলে করা রুট বেছে নিন। কোয়ালিটি ল্যাডার বা নির্দিষ্ট পিক্সেল নিয়ন্ত্রণ গুরুত্বপূর্ণ হলে একটি অফিসিয়াল মডেল ID বেছে নিন।
  8. ক্লায়েন্ট পুনর্লিখন না করে ভ্যারিয়েন্ট বদলান। রিলে করা রুটে flare এবং sunburst-এর মধ্যে বদলাতে শুধু version পরিবর্তন করুন।
  9. ক্রেডেনশিয়াল সুরক্ষিত রাখুন। API কী পরিবেশ ভেরিয়েবল বা সিক্রেটস ম্যানেজারে রাখুন এবং কখনোই ব্রাউজার-সাইড কোডে প্রকাশ করবেন না।

উপসংহার

APIMart-এর image2.5 গেটওয়ে GPT Image 2.5 জেনারেশন ও এডিটিংয়ে ধারাবাহিকভাবে অ্যাক্সেস পাওয়ার একটি উপায় দেয়। পূর্বানুমানযোগ্য, উচ্চ-ভলিউম জেনারেশনের জন্য gpt-image-2.5-ext এবং Flare দিয়ে শুরু করুন, এডিটিং বা রেফারেন্স-নির্ভর কাজের জন্য Sunburst-এ পরিবর্তন করুন, আর টোকেনভিত্তিক বিলিং ও বিস্তৃত কোয়ালিটি নিয়ন্ত্রণ কাজটির জন্য বেশি উপযোগী হলে অফিসিয়াল মডেল ID ব্যবহার করুন।

প্রয়োজনীয় ইন্টিগ্রেশন প্যাটার্নটি সহজ: ছবির রিকোয়েস্ট সাবমিট করুন, ফেরত পাওয়া টাস্ক ID সংরক্ষণ করুন, সম্পন্ন না হওয়া পর্যন্ত পোল করুন, রিপোর্ট করা খরচ পরীক্ষা করুন এবং অস্থায়ী URL-এর মেয়াদ শেষ হওয়ার আগে প্রতিটি ফলাফল ডাউনলোড করুন। স্কেল করার আগে বর্তমান APIMart মূল্যতালিকা পর্যালোচনা করুন এবং একটি ছোট পেইড রিকোয়েস্ট দিয়ে নির্বাচিত রুট যাচাই করুন।