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

APIMart API-এর মাধ্যমে GPT Image 2.5 দিয়ে ছবি তৈরি করুন

APIMart-এর অ্যাসিনক্রোনাস ইমেজ API-এর মাধ্যমে GPT Image 2.5 কল করার পদ্ধতি শিখুন। এই টিউটোরিয়ালে মডেল নির্বাচন, API সেটআপ, curl ও Python উদাহরণ, টাস্ক পোলিং, প্রম্পট তৈরি, রেফারেন্স ছবি, মূল্য যাচাই, রিট্রাই এবং সাময়িক আউটপুট URL পরিচালনার জন্য প্রোডাকশন-প্রস্তুত পদ্ধতি দেখানো হয়েছে।

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

এই প্রকল্পটি যা প্রদান করে

image2.5 Prompt Gallery হলো ১২টি প্রম্পটের একটি ব্যবহারিক সংগ্রহ, যেগুলো GPT Image 2.5-এর মাধ্যমে চালানো হয়েছে এবং ফলস্বরূপ তৈরি ছবির সঙ্গে প্রকাশ করা হয়েছে। প্রতিটি রেসিপিতে প্রম্পট, মডেল সংস্করণ, অ্যাসপেক্ট রেশিও এবং আউটপুট উল্লেখ করা আছে, ফলে নিজের অ্যাপ্লিকেশনে মানিয়ে নেওয়ার আগে কোনো প্রম্পট মূল্যায়ন করা সহজ হয়।

উদাহরণগুলো APIMart-এর OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট https://api.apimart.ai/v1 ব্যবহার করে। রিলে করা রুটটি অ্যাসিঙ্ক্রোনাস: আপনার অ্যাপ্লিকেশন একটি ছবি তৈরির অনুরোধ পাঠায়, একটি টাস্ক আইডি পায়, টাস্ক এন্ডপয়েন্টে পোল করে এবং প্রসেসিং শেষ হওয়ার পর ছবি ডাউনলোড করে।

GPT Image 2.5 গ্যালারি রেন্ডারের উদাহরণ

প্রধান বৈশিষ্ট্য

  • OpenAI-সামঞ্জস্যপূর্ণ জেনারেশন পাথ: অনুরোধ POST /v1/images/generations-এ পাঠানো হয়।
  • দুটি রিলে করা ভ্যারিয়েন্ট: দৈনন্দিন জেনারেশনের জন্য version: "flare" অথবা এডিটিং ও রেফারেন্স-নির্ভর কাজের জন্য version: "sunburst" ব্যবহার করুন।
  • একাধিক আউটপুট স্তর: 1K, 2K অথবা 4K বেছে নিন।
  • নমনীয় ফ্রেমিং: auto অথবা সমর্থিত দশটি অ্যাসপেক্ট রেশিওর যেকোনো একটি ব্যবহার করুন, যার মধ্যে 1:1, 16:9, 9:16 এবং 4:3 রয়েছে।
  • ব্যাচ আউটপুট: n ব্যবহার করে এক থেকে চারটি ছবি অনুরোধ করুন।
  • রেফারেন্স-ছবি সমর্থন: image_urls-এ সর্বোচ্চ ১৬টি URL বা ডেটা URL দিন।
  • প্রতি-কল খরচের প্রতিবেদন: সম্পন্ন টাস্কের ডেটায় cost এবং credits_cost থাকে।
  • আইডেমপোটেন্ট রিট্রাই: একই সাবমিশন পুনরায় পাঠানোর সময় ডুপ্লিকেট কাজ প্রতিরোধে সহায়তার জন্য API একটি Idempotency-Key হেডার গ্রহণ করে।

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

APIMart রিলে করা এবং অফিসিয়াল GPT Image 2.5—দুই ধরনের রুটই প্রকাশ করে। এগুলোর অনুরোধের ফিল্ড ও বিলিং পদ্ধতি আলাদা, তাই ইন্টিগ্রেশন লেখার আগে রুট বেছে নিন।

রিলে করা প্রতি-ছবির রুট

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

  • flare: দৈনন্দিন জেনারেশন ও ব্যাচ ড্রাফটের জন্য উপযোগী।
  • sunburst: নিখুঁত এডিটিং এবং রেফারেন্স, অবজেক্ট, লোগো বা পণ্যের লেবেল অক্ষুণ্ণ রাখতে হয় এমন কাজের জন্য উপযোগী।

অফিসিয়াল টোকেন-বিলড রুট

সরাসরি gpt-image-2.5-flare অথবা gpt-image-2.5-sunburst ব্যবহার করুন। এই মডেল আইডিগুলোর সঙ্গে version ফিল্ড পাঠাবেন না। অফিসিয়াল রুটে টোকেন অনুযায়ী বিল করা হয় এবং low থেকে max পর্যন্ত একটি কোয়ালিটি ল্যাডার, পাশাপাশি নির্দিষ্ট পিক্সেল মাত্রা সমর্থিত।

রুটের ফরম্যাট মিশিয়ে ফেলবেন না। gpt-image-2.5-ext অ্যালিয়াসের জন্য একটি ভার্সন সিলেক্টর প্রয়োজন, কিন্তু অফিসিয়াল মডেল আইডিগুলোর সঙ্গে এটি থাকা যাবে না।

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

১. অ্যাকাউন্ট তৈরি ও অর্থ জমা দিন

APIMart কী পেজ থেকে একটি API কী নিন। রিপোজিটরি অনুযায়ী, এই সার্ভিসে কোনো ফ্রি কোটা নেই এবং $1 থেকে টপ-আপ সমর্থন করে।

২. একটি এনভায়রনমেন্ট ভেরিয়েবলে কী সংরক্ষণ করুন

export APIMART_API_KEY="your-api-key"

অ্যাপ্লিকেশনের সোর্স কোডে সরাসরি কী রাখা বা এটি ভার্সন কন্ট্রোলে কমিট করা এড়িয়ে চলুন।

৩. Python নির্ভরতা ইনস্টল করুন

Python উদাহরণে তৃতীয় পক্ষের requests প্যাকেজ ব্যবহার করা হয়েছে।

python -m pip install requests

আপনি curl ব্যবহার করতে চাইলে, আপনার শেলে curl এবং uuidgen-এর মতো একটি UUID জেনারেটর উপলভ্য আছে কিনা নিশ্চিত করুন।

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": "বৃষ্টির দিনে জানালার পাশে একটি আরামদায়ক পড়ার কোণ, উষ্ণ টেবিল ল্যাম্প, সিনেমাটিক আলো",
    "size": "1:1",
    "resolution": "1K",
    "n": 1
  }'

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

টাস্কে পোল করুন

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

টাস্কটি সাধারণত pending থেকে processing-এ যায়, এরপর completed অথবা failed হিসেবে শেষ হয়। সম্পন্ন হলে result.images[].url থেকে তৈরি ছবির URL সংগ্রহ করুন।

তৈরি ছবির URL-এ একটি expires_at টাইমস্ট্যাম্প থাকে। URL-এর মেয়াদ শেষ হওয়ার আগে প্রতিটি ফাইল ডাউনলোড করে সংরক্ষণ করুন।

প্রম্পট গ্যালারি থেকে তৈরি ছবির উদাহরণ

শুরু থেকে শেষ পর্যন্ত একটি Python ক্লায়েন্ট তৈরি করুন

এই উদাহরণটি একটি অনুরোধ পাঠায়, HTTP ত্রুটি পরীক্ষা করে, প্রতি পাঁচ সেকেন্ডে পোল করে এবং সম্পন্ন টাস্কের রেকর্ড ফেরত দেয়। প্রতিটি নতুন জেনারেশনের জন্য এটি একটি নতুন আইডেমপোটেন্সি কী তৈরি করে।

import os
import time
import uuid
import requests

BASE_URL = "https://api.apimart.ai/v1"
API_KEY = os.environ["APIMART_API_KEY"]

COMMON_HEADERS = {
    "Authorization": f"Bearer {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,
        timeout=60,
        json={
            "model": "gpt-image-2.5-ext",
            "version": version,
            "prompt": prompt,
            "size": size,
            "resolution": resolution,
            "n": 1,
        },
    )
    response.raise_for_status()
    task_id = response.json()["data"]["id"]

    while True:
        poll_response = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers=COMMON_HEADERS,
            timeout=60,
        )
        poll_response.raise_for_status()
        task = poll_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(
    "ম্যাট সিরামিক এসপ্রেসো কাপের স্টুডিও প্রোডাক্ট হিরো শট, উষ্ণ পাথরের পেডেস্টালে রাখা, নরম জানালার আলো, 85mm লেন্সের লুক, মিনিমাল বেইজ ব্যাকড্রপ, স্পষ্ট ছায়া"
)

print("Cost:", result.get("cost"))
for image in result["result"]["images"]:
    print("Image URL:", image["url"])
    print("Expires at:", image.get("expires_at"))

নিরাপদে পুনরায় চেষ্টা করুন

সাবমিশনের সময় শেষ হয়ে গেলে বা পুনরায় চেষ্টা করা যায় এমন প্রতিক্রিয়া পেলে, একই Idempotency-Key ব্যবহার করে একই যৌক্তিক অনুরোধটি আবার পাঠান। ইচ্ছাকৃতভাবে নতুন ছবি তৈরি করলে নতুন কী ব্যবহার করুন। কোনো সম্পন্ন টাস্কের উৎস বা রেফারেন্স পরিবর্তনের কারণে সেটি পুনরায় তৈরি করতে হলে নতুন কী ব্যবহার করুন।

প্রধান অনুরোধের ক্ষেত্রগুলো বুঝুন

  • 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: ছবির সংখ্যা; রিলে করা রুটে এক থেকে চারটি পর্যন্ত।
  • image_urls: ঐচ্ছিক অ্যারে, যাতে সর্বোচ্চ 16টি ছবির URL অথবা ডেটা URL থাকতে পারে।

আরও নির্ভরযোগ্য প্রম্পট লিখুন

গ্যালারি একটি প্রম্পটকে অস্পষ্ট বিশেষণের তালিকা হিসেবে নয়, বরং সংক্ষিপ্ত প্রোডাকশন ব্রিফ হিসেবে বিবেচনা করে। একটি কার্যকর কাঠামো হলো বিষয়, উপাদান, আলো, ফ্রেমিং বা লেন্স এবং ফিনিশ।

  1. বিষয়ের নাম বলুন: প্রধান বস্তু, ব্যক্তি, দৃশ্য বা পরিবেশ শনাক্ত করুন।
  2. ভৌত উপাদান নির্দিষ্ট করুন: matte ceramic, frosted glass অথবা clay render-এর মতো বাক্যাংশ ব্যবহার করুন।
  3. আলো নির্ধারণ করুন: নরম জানালার আলো, প্রাকৃতিক পার্শ্ব-আলো, হাই-কি স্টুডিও লাইটিং অথবা নাটকীয় ব্যাকলাইট বর্ণনা করুন।
  4. ফ্রেমিং নির্দিষ্ট করুন: কেন্দ্রীভূত কম্পোজিশন, ওপর থেকে তোলা ফ্ল্যাট লে, প্রশস্ত সিনেমাটিক কম্পোজিশন অথবা অন্য কোনো কাঙ্ক্ষিত বিন্যাস উল্লেখ করুন।
  5. লেন্সের ভাষা যোগ করুন: 85mm, 24mm, macro এবং focus stacked-এর মতো শব্দ দৃষ্টিকোণ ও বিবরণ নির্দেশ করতে পারে।
  6. ফিনিশ বেছে নিন: painterly detail, commercial product photography অথবা crisp vector edges-এর মতো বাক্যাংশ ভিজ্যুয়াল ট্রিটমেন্ট নিয়ন্ত্রণ করে।

উদাহরণস্বরূপ:

অ্যাম্বার সিরামযুক্ত ফ্রস্টেড কাচের বোতলের কসমেটিক্স প্যাকশট,
পৃষ্ঠে জলের ফোঁটা, একটানা হালকা গোলাপি ব্যাকড্রপ,
উচ্চ-বিস্তারিত বাণিজ্যিক প্রোডাক্ট ফটোগ্রাফি
স্টাইল করা জেনারেশন দেখানো প্রম্পট গ্যালারির ছবি

রেফারেন্স ছবি ব্যবহার করুন

ইমেজ-টু-ইমেজ বা রেফারেন্স-নির্ভর কাজের জন্য রিলে করা অনুরোধে একটি image_urls অ্যারে যোগ করুন। রুটটি সর্বোচ্চ 16টি রেফারেন্স গ্রহণ করে।

{
  "model": "gpt-image-2.5-ext",
  "version": "sunburst",
  "prompt": "পণ্য ও লেবেল অপরিবর্তিত রাখুন, ব্যাকগ্রাউন্ড নরম অফ-হোয়াইট করুন এবং একটি প্রাকৃতিক কাস্ট ছায়া যোগ করুন",
  "image_urls": [
    "https://example.com/product-reference.jpg"
  ],
  "size": "1:1",
  "resolution": "2K",
  "n": 1
}

স্থিতিশীল ও সহজে অ্যাক্সেসযোগ্য রেফারেন্স URL ব্যবহার করুন। কোনো রেফারেন্স URL-এর মেয়াদ শেষ হওয়ার কারণে টাস্ক ব্যর্থ হলে, ছবিটি পুনরায় হোস্ট করুন এবং নতুন idempotency key দিয়ে নতুন টাস্ক জমা দিন।

অফিশিয়াল রুটে কল করুন

অফিশিয়াল রুটে রিলে করা রুটের version নির্বাচকের পরিবর্তে সরাসরি মডেল আইডি এবং একটি quality সেটিং ব্যবহার করা হয়।

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": "পণ্যের লেবেল অপরিবর্তিত রাখুন, ব্যাকগ্রাউন্ড নরম অফ-হোয়াইট করুন, একটি প্রাকৃতিক কাস্ট ছায়া যোগ করুন",
    "size": "1:1",
    "resolution": "1k",
    "quality": "high",
    "n": 1
  }'

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

উন্নত প্রোডাকশন টিপস

সাবমিশন ও প্রসেসিং আলাদা রাখুন

ওয়েব রিকোয়েস্ট খোলা রাখার পরিবর্তে ফেরত পাওয়া টাস্ক আইডি কোনো কিউ বা ডেটাবেসে সংরক্ষণ করুন। একটি ব্যাকগ্রাউন্ড ওয়ার্কার অসম্পূর্ণ টাস্কগুলো পোল করতে এবং সম্পন্ন ফলাফল সংরক্ষণ করতে পারে।

মাঝারি সময়ের পোলিং বিরতি ব্যবহার করুন

রিপোজিটরির উদাহরণগুলো প্রতি পাঁচ সেকেন্ডে পোল করে। অপ্রয়োজনীয় ট্রাফিক তৈরি করে এমন ঘন ঘন লুপ এড়িয়ে চলুন। বড় কাজের ক্ষেত্রে, টাস্ক পেন্ডিং বা প্রসেসিং অবস্থায় থাকলে ব্যাকঅফ যোগ করুন।

প্রকৃত খরচ রেকর্ড করুন

প্রতিটি সম্পন্ন টাস্ক থেকে cost বা credits_cost সংরক্ষণ করুন। এতে শুধু অনুমানের ওপর নির্ভর না করে প্রতি কলের খরচের রেকর্ড রাখা যায়।

README-তে সরবরাহ করা প্রতি 1K ছবির জন্য রিলেড-রুটের পর্যবেক্ষিত মূল্য $0.0085, 2K-এর জন্য $0.014 এবং 4K flare-এর জন্য $0.021 বলা হয়েছে। 4K sunburst-এর মূল্য টেবিলে নির্ধারিত ছিল না। এই পরিসংখ্যানগুলো সেপ্টেম্বর 2026-এ পর্যবেক্ষণ করা হয়েছিল, তাই বাজেট বা স্কেলিংয়ের আগে লাইভ মূল্য যাচাই করুন।

ফলাফল সঙ্গে সঙ্গে ডাউনলোড করুন

result.images[].url-কে স্থায়ী স্টোরেজ হিসেবে বিবেচনা করবেন না। expires_at-এর আগে ফাইলটি ডাউনলোড করুন, তারপর আপনার অ্যাপ্লিকেশন-নিয়ন্ত্রিত স্টোরেজে স্থানান্তর করুন।

স্কেল করার আগে ছোট পরিসরে শুরু করুন

1K-এ n: 1 ব্যবহার করে একটি প্রম্পট যাচাই করুন। বিষয়, কম্পোজিশন ও স্টাইল স্থিতিশীল হওয়ার পরেই রেজোলিউশন বাড়ান বা একাধিক আউটপুটের অনুরোধ করুন।

গন্তব্য অনুযায়ী অ্যাসপেক্ট রেশিও নির্বাচন করুন

  • আইকন, প্রোডাক্ট কার্ড ও বর্গাকার সোশ্যাল অ্যাসেটের জন্য 1:1।
  • সিনেমাটিক দৃশ্য, ড্যাশবোর্ড ও প্রেজেন্টেশন হেডারের জন্য 16:9।
  • উল্লম্ব মোবাইল ও সোশ্যাল লেআউটের জন্য 9:16।
  • এডিটোরিয়াল ইলাস্ট্রেশন ও খাবারের ফটোগ্রাফির জন্য 4:3।
  • পোর্ট্রেট ও ফ্যাশন কম্পোজিশনের জন্য 3:4।
GPT Image 2.5-এর অতিরিক্ত আউটপুটের উদাহরণ

সমস্যা সমাধান

  • 401 বা অবৈধ API key: কীটি আবার কপি করুন এবং এতে স্পেস বা নিউলাইন অক্ষর আছে কি না পরীক্ষা করুন। হেডারে অবশ্যই Authorization: Bearer $APIMART_API_KEY ব্যবহার করতে হবে।
  • ব্যালেন্স বা ক্রেডিটের ত্রুটি: অ্যাকাউন্টে অর্থ যোগ করুন; রিপোজিটরি অনুযায়ী কোনো ফ্রি বিকল্প কোটা নেই।
  • 429 রেসপন্স: কনকারেন্সি কমান, ব্যাকঅফ করুন এবং একই idempotency key দিয়ে একই সাবমিশন পুনরায় চেষ্টা করুন।
  • 400 বা মডেল পাওয়া যায়নি: যাচাই করুন যে gpt-image-2.5-ext-এ একটি ভার্সন অন্তর্ভুক্ত আছে এবং সরাসরি ব্যবহৃত অফিসিয়াল মডেল আইডিগুলোতে তা নেই।
  • টাস্কের অবস্থা failed: প্রম্পট প্রত্যাখ্যাত হয়েছে কি না বা কোনো রেফারেন্স URL-এর মেয়াদ শেষ হয়েছে কি না পরীক্ষা করুন। ইনপুট সংশোধন করে নতুন কী দিয়ে নতুন টাস্ক জমা দিন।
  • আউটপুট URL আর কাজ করছে না: অস্থায়ী URL-এর সম্ভবত মেয়াদ শেষ হয়েছে। ভবিষ্যতে সম্পন্ন হওয়া আউটপুট দ্রুত ডাউনলোড করুন।

উপসংহার

image2.5 Prompt Gallery GPT Image 2.5 দিয়ে অ্যাসেট তৈরির একটি পুনরাবৃত্তিযোগ্য কর্মপ্রবাহ দেখায়: সঠিক রুট নির্বাচন করুন, প্রোডাকশন-ধাঁচের প্রম্পট লিখুন, অ্যাসিনক্রোনাস রিকোয়েস্ট জমা দিন, টাস্ক আইডি পোল করুন, প্রদর্শিত খরচ রেকর্ড করুন এবং মেয়াদ শেষ হওয়ার আগে ফলাফল ডাউনলোড করুন। একটি 1K ছবি দিয়ে শুরু করে গুণমান ও বিলিং যাচাই করুন, তারপর উচ্চতর রেজোলিউশন, ব্যাচ অথবা রেফারেন্স-নির্ভর sunburst কর্মপ্রবাহে সম্প্রসারিত করুন।