OpenRouter इमेज जनरेशन: मॉडल, API और प्राइसिंग

OpenRouter Google, OpenAI, Black Forest Labs, ByteDance और दूसरों के इमेज मॉडल को एक ही endpoint के पीछे रखता है। यह आर्टिकल request का फ़ॉर्मेट, क्वालिटी और खर्च बदलने वाले पैरामीटर, मॉडलों के बीच कीमतों का अंतर, और यह बताता है कि कब कोई समर्पित इमेज प्लेटफ़ॉर्म ज़्यादा सही बैठता है।

OpenRouter इमेज जनरेशन: मॉडल, API और प्राइसिंग
Cristian Da Conceicao
Picasso IA के संस्थापक

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 की ओर इशारा करता है। बाकी सब वैकल्पिक है, इसलिए पहला टेस्ट लगभग दो मिनट में हो जाता है।

चमकदार लॉफ़्ट में स्टैंडिंग डेस्क पर request टाइप करता डेवलपर

वे पैरामीटर जो नतीजा बदलते हैं

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_compressionwebp और jpeg के लिए फ़ाइल साइज़0 से 100
nप्रति request इमेज की संख्या1 से 10, जहाँ समर्थित हो
seedदोहराने योग्य आउटपुटकोई भी पूर्णांक, जहाँ समर्थित हो
input_referencesइमेज-टू-इमेज काम के लिए रेफ़रेंस इमेजइमेज की एक सूची
streamserver-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।
  • Black Forest Labs: Flux लाइन, जैसे Flux 2 Pro।
  • ByteDance: Seedream, जिसमें Seedream 4.5 शामिल है।
  • Recraft: वेक्टर-अनुकूल मॉडल जो SVG लौटा सकते हैं, जैसे Recraft v4.1।
  • xAI, Microsoft, Krea और Sourceful: Grok Imagine, MAI-Image, Krea के मॉडल और Riverflow, जो ज़्यादातर OpenRouter जैसे गेटवे के ज़रिए ही मिलते हैं।

कोड से लाइव सूची लाने के लिए models रूट कॉल करें। किसी एक मॉडल के प्रोवाइडर, पैरामीटर और कीमतें देखने के लिए उसका slug और /endpoints जोड़ें:

curl https://openrouter.ai/api/v1/images/models \
  -H "Authorization: Bearer $OPENROUTER_TOKEN"

curl "https://openrouter.ai/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints"

काम के हिसाब से चुनाव

कोई एक मॉडल हर काम में नहीं जीतता। यह तालिका आपके अपने टेस्ट की शुरुआत भर है, रैंकिंग नहीं:

कामपहले आज़माने वाला मॉडलटेस्ट क्यों लायक है
फ़ोटोरियलिस्टिक मार्केटिंग शॉटSeedream 4.54K तक साफ़ और शार्प आउटपुट
पोस्टर और इमेज के अंदर टेक्स्टGPT Image 2लिखे हुए लेआउट को फ़ॉलो करने में मज़बूत
तेज़ ड्राफ़्टGemini 2.5 Flash Imageइटरेशन के लिए तेज़ नतीजे
लोगो और आइकनRecraft v4.1साफ़ वेक्टर-शैली के नतीजे
टेक्स्ट या फ़ोटो से एडिटFlux 2 Proप्रॉम्प्ट और रेफ़रेंस फ़ोटो दोनों से काम करता है

हर रिलीज़ के साथ मॉडल की ताक़त बदलती है, इसलिए किसी प्रोजेक्ट को एक मॉडल पर बाँधने से पहले अपने प्रॉम्प्ट चलाकर देखें। एक निष्पक्ष टेस्ट में लगभग एक घंटा लगता है:

  1. असली काम से दस प्रॉम्प्ट लिखें, खिलौने जैसे उदाहरण नहीं, जिनमें दो इमेज में टेक्स्ट वाले और दो लोगों वाले हों।
  2. हर प्रॉम्प्ट को एक ही तीन मॉडल से, एक जैसे aspect_ratio और resolution मानों के साथ चलाएँ।
  3. usage.cost और हर जॉब में लगे सेकंड लॉग करें।
  4. नतीजों को ब्लाइंड टेस्ट में स्कोर करें, यानी मॉडल के नाम छिपाकर, फिर कुल खर्च को उन इमेज की संख्या से भाग दें जिन्हें आप सचमुच प्रकाशित करेंगे।

यह आख़िरी संख्या, यानी इस्तेमाल लायक हर इमेज की लागत, बहस खत्म कर देती है। $0.02 वाला मॉडल, जिसे निशाने पर पहुँचने के लिए चार कोशिशें चाहिए, प्रति इस्तेमाल लायक इमेज $0.08 पड़ता है। यह उस $0.04 वाले मॉडल से दोगुना है, जो पहली ही कोशिश में सही नतीजा दे देता है।

कॉर्कबोर्ड पर बीस अलग-अलग शैलियों की तस्वीरें, हर इमेज मॉडल की एक

एक इमेज की असली लागत

कीमत का अंतर

OpenRouter के अपने ट्यूटोरियल ने 20 मॉडलों पर डिफ़ॉल्ट सेटिंग में एक इमेज की कीमत तय की। रेंज $0.006 से $0.134 तक रही, यानी 22x का अंतर। सस्ते मॉडल लगभग एक सेंट प्रति इमेज से शुरू होते हैं। यह अंतर आपके इनवॉइस पर प्रॉम्प्ट की लंबाई, दोबारा कोशिशों या किसी चतुर कैशिंग ट्रिक से कहीं बड़ा असर डालता है।

असल में यह अंतर मॉडलों को दो समूहों में बाँट देता है। लगभग एक सेंट प्रति इमेज वाले ड्राफ़्टिंग मॉडल विचारों, थंबनेल और जल्दी के टेस्ट के लिए ठीक हैं। रेंज के ऊपरी सिरे के करीब वाले प्रीमियम मॉडल फ़ाइनल रेंडर और हीरो इमेज के लिए सही हैं। कई टीमें दोनों चलाती हैं: ड्राफ़्ट सस्ते में, रेंडर महँगे में।

तीन बिलिंग शैलियाँ

सभी मॉडल एक ही तरीके से शुल्क नहीं लेते:

  1. प्रति इमेज: हर परिणाम की एक तय कीमत, साइज़ चाहे जो हो।
  2. प्रति मेगापिक्सल: रिज़ॉल्यूशन बढ़ने के साथ कीमत बढ़ती है, इसलिए 4K, 1K से महँगा है।
  3. प्रति टोकन: इनपुट और आउटपुट टोकन का हिसाब होता है। जैसा इस लेख के लिखे जाने के समय सूचीबद्ध था, 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 तक की इमेज बनाता है, और कुछ इंस्टॉल करने की ज़रूरत नहीं है।

  1. Seedream 4.5 का मॉडल पेज खोलें और साइन इन करें।
  2. प्रॉम्प्ट लिखें जिसके चार हिस्से हों: सब्जेक्ट, सेटिंग, रोशनी और लेंस। कोशिश करें: संगमरमर के काउंटर पर एक सिरेमिक कॉफ़ी मग, बाईं ओर से आती नरम खिड़की की रोशनी, 85mm लेंस, शैलो डेप्थ ऑफ़ फ़ील्ड, Kodak Portra 400 film grain।
  3. आस्पेक्ट रेशियो चुनें: ब्लॉग हेडर के लिए 16:9, प्रोडक्ट टाइल के लिए 1:1, वर्टिकल पोस्ट के लिए 9:16।
  4. जनरेट करें और जाँचें। एक डिटेल बदलें, फिर उसे दोबारा चलाएँ, ठीक वैसे ही जैसे आप API का एक फ़ील्ड बदलते।
  5. विजेता डाउनलोड करें, या साथ-साथ तुलना के लिए वही प्रॉम्प्ट Flux 2 Pro, GPT Image 2 और Nano Banana Pro पर चलाएँ।

💡 टिप: अधूरे विचार कमज़ोर प्रॉम्प्ट बनाते हैं। 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 पर दो-तीन मॉडल आज़माएँ, हर रन में एक डिटेल बदलें, और वे नतीजे रखें जिन्हें आप सचमुच प्रकाशित करेंगे। एक दोपहर में ही आपको पता चल जाएगा कि आपके प्रोजेक्ट के लिए कौन-सा रास्ता सही है, और दिखाने के लिए असली इमेज भी होंगी।

मेज़ के चारों ओर ताज़ा छपी तस्वीरों को छाँटते तीन सहकर्मी

यह लेख शेयर करें

अपनी भाषा चुनें

संबंधित लेख