Nano Banana 2 API: अपने प्रोजेक्ट्स के लिए इसका उपयोग कैसे करें
Nano Banana 2 Google का तेज़ टेक्स्ट-टू-इमेज API है, जो बड़े पैमाने पर AI इमेज जनरेशन जोड़ने वाले डेवलपर्स के लिए बना है। इस लेख में ऑथेंटिकेशन, रिक्वेस्ट फ़ॉर्मेटिंग, एरर हैंडलिंग, रेट लिमिट और PicassoIA पर चरण-दर-चरण इस्तेमाल की जानकारी है, साथ में Python और Node.js के लिए काम करने वाले कोड उदाहरण भी हैं।
अगर आपको प्रोग्रामैटिक तरीके से इमेज जनरेट करनी हैं, तो Google का Nano Banana 2 API टेक्स्ट प्रॉम्प्ट से प्रोडक्शन-रेडी नतीजे तक पहुँचने के सबसे तेज़ रास्तों में से एक देता है। यह Google के API इंफ़्रास्ट्रक्चर के ज़रिए और PicassoIA जैसे प्लेटफ़ॉर्म्स के माध्यम से सीधे उपलब्ध है। nano-banana-2 बातचीत के ज़रिए एडिटिंग, मल्टी-इमेज फ़्यूज़न और रियल-टाइम वेब ग्राउंडिंग को एक ऐसे मॉडल में जोड़ता है, जिसे आप एक स्टैंडर्ड HTTP POST रिक्वेस्ट से कॉल कर सकते हैं। चाहे आप कंटेंट पाइपलाइन बना रहे हों, प्रोडक्ट विज़ुअलाइज़ेशन फ़ीचर भेज रहे हों, या ऐसा ऐप प्रोटोटाइप कर रहे हों जिसे माँग पर AI इमेज चाहिए, यहाँ बताया गया है कि इसे सही तरीके से कैसे जोड़ें।
Nano Banana 2 असल में क्या करता है
ज़्यादातर टेक्स्ट-टू-इमेज मॉडल एक ही तरह काम करते हैं: आप प्रॉम्प्ट भेजते हैं, मॉडल इमेज लौटाता है। Nano Banana 2 यह करता है, लेकिन इसमें तीन क्षमताएँ और जुड़ी हैं, जो आपके इंटीग्रेशन के ढाँचे को बदल देती हैं।
बातचीत का संदर्भ का मतलब है कि मॉडल उसी सेशन में जो आपने जनरेट किया, उसे याद रखता है। आप एक किरदार एक बार बताते हैं, फिर "बैकग्राउंड को सूर्यास्त के समय की छत में बदलें" या "जैकेट का रंग बरगंडी कर दें" जैसे फ़ॉलो-अप रिक्वेस्ट भेज सकते हैं, और मॉडल हर बार पूरा विवरण दोहराए बिना विज़ुअल सिलसिले को आगे ले जाता है।
मल्टी-इमेज फ़्यूज़न आपको एक ही रिक्वेस्ट में 14 तक रेफ़रेंस इमेज पास करने देता है। मॉडल हर इनपुट से तत्वों, विज़ुअल स्टाइल या किरदारों को मिलाकर एक सुसंगत आउटपुट बनाता है। यह ब्रैंड के काम में खास तौर पर उपयोगी है, जहाँ कई जनरेटेड इमेज में एक जैसे चेहरे, लोगो या प्रोडक्ट शॉट चाहिए।
रियल-टाइम वेब ग्राउंडिंग जनरेशन प्रक्रिया को Google Search से जोड़ती है। अगर आपका प्रॉम्प्ट किसी ताज़ा चीज़ का ज़िक्र करता है, जैसे हाल का कोई खेल आयोजन, नया लॉन्च हुआ प्रोडक्ट या मौसमी ट्रेंड, तो मॉडल केवल उस ट्रेनिंग डेटा पर निर्भर नहीं रहता जो किसी कट-ऑफ़ तारीख पर जमा हो गया था, बल्कि वेब से ताज़ा विज़ुअल संदर्भ लाता है।
स्पीड बनाम क्वालिटी का ट्रेड-ऑफ़
नाम में "nano" सही है। यह मॉडल थ्रूपुट के लिए ऑप्टिमाइज़ किया गया है। सामान्य प्रॉम्प्ट पर यह flux-1.1-pro या sdxl से तेज़ जनरेट करता है, और डिफ़ॉल्ट 1K आउटपुट वेब उपयोग के लिए तुरंत तैयार हो जाता है। जब आपको ज़्यादा फ़िडेलिटी चाहिए, तो 2K या 4K रिज़ॉल्यूशन पर जाने से लेटेंसी बढ़ती है, लेकिन नतीजे प्रिंट या बड़े फ़ॉर्मेट के डिजिटल डिस्प्ले के लिए भी टिकते हैं।
यह Google के इमेज टूल्स के सेट में कहाँ फ़िट होता है
Google कई टेक्स्ट-टू-इमेज मॉडल देता है। Nano Banana 2 मूल nano-banana और प्रीमियम nano-banana-pro के बीच आता है। तुलना के लिए:
ज़्यादातर ऐप डेवलपमेंट स्थितियों में nano-banana-2 सबसे अच्छा संतुलन देता है।
API एक्सेस सेट करना
अपने क्रेडेंशियल पाना
Nano Banana 2 API के लिए एक API टोकन चाहिए। यह आपको Replicate प्लेटफ़ॉर्म से मिलता है, जो इस मॉडल को Google के स्वामित्व में होस्ट करता है। अकाउंट बनाने और टोकन जनरेट करने के बाद, इसे एनवायरनमेंट वेरिएबल के रूप में सेव करें:
export REPLICATE_API_TOKEN="your_token_here"
टोकन को कभी सोर्स फ़ाइलों में हार्डकोड न करें। अगर आप किसी क्लाउड प्लेटफ़ॉर्म पर डिप्लॉय कर रहे हैं, तो .env फ़ाइलों के बजाय अपने प्रोवाइडर की सीक्रेट्स मैनेजमेंट सर्विस का उपयोग करें।
बेस URL समझना
API स्टैंडर्ड REST नियमों का पालन करता है। सभी रिक्वेस्ट Replicate एंडपॉइंट पर जाती हैं, जिसके पाथ में मॉडल आइडेंटिफ़ायर होता है। सामान्य पैटर्न:
POST https://api.replicate.com/v1/models/{owner}/{model}/predictions
nano-banana-2 के लिए यह इस तरह बनता है:
POST https://api.replicate.com/v1/models/google/nano-banana-2/predictions
हर रिक्वेस्ट में दो हेडर होने चाहिए: Authorization: Bearer {token} और Content-Type: application/json।
कोर रिक्वेस्ट की बनावट
ज़रूरी पैरामीटर
इमेज जनरेट करने के लिए केवल एक पैरामीटर ज़रूरी है:
पैरामीटर
टाइप
विवरण
prompt
string
आपको जो इमेज चाहिए उसका टेक्स्ट विवरण
यह सादगी जानबूझकर है। एक काम करने वाली रिक्वेस्ट पाँच लाइन के JSON जितनी छोटी हो सकती है:
{
"input": {
"prompt": "A modern studio apartment at golden hour, warm light from west-facing windows, wooden floors, minimal furniture"
}
}
वैकल्पिक पैरामीटर जो नतीजे बदलते हैं
असली नियंत्रण वैकल्पिक पैरामीटर में है:
पैरामीटर
टाइप
डिफ़ॉल्ट
नोट्स
resolution
स्ट्रिंग
1K
विकल्प: 1K, 2K, 4K
aspect_ratio
स्ट्रिंग
match_input_image
15 प्रीसेट, जैसे 16:9, 9:16, 1:1
image_input
ऐरे
[]
अधिकतम 14 रेफ़रेंस इमेज URL
image_search
बूलियन
false
Google Image Search ग्राउंडिंग चालू करता है
google_search
बूलियन
false
रियल-टाइम वेब सर्च ग्राउंडिंग चालू करता है
output_format
स्ट्रिंग
jpg
jpg या png
💡 aspect_ratio को 16:9 पर और resolution को 2K पर सेट करना वेब कंटेंट के ज़्यादातर उपयोग कवर करता है: लैंडिंग पेज, ब्लॉग हेडर और सोशल मीडिया बैनर।
JSON रिस्पॉन्स पढ़ना
सफल प्रेडिक्शन HTTP 201 लौटाता है। रिस्पॉन्स बॉडी में एक प्रेडिक्शन ID और एक स्टेटस फ़ील्ड होता है:
जनरेशन असिंक्रोनस है। आप get URL को तब तक पोल करते हैं जब तक status बदलकर succeeded नहीं हो जाता, और उस समय output में आपकी कॉन्फ़िगरेशन के अनुसार इमेज URL या base64-एन्कोडेड डेटा होता है।
अभी काम करने वाला कोड
Python में 20 लाइन से कम
replicate Python क्लाइंट आपके लिए पोलिंग लूप संभालता है। इसे pip install replicate से इंस्टॉल करें, फिर:
import replicate
import os
client = replicate.Client(api_token=os.environ["REPLICATE_API_TOKEN"])
output = client.run(
"google/nano-banana-2",
input={
"prompt": "A professional product photo of a ceramic coffee mug on a marble surface, soft studio lighting, 4K, photorealistic",
"resolution": "2K",
"aspect_ratio": "1:1",
"output_format": "jpg"
}
)
# output is a list of FileOutput objects
image_url = str(output[0])
print(image_url)
client.run() मेथड तब तक ब्लॉक रहता है जब तक प्रेडिक्शन पूरा न हो, और आउटपुट सीधे लौटाता है। प्रोडक्शन पाइपलाइन के लिए client.predictions.create() पर जाएँ और पोलिंग खुद संभालें, ताकि इमेज जनरेट होते समय आप दूसरे काम कर सकें।
Node.js एसिंक पैटर्न
JavaScript डेवलपर्स के लिए Replicate npm पैकेज वही अमूर्तता देता है:
import Replicate from "replicate";
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN,
});
async function generateImage(prompt, resolution = "1K") {
const output = await replicate.run("google/nano-banana-2", {
input: {
prompt,
resolution,
aspect_ratio: "16:9",
output_format: "jpg",
},
});
return output[0]; // URL to the generated image
}
generateImage("A minimalist home office setup, morning light, wooden desk, single plant")
.then(url => console.log("Generated:", url))
.catch(err => console.error("Failed:", err.message));
हाई-वॉल्यूम पाइपलाइन के लिए, Promise.all() का उपयोग करें ताकि हर रिक्वेस्ट का इंतज़ार एक-एक करके न करना पड़े, बल्कि कई रिक्वेस्ट एक साथ भेजी जा सकें। Nano Banana 2 डिफ़ॉल्ट 1K रिज़ॉल्यूशन पर एक साथ कई रिक्वेस्ट अच्छी तरह संभालता है।
PicassoIA पर Nano Banana 2 का उपयोग कैसे करें
अगर आप अपना इंटीग्रेशन बनाने से पहले टेस्टिंग के लिए नो-कोड या लो-कोड तरीका पसंद करते हैं, तो PicassoIA एक साफ़ ब्राउज़र इंटरफ़ेस के ज़रिए nano-banana-2 का सीधा एक्सेस देता है। कोडबेस में प्रॉम्प्ट डालने से पहले उन्हें जाँचने का यह भी एक तेज़ तरीका है।
प्रॉम्प्ट ही एकमात्र ज़रूरी फ़ील्ड है। सादे, वर्णनात्मक अंग्रेज़ी में लिखें। रोशनी, सेटिंग, मूड और विषय के बारे में साफ़-साफ़ बताएँ। अस्पष्ट प्रॉम्प्ट सामान्य नतीजे देते हैं। इन दोनों की तुलना करें:
कमज़ोर: "A woman in a city"
मज़बूत: "A woman in her 30s with dark hair wearing a tan trench coat, walking through a rainy Paris street at dusk, wet cobblestones reflecting shop lights, shallow depth of field"
मज़बूत वाला संस्करण मॉडल को ठोस सहारे देता है: विशिष्ट गुणों वाला व्यक्ति, एक सेटिंग, दिन का समय, मौसम की स्थिति और एक फ़ोटोग्राफ़िक गुण। Nano Banana 2 इस स्तर के विवरण पर अच्छी प्रतिक्रिया देता है।
चरण 3: रिज़ॉल्यूशन और आस्पेक्ट रेशियो सेट करें
resolution ड्रॉपडाउन से अपना रिज़ॉल्यूशन चुनें:
1K सोशल मीडिया पोस्ट, थंबनेल या तेज़ इटरेशन के लिए
2K लैंडिंग पेज, ब्लॉग हेडर और प्रोडक्ट पेज के लिए
4K प्रिंट सामग्री, बड़े फ़ॉर्मेट के डिस्प्ले के लिए, या जब आपको भारी क्रॉपिंग करनी हो
15 उपलब्ध प्रीसेट में से आस्पेक्ट रेशियो चुनें। वेब बैनर के लिए 16:9 रखें। पोर्ट्रेट-ओरिएंटेड सोशल कंटेंट के लिए 9:16। स्क्वेयर पोस्ट के लिए 1:1।
💡 अगर आप रेफ़रेंस इमेज के साथ काम कर रहे हैं, तो उन्हें Image Input फ़ील्ड में अपलोड करें। मॉडल एक साथ 14 तक पढ़ता है और उन्हें विज़ुअल संदर्भ के रूप में इस्तेमाल करता है। जनरेट की गई इमेज के सेट में ब्रैंड कंसिस्टेंसी बनाए रखने के लिए यह खास तौर पर असरदार है।
चरण 4: ज़रूरत हो तो वेब ग्राउंडिंग चालू करें
अगर आपके प्रॉम्प्ट में मौजूदा घटनाएँ, असली जगहें या समय-संवेदी विज़ुअल संदर्भ है, तो Google Search चालू करें। अगर आप चाहते हैं कि मॉडल अपने विषय के लिए असली वेब इमेज को विज़ुअल रेफ़रेंस के रूप में लाए, तो Image Search चालू करें। दोनों विकल्पों में थोड़ी लेटेंसी जुड़ती है, लेकिन संदर्भ वाले प्रॉम्प्ट के लिए प्रासंगिकता में ज़बरदस्त सुधार होता है।
चरण 5: जनरेट करें और डाउनलोड करें
Generate बटन पर क्लिक करें। 1K पर Nano Banana 2 तेज़ है, आम तौर पर कुछ सेकंड में नतीजे देता है। 4K पर सर्वर लोड के हिसाब से 15 से 30 सेकंड लग सकते हैं। रिज़ल्ट पैनल से अपना आउटपुट सीधे डाउनलोड करें।
वे एरर जो आपको मिलेंगे
सामान्य HTTP स्टेटस कोड
ज़्यादातर इंटीग्रेशन समस्याएँ चार जगहों में से किसी एक से आती हैं: ऑथेंटिकेशन, गलत रिक्वेस्ट बॉडी, रेट लिमिट, या मॉडल-विशिष्ट वैलिडेशन विफलताएँ।
स्टेटस कोड
मतलब
समाधान
401
अमान्य या गायब API टोकन
अपना Authorization हेडर और टोकन वैल्यू जाँचें
422
इनपुट में वैलिडेशन एरर
एरर मैसेज पढ़ें; आम तौर पर कोई ज़रूरी फ़ील्ड गायब होता है या डेटा टाइप गलत होता है
429
रेट लिमिट पार हुई
एक्सपोनेंशियल बैकऑफ़ लगाएँ; अपने प्लान की RPM लिमिट जाँचें
500
सर्वर एरर
एक बार फिर कोशिश करें; अगर बनी रहे, तो Replicate का स्टेटस पेज देखें
नए इंटीग्रेशन के लिए 422 एरर सबसे आम है। रिस्पॉन्स बॉडी में एक detail फ़ील्ड होगा, जो बताएगा कि कौन सा पैरामीटर वैलिडेशन में विफल हुआ और क्यों।
रेट लिमिट और उनके भीतर रहना
Replicate पर फ़्री-टियर अकाउंट्स की प्रति मिनट रिक्वेस्ट सीमा होती है। प्रोडक्शन वर्कलोड के लिए, पेड प्लान पर जाएँ या एक लोकल क्यू लागू करें जो सारी रिक्वेस्ट एक साथ भेजने के बजाय उन्हें बैच में भेजे।
Python में एक सरल टोकन बकेट पैटर्न:
import time
from collections import deque
class RateLimiter:
def __init__(self, max_per_minute):
self.max_per_minute = max_per_minute
self.requests = deque()
def wait_if_needed(self):
now = time.time()
while self.requests and self.requests[0] < now - 60:
self.requests.popleft()
if len(self.requests) >= self.max_per_minute:
sleep_time = 60 - (now - self.requests[0])
time.sleep(sleep_time)
self.requests.append(time.time())
रिक्वेस्ट भेजने से पहले हर API कॉल को rate_limiter.wait_if_needed() से रैप करें, तो प्रोडक्शन पाइपलाइन में आपको कभी 429 नहीं मिलेगा।
इस API से आप क्या बना सकते हैं
ई-कॉमर्स प्रोडक्ट मॉकअप
हर बार SKU जोड़ने पर प्रोडक्ट फ़ोटोग्राफ़ी सेशन शेड्यूल करने के बजाय, आप माँग पर संदर्भ-आधारित प्रोडक्ट फ़ोटो जनरेट कर सकते हैं। image_input के ज़रिए अपनी प्रोडक्ट इमेज पास करें, वह सेटिंग बताएँ जो आप चाहते हैं (किचन काउंटर, कैफ़े टेबल, बाहर का लाइफ़स्टाइल दृश्य), और nano-banana-2 प्रोडक्ट को फ़ोटोरियलिस्टिक माहौल में कंपोज़ कर देता है। कई कलरवे वाली प्रोडक्ट लाइन के लिए एक बेस सीन जनरेट करें और हर बार पूरा जनरेशन दोबारा चलाए बिना फ़ॉलो-अप रिक्वेस्ट में रंग बदलने के लिए कन्वर्सेशनल एडिटिंग फ़ीचर का उपयोग करें।
कंटेंट मार्केटिंग पाइपलाइन
ब्लॉग पोस्ट के जो वर्कफ़्लो पहले एक डिज़ाइनर पर निर्भर थे, वे अब API के ज़रिए चल सकते हैं। प्रकाशन के समय, आपका CMS API को लेख का शीर्षक और विषय भेजता है, इमेज प्राप्त करता है और उसे अपने आप पोस्ट से जोड़ देता है। ट्रेंडिंग विषयों वाले अभियानों के लिए google_search ग्राउंडिंग चालू करें, ताकि इमेज वही दिखाएँ जो असल में हो रहा है, न कि वह जो मॉडल ने ट्रेनिंग के दौरान सीखा था।
असली इमेज के साथ ऐप प्रोटोटाइपिंग
प्लेसहोल्डर इमेज डिज़ाइन रिव्यू को धीमा करती हैं। जब आप nano-banana-2 को अपने प्रोटोटाइपिंग वर्कफ़्लो में जोड़ते हैं, तो आपके मॉकअप की हर स्क्रीन ग्रे बॉक्स के बजाय संदर्भ के अनुसार प्रासंगिक जनरेटेड इमेज दिखाती है। सेक्शन के कंटेंट का विवरण दें और API को उसे भरने दें। स्टेकहोल्डर्स यथार्थवादी लेआउट देखते हैं और ज़्यादा काम के फ़ीडबैक देते हैं।
मल्टी-मॉडल वर्कफ़्लो
Nano Banana 2 को अकेले काम करने की ज़रूरत नहीं है। एक आम आर्किटेक्चर इसे क्रमिक प्रोसेसिंग के लिए दूसरे मॉडल के साथ जोड़ता है: nano-banana-2 से जल्दी ड्राफ़्ट जनरेट करें, फिर आउटपुट को प्रिंट के लिए अपस्केल करने वाले सुपर-रिज़ॉल्यूशन मॉडल को दें। या nano-banana-2 से इमेज जनरेट करें, फिर पूरी कंपोज़िशन दोबारा जनरेट किए बिना खास हिस्सों को सुधारने के लिए इनपेंटिंग मॉडल का उपयोग करें।
PicassoIA इन सभी मॉडलों को एक ही जगह देता है, जिनमें इंस्ट्रक्शन-फ़ॉलोइंग कामों के लिए gpt-image-1.5 और अधिकतम क्वालिटी की ज़रूरत होने पर हाई-फ़िडेलिटी फ़ोटोरियलिस्टिक आउटपुट के लिए flux-2-pro शामिल हैं।
अलग-अलग प्रोजेक्ट्स के लिए सही पैरामीटर
अलग-अलग प्रोजेक्ट प्रकार अलग कॉन्फ़िगरेशन माँगते हैं। यह एक संदर्भ तालिका है:
प्रोजेक्ट प्रकार
रिज़ॉल्यूशन
आस्पेक्ट रेशियो
वेब ग्राउंडिंग
सोशल मीडिया पोस्ट
1K
1:1 या 9:16
बंद
ब्लॉग हेडर
2K
16:9
बंद
प्रोडक्ट मॉकअप
2K
1:1 या 4:3
बंद
इवेंट-संबंधित कंटेंट
1K
16:9
चालू (Google Search)
ब्रैंड कंसिस्टेंसी का काम
2K
आपका ब्रैंड रेशियो
बंद + image_input
प्रिंट सामग्री
4K
4:3 या कस्टम
बंद
image_input के ज़रिए रेफ़रेंस इमेज के साथ काम करते समय, अगर आप चाहते हैं कि मॉडल विज़ुअल स्टाइल पकड़े, तो कम से कम दो इमेज शामिल करें। एक ही रेफ़रेंस इमेज अक्सर स्टाइल अपनाने के बजाय सीधी नकल में बदल जाती है। कई रेफ़रेंस मॉडल को उनमें साझा विज़ुअल सिलसिला पहचानने के लिए प्रेरित करते हैं।
आज ही PicassoIA पर जनरेट करना शुरू करें
nano-banana-2 आपके खास उपयोग के लिए क्या कर सकता है, यह देखने का सबसे तेज़ तरीका है कि कोई इंटीग्रेशन कोड लिखने से पहले कुछ प्रॉम्प्ट चलाएँ। PicassoIA इस लिंक पर आपको मॉडल का तुरंत एक्सेस देता है, जहाँ सारे पैरामीटर एक ही इंटरफ़ेस में दिखते हैं और बदले जा सकते हैं।
अपने असली प्रोडक्शन उपयोग से मेल खाता प्रॉम्प्ट आज़माएँ। पहले स्पीड के लिए 1K पर आउटपुट जाँचें, फिर जब आपको वह प्रॉम्प्ट मिल जाए जो वांछित विज़ुअल स्टाइल दे, तब 2K या 4K पर जाएँ। एक बार जब कोई कॉन्फ़िगरेशन काम करने लगे, तो उसे अपनी API कॉल में ठीक वैसा ही दोहराएँ, और बड़े पैमाने पर लगातार नतीजे मिलेंगे।
अगर आपको कमर्शियल काम के लिए ज़्यादा फ़िडेलिटी वाला आउटपुट चाहिए, तो वही प्रॉम्प्ट लेकर nano-banana-pro को nano-banana-2 के मुकाबले आज़माएँ और नतीजों की साथ-साथ तुलना करें। क्वालिटी का फ़र्क 4K पर साफ़ दिखता है और प्रिंट या बड़े फ़ॉर्मेट के डिस्प्ले के लिए मायने रखता है।
इमेज जनरेशन से आगे, PicassoIA 87 से ज़्यादा वीडियो जनरेशन मॉडल, आपके आउटपुट को अपस्केल करने के लिए सुपर-रिज़ॉल्यूशन टूल्स, और ई-कॉमर्स वर्कफ़्लो के लिए बैकग्राउंड हटाने की सुविधा भी देता है। सब कुछ उसी इंटरफ़ेस या API के ज़रिए चलता है।