Seedream API Key: मुफ़्त एक्सेस, प्लेग्राउंड और Node.js उदाहरण
Seedream PicassoIA के प्लेग्राउंड में मुफ़्त चलता है, जबकि PicassoIA API आपके अकाउंट से एक Bearer सीक्रेट लेता है और Node.js स्क्रिप्ट्स को अपने मॉडल देता है। जानें कि कौन सा रास्ता आपके काम का है, सीमाएँ क्या हैं, और पोलिंग व एरर हैंडलिंग के साथ एक काम करने वाला fetch उदाहरण चलाएँ।
Seedream API Key सर्च बार में टाइप करने पर आप दो बिल्कुल अलग जगहों पर पहुँचते हैं: ByteDance का अपना प्लेटफ़ॉर्म, और मॉडल को आपके लिए होस्ट करने वाली कई साइटें। आपको किसकी ज़रूरत है, यह इस पर निर्भर है कि आप क्या शिप करना चाहते हैं। अगर आप बस देखना चाहते हैं कि Seedream क्या बनाता है, तो आपको कोई क्रेडेंशियल नहीं चाहिए। अगर आपको ऐसी स्क्रिप्ट चाहिए जो प्रॉम्प्ट भेजे और फ़ाइलें सेव करे, तो आपको किसी API प्रोवाइडर का अकाउंट चाहिए, और प्रोवाइडर कीमत, सीमाओं और मॉडल एक्सेस में काफ़ी अलग हैं। यह आर्टिकल हर रास्ते को आधिकारिक पेज की जाँची हुई जानकारी के साथ समझाता है, बताता है कि मुफ़्त एक्सेस कहाँ खत्म होता है, और एक Node.js स्क्रिप्ट देता है जिसे आप आज ही चला सकते हैं। एक नतीजा पहले ही साफ़ कह देना ज़रूरी है: PicassoIA API अपने चार मॉडल देता है, और Seedream उनमें नहीं है, इसलिए PicassoIA पर Seedream प्लेग्राउंड में मिलता है।
Seedream तक पहुँचने के दो रास्ते
Seedream ByteDance के इमेज मॉडल का एक परिवार है, और एक ही मॉडल नाम कई अलग-अलग दरवाज़ों के पीछे दिखता है। कोड कॉपी करने से पहले वह दरवाज़ा चुनें जो आपके लक्ष्य से मेल खाता हो।
रास्ता
आपको क्या चाहिए
किसके लिए सबसे अच्छा
कैच
ब्राउज़र प्लेग्राउंड
PicassoIA अकाउंट
प्रॉम्प्ट, रेफ़रेंस, 2K और 4K आउटपुट आज़माना
मैन्युअल, एक बार में एक जनरेशन
डायरेक्ट प्रोवाइडर API
प्रोवाइडर के कंसोल से क्रेडेंशियल
ऐसे ऐप्स जो सीधे Seedream को कॉल करें
कोई ट्रायल कोटा खत्म होने पर पे-एज़-यू-गो बिलिंग
PicassoIA API
आपके अकाउंट से pia_sk_ सीक्रेट
PicassoIA के अपने मॉडल इस्तेमाल करने वाली स्क्रिप्ट्स
Seedream उनकी मॉडल लिस्ट में नहीं है
एक आसान नियम: अगर आउटपुट किसी पोस्ट या प्रेज़ेंटेशन के लिए कुछ तस्वीरें हैं, तो प्लेग्राउंड इस्तेमाल करें और वहीं रुकें। अगर आप ऐसा प्रोडक्ट बना रहे हैं जहाँ यूज़र सीधे Seedream चलाते हैं, तो प्रोवाइडर के पास जाएँ और पहले दिन से पे-एज़-यू-गो बिलिंग का बजट बनाएँ। अगर आप PicassoIA मॉडल से थंबनेल या एडिट्स के बैच ऑटोमेट कर रहे हैं, तो PicassoIA API ठीक रहता है, बशर्ते आपका प्लान इसकी इजाज़त दे। रास्ते मिलाना सामान्य है: प्लेग्राउंड में ड्राफ़्ट बनाएँ, फिर जो प्रॉम्प्ट सबसे अच्छा लगे उसे स्क्रिप्ट में ले जाएँ।
प्लेग्राउंड का रास्ता
अंदर जाने का सबसे तेज़ तरीका ब्राउज़र है। Seedream 5 Pro टेक्स्ट प्रॉम्प्ट, या 10 तक रेफ़रेंस फ़ोटो, को 1K या 2K इमेज में बदलता है। Seedream 4.5 रिज़ॉल्यूशन को और ऊँचे स्तर तक ले जाता है, 4096 पिक्सल तक 2K और 4K आउटपुट के साथ, और एक बैच मोड जो एक रन में 15 तक संबंधित इमेज लौटाता है। दोनों मॉडल पेज ब्राउज़र अनुभव को मुफ़्त और ऑनलाइन बताते हैं, और इसके लिए कोडिंग की ज़रूरत नहीं है।
यह रास्ता उन लोगों के लिए ठीक है जो आँखों से देखकर सुधार करते हैं: रोशनी का कोई शब्द बदलें, दोबारा जनरेट करें, और दो नतीजों को साथ रखकर तुलना करें। यह उस काम के लिए ठीक नहीं है जिसे रात भर में 500 इमेज चाहिए, क्योंकि हर जनरेशन एक मैन्युअल क्लिक है।
डायरेक्ट प्रोवाइडर का रास्ता
Seedream 5 Pro का पेज खुद BytePlus की गाइडेंस का हवाला देता है, और बताता है कि प्रॉम्प्ट 600 अंग्रेज़ी शब्दों से कम हों तो सबसे अच्छा काम करते हैं। BytePlus अपना मॉडल प्लेटफ़ॉर्म ModelArk चलाता है, और डायरेक्ट Seedream क्रेडेंशियल उसी कंसोल से आता है। ModelArk डॉक्युमेंटेशन के अनुसार नए अकाउंट को एक मुफ़्त इनफ़रेंस ट्रायल कोटा मिलता है, जो पे-एज़-यू-गो इनफ़रेंस फ़ीस को ऑफ़सेट करता है। यह कोटा हर मॉडल के लिए अलग से गिना जाता है और प्राइमरी अकाउंट के अंदर साझा होता है। इमेज जनरेशन इमेज जनरेशन API से होकर जाती है, जो एक /images/generations एंडपॉइंट देता है। थर्ड-पार्टी इंटीग्रेशन डॉक्स डिफ़ॉल्ट रीजनल बेस URL के रूप में https://ark.ap-southeast.bytepluses.com/api/v3 लिस्ट करते हैं।
💡 मॉडल या एंडपॉइंट ID हमेशा अपने ModelArk कंसोल से कॉपी करें, किसी ब्लॉग पोस्ट से नहीं, इस पोस्ट से भी नहीं। ID हर रिलीज़ के साथ बदलते हैं, और पुरानी ID अनुरोध को मॉडल तक पहुँचने से पहले ही फ़ेल कर देती है।
मैं यहाँ जानबूझकर डायरेक्ट प्रोवाइडर का कोड सैंपल नहीं दे रहा। रिक्वेस्ट का ढाँचा और मॉडल ID BytePlus के हैं, वे बदलते रहते हैं, और अंदाज़े से लिखी गलत ID आपकी दोपहर बर्बाद कर देती है। इस आर्टिकल में आगे दिया गया Node.js उदाहरण PicassoIA API इस्तेमाल करता है, जहाँ हर एंडपॉइंट और फ़ील्ड सीधे उसके डॉक्युमेंटेशन से लिया गया है।
बिना किसी क्रेडेंशियल के मुफ़्त एक्सेस
मुफ़्त एक्सेस असली है, पर उसकी सीमाएँ भी हैं। हर पेज जो दावा करता है और वे दावे कहाँ रुकते हैं, यह यहाँ है।
ब्राउज़र में मुफ़्त होने से API के बारे में कुछ तय नहीं होता। PicassoIA Image पेज बिना प्रति-इमेज सीमा के अनलिमिटेड टेक्स्ट-टू-इमेज जनरेशन का वादा करता है। API डॉक्युमेंटेशन कहता है कि प्रेडिक्शन अभी मुफ़्त हैं और कोई क्रेडिट नहीं लगते, फिर भी उसी डॉक्युमेंटेशन में ज़रूरी प्लान के तौर पर Infinite प्लान लिखा है, और उसके बिना अनुरोध 403 plan_required लौटाता है।
प्राइसिंग पेज API एक्सेस को एक से ज़्यादा टियर पर लिस्ट करता है, इसलिए दोनों पेज इसे अलग-अलग शब्दों में कहते हैं। किसी प्रोडक्ट को इसके ऊपर बनाने से पहले अपना प्लान खुद जाँच लें। यही सावधानी प्रोवाइडर ट्रायल कोटा पर भी लागू होती है: ट्रायल एक शुरुआती बैलेंस है, स्थायी इजाज़त नहीं।
सीमाएँ फ़्लैट इमेज गिनती के बजाय रिज़ॉल्यूशन, बैच साइज़ या एक साथ चलने वाली रिक्वेस्ट से भी जुड़ी हो सकती हैं। किसी बैच जॉब को उस संख्या पर डिज़ाइन करने से पहले API सेक्शन की लिमिट्स टेबल पढ़ें, क्योंकि वह संख्या आपने सिर्फ़ लैंडिंग पेज पर देखी होगी।
प्रॉम्प्ट लिखें। लिमिट 4000 कैरेक्टर की है, लेकिन BytePlus 600 से कम अंग्रेज़ी शब्दों में रहने की सलाह देता है।
साइज़ चुनें।1K लगभग 2 मेगापिक्सल है और 2K लगभग 4 मेगापिक्सल। डिफ़ॉल्ट 2K है।
आस्पेक्ट रेशियो चुनें। विकल्प हैं 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3 और 21:9। डिफ़ॉल्ट, match_input_image, आपकी पहली रेफ़रेंस फ़ोटो का अनुपात कॉपी करता है।
अगर हों तो रेफ़रेंस जोड़ें। चेहरों, ऑब्जेक्ट्स या स्टाइल को एक ही रिज़ल्ट में मिलाने के लिए 1 से 10 इमेज जोड़ें।
आउटपुट फ़ॉर्मेट सेट करें और जनरेट करें। PNG या JPEG चुनें, इसे चलाएँ और फ़ाइल डाउनलोड करें।
प्रॉम्प्ट की वे सेटिंग्स जो मायने रखती हैं
तीन सेटिंग्स नतीजों को प्रॉम्प्ट के किसी भी विशेषण से ज़्यादा बदलती हैं:
साइज़। ड्राफ़्ट के लिए 1K और जो भी आप पब्लिश करेंगे उसके लिए 2K इस्तेमाल करें। जब आपको 4K चाहिए, तब Seedream 4.5 पर स्विच करें, क्योंकि Seedream 5 Pro 2K से आगे नहीं जाता।
रेफ़रेंस की संख्या। ज़्यादा रेफ़रेंस कंसिस्टेंसी बढ़ाते हैं, लेकिन बंदिशें भी बढ़ाते हैं। दो या तीन से शुरू करें और तभी और जोड़ें जब चेहरा या प्रोडक्ट भटकने लगे।
आस्पेक्ट रेशियो। जब इमेज का कोई तय ठिकाना हो, तब इसे साफ़-साफ़ सेट करें। किसी रेफ़रेंस से मेल खाने देना सुविधाजनक है, पर यह चुपचाप उस फ़ोटो का क्रॉप भी विरासत में ले लेता है।
💡 प्रकाश का वर्णन करें, मूड का नहीं। "बाईं ओर से नीची धूप, फ़ुटपाथ पर लंबी परछाइयाँ" मॉडल को कुछ बनाने के लिए देता है। "नाटकीय माहौल" उसे कुछ नहीं देता।
यहाँ एक प्रॉम्प्ट है जो इन सेटिंग्स का अच्छा इस्तेमाल करता है, जिसे 2K के लिए 16:9 पर लिखा गया है: A ceramic bowl of oranges on a linen cloth beside a window, low morning sun from the left, soft shadows stretching across the wooden table, 85mm lens look, shallow depth of field, visible weave in the linen. इसमें 50 से कम शब्दों में एक सब्जेक्ट, रोशनी की दिशा और सतह की बनावट बताई गई है। Seedream 5 Pro इससे कहीं ज़्यादा विवरण स्वीकार करता है, लेकिन छोटा और ठोस प्रॉम्प्ट सबसे अच्छी शुरुआत है: हर बार एक विवरण जोड़ें और बदलाव तभी रखें जब इमेज बेहतर हो।
PicassoIA API का रास्ता
क्रेडेंशियल कहाँ से आता है
PicassoIA डेवलपर API pia_sk_ से शुरू होने वाले Bearer सीक्रेट से ऑथेंटिकेट होता है। इसे आप PicassoIA API पेज के ज़रिए अपने अकाउंट से बनाते हैं, और हर अकाउंट में दो तक रह सकते हैं। इसे पासवर्ड की तरह समझें: इसे एनवायरनमेंट वेरिएबल में रखें, किसी रिपॉज़िटरी में कभी नहीं, और अगर यह किसी स्क्रीनशॉट या लॉग में आ जाए तो इसे रोटेट करें।
Node 20.6 या उससे नए वर्ज़न पर आप सीक्रेट को .env फ़ाइल में रख सकते हैं और node --env-file=.env generate.mjs से लोड कर सकते हैं, ताकि वह कभी आपकी शेल हिस्ट्री में न जाए। पहले कमिट से पहले .env को .gitignore में जोड़ें। अगर आप स्क्रिप्ट डिप्लॉय करते हैं, तो फ़ाइल कॉपी करने के बजाय वेरिएबल को अपने होस्ट के सीक्रेट मैनेजर में सेट करें।
API किन मॉडलों को सर्व करती है
API डॉक्युमेंटेशन चार मॉडल लिस्ट करता है:
PicassoIA Image, स्लग picassoia/picassoia-image, टेक्स्ट-टू-इमेज के लिए
PicassoIA Image Editor Pro, स्लग picassoia/picassoia-image-editor-pro, 1 से 4 इनपुट इमेज के साथ एडिटिंग के लिए
Seedance 2.5 Lite, स्लग picassoia/seedance-2.5-lite, ऑडियो के साथ वीडियो
Seedream उस लिस्ट में नहीं है। अगर कोई ट्यूटोरियल कहता है कि pia_sk_ सीक्रेट से Seedream मॉडल कॉल करें, तो पहले अपने अकाउंट की मॉडल लिस्ट जाँचें।
प्लान और लिमिट्स
आइटम
मान
बेस URL
https://api.picassoia.com/v1
ऑथेंटिकेशन
Authorization: Bearer pia_sk_…
प्रेडिक्शन बनाएँ
POST /v1/models/{owner}/{name}/predictions
प्रेडिक्शन पोल करें
GET /v1/predictions/{id}
एक साथ चलने वाले प्रेडिक्शन
अकाउंट पर 5, सभी क्रेडेंशियल और MCP जनरेशन में साझा
रिक्वेस्ट बॉडी
अधिकतम 10 MB
डेटा URL के रूप में इमेज
हर एक 5 MB
प्रॉम्प्ट
4000 कैरेक्टर
अकाउंट पर क्रेडेंशियल
2
चलने वाला Node.js उदाहरण
आपको Node 18 या उससे नया चाहिए, जिसमें ग्लोबल fetch आता है। कोड को generate.mjs के नाम से सेव करें, अपना सीक्रेट PICASSOIA_SECRET के रूप में एक्सपोर्ट करें, और node generate.mjs चलाएँ।
हेल्पर फ़ंक्शन
यह हेल्पर आधिकारिक डॉक्युमेंटेशन को फ़ॉलो करता है, एक बदलाव के साथ: एनवायरनमेंट वेरिएबल का नाम PICASSOIA_SECRET है। यह एक प्रेडिक्शन बनाता है, API के सुझाए इंटरवल जितना रुकता है, जॉब के फ़ाइनल स्टेटस तक पोलिंग करता है, और आउटपुट लौटाता है।
const API = 'https://api.picassoia.com/v1'
const headers = {
Authorization: `Bearer ${process.env.PICASSOIA_SECRET}`,
'Content-Type': 'application/json',
}
const sleep = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000))
async function run(model, input) {
const created = await fetch(`${API}/models/${model}/predictions`, {
method: 'POST',
headers,
body: JSON.stringify({ input }),
})
let prediction = await created.json()
if (!created.ok) throw new Error(`${prediction.code}: ${prediction.detail}`)
while (!['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
await sleep(prediction.eta?.next_poll_in_seconds ?? 2)
prediction = await (await fetch(prediction.urls.get, { headers })).json()
}
if (prediction.status !== 'succeeded') throw new Error(prediction.error ?? prediction.status)
return prediction.output
}
अपनी पहली इमेज जनरेट करें
इसे उसी फ़ाइल में जोड़ें। यह PicassoIA Image से एक 16:9 JPEG माँगता है और उसे डिस्क पर लिखता है।
import { writeFile } from 'node:fs/promises'
const output = await run('picassoia/picassoia-image', {
prompt: 'A weathered fisherman mending a net on a grey pier at dawn, 35mm film look, soft side light',
aspect_ratio: '16:9',
num_outputs: 1,
output_format: 'jpg',
output_quality: 80,
})
const [url] = [].concat(output)
const image = await fetch(url)
await writeFile('result.jpg', Buffer.from(await image.arrayBuffer()))
console.log('Saved result.jpg from', url)
[].concat(output) लाइन एक URL या URL की लिस्ट, दोनों स्वीकार करती है, इसलिए आउटपुट जिस भी आकार में आए, स्क्रिप्ट काम करती रहती है।
मौजूदा फ़ोटो एडिट करें
PicassoIA Image Editor Pro को एक प्रॉम्प्ट और 1 से 4 इमेज चाहिए। डॉक्युमेंटेशन हर एक 5 MB तक की डेटा URL लिस्ट करता है, इसलिए फ़ाइल पढ़ें और उसे एन्कोड करें:
import { readFile } from 'node:fs/promises'
const photo = await readFile('portrait.jpg')
const edited = await run('picassoia/picassoia-image-editor-pro', {
prompt: 'Replace the grey wall with warm red brick, keep the lighting and the face unchanged',
images: [`data:image/jpeg;base64,${photo.toString('base64')}`],
aspect_ratio: 'match_input_image',
})
console.log(edited)
व्यवहार में एरर और लिमिट्स
एरर बॉडी पढ़ें
जब क्रिएशन फ़ेल होता है, हेल्पर API का अपना code और detail थ्रो करता है, इसीलिए प्लान न होने पर सीधे plan_required दिखता है, किसी अस्पष्ट नेटवर्क एरर की तरह नहीं। क्रिएशन के बाद प्रेडिक्शन पाँच स्टेटस से गुज़रता है:
स्टेटस
इसका मतलब
starting
जॉब बन गया है और अभी तक कुछ नहीं बना
processing
मॉडल इस पर काम कर रहा है
succeeded
output में इमेज URL हैं
failed
error में कारण है
canceled
जॉब रोक दिया गया, उदाहरण के लिए POST /v1/predictions/{id}/cancel के ज़रिए
फ़ेल हुआ प्रेडिक्शन अपने आप दोबारा शुरू नहीं होता, इसलिए रीट्राई का मतलब है नया प्रेडिक्शन बनाना। एक पतला रैपर अस्थायी फ़ेल्योर को संभालता है और प्लान एरर पर तुरंत हार मान लेता है, क्योंकि उसे कितना भी इंतज़ार ठीक नहीं कर सकता:
async function runWithRetry(model, input, attempts = 3) {
for (let i = 1; i <= attempts; i++) {
try {
return await run(model, input)
} catch (error) {
if (i === attempts || String(error.message).startsWith('plan_required')) throw error
await sleep(i * 5)
}
}
}
पाँच प्रेडिक्शन के नीचे रहें
सीमा है प्रति अकाउंट पाँच एक साथ चलने वाले प्रेडिक्शन, और यह गिनती हर क्रेडेंशियल और हर MCP जनरेशन में साझा है। बैच स्क्रिप्ट और खुला चैट सेशन, दोनों एक ही पाँच के पूल से स्लॉट लेते हैं। एक छोटा वर्कर पूल आपको कैप के नीचे रखता है और एक स्लॉट खाली छोड़ता है:
async function pool(tasks, limit = 4) {
const results = []
let next = 0
const worker = async () => {
while (next < tasks.length) {
const i = next++
results[i] = await tasks[i]()
}
}
await Promise.all(Array.from({ length: limit }, worker))
return results
}
const prompts = ['a red bicycle against a pale wall', 'a lighthouse on a grey coast']
const images = await pool(
prompts.map((prompt) => () => run('picassoia/picassoia-image', { prompt, aspect_ratio: '16:9' })),
)
LLM और मोशन जोड़ें
इमेज शायद ही आखिरी स्टेप होती है। PicassoIA के दो और कलेक्शन सीधे पाइपलाइन में बैठते हैं: इमेज से पहले लार्ज लैंग्वेज मॉडल (LLM), और उसके बाद वीडियो।
इस आइडिया को लगभग 120 शब्दों के एक इमेज प्रॉम्प्ट में लिखें, जिसमें सब्जेक्ट, सेटिंग, रोशनी की दिशा, लेंस और सतह की बनावट हो: "fisherman mending nets at dawn".
नतीजा प्लेग्राउंड में Seedream 5 Pro को भेजें, या ऊपर की स्क्रिप्ट से PicassoIA Image को। ऊपर बताए चार API मॉडलों में कोई चैट मॉडल शामिल नहीं है। इसलिए यह चरण साइट पर होता है।
नतीजों को एनिमेट करें
जब कोई स्टिल सही लगने लगे, तो Seedance 2.5 Lite उसे ओपनिंग फ़्रेम के रूप में इस्तेमाल कर सकता है। उसका पेज 480p या 720p पर 5 या 10 सेकंड की क्लिप बताता है, सिंक्रोनाइज़्ड ऑडियो के साथ, और Wonder सदस्यों के लिए अनलिमिटेड जनरेशन का वर्णन करता है। PicassoIA Video वही इमेज-टू-वीडियो इनपुट लेता है, जिसमें 24 फ़्रेम प्रति सेकंड पर तय 5 सेकंड होते हैं। स्टाइलाइज़्ड लुक के लिए PicassoIA में इफ़ेक्ट्स कैटेगरी भी है, जिसमें सैकड़ों वीडियो इफ़ेक्ट हैं, और उस तक सभी मॉडल पेज से पहुँचा जा सकता है।
मोशन को क्रम से बताएँ, जैसे एक डायरेक्टर उसे बोलता है: The fisherman pulls the net toward him, the camera drifts slowly to the right, gulls cross the pale sky, the soft light holds steady. एक छोटी क्लिप के लिए एक सब्जेक्ट एक्शन, एक कैमरा मूव और एक रोशनी का नोट काफ़ी है।
अपना पहला Seedream प्रॉम्प्ट चलाएँ
एक आइडिया चुनें, एक वाक्य लंबा, और उसे आज ही एक तस्वीर में बदलें। Picasso IA पर Seedream 5 Pro खोलें, एक प्रॉम्प्ट चिपकाएँ, 2K और 16:9 चुनें, और जनरेट करें। वही प्रॉम्प्ट Seedream 4.5 पर 4K पर चलाएँ और दोनों फ़ाइलें पूरे साइज़ में तुलना करें।
जब क्लिक करना व्यावहारिक न रहे, तब PicassoIA API क्रेडेंशियल बनाएँ, ऊपर का हेल्पर किसी फ़ाइल में चिपकाएँ, और अपने प्रॉम्प्ट PicassoIA Image के ज़रिए भेजें। हर रन में एक वेरिएबल बदलें, जो सीड पसंद आएँ उन्हें रखें, और पाँच स्लॉट की लिमिट को अपनी रफ़्तार तय करने दें। यहाँ बताया हर मॉडल सभी मॉडल पेज पर बस एक क्लिक दूर है।