OpenRouter Google, OpenAI, Black Forest Labs, ByteDance और दूसरों के इमेज मॉडल को एक ही endpoint के पीछे रखता है। यह आर्टिकल request का फ़ॉर्मेट, क्वालिटी और खर्च बदलने वाले पैरामीटर, मॉडलों के बीच कीमतों का अंतर, और यह बताता है कि कब कोई समर्पित इमेज प्लेटफ़ॉर्म ज़्यादा सही बैठता है।
OpenRouter ने टेक्स्ट मॉडल के सैकड़ों दरवाज़ों तक एक ही रास्ता देकर अपनी पहचान बनाई, और अब वह तस्वीरों के लिए भी यही कर रहा है। एक अकाउंट, एक बिल और एक request शैली के साथ आप सिर्फ़ एक string बदलकर Google, OpenAI, Black Forest Labs, ByteDance और दूसरों के इमेज मॉडल के बीच जा सकते हैं। यह सुविधा असली है, लेकिन कुछ छोटे ब्योरे तय करते हैं कि इमेज फ़ीचर सस्ता रहेगा या चुपचाप महँगा हो जाएगा।
यह आर्टिकल OpenRouter इमेज जनरेशन को पहली request से लेकर महीने के इनवॉइस तक समझाता है: कौन-से मॉडल चुने जा सकते हैं, सटीक API call, क्वालिटी बदलने वाले पैरामीटर, और एक इमेज की असली लागत। यह भी दिखाता है कि जब आपको कोड के बजाय ब्राउज़र में नियंत्रण चाहिए, तब PicassoIA जैसा समर्पित प्लेटफ़ॉर्म कहाँ फ़िट होता है।
OpenRouter इमेज जनरेशन क्या करता है
एक Endpoint, कई प्रोवाइडर
OpenRouter पर इमेज जनरेशन एक समर्पित endpoint, POST /api/v1/images के ज़रिए चलता है। आप एक model slug और एक prompt भेजते हैं, और base64 इमेज डेटा वापस आता है। इस एक दरवाज़े के पीछे अलग-अलग प्रोवाइडर हैं, जिनके अपने मॉडल, सीमाएँ और कीमत होती हैं। रूटिंग, authentication और billing OpenRouter संभालता है, इसलिए आपका कोड उन प्रोवाइडरों से सीधे बात नहीं करता।
कैटलॉग काफ़ी बड़ा है। लिखे जाने के समय इसमें Google, OpenAI, Black Forest Labs, xAI, ByteDance, Microsoft, Recraft, Krea और Sourceful के इमेज मॉडल शामिल हैं, और यह सूची अक्सर बदलती है। OpenRouter की सार्वजनिक मॉडल सूची को इमेज आउटपुट के आधार पर फ़िल्टर करने पर पता चलता है कि किसी भी दिन क्या उपलब्ध है।
किसके लिए सबसे सही है
एक ही गेटवे कुछ स्थितियों में फ़ायदेमंद साबित होता है:
प्रोटोटाइपिंग: पाँच अलग अकाउंट खोले बिना एक ही प्रॉम्प्ट पर पाँच मॉडल आज़माएँ।
फ़ॉलबैक: अगर एक प्रोवाइडर धीमा या बंद है, तो वही request कहीं और भेज दें।
एकीकृत बिलिंग: हर वेंडर के लिए अलग इनवॉइस की जगह एक ही इनवॉइस।
मिश्रित पाइपलाइन: जो ऐप पहले से OpenRouter के ज़रिए टेक्स्ट प्रॉम्प्ट भेजता है, वह उसी टोकन से इमेज भी जोड़ सकता है।
जब आपको विज़ुअल एडिटर, पिछले परिणामों की गैलरी या हर सेटिंग पर सीधा, प्रत्यक्ष नियंत्रण चाहिए, तब यह कम काम आता है। वह ब्राउज़र का काम है, और हम इस पर आर्टिकल के आख़िर के करीब लौटेंगे।
Images Endpoint को कॉल करना
सबसे छोटी काम करने वाली request
आपको एक OpenRouter अकाउंट, एक secret token जिसके पीछे क्रेडिट हो, और एक मॉडल slug चाहिए। टोकन को environment variable में सेव करें। इस आर्टिकल में इसे OPENROUTER_TOKEN कहा गया है, लेकिन नाम आप अपनी मर्ज़ी से रख सकते हैं।
curl -X POST "https://openrouter.ai/api/v1/images" \
-H "Authorization: Bearer $OPENROUTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance-seed/seedream-4.5",
"prompt": "a red panda astronaut floating in space"
}'
बस इतनी ही request है। slug का पैटर्न author/model-name है, और यहाँ यह Seedream 4.5 की ओर इशारा करता है। बाकी सब वैकल्पिक है, इसलिए पहला टेस्ट लगभग दो मिनट में हो जाता है।
वे पैरामीटर जो नतीजा बदलते हैं
images endpoint में कई वैकल्पिक फ़ील्ड होते हैं। ये सबसे ज़्यादा मायने रखते हैं:
पैरामीटर
क्या नियंत्रित करता है
उदाहरण मान
resolution
आउटपुट साइज़ टियर
512, 768, 1K, 2K, 4K
aspect_ratio
फ़्रेम का आकार
1:1, 16:9, 9:16, 4:3, 3:4
size
टियर या सटीक पिक्सल के लिए शॉर्टहैंड
एक टियर नाम या चौड़ाई और ऊँचाई
quality
रेंडरिंग की मेहनत
auto, low, medium, high
output_format
फ़ाइल प्रकार
png, jpeg, webp, svg
background
पारदर्शिता
auto, transparent, opaque
output_compression
webp और jpeg के लिए फ़ाइल साइज़
0 से 100
n
प्रति request इमेज की संख्या
1 से 10, जहाँ समर्थित हो
seed
दोहराने योग्य आउटपुट
कोई भी पूर्णांक, जहाँ समर्थित हो
input_references
इमेज-टू-इमेज काम के लिए रेफ़रेंस इमेज
इमेज की एक सूची
stream
server-sent events पर आंशिक प्रीव्यू
true या false
हर मॉडल हर फ़ील्ड स्वीकार नहीं करता। हर मॉडल का एक endpoints रूट होता है, जो समर्थित पैरामीटर, कीमत और यह बताता है कि स्ट्रीमिंग चलती है या नहीं। किसी सेटिंग पर भरोसा करने से पहले उसे पढ़ लें। svg आउटपुट फ़ॉर्मेट सिर्फ़ वेक्टर-सक्षम मॉडलों के साथ समझ में आता है।
स्ट्रीमिंग पर अलग से ध्यान देना चाहिए। stream चालू होने पर endpoint इमेज बनते समय आंशिक इमेज भेजता है, इसलिए यूज़र इंटरफ़ेस कुछ ही पलों में एक मोटा प्रीव्यू दिखा सकता है, खाली स्पिनर की जगह। प्रीव्यू मुफ़्त हैं: बिल सिर्फ़ तैयार इमेज का लगता है। अगर आपके ऐप में इंतज़ार वाली स्क्रीन है, तो यह उसे तेज़ महसूस कराने का सबसे सस्ता तरीका है।
💡 टिप: एक बार में एक ही चीज़ बदलें। अगर आप मॉडल और प्रॉम्प्ट एक साथ बदलते हैं, तो पता नहीं चलता कि नतीजा किस चीज़ से बदला। जहाँ मॉडल समर्थन करता है, वहाँ seed तय करें और हर रन में एक ही फ़ील्ड बदलें।
response पढ़ना
इमेज base64 टेक्स्ट के रूप में data array के अंदर आती हैं। हर आइटम में b64_json होता है, यानी एन्कोड किए गए बाइट्स, और media_type, जैसे image/png या image/svg+xml। response में एक usage object भी होता है, और usage.cost बताता है कि उस job पर कितना बिल लगा।
import base64, os, requests
resp = requests.post(
"https://openrouter.ai/api/v1/images",
headers={"Authorization": f"Bearer {os.environ['OPENROUTER_TOKEN']}"},
json={
"model": "bytedance-seed/seedream-4.5",
"prompt": "a ceramic mug on a marble counter, soft window light",
"aspect_ratio": "16:9",
},
timeout=120,
)
resp.raise_for_status()
body = resp.json()
image = body["data"][0]
with open("mug.png", "wb") as f:
f.write(base64.b64decode(image["b64_json"]))
print(image["media_type"], body["usage"]["cost"])
बाइट्स को डिकोड करें, उन्हें डिस्क या object storage में लिखें, और usage.cost को उस प्रॉम्प्ट के साथ लॉग करें जिससे वह बना था। एक हफ़्ते बाद यह लॉग किसी प्राइसिंग पेज से ज़्यादा सच्ची कीमत-सूची होगा।
इमेज जॉब टेक्स्ट कॉल से ज़्यादा समय लेते हैं, इसलिए client timeout उदार रखें, जैसा ऊपर के उदाहरण में 120 सेकंड के साथ किया गया है। कुछ सेकंड का डिफ़ॉल्ट अच्छे नतीजों को भी काट देगा।
आज़माने योग्य मॉडल
कैटलॉग में प्रोवाइडर
यहाँ मुख्य प्रोवाइडर और उनके मिलते-जुलते मॉडल पेज हैं, जहाँ PicassoIA पर वे उपलब्ध हैं:
Google: Gemini इमेज परिवार। slug google/gemini-2.5-flash-image OpenRouter के अपने उदाहरणों में दिखता है, और वही मॉडल PicassoIA पर Gemini 2.5 Flash Image के नाम से मौजूद है।
OpenAI: GPT Image, जहाँ क्वालिटी सेटिंग कीमत को काफ़ी बदल देती है। देखें GPT Image 2।
हर रिलीज़ के साथ मॉडल की ताक़त बदलती है, इसलिए किसी प्रोजेक्ट को एक मॉडल पर बाँधने से पहले अपने प्रॉम्प्ट चलाकर देखें। एक निष्पक्ष टेस्ट में लगभग एक घंटा लगता है:
असली काम से दस प्रॉम्प्ट लिखें, खिलौने जैसे उदाहरण नहीं, जिनमें दो इमेज में टेक्स्ट वाले और दो लोगों वाले हों।
हर प्रॉम्प्ट को एक ही तीन मॉडल से, एक जैसे aspect_ratio और resolution मानों के साथ चलाएँ।
usage.cost और हर जॉब में लगे सेकंड लॉग करें।
नतीजों को ब्लाइंड टेस्ट में स्कोर करें, यानी मॉडल के नाम छिपाकर, फिर कुल खर्च को उन इमेज की संख्या से भाग दें जिन्हें आप सचमुच प्रकाशित करेंगे।
यह आख़िरी संख्या, यानी इस्तेमाल लायक हर इमेज की लागत, बहस खत्म कर देती है। $0.02 वाला मॉडल, जिसे निशाने पर पहुँचने के लिए चार कोशिशें चाहिए, प्रति इस्तेमाल लायक इमेज $0.08 पड़ता है। यह उस $0.04 वाले मॉडल से दोगुना है, जो पहली ही कोशिश में सही नतीजा दे देता है।
एक इमेज की असली लागत
कीमत का अंतर
OpenRouter के अपने ट्यूटोरियल ने 20 मॉडलों पर डिफ़ॉल्ट सेटिंग में एक इमेज की कीमत तय की। रेंज $0.006 से $0.134 तक रही, यानी 22x का अंतर। सस्ते मॉडल लगभग एक सेंट प्रति इमेज से शुरू होते हैं। यह अंतर आपके इनवॉइस पर प्रॉम्प्ट की लंबाई, दोबारा कोशिशों या किसी चतुर कैशिंग ट्रिक से कहीं बड़ा असर डालता है।
असल में यह अंतर मॉडलों को दो समूहों में बाँट देता है। लगभग एक सेंट प्रति इमेज वाले ड्राफ़्टिंग मॉडल विचारों, थंबनेल और जल्दी के टेस्ट के लिए ठीक हैं। रेंज के ऊपरी सिरे के करीब वाले प्रीमियम मॉडल फ़ाइनल रेंडर और हीरो इमेज के लिए सही हैं। कई टीमें दोनों चलाती हैं: ड्राफ़्ट सस्ते में, रेंडर महँगे में।
तीन बिलिंग शैलियाँ
सभी मॉडल एक ही तरीके से शुल्क नहीं लेते:
प्रति इमेज: हर परिणाम की एक तय कीमत, साइज़ चाहे जो हो।
प्रति मेगापिक्सल: रिज़ॉल्यूशन बढ़ने के साथ कीमत बढ़ती है, इसलिए 4K, 1K से महँगा है।
प्रति टोकन: इनपुट और आउटपुट टोकन का हिसाब होता है। जैसा इस लेख के लिखे जाने के समय सूचीबद्ध था, GPT-5.4 Image 2 प्रति मिलियन इनपुट टोकन के लिए $8.00 और प्रति मिलियन आउटपुट टोकन के लिए $15.00 लेता है, और इमेज आउटपुट की कीमत प्रति मिलियन टोकन $30.00 है।
टोकन बिलिंग का अनुमान लगाना सबसे मुश्किल है। प्रॉम्प्ट की लंबाई, रेफ़रेंस इमेज और क्वालिटी सेटिंग, सब अंतिम संख्या में जुड़ते हैं, इसलिए usage.cost ही वह आँकड़ा है जिस पर भरोसा करना चाहिए। कीमतें बदलती हैं, इसलिए बजट बनाने से पहले मॉडल पेज देख लें।
असफल जॉब का कोई खर्च नहीं
बिलिंग सब या कुछ नहीं है। कोई जनरेशन या तो पूरी होकर पूरी रकम पर बिल होती है, या विफल होकर बिल नहीं होती। रद्द की गई स्ट्रीम का भी शुल्क नहीं लगता, और स्ट्रीम खत्म होने से पहले आए आंशिक प्रीव्यू से आंशिक शुल्क नहीं बनते। इसलिए दोबारा कोशिश उतनी जोखिम भरी नहीं जितनी लगती है: आप उसी नतीजे के लिए एक बार भुगतान करते हैं जिसे आप रखते हैं। फिर भी errors को ठीक से संभालें। HTTP status जाँचें, विफल जॉब को दोबारा भेजने से पहले रुकें, और कुछ कोशिशों के बाद रुक जाएँ, ताकि खराब प्रॉम्प्ट अनंत लूप न बना दे।
1,000 इमेज का बजट हिसाब
उस रेंज से तीन कीमतें लें और उन्हें बढ़ाएँ:
प्रति इमेज कीमत
1,000 इमेज
10,000 इमेज
$0.006
$6
$60
$0.04
$40
$400
$0.134
$134
$1,340
💡 टिप: अपना री-ट्राई रेट जोड़ें। अगर हर तीन में से एक प्रॉम्प्ट को इसलिए दूसरी कोशिश चाहिए क्योंकि पहला नतीजा निशाने से चूक गया, तो बजट में लगभग एक-तिहाई जोड़ लें। विफल जॉब का खर्च नहीं होता, लेकिन निराशाजनक नतीजों का खर्च होता है।
3 गलतियाँ जो बिल बढ़ाती हैं
क्वालिटी को auto पर छोड़ना
quality को auto पर रखने पर provider तय करता है कि कितनी मेहनत लगानी है। ऐसे मॉडलों पर जहाँ कीमत क्वालिटी के हिसाब से बदलती है, high नतीजा low नतीजे से कहीं ज़्यादा पड़ सकता है। प्रॉम्प्ट पर काम करते समय low इस्तेमाल करें, और सिर्फ़ फ़ाइनल रेंडर के लिए high पर जाएँ।
base64 को डेटाबेस में रखना
2K इमेज का base64 एन्कोडिंग अक्सर कई मेगाबाइट का टेक्स्ट बन जाता है। उस स्ट्रिंग को डेटाबेस की पंक्ति में रखने से हर क्वेरी धीमी होती है जो उसे छूती है। फ़ाइल को object storage में लिखें, डेटाबेस में सिर्फ़ उसका URL रखें, और जब फ़ाइल साइज़ लॉसलेस डिटेल से ज़्यादा मायने रखे, तब webp या jpeg को output_compression के साथ इस्तेमाल करें।
प्रोवाइडर रूटिंग को नज़रअंदाज़ करना
एक ही मॉडल कई प्रोवाइडर दे सकते हैं, और उनके endpoints कीमत और समर्थित पैरामीटर में अलग हो सकते हैं। अगर आप कोई पसंद तय नहीं करते, तो OpenRouter आपके लिए चुनता है। क्रम तय करें और तय करें कि फ़ॉलबैक स्वीकार्य हैं या नहीं:
{
"model": "google/gemini-2.5-flash-image",
"prompt": "A minimalist logo for a coffee roaster",
"provider": {
"order": ["google-ai-studio", "google-vertex"],
"allow_fallbacks": true
}
}
जब आपको हर कॉल पर एक जैसा आउटपुट और कीमत चाहिए, तब allow_fallbacks बंद करें, और जब अपटाइम ज़्यादा ज़रूरी हो, तब इसे चालू रखें।
PicassoIA पर Seedream 4.5 कैसे इस्तेमाल करें
अगर आप कोड छोड़ना चाहते हैं, तो OpenRouter के उदाहरणों वाला वही मॉडल ब्राउज़र में भी उपलब्ध है। Seedream 4.5 टेक्स्ट प्रॉम्प्ट से 4K तक की इमेज बनाता है, और कुछ इंस्टॉल करने की ज़रूरत नहीं है।
प्रॉम्प्ट लिखें जिसके चार हिस्से हों: सब्जेक्ट, सेटिंग, रोशनी और लेंस। कोशिश करें: संगमरमर के काउंटर पर एक सिरेमिक कॉफ़ी मग, बाईं ओर से आती नरम खिड़की की रोशनी, 85mm लेंस, शैलो डेप्थ ऑफ़ फ़ील्ड, Kodak Portra 400 film grain।
आस्पेक्ट रेशियो चुनें: ब्लॉग हेडर के लिए 16:9, प्रोडक्ट टाइल के लिए 1:1, वर्टिकल पोस्ट के लिए 9:16।
जनरेट करें और जाँचें। एक डिटेल बदलें, फिर उसे दोबारा चलाएँ, ठीक वैसे ही जैसे आप API का एक फ़ील्ड बदलते।
💡 टिप: अधूरे विचार कमज़ोर प्रॉम्प्ट बनाते हैं। Claude Sonnet 5 या Gemini 3.5 Flash जैसे लार्ज लैंग्वेज मॉडल से एक लाइन के विचार को रोशनी, लेंस और टेक्स्चर वाले विस्तृत फ़ोटो प्रॉम्प्ट में फैलाने को कहें, फिर नतीजा इमेज मॉडल में डालें।
PicassoIA का डेवलपर API
PicassoIA पाइपलाइन और स्क्रिप्ट के लिए अपना डेवलपर API भी चलाता है। बेस URL https://api.picassoia.com/v1 है, और request एक bearer token से authenticate होती है जो pia_sk_ से शुरू होता है। प्रक्रिया asynchronous है और अगर आपने दूसरे prediction-style APIs इस्तेमाल किए हैं, तो यह जाना-पहचाना लगेगा: एक job बनाएँ, उसकी status पूछें, फिर result लाएँ।
POST /v1/models/{owner}/{name}/predictions एक job बनाता है।
GET /v1/predictions/{id} उसकी status जाँचता है और आउटपुट लौटाता है।
POST /v1/predictions/{id}/cancel उस job को रोकता है जो अभी चल रहा है।
GET /v1/predictions आपके हाल के jobs की सूची देता है।
इमेज के लिए API PicassoIA Image और PicassoIA Image Editor Pro के साथ-साथ दो वीडियो मॉडल भी देता है। एक अकाउंट एक साथ 5 predictions चला सकता है, और प्रॉम्प्ट 4,000 characters तक सीमित हैं। API access कुछ खास plans से जुड़ा है, इसलिए उस पर कुछ बनाने से पहले pricing पेज पर पुष्टि कर लें कि कौन-सा plan लागू है। ब्राउज़र कैटलॉग कहीं बड़ा है, जिसमें 200 से ज़्यादा टेक्स्ट-टू-इमेज मॉडल हैं, जिन्हें स्क्रिप्ट के लिए चुनने से पहले टेस्ट किया जा सकता है।
आज ही अपनी पहली इमेज बनाएँ
गेटवे वाले सवाल का सबसे अच्छा जवाब यह है कि एक प्रॉम्प्ट दोनों तरीकों से चलाकर देखें। उसे OpenRouter के images endpoint से भेजें, usage.cost लॉग करें, फिर वही टेक्स्ट Picasso IA के किसी मॉडल पेज पर चिपकाएँ और लुक, स्पीड और मेहनत की तुलना करें।
अपने असली काम से एक प्रॉम्प्ट चुनें: एक प्रोडक्ट शॉट, एक ब्लॉग हेडर, लैंडिंग पेज के लिए एक पोर्ट्रेट। Picasso IA पर दो-तीन मॉडल आज़माएँ, हर रन में एक डिटेल बदलें, और वे नतीजे रखें जिन्हें आप सचमुच प्रकाशित करेंगे। एक दोपहर में ही आपको पता चल जाएगा कि आपके प्रोजेक्ट के लिए कौन-सा रास्ता सही है, और दिखाने के लिए असली इमेज भी होंगी।