यह n8n AI एजेंट इमेज जनरेशन वर्कफ़्लो उदाहरण Chat Trigger से लेकर आख़िरी इमेज URL तक हर नोड को समझाता है: सिस्टम मैसेज, एक सब-वर्कफ़्लो जो प्रेडिक्शन बनाता और पोल करता है, फ़ॉलो-अप एडिट के लिए मेमोरी, और उन एरर के समाधान की तालिका जो ज़्यादातर बिल्ड को रोक देते हैं।
चैट बॉक्स में एक वाक्य टाइप करके तैयार फ़ोटो वापस पाना एक छोटी-सी जादुई बात लगती है, जब तक आप खुद इसे जोड़कर न देखें और एजेंट को अपने आप यह तय करते हुए न देखें कि क्या लिखना है, कौन सा टूल कॉल करना है और कब रुकना है। यही एक n8n AI एजेंट इमेज जनरेशन वर्कफ़्लो करता है। बीच में एक लैंग्वेज मॉडल बैठता है, जो आपका अनुरोध पढ़ता है, उसे एक विस्तृत प्रॉम्प्ट में बदलता है, एक टूल की तरह इमेज API को कॉल करता है, रेंडर का इंतज़ार करता है और एक लिंक लौटाता है।
यह वर्कफ़्लो उदाहरण पहले नोड से आख़िरी नोड तक चलता है। आपको नोड लेआउट मिलेगा, वह सिस्टम मैसेज जो एजेंट को सही रास्ते पर रखता है, वे HTTP कॉल जो इमेज मॉडल से बात करते हैं, वह पोलिंग लूप जो खाली नतीजों को रोकता है, और वे गलतियाँ जो एक दोपहर बर्बाद कर देती हैं। यह किसी भी n8n इंस्टेंस पर चलता है, क्लाउड हो या सेल्फ़-होस्टेड, और यहाँ बताया गया हर मॉडल PicassoIA पर अपने पेज के साथ मौजूद है।
यह वर्कफ़्लो क्या करता है
वर्कफ़्लो एक सादा अनुरोध लेता है, जैसे "बारिश में शाम के समय एक सड़क बाज़ार, 35mm फ़िल्म पर शूट किया गया", और एक होस्टेड इमेज URL लौटाता है। अनुरोध और नतीजे के बीच AI Agent नोड फ़ैसले लेता है। वह खुद इमेज API को कॉल नहीं करता। वह एक टूल को कॉल करता है, और असली काम टूल करता है।
सीधे शब्दों में विचार
पूरा बिल्ड पाँच हिस्सों से बनता है:
Chat Trigger: n8n चैट पैनल या सार्वजनिक चैट लिंक से मैसेज प्राप्त करता है।
AI Agent: मैसेज पढ़ता है और तय करता है कि आगे क्या करना है।
Chat model: एजेंट के पीछे का दिमाग़, जो एक सब-नोड के रूप में जुड़ा होता है।
Memory: पिछली बातचीत को याद रखती है, ताकि "इसे और चौड़ा बनाओ" का मतलब समझ में आए।
Image tool: एक सब-वर्कफ़्लो जो रेंडर शुरू करता है, उसका इंतज़ार करता है और URL लौटाता है।
यह एक बातचीत का लूप है। उपयोगकर्ता बात करता है, एजेंट सोचता है, टूल रेंडर करता है, और एजेंट जवाब देता है। पहले संस्करण के लिए इसके अलावा कुछ नहीं चाहिए, और आगे के सभी अपग्रेड (अप्रूवल, स्टोरेज, शेड्यूलिंग) इन्हीं पाँच में से किसी एक से जुड़ते हैं।
फ़िक्स्ड चेन से एजेंट बेहतर क्यों है
एक फ़िक्स्ड चेन (ट्रिगर, लैंग्वेज मॉडल, HTTP रिक्वेस्ट, जवाब) तब तक ठीक चलती है जब तक कोई लिखता है, "मुझे तीन वेरिएशन दो, और उनमें से एक स्क्वायर हो।" एजेंट टूल को अलग-अलग आर्गुमेंट के साथ तीन बार कॉल कर सकता है, कोई स्पष्टीकरण वाला सवाल पूछ सकता है, या ऐसे अनुरोध पर सवाल उठा सकता है जो इतना अस्पष्ट हो कि उसकी कल्पना न की जा सके। चेन वही कर सकती है जो आपने कैनवास पर बनाया है।
स्थिति
फ़िक्स्ड चेन
AI Agent
एक सरल अनुरोध
काम करता है
काम करता है
तीन वेरिएशन
हाथ से बने लूप की ज़रूरत
टूल को तीन बार कॉल करता है
अस्पष्ट अनुरोध
अस्पष्ट टेक्स्ट को आगे भेज देता है
सवाल पूछता है या विवरण जोड़ता है
अलग आस्पेक्ट रेशियो
नई ब्रांच चाहिए
एक और आर्गुमेंट भेजता है
फ़ॉलो-अप एडिट
संदर्भ भूल जाता है
अपनी मेमोरी पढ़ता है
डीबगिंग
सीधी और आसान
एक्ज़ीक्यूशन लॉग चाहिए
💡 इसमें एक असली समझौता है। एजेंट चेन से ज़्यादा टोकन खर्च करते हैं और उनका व्यवहार कम अनुमानित होता है। अगर हर अनुरोध एक जैसा दिखता है, तो चेन सस्ती और सरल है। अनुरोध अलग-अलग हों, तब एजेंट चुनें।
पहले आपको क्या चाहिए
तीन चीज़ें: एक n8n इंस्टेंस जो AI Agent नोड और उसके टूल सब-नोड्स के लिए काफ़ी नया हो, एक चैट मॉडल का क्रेडेंशियल, और एक इमेज API का क्रेडेंशियल। एक टेस्ट रन के लिए धैर्य जोड़ें, और आप तैयार हैं।
दिमाग़ वाला मॉडल चुनें
एजेंट का मॉडल टूल्स को भरोसेमंद तरीके से कॉल कर सकना चाहिए। एक तेज़ मॉडल आमतौर पर काफ़ी होता है, क्योंकि एजेंट ज़्यादातर एक प्रॉम्प्ट लिखता है और दो आर्गुमेंट चुनता है। PicassoIA पर ये लार्ज लैंग्वेज मॉडल अच्छे विकल्प हैं:
टेम्परेचर 0.2 और 0.4 के बीच रखें। कम रैंडमनेस का मतलब है कि टूल के आर्गुमेंट हर बार एक ही आकार में आते हैं।
इमेज मॉडल चुनें
टूल के पीछे जो भी इमेज मॉडल हो, एजेंट को सिर्फ़ एक नाम, एक विवरण और दो इनपुट दिखते हैं। बाद में मॉडल बदलने का मतलब है सब-वर्कफ़्लो में बस एक URL बदलना। ये टेक्स्ट-टू-इमेज मॉडल एक काम की शॉर्टलिस्ट बनाते हैं:
PicassoIA API टेक्स्ट टू इमेज के लिए picassoia/picassoia-image और एडिट के लिए picassoia/picassoia-image-editor-pro देता है। तालिका के मॉडल वेब ऐप से भी चलते हैं, जो उन्हें एक सुविधाजनक टेस्ट बेंच बनाता है: एजेंट को प्रॉम्प्ट भेजने पर भरोसा करने से पहले उसे वहाँ आज़माएँ।
n8n में वर्कफ़्लो बनाना
चरण 1: Chat Trigger और Agent
एक नया वर्कफ़्लो बनाएँ। Chat Trigger नोड जोड़ें (जिसका नाम When chat message received है), फिर एक AI Agent नोड जोड़ें, और ट्रिगर को एजेंट से जोड़ें। आज के n8n वर्ज़न डिफ़ॉल्ट रूप से एजेंट को tools agent के रूप में चलाते हैं। अगर आपका वर्ज़न एजेंट टाइप माँगे, तो Tools Agent चुनें।
एजेंट के Chat Model कनेक्टर के नीचे प्लस चिह्न पर क्लिक करें और अपने क्रेडेंशियल से मेल खाने वाला मॉडल नोड जोड़ें। क्रेडेंशियल पेस्ट करें, टेम्परेचर 0.3 रखें और आगे बढ़ें।
चरण 2: सिस्टम मैसेज लिखें
AI Agent नोड खोलें, System Message विकल्प जोड़ें और यह पेस्ट करें:
You are an image generation assistant.
When the user asks for an image, call the generate_image tool.
Before calling it, rewrite the request as one detailed photographic prompt of 60 to 120 words: subject, setting, lighting direction, lens and surface textures.
Avoid neon, cartoon and CGI wording unless the user asks for it.
If the request is too vague to picture, ask one short question first.
After the tool returns, reply with the image URL on its own line, then one sentence describing the result.
Never invent a URL. If the tool returns an error, say so and offer one retry.
हर पंक्ति का एक काम है। रीराइट का नियम वहीं से इमेज की गुणवत्ता आती है। "कभी URL न बनाएँ" वाला नियम इसलिए है क्योंकि टूल फ़ेल होने पर एजेंट बिना हिचके एक सही-सा दिखने वाला लिंक बना देता है। रीट्राई का नियम अंतहीन लूप रोकता है।
💡 एजेंट के विकल्पों में Max Iterations को 6 या 8 पर सेट करें। फिर अटका हुआ लूप पूरी रात टोकन जलाने के बजाय एरर के साथ खत्म होगा।
चरण 3: इमेज टूल बनाएँ
एजेंट के Tool कनेक्टर में एक Call n8n Workflow Tool सब-नोड जोड़ें। उसका नाम generate_image रखें और विवरण एक जॉब टिकट की तरह लिखें:
Creates one photographic image from a detailed prompt and returns its public URL.
Inputs: prompt (string, required), aspect_ratio (16:9, 1:1 or 9:16).
टूल को एक दूसरे वर्कफ़्लो से जोड़ें, और उस वर्कफ़्लो को इसी क्रम में बनाएँ:
Execute Workflow Trigger जिसमें दो इनपुट फ़ील्ड हों: prompt और aspect_ratio।
HTTP Request, जिसका नाम Create prediction हो और जो रेंडर शुरू करता है।
Wait नोड, 5 सेकंड पर सेट।
HTTP Request, जिसका नाम Get prediction हो और जो स्टेटस जाँचता है।
IF नोड जो जाँचता है कि स्टेटस succeeded के बराबर है या नहीं।
सही होने पर: एक Edit Fields नोड जो imageUrl नाम का एक फ़ील्ड आउटपुट करता है।
गलत होने पर: एक दूसरा IF जो failed को Stop and Error नोड पर भेजता है और बाकी हर स्टेटस को Wait नोड पर वापस भेजता है।
अकेले HTTP Request Tool के बजाय सब-वर्कफ़्लो क्यों? इमेज API असिंक्रोनस होते हैं। अकेला टूल रेंडर शुरू करेगा और एक id लौटाएगा, जिससे एजेंट को खुद पोल करना पड़ेगा, और इसमें अतिरिक्त टर्न और टोकन लगेंगे। सब-वर्कफ़्लो लूप को छिपा देता है, इसलिए एजेंट को एक टूल कॉल और एक URL दिखता है।
चरण 4: मेमोरी जोड़ें
Simple Memory सब-नोड को एजेंट से जोड़ें और कॉन्टेक्स्ट विंडो लगभग आठ मैसेज पर सेट करें। यह डिफ़ॉल्ट रूप से चैट सेशन id का उपयोग करता है, इसलिए हर विज़िटर का इतिहास अलग रहता है। मेमोरी चालू होने पर "अब दूसरी वाली को चौड़ा करो" काम करता है, क्योंकि एजेंट अपना पिछला प्रॉम्प्ट पढ़कर एक डिटेल बदल सकता है।
यही एजेंट फ़ोन से भी जवाब दे सकता है। Chat Trigger को Telegram या Webhook ट्रिगर से बदलें, और बाकी वर्कफ़्लो अछूता रहता है।
इमेज API से जुड़ना
सब-वर्कफ़्लो के अंदर के HTTP नोड PicassoIA API से बात करते हैं: बेस एड्रेस https://api.picassoia.com/v1, एक bearer token जो pia_sk_ से शुरू होता है, और Replicate-style प्रेडिक्शन endpoints। जॉब असिंक्रोनस होते हैं: आप एक प्रेडिक्शन बनाते हैं, उसे पोल करते हैं, फिर नतीजा पढ़ते हैं। अपना token PicassoIA API पेज पर बनाएँ और उसे n8n में Header Auth क्रेडेंशियल के रूप में सेव करें, जिसका नाम Authorization हो और वैल्यू Bearer के बाद आपका token हो।
प्रेडिक्शन बनाएँ
Create prediction नोड में मेथड को POST, ऑथेंटिकेशन को Header Auth के साथ Generic Credential Type, और बॉडी टाइप को JSON पर सेट करें।
रिस्पॉन्स में एक प्रेडिक्शन id शामिल होता है। इनपुट फ़ील्ड के नाम मॉडल के हिसाब से अलग होते हैं, इसलिए जिस मॉडल को आप कॉल करते हैं उसके API पेज पर इन्हें ज़रूर जाँचें। प्रॉम्प्ट 4,000 अक्षर तक हो सकते हैं, जो 120 शब्दों के फ़ोटोग्राफ़िक विवरण के लिए काफ़ी जगह देते हैं।
खत्म होने तक पोल करें
Get prediction में /v1/predictions/{{ $('Create prediction').item.json.id }} पर GET रिक्वेस्ट भेजें। स्टेटस succeeded या failed की ओर बढ़ता है, और IF नोड {{ $json.status }} पढ़ता है। फिर Edit Fields नोड रिस्पॉन्स में से लिंक निकालता है:
कुछ मॉडल सूची लौटाते हैं और कुछ एक ही स्ट्रिंग, इसलिए यह जाँच है। एक काउंटर जोड़ें और 40 पोल के बाद रन को Stop and Error पर भेजें, जो हर पाँच सेकंड पर लगभग तीन मिनट होते हैं। इस सीमा के बिना एक अटकी हुई जॉब एक एक्ज़ीक्यूशन को घंटों खुला रख सकती है।
💡 एक अकाउंट एक समय में 5 प्रेडिक्शन चला सकता है। बैच के लिए एजेंट के सामने 2 या 3 के बैच साइज़ वाला Loop Over Items नोड रखें, ताकि पाँचवीं रिक्वेस्ट कभी भरी हुई क्यू में न पहुँचे।
ऐसे प्रॉम्प्ट जिन्हें एजेंट बेहतर लिखता है
एजेंट को छोटे अनुरोधों का विस्तार करने दें
लोग पाँच शब्द टाइप करते हैं। इमेज मॉडल पचास चाहते हैं। सिस्टम मैसेज यह अंतर पाटता है, इसलिए एजेंट एक छोटे अनुरोध को पूरे फ़ोटोग्राफ़िक ब्रीफ़ में बदल देता है।
उपयोगकर्ता: शाम के समय बारिश वाला एक सड़क बाज़ार
एजेंट प्रॉम्प्ट:शाम के समय बारिश के बाद एक चौड़ा सड़क बाज़ार, धारीदार कैनवस छतरियों के नीचे विक्रेता, गीले पत्थर की सड़क पर गर्म टंगस्टन बल्बों की चमक, बीच की दूरी में छतरियाँ लिए ख़रीदार, बाईं ओर से बहता हल्का कोहरा, f/2 पर 35mm लेंस, बारीक फ़िल्म ग्रेन, Kodak Portra 400 पैलेट, कपड़े की बुनावट और फलों की टोकरियों पर पानी की बूँदें दिखाई देती हुईं।
ये नियम सिस्टम मैसेज में डालें, और एजेंट इन्हें हर बार लागू करेगा:
रोशनी की दिशा बताएँ, जैसे बाईं ओर से नरम खिड़की की रोशनी।
लेंस बताएँ, जैसे 35mm f/2 या 85mm f/1.8।
सतह की बनावट बताएँ: कपड़े की बुनावट, लकड़ी का ग्रेन, गीला पत्थर।
हर प्रॉम्प्ट में एक सब्जेक्ट रखें।
इमेज के भीतर टेक्स्ट से बचें, या उसे एक-दो शब्दों तक सीमित रखें।
इन्हें नियमों के रूप में लिखें ("हमेशा लेंस का नाम बताएँ"), उम्मीदों के रूप में नहीं ("लेंस का ज़िक्र करने की कोशिश करें")। एजेंट सुझावों की तुलना में नियमों का कहीं ज़्यादा पालन करते हैं।
Flux 2 Pro का उपयोग कैसे करें
किसी स्टाइल नियम को सिस्टम मैसेज में डालने से पहले PicassoIA पर उसे हाथ से आज़माएँ:
एजेंट द्वारा किसी पिछले रन में लिखा विस्तारित प्रॉम्प्ट पेस्ट करें।
वाइड सीन के लिए 16:9, प्रोडक्ट टाइल के लिए 1:1, या स्टोरीज़ के लिए 9:16 चुनें।
जनरेशन चलाएँ और नतीजे की तुलना अपने मन की तस्वीर से करें।
एक बार में एक डिटेल बदलें, पहले रोशनी और फिर लेंस, और फिर से चलाएँ।
जब आउटपुट मेल खा जाए, तो जीतने वाले शब्दों को वापस सिस्टम मैसेज में कॉपी करें।
💡 हर रन में एक ही वैरिएबल बदलें। अगर आप हर बार पूरा प्रॉम्प्ट दोबारा लिखते हैं, तो कभी पता नहीं चलता कि कौन सा बदलाव काम आया। किसी सीन के भीतर छोटा और पढ़ने योग्य टेक्स्ट चाहिए, तो वही प्रॉम्प्ट GPT Image 2 से चलाकर तुलना करें।
जहाँ वर्कफ़्लो अपनी कीमत वसूलता है
माँग पर प्रोडक्ट शॉट्स
एक दुकान का मालिक टाइप करता है "लिनन पर सिरेमिक मग, सुबह की रोशनी", और एक ही बातचीत में उसे लिस्टिंग के लिए ड्राफ़्ट फ़ोटो मिल जाती है। एजेंट के बाद एक Google Sheets नोड जोड़ें, जो प्रोडक्ट का नाम, प्रॉम्प्ट और URL एक शीट में जोड़ दे। तब टीम के पास हर रेंडर का लॉग होता है, और किसी को अच्छी फ़ोटो के लिए चैट इतिहास नहीं खंगालना पड़ता।
चूँकि मेमोरी चालू है, मालिक कह सकता है "वही मग, गहरी लकड़ी की मेज़" और एजेंट पिछले शब्दों को एक बदलाव के साथ दोबारा इस्तेमाल करता है। फ़ॉलो-अप की यही आदत एजेंट को एक फ़ॉर्म से अलग करती है।
ब्लॉग और सोशल बैच
Chat Trigger को Schedule Trigger से बदलें। एक शीट से विषयों का एक कॉलम पढ़ें, हर पंक्ति को Loop Over Items के ज़रिए एजेंट में भेजें, और लौटा URL विषय के बगल में वापस लिखें। फिर आप कुछ और करते रहें और एक हफ़्ते की हीरो इमेज अपने आप आ जाती हैं।
किसी भी चीज़ के सार्वजनिक होने से पहले एक मानवीय जाँच जोड़ें। URL Slack या ईमेल पर भेजें और थम्स-अप का इंतज़ार करें। एजेंट तेज़ हैं, लेकिन कोई इंसान अभी भी एक एक्स्ट्रा उंगली या गलत मौसम को पकड़ लेता है।
आम विफलताओं को ठीक करना
लक्षण
संभावित कारण
समाधान
एजेंट टूल कॉल किए बिना जवाब देता है
अस्पष्ट टूल विवरण
विवरण एक क्रिया से शुरू करें और हर इनपुट का नाम लें
टूल चलता है पर जवाब में URL नहीं है
आउटपुट फ़ील्ड के नाम में गड़बड़ी
जाँचें कि Edit Fields नोड imageUrl आउटपुट करता है और सब-वर्कफ़्लो अकेले टेस्ट करें
पोलिंग कभी खत्म नहीं होती
कोई फ़ेल्योर ब्रांच नहीं या पोल की सीमा नहीं
failed को Stop and Error पर भेजें और लूप को 40 पोल पर सीमित करें
401 रिस्पॉन्स
गलत हेडर या एक्सपायर्ड token
Header Auth क्रेडेंशियल फिर से बनाएँ और Bearer प्रीफ़िक्स रखें
429 या क्यू एरर
एक साथ 5 से ज़्यादा जॉब
2 या 3 के बैच साइज़ के साथ Loop Over Items का उपयोग करें
इमेज कार्टून जैसी दिखती हैं
प्रॉम्प्ट में फ़ोटोग्राफ़िक डिटेल नहीं है
सिस्टम मैसेज में लेंस, रोशनी की दिशा और बनावट के नियम जोड़ें
एजेंट बार-बार टूल कॉल करता है
Max Iterations बहुत ज़्यादा है
इसे 6 पर सेट करें और सिंगल-रीट्राई नियम रखें
💡 जब कुछ टूटे, तो पिन किए इनपुट डेटा के साथ सब-वर्कफ़्लो अकेले चलाएँ। अगर वह अपने आप काम करता है, तो गड़बड़ी एजेंट के निर्देशों में है, HTTP नोड्स में नहीं।
आज ही PicassoIA पर आज़माएँ
पहले सबसे छोटा संस्करण बनाएँ: एक Chat Trigger, एक AI Agent, एक इमेज टूल। वायरिंग के दस मिनट आपको एक ऐसा चैट बॉक्स देंगे जो फ़ोटो लौटाता है, और उसके बाद हर अपग्रेड एक ही नोड का काम है।
अपने ब्राउज़र में Flux 2 Pro, GPT Image 2 या Nano Banana Pro खोलें और अपना पहला प्रॉम्प्ट खुद लिखें। ऊपर दिए लैंग्वेज मॉडल में से एक दिमाग़ चुनें, PicassoIA API पेज से एक API token लें, और एजेंट को आपके लिए अगले सौ प्रॉम्प्ट लिखने दें। PicassoIA पर अपनी इमेज बनाएँ, फिर सबसे अच्छा प्रॉम्प्ट अपने वर्कफ़्लो में वापस भेजें।