เรียกครั้งเดียว ได้สื่อที่เสร็จสมบูรณ์
run จะส่งคำสั่งสร้าง โพลด้วย backoff ตามที่ API แนะนำ และคืนคำขอที่เสร็จสมบูรณ์พร้อม result.url
ดูแบบเร็ว ๆ
Mage TypeScript SDK คือไคลเอนต์โอเพนซอร์สตัวทางการของ Mage API เผยแพร่ในชื่อ @mage-space/sdk ติดตั้งด้วย "npm install @mage-space/sdk" ตั้งค่า MAGE_API_KEY แล้วเรียก mage.run พร้อม id ของโมเดลและค่ากำหนด ก็จะได้ภาพ วิดีโอ หรือเสียงที่เสร็จแล้วจากโมเดลใดก็ได้ใน 28 โมเดล ใช้งานได้บน Node.js 20.19 ขึ้นไป หรือรันไทม์ฝั่งเซิร์ฟเวอร์ใดก็ได้ที่มี fetch และทุกการสร้างจ่ายเป็น Gems
20.19+
Node.js
0
Dependency ตอนรันไทม์
28
โมเดลแบบ typed
MIT
โอเพนซอร์ส
การตั้งค่า
เพิ่ม @mage-space/sdk ลงในโปรเจกต์ของคุณ
npm install @mage-space/sdkสร้างคีย์ที่ API → API Keys บน mage.space แล้ว export ไว้ ไคลเอนต์จะอ่านค่าจาก MAGE_API_KEY
export MAGE_API_KEY="mage_sk_..."เรียก run พร้อม id ของโมเดลและค่ากำหนด ระบบจะรอผลลัพธ์แล้วส่งกลับมา โดยไฟล์ผลลัพธ์อยู่ที่ result.url
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const request = await mage.run('mango', {
prompt: 'Editorial portrait in soft daylight, 35mm film look',
aspect_ratio: '4:5',
model_id: 'mango-v3',
});
console.log(request.result.url);ตัวอย่าง
ทุกตัวอย่างเริ่มจากไคลเอนต์ที่อ่านค่า MAGE_API_KEY
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const submitted = await mage.generate('cherry', {
prompt: 'Waves rolling onto a black sand beach at sunset',
resolution: '720p',
duration: '5',
});
const final = await mage.requests.wait(submitted.request_id, {
timeout: 15 * 60_000,
onUpdate: (request) => console.log(request.status),
});import { readFile } from 'node:fs/promises';
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const clip = await mage.uploads.upload(await readFile('clip.mp4'), {
contentType: 'video/mp4',
});
await mage.run('cherry', {
prompt: 'Restyle this clip as a watercolor painting',
videos: [clip.url],
});import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
await mage.characters.create({
name: 'Ana',
handle: 'ana',
image: 'https://example.com/ana.png',
});
await mage.run('mango', { prompt: '@ana walking through a night market' });import Mage, { MageAPIError, MageGenerationError } from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
try {
await mage.run('mango', { prompt: 'A lighthouse at night' });
} catch (error) {
if (error instanceof MageAPIError && error.code === 'insufficient_gems') {
// Top up Gems, then try again.
} else if (error instanceof MageGenerationError) {
console.log('No output:', error.code);
} else {
throw error;
}
}ทำไมต้องใช้ SDK
run จะส่งคำสั่งสร้าง โพลด้วย backoff ตามที่ API แนะนำ และคืนคำขอที่เสร็จสมบูรณ์พร้อม result.url
ทุกการส่งงานมี idempotency key หากเกิดข้อผิดพลาดของเครือข่ายหรือเซิร์ฟเวอร์ ระบบจะลองใหม่ด้วย backoff และการส่งงานซ้ำจะไม่ถูกเรียกเก็บเงินอีก
ไฟล์ที่ใหญ่เกินกว่าจะใช้ data URL จะอัปโหลดผ่านลิงก์ที่ลงนามไว้ โดย SDK จัดการทั้งตั๋วอัปโหลด การ PUT และการตรวจขนาดไฟล์ให้
เมื่อ API ปฏิเสธคำขอ จะมี HTTP status, รหัสข้อผิดพลาด และ request id ให้ครบ ส่วนการสร้างที่ล้มเหลวหรือถูกยกเลิก และการหมดเวลา ก็มีประเภทข้อผิดพลาดของตัวเอง
MangoConfig, CherryConfig และตัวอื่น ๆ สร้างขึ้นจากเอกสารอ้างอิง API ตัวแก้ไขโค้ดของคุณจึงช่วยเติมฟิลด์และจับตัวเลือกที่ไม่ถูกต้องได้
เป็น ESM ที่ไม่มี dependency ตอนรันไทม์ ใช้ fetch ที่มีมาในตัว Node.js และทุกการเรียกรับ AbortSignal ได้
เอกสารอ้างอิง
เมธอดชุดเดียวกันใช้ได้กับทุกโมเดล โดยโมเดลคืออาร์กิวเมนต์แรก
| เมธอด | ทำอะไรได้บ้าง |
|---|---|
| mage.run(model, config) | ส่งคำขอสร้าง รอจนเสร็จ แล้วคืนคำขอที่เสร็จสมบูรณ์ |
| mage.generate(model, config) | ส่งคำขอสร้างและคืนคำขอทันที |
| mage.requests.get / cancel / wait | อ่าน หยุด หรือรอคำขอตาม id |
| mage.uploads.upload(data) | อัปโหลดไฟล์ขนาดไม่เกิน 100 MB และคืน URL ของไฟล์ |
| mage.characters / mage.references | แสดงรายการ สร้าง และลบตัวละครและรูปอ้างอิงที่บันทึกไว้ |
| mage.account.get() | ยอดคงเหลือ Gems ของคุณ |
| mage.architectures.list() | แคตตาล็อกโมเดลล่าสุดพร้อมตัวเลือกและราคา |
โมเดล
ภาพ · เริ่มต้น 37 Gems
ภาพสมจริงราวกับภาพถ่ายจริง
ภาพ · เริ่มต้น 135 Gems
โมเดลภาพรุ่นเรือธงของเรา
ภาพ · เริ่มต้น 68 Gems
ข้อความคมชัด อ่านง่าย สูงสุด 4K
วิดีโอ · เริ่มต้น 618 Gems
โมเดลวิดีโอรุ่นเรือธงของเรา
วิดีโอ · เริ่มต้น 245 Gems
ครบทุกฟีเจอร์วิดีโอ ในราคาที่เป็นมิตรกว่า
เสียง · เริ่มต้น 19 Gems
เสียงพูด เพลง และเอฟเฟกต์เสียงจากพรอมต์เดียว
คำถามที่พบบ่อย
ไม่ได้ API key ใช้จ่ายด้วย Gems ของคุณ จึงควรเก็บไว้บนเซิร์ฟเวอร์ของคุณเท่านั้น API ไม่ส่งเฮดเดอร์ CORS เบราว์เซอร์จึงเรียกโดยตรงไม่ได้ ให้เรียกแบ็กเอนด์ของคุณเอง แล้วให้แบ็กเอนด์ใช้ SDK แทน
แพ็กเกจนี้เป็น ESM เท่านั้น แต่ Node.js 20.19 ขึ้นไปสามารถ require() จาก CommonJS ได้เช่นกัน
ได้ ในโค้ดฝั่งเซิร์ฟเวอร์ เช่น route handler และ server action SDK สร้างบน fetch และ Web API มาตรฐานอย่าง AbortSignal รันไทม์ฝั่งเซิร์ฟเวอร์อื่นที่มี fetch จึงน่าจะใช้ได้เช่นกัน แต่ CI ทดสอบบน Node.js
ใช่ SDK และโหนด ComfyUI เป็นโอเพนซอร์สภายใต้สัญญาอนุญาต MIT บน GitHub และติดตั้งได้ฟรี คุณจ่ายเฉพาะการสร้างที่รันจริง เป็น Gems ตามราคาที่แสดงไว้ของแต่ละโมเดล
ได้ แค่ส่ง id ของโมเดลใหม่เป็นสตริงก็รันได้เลย โดย SDK จะตรวจสอบค่ากำหนดกับฟิลด์ที่ทุกโมเดลใช้ร่วมกัน บอตจะอัปเดตไทป์ทุกครั้งที่เอกสารอ้างอิง API เปลี่ยน โมเดลใหม่จึงมาพร้อมไทป์ของตัวเองในรุ่นถัดไป
ทุกคำขอที่ส่งจะมี Idempotency-Key SDK จะสร้างคีย์ใหม่ในแต่ละการเรียก และใช้คีย์เดิมเมื่อลองเรียกนั้นซ้ำเอง ดังนั้นการส่งซ้ำจะได้คำขอเดิมกลับมาและไม่มีการเรียกเก็บเงินเพิ่ม
ตอนนี้เป็นเวอร์ชันเบต้า 0.x จึงอาจมีการเปลี่ยนแปลงในเวอร์ชันย่อยได้ ส่วน API เองแยกเวอร์ชันต่างหากและจะคงที่ภายใน v1
ไม่มีค่าสมาชิกหรือค่ารายเดือน การสร้างแต่ละครั้งจ่ายเป็น Gems ตามราคาของโมเดลนั้น โดย 1,000 Gems ราคา $1 ในแพ็กมาตรฐาน หน้าโมเดลทุกหน้าแสดงราคาตามการตั้งค่าเริ่มต้น และผลลัพธ์ของแต่ละคำขอจะระบุยอดที่เรียกเก็บจริง หากการสร้างล้มเหลวจะได้รับเงินคืน แต่หากถูกบล็อกโดยนโยบายเนื้อหาของ Mage จะไม่คืนให้ หากยอดคงเหลือไม่พอสำหรับคำขอ ระบบจะปฏิเสธก่อนเรียกเก็บเงินใดๆ
ไม่ต้อง API ใช้ Gems เท่านั้น แพ็กเกจสมาชิกและสิทธิ์สร้างไม่จำกัดในแอปไม่มีผลกับคำขอ API ดังนั้นบัญชี Mage ใดก็ตามที่มี Gems ก็เรียกใช้ได้
ได้ คอนเทนต์ที่คุณสร้างด้วย Mage รวมถึงที่สร้างผ่าน API และเซิร์ฟเวอร์ MCP นำไปใช้เชิงพาณิชย์ได้ ยินดีหากให้เครดิต แต่ไม่จำเป็น
หนึ่งบัญชี หนึ่งยอด Gems ใช้ได้ทุกโมเดล จ่ายเฉพาะที่สร้างจริง