HI ▾
API कुंजी पाएँ

स्टेबल डिफ्यूजन प्रॉम्प्ट जनरेटर एलएलएम: पायथॉन सेटअप

अद्यतन

यदि आप एक स्टेबल डिफ्यूजन प्रॉम्प्ट जनरेटर एलएलएम चाहते हैं जो कुछ शब्दों को एक पूर्ण, अच्छी तरह से संरचित प्रॉम्प्ट में विस्तारित करे, तो आपको केवल एक टेक्स्ट मॉडल और लगभग तीस पंक्तियों पायथॉन की आवश्यकता है। मॉडल प्रॉम्प्ट को टेक्स्ट के रूप में लिखता है; यह छवियां रेंडर नहीं करता है, इसलिए आपको परिणाम को SDXL या किसी भी इमेज टूल के माध्यम से चलाना होगा।

एक कांच का फनल कुछ चमकते शब्दों को एक लंबी विवरण पट्टी में बदलता है जो एक खाली कैनवास की ओर बढ़ती है
एक छोटे मंच का दृश्य, जिसमें टेक्स्ट रोलप्ले परिदृश्य का प्रतिनिधित्व करते हुए चमकते हुए बातचीत के बुलबुले हैं

मुख्य बिंदु

  • LLM केवल पाठ लिखता है। अपने SDXL, ComfyUI या Automatic1111 सेटअप में इसका आउटपुट भेजें।
  • JSON मोड एक सकारात्मक प्रॉम्प्ट और एक नकारात्मक प्रॉम्प्ट लौटाता है जिसे आप बिना regex के पार्स कर सकते हैं।
  • एक विस्तार की लागत $0.0001 से कम है, इसलिए 1,000 प्रॉम्प्ट्स की लागत लगभग $0.09 है।
  • प्रॉम्प्ट संक्षिप्त रखें: SDXL के टेक्स्ट एन्कोडर केवल प्रत्येक खंड के पहले 77 टोकन पढ़ते हैं।

LLM क्या करता है और क्या नहीं करता

इमेज मॉडल घने, विशिष्ट प्रॉम्प्ट्स पर अच्छी प्रतिक्रिया देते हैं: विषय, सेटिंग, लेंस, रोशनी, माध्यम, मूड, और उन चीज़ों की सूची जिन्हें परहेज़ करना है। अधिकांश लोग तीन शब्द टाइप करते हैं और समतल परिणाम पाते हैं। एक LLM उस अंतर को पाटता है, आपकी छोटी सी सोच को लेता है और उसे एक संगत प्रारूप में लंबा संस्करण लिखकर देता है।

काम की बांट के बारे में स्पष्ट रहें। यह सेवा एक केवल-पाठ API है। यह छवि, ऑडियो या वीडियो उत्पन्न नहीं करता है, और इसमें एम्बेडिंग्स या फाइन-ट्यूनिंग नहीं है। यह आपकी इमेज पाइपलाइन के सामने बैठता है और उस पाइपलाइन के लिए निर्देश लिखता है जिसे वह पढ़ती है। यह एक ओपन-वेट मॉडल को सर्व करने वाला OpenAI-संगत एंडपॉइंट है, जो किसी इमेज मॉडल विक्रेता का उत्पाद नहीं है।

मॉडल को कानूनी वयस्कों के उपयोग के लिए बिना सामग्री अस्वीकृति के उत्तर देने के लिए ट्यून्ड किया गया है, जो कलाकारों और गेम डेवलपर्स के लिए महत्वपूर्ण है जिनके विषय (हॉरर, काल्पनिक हिंसा, परिपक्व थीम) अन्यत्र ब्लॉक हो जाते हैं। नाबालिगों से जुड़ी यौन सामग्री एक कठोर सीमा है और कभी भी उत्पन्न नहीं की जाती।

चरण 1: एक कुंजी प्राप्त करें और एक कॉल का परीक्षण करें

Google या ईमेल और पासवर्ड से साइन अप करें, फिर API कुंजी पेज खोलें। एक-क्लिक ट्रायल $0.50 का क्रेडिट जोड़ता है, जो 7 दिनों के लिए मान्य है और जिसमें कार्ड की आवश्यकता नहीं है। जैसा कि लागत अनुभाग दिखाता है, यह हजारों प्रॉम्प्ट विस्तारों के लिए पर्याप्त है।

जांचें कि curl के साथ सब कुछ काम कर रहा है:

curl https://api.sdxlapi.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "system", "content": "You write Stable Diffusion prompts."},
      {"role": "user", "content": "lighthouse in a storm"}
    ]
  }'

आपके बेस URL और कुंजी बदलने पर कोई भी OpenAI SDK काम करेगा। विवरण दस्तावेज़ीकरण में हैं।

चरण 2: स्थिर आउटपुट देने वाला सिस्टम प्रॉम्प्ट

सिस्टम प्रॉम्प्ट गुणवत्ता का स्रोत है। मॉडल को लक्ष्य प्रारूप, तत्वों का क्रम, लंबाई की सीमा और छोड़ने योग्य चीज़ें बताएं। एक संस्करण जो शुरुआत के रूप में अच्छा काम करता है:

आप छोटी इमेज अवधारणाओं को SDXL के लिए प्रॉम्प्ट्स में बदलते हैं। 40 से 60 शब्दों का एक सकारात्मक प्रॉम्प्ट लिखें: पहले विषय, फिर सेटिंग, संरचना, प्रकाश व्यवस्था, माध्यम या शैली, और मूड। कॉमा-सेपरेटेड फ्रेज़ का उपयोग करें, पूर्ण वाक्यों का नहीं। फिर 15 छोटे वाक्यांशों तक का एक नकारात्मक प्रॉम्प्ट लिखें। तस्वीर में टेक्स्ट, वॉटरमार्क या कैप्शन न जोड़ें। "prompt" और "negative" कुंजियों के साथ JSON लौटाएं।

शब्द सीमा महत्वपूर्ण है। SDXL के CLIP टेक्स्ट एनकोडर्स 77 टोकन के चंक्स में प्रॉम्प्ट पढ़ते हैं, और इसके आगे की सामग्री या तो काट दी जाती है या आपके UI में चंकिंग फीचर द्वारा संभाली जाती है। 40 से 60 शब्दों का लक्ष्य रखने से अधिकांश प्रॉम्प्ट एक ही चंक में रहते हैं, जिसमें सबसे महत्वपूर्ण विवरण पहले आते हैं।

शैली को स्थिर रखने के लिए लेकिन एक ही अवधारणा के दो रन अलग-अलग हों, इसके लिए कम-से-मध्यम तापमान (0.7 से 0.9) का उपयोग करें। यदि आपको परीक्षण के लिए समान आउटपुट चाहिए, तो एक स्थिर seed पास करें।

चरण 3: पायथन स्क्रिप्ट

यह स्क्रिप्ट एक सूची से विचार पढ़ती है, JSON मांगती है और प्रॉम्प्ट जोड़ी प्रिंट करती है। यह आधिकारिक OpenAI पायथन पैकेज का उपयोग करता है जिसका बेस URL बदला गया है।

import json
from openai import OpenAI

client = OpenAI(base_url="https://api.sdxlapi.com/v1", api_key="YOUR_KEY")

SYSTEM = (
    "You turn short image ideas into prompts for SDXL. Write one positive "
    "prompt of 40 to 60 words: subject, setting, composition, lighting, "
    "medium or style, mood, as comma-separated phrases. Then a negative "
    "prompt of up to 15 short phrases. Return JSON with keys "
    "'prompt' and 'negative'."
)

def expand(idea: str) -> dict:
    resp = client.chat.completions.create(
        model="uncensored",
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": idea},
        ],
        response_format={"type": "json_object"},
        temperature=0.8,
        max_tokens=400,
    )
    return json.loads(resp.choices[0].message.content)

for idea in ["lighthouse in a storm", "abandoned greenhouse at dawn"]:
    result = expand(idea)
    print(idea, "->", result["prompt"])
    print("negative:", result["negative"], "\n")

JSON मोड (response_format के साथ json_object) प्रतिक्रिया को साफ़-सुथरा पार्स करने योग्य बनाता है। फिर भी उत्पादन में json.loads को एक try ब्लॉक में लपेटें और यदि यह विफल हो तो एक बार पुनः प्रयास करें, क्योंकि एक लंबी प्रतिक्रिया max_tokens पर कटी होने पर वस्तु के मध्य समाप्त हो सकती है।

चरण 4: अपने इमेज टूल को प्रॉम्प्ट भेजें

आउटपुट सादे स्ट्रिंग्स हैं, इसलिए कोई भी फ्रंट-एंड इसे ले सकता है। एक स्थानीय Automatic1111 या ComfyUI इंस्टॉल के साथ, इसके API में दो फ़ील्ड्स पोस्ट करें। एक स्क्रिप्ट के साथ जो विचारों के CSV पर लूप चलाता है, परिणामों को एक फ़ाइल में लिखें और उन्हें बैच के रूप में क्यू करें।

  • विचार, प्रॉम्प्ट और नकारात्मक प्रॉम्प्ट को एक साथ सहेजें, ताकि आप एक अच्छी इमेज को उस निर्देश से जोड़ सकें जिसने उसे उत्पन्न किया था।
  • जब आप एक मेल खाने वाली शैली वाली श्रृंखला चाहते हैं, तो उपयोगकर्ता संदेश में एक अतिरिक्त फ़ील्ड के रूप में अपनी स्वयं की सूची से एक शैली लाइन ("cinematic photograph", "ink illustration") जोड़ें।
  • उन प्रॉम्प्ट्स की एक छोटी लाइब्रेरी बनाए रखें जो काम कर चुके हैं, और उन्हें उदाहरण के रूप में सिस्टम प्रॉम्प्ट में दो या तीन जोड़ें। फी-शॉट उदाहरण शैली को विशेषणों की तुलना में अधिक विश्वसनीय रूप से निर्देशित करते हैं।

रोलप्ले या गेम प्रोजेक्ट के लिए, एक ही पैटर्न कहानी के दृश्य दिखा सकता है, जहाँ LLM अंतिम कुछ पैराग्राफ़ों को दृश्य विवरण में बदल देता है। पाठ-आधारित भूमिका-निभाने वाले परिदृश्य लेख कहानी के पहलू को कवर करता है।

सामान्य समस्याएं और समाधान

लगभग हर प्रॉम्प्ट-जनरेटर प्रोजेक्ट में कुछ समस्याएँ आती हैं।

मॉडल टिप्पणी जोड़ता है

"यहाँ आपका प्रॉम्प्ट है" से शुरू होने वाली प्रतिक्रियाएँ पाइपलाइनों को तोड़ देती हैं। JSON मोड इसका अधिकांश हिस्सा हटा देता है। यदि आप सादे पाठ में काम करते हैं, तो "केवल प्रॉम्प्ट आउटपुट करें, कोई प्रीएम्बल नहीं" कहें और एक स्टॉप सीक्वेंस जोड़ें जिसकी लाइन आप कभी देखना नहीं चाहते।

सभी प्रॉम्प्ट एक जैसे दिखते हैं

कम तापमान और एक कठोर टेम्पलेट समान परिणाम देते हैं। तापमान को 1.0 तक बढ़ाएं, जिस शैली लाइन को आप पास करते हैं उसे बदलें, या तीन विकल्प मांगें और एक चुनें। पेनल्टी (frequency_penalty, presence_penalty) पास की जाती हैं और दोहराए गए वाक्यांशों को तोड़ सकती हैं।

प्रॉम्प्ट इमेज मॉडल के लिए बहुत लंबे हैं

सिस्टम प्रॉम्प्ट में एक कठोर शब्द सीमा डालें और कोड में लंबाई की जाँच करें। हाथ से ट्रंकेट करने से आखिरी विवरण छूट जाते हैं, जो आमतौर पर सबसे कम महत्वपूर्ण होते हैं, लेकिन मॉडल को पहले से ही छोटा लिखने के लिए कहना बेहतर है।

आप 429 पर पहुँचते हैं

आपने प्रति मिनट या एक साथ बहुत अनुरोध भेज दिए। कुछ सेकंड के लिए रुकें और पुनः प्रयास करें; प्रतिक्रिया में Retry-After: 5 शामिल हो सकता है। 4 से 8 वर्कर्स की छोटी थ्रेड पूल वाला एक बैच पूरे API कुंजी की सीमाओं के भीतर रहता है।

1,000 प्रॉम्प्ट की लागत

मूल्य $0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन है। एक सामान्य विस्तार में लगभग 150 टोकन का सिस्टम प्रॉम्प्ट और 15 टोकन का विचार भेजा जाता है, यानी 170 टोकन इनपुट में और लगभग 120 टोकन JSON प्राप्त होता है।

  • इनपुट: 170 × $0.15 / 1M = $0.0000255।
  • आउटपुट: 120 × $0.50 / 1M = $0.00006।
  • प्रति प्रॉम्प्ट: लगभग $0.0000855।
  • 1,000 प्रॉम्प्ट: लगभग $0.0855, या $0.09।

लंबे सिस्टम प्रॉम्प्ट्स या फ्यू-शॉट उदाहरणों के लिए इसे ऊपर की ओर लें। यदि आप 600 टोकन के उदाहरण जोड़ते हैं, तो इनपुट 770 टोकन हो जाता है और 1,000 प्रॉम्प्ट्स का इनपुट + आउटपुट खर्च लगभग $0.1155 + $0.06 होता है, कुल मिलाकर लगभग $0.18। किसी भी स्थिति में, $0.50 का ट्रायल कई हजार विस्तारों को कवर करता है। विफल अनुरोधों के लिए चार्ज नहीं किया जाता है, और भुगतान किया गया क्रेडिट कभी समाप्त नहीं होता; टॉप-अप ($20 से $500, क्रिप्टो द्वारा) के लिए मूल्य निर्धारण पृष्ठ देखें।

प्रश्न और उत्तर

क्या LLM स्टेबल डिफ्यूजन इमेज स्वयं जनरेट कर सकता है?

नहीं। यह केवल पाठ लिखता है। आप अपने प्रॉम्प्ट को SDXL, ComfyUI, Automatic1111 या किसी अन्य इमेज टूल में पास करते हैं जिसे आप चलाते हैं।

SDXL प्रॉम्प्ट कितना लंबा होना चाहिए?

40 से 60 शब्द अच्छे काम करते हैं, मुख्य विवरण पहले, क्योंकि टेक्स्ट एनकोडर्स 77-टोकन चंक्स में पढ़ते हैं।

क्या यह परिपक्व या डार्क थीम्स को अस्वीकार करता है?

मॉडल को कानूनी वयस्कों के उपयोग के लिए बिना सामग्री अस्वीकृति के उत्तर देने के लिए ट्यून्ड किया गया है। नाबालिगों से जुड़ी सामग्री कभी उत्पादित नहीं की जाती है।

मुझे कौन सा मॉडल नाम भेजना चाहिए?

मॉडल ID के रूप में uncensored भेजें, बेस URL https://api.sdxlapi.com/v1 और अपनी कुंजी को Bearer टोकन के रूप में।

क्या मैं समानांतर में कई प्रॉम्प्ट चला सकता हूँ?

एक पूर्ण कुंजी 8 समानांतर अनुरोध और प्रति मिनट 300 की अनुमति देती है; एक ट्रायल कुंजी 2 और 60 की अनुमति देती है। 429 प्रतिक्रिया का अर्थ है प्रतीक्षा करें और पुनः प्रयास करें।

आपकी कुंजी बस एक फ़ॉर्म दूर है

एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। सेटअप यही है।

API कुंजी पाएँ