ชุด API สำหรับสร้างคอนเทนต์ด้วย AI ครบวงจร
เข้าถึงโมเดล AI ล้ำสมัยกว่า 30 โมเดลผ่าน API เดียว สร้างวิดีโอ รูปภาพ อวตาร และเสียงด้วยคุณภาพระดับชั้นนำของอุตสาหกรรม
API เปลี่ยนข้อความเป็นวิดีโอ
เปลี่ยนข้อความให้เป็นวิดีโอที่น่าทึ่งด้วยโมเดลวิดีโอ AI ที่ล้ำสมัยที่สุดในโลก
ผู้นำด้านการสร้างวิดีโอระดับอุตสาหกรรม มีให้เลือก 6 เวอร์ชัน (1.0-2.1) รองรับโหมด Standard และ Pro วิดีโอยาว 5-10 วินาที พร้อมความต่อเนื่องของการเคลื่อนไหวที่ยอดเยี่ยม
การสร้างวิดีโอขั้นสูงที่เข้าใจฉากได้อย่างยอดเยี่ยมและการเคลื่อนไหวที่เป็นธรรมชาติ มีโมเดล Hailuo-02 และ HailuoI2V ให้เลือกใช้
โมเดลวิดีโอล่าสุดจาก Google ที่มีความสมจริงและความแม่นยำทางฟิสิกส์ที่ไม่มีใครเทียบได้ ให้ผลลัพธ์คุณภาพระดับพรีเมียม
แอนิเมชันรูปภาพระดับมืออาชีพด้วยโมเดล Gen-2, Gen-3 และ Gen4 ให้ผลลัพธ์คุณภาพระดับภาพยนตร์
การสร้างวิดีโอเชิงศิลปะด้วย Dream Machine สร้างวิดีโอที่เหนือจริงและสร้างสรรค์ด้วยสุนทรียภาพที่ไม่เหมือนใคร
การสังเคราะห์ท่าเต้นขั้นสูง รองรับการจัดท่าทางแบบหลายคน สร้างวิดีโอเต้นที่สอดประสานกันจากฟุตเทจอ้างอิง
เชี่ยวชาญด้านคลิป 5 วินาทีที่มีความเสถียร มีให้เลือกทั้งความละเอียด 480p และ 1080p พร้อมคุณภาพที่เชื่อถือได้
การสร้างวิดีโอที่เน้นอีคอมเมิร์ซ ปรับแต่งมาเพื่อการนำเสนอสินค้าและคอนเทนต์การตลาดโดยเฉพาะ
API เปลี่ยนข้อความเป็นรูปภาพ
สร้างรูปภาพที่สวยงามจากคำบรรยายด้วยโมเดล Diffusion ระดับแนวหน้า
Google's most advanced image model with photorealistic quality and exceptional prompt adherence. Multiple sub-models available.
โมเดลสำหรับการพัฒนาที่รวดเร็ว เหมาะสำหรับการทำต้นแบบที่ต้องการความสมดุลระหว่างความเร็วและคุณภาพ
การสร้างรูปภาพระดับมืออาชีพพร้อมรายละเอียดที่เพิ่มขึ้นและการควบคุมเชิงศิลปะ มีความเสถียรที่เหนือกว่า
Enhanced version with improved prompt understanding and faster generation times. Better composition.
การสร้างรูปภาพคุณภาพสูงสุด ให้รายละเอียดและความละเอียดที่ยอดเยี่ยมสำหรับโปรเจกต์ที่ต้องการความเป๊ะ
Specialized for context-aware generation with Pro and Max modes. Excellent for specific style requirements.
การใช้งาน Flux ที่ปรับแต่งมาเป็นพิเศษพร้อมระดับคุณภาพที่หลากหลายเพื่อการสร้างผลลัพธ์ที่รวดเร็ว
โมเดลรูปภาพขั้นสูงจากจีนที่มีความเข้าใจด้านศิลปะและการควบคุมสไตล์ที่ยอดเยี่ยม
โมเดล Open-source มาตรฐานอุตสาหกรรมพร้อมตัวเลือกการปรับแต่งที่หลากหลาย
API เปลี่ยนรูปภาพเป็นวิดีโอ
เนรมิตรูปภาพนิ่งให้มีชีวิตด้วยการเคลื่อนไหวและแอนิเมชันอัจฉริยะ
Transform images into smooth videos with natural motion. Multiple versions and quality modes available.
Professional image animation with Gen-2, Gen-3, and Gen4 models. Cinema-quality results.
API อวตาร, ลิปซิงค์ และ TTS
สร้างอวตารพูดได้และสร้างเสียงพากย์ที่เป็นธรรมชาติพร้อมการขยับปากที่สมบูรณ์แบบ
แอนิเมชันตัวละครพร้อมการซิงค์เสียงที่สมบูรณ์แบบ เนรมิตภาพพอร์ตเทรตให้มีชีวิตด้วยการแสดงออกทางสีหน้าและการเคลื่อนไหวที่เป็นธรรมชาติ
เสียง AI ที่เป็นธรรมชาติที่สุดพร้อมการควบคุมอารมณ์และรองรับหลายภาษา
Google's neural text-to-speech with WaveNet voices. Over 380 voices in 50+ languages with SSML support.
API เดียว ครอบคลุมทุกความเป็นไปได้
🎯 การสร้างคอนเทนต์แบบรวมศูนย์
ใช้วิธี 'generate' เพียงวิธีเดียวสำหรับคอนเทนต์ทุกประเภท ทั้งวิดีโอ รูปภาพ เสียง และอวตาร ช่วยให้การเชื่อมต่อระบบง่ายขึ้นด้วย API ที่เป็นมาตรฐานเดียวกัน
🤖 ระบบเลือกผู้ให้บริการอัจฉริยะ
ให้ AI ของเราเลือกผู้ให้บริการที่ดีที่สุดตามความต้องการของคุณ หรือระบุผู้ให้บริการที่คุณต้องการได้เองเพื่อการควบคุมที่สมบูรณ์แบบ
🔄 การส่งคำขอซ้ำอย่างปลอดภัย
รองรับการลองใหม่ได้อย่างปลอดภัยด้วย Idempotency-Key ไม่ต้องกังวลเรื่องการเรียกเก็บเงินซ้ำซ้อนจากปัญหาเครือข่าย
📊 การจำกัดอัตราการเรียกใช้งานอัจฉริยะ
แสดงข้อมูลการจำกัดอัตราการใช้งานที่ชัดเจนผ่าน Header (X-RateLimit-*) ช่วยให้คุณจัดการเวลาการส่งคำขอและหลีกเลี่ยงข้อผิดพลาด 429 ได้
🔔 Webhook ที่ปลอดภัย
แจ้งเตือนแบบอะซิงโครนัสอย่างปลอดภัยด้วย HMAC-signed webhooks รับการแจ้งเตือนทันทีเมื่อคอนเทนต์ของคุณพร้อมใช้งาน
⚡ รหัสข้อผิดพลาดที่เข้าใจง่าย
รหัสข้อผิดพลาดที่ระบบอ่านได้ เช่น INSUFFICIENT_CREDITS และ RATE_LIMIT ช่วยให้การแก้ไขบั๊กเป็นเรื่องง่าย
รหัสข้อผิดพลาดที่พบบ่อย
| รหัส | คำอธิบาย | สิ่งที่ควรทำ |
|---|---|---|
| INSUFFICIENT_CREDITS | เครดิตไม่เพียงพอสำหรับการดำเนินการนี้ | เติมเครดิตในบัญชีของคุณ |
| RATE_LIMIT | มีการส่งคำขอมากเกินไป | ตรวจสอบ Header X-RateLimit-Reset |
| INVALID_INPUT | พารามิเตอร์ที่ระบุไม่ถูกต้อง | ตรวจสอบข้อมูลนำเข้ากับ Schema |
| PROVIDER_UNAVAILABLE | ผู้ให้บริการที่เลือกไม่สามารถใช้งานได้ชั่วคราว | ลองใหม่อีกครั้งหรือใช้ระบบเลือกอัตโนมัติ |
| GENERATION_FAILED | การสร้างคอนเทนต์ล้มเหลว | ลองใหม่อีกครั้งด้วยพารามิเตอร์ที่ต่างออกไป |
การจำกัดอัตราการใช้งานตามแพ็กเกจ
| แพ็กเกจ | คำขอ/นาที | งานที่ทำพร้อมกัน | ขีดจำกัดต่อวัน |
|---|---|---|---|
| Free | 10 | 1 | 100 |
| Starter | 30 | 3 | 1,000 |
| Pro | 60 | 10 | 10,000 |
| Enterprise | Custom | Custom | Unlimited |
ตัวอย่างโค้ดสำหรับเริ่มต้นใช้งาน
# Universal generation API - Video example
curl -X POST https://api.doitong.com/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: unique-request-id-123" \
-d '{
"query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata { duration resolution } creditCost estimatedTime } }",
"variables": {
"input": {
"type": "VIDEO",
"provider": "minimax",
"input": {
"text": "A serene mountain landscape at sunset"
},
"options": {
"duration": 10,
"resolution": "1080p",
"style": "cinematic"
}
}
}
}'
# Auto-select best provider for quality
curl -X POST https://api.doitong.com/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation { generate(input: { type: VIDEO, input: { text: \"Epic dragon battle\" }, priority: QUALITY }) { id status provider creditCost } }"
}'
# Check generation status
curl -X POST https://api.doitong.com/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query { generation(id: \"gen_abc123\") { status progress url error { code message } } }"
}'
// Doitong Universal API Client
class DoitongAPI {
constructor(apiKey) {
this.apiKey = apiKey;
this.endpoint = 'https://api.doitong.com/graphql';
}
async generate(input) {
const response = await fetch(this.endpoint, {
method: 'POST',
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({
query: `
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
estimatedTime
error {
code
message
}
}
}
`,
variables: { input }
})
});
const data = await response.json();
// Check for rate limits
const remaining = response.headers.get('X-RateLimit-Remaining');
if (remaining && parseInt(remaining) < 10) {
console.warn(`Low rate limit: ${remaining} requests remaining`);
}
if (data.errors) {
throw new Error(data.errors[0].message);
}
return data.data.generate;
}
async checkStatus(id) {
const response = await fetch(this.endpoint, {
method: 'POST',
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: `
query GetGeneration($id: ID!) {
generation(id: $id) {
id
status
progress
url
error {
code
message
}
}
}
`,
variables: { id }
})
});
const data = await response.json();
return data.data.generation;
}
async waitForCompletion(id, pollInterval = 2000) {
while (true) {
const result = await this.checkStatus(id);
if (result.status === 'COMPLETED') {
return result;
} else if (result.status === 'FAILED') {
throw new Error(result.error?.message || 'Generation failed');
}
await new Promise(resolve => setTimeout(resolve, pollInterval));
}
}
}
// Usage examples
const api = new DoitongAPI('YOUR_API_KEY');
// Simple video generation - let AI choose provider
const video = await api.generate({
type: 'VIDEO',
input: { text: 'A serene mountain landscape' }
});
// Specific provider with options
const video = await api.generate({
type: 'VIDEO',
provider: 'minimax',
input: { text: 'Epic battle scene' },
options: {
duration: 10,
resolution: '1080p',
style: 'cinematic'
}
});
// Image generation with auto-provider selection for quality
const image = await api.generate({
type: 'IMAGE',
input: { text: 'Photorealistic portrait' },
priority: 'QUALITY'
});
// Wait for completion
const result = await api.waitForCompletion(video.id);
console.log('Video ready:', result.url);
// Using Apollo Client for GraphQL
import { ApolloClient, gql } from '@apollo/client';
const CREATE_VIDEO = gql`
mutation CreateVideo($input: VideoCreateInput!) {
videoCreate(input: $input) {
id
status
videoUrl
}
}
`;
const client = new ApolloClient({
uri: 'https://api.doitong.com/graphql',
headers: {
authorization: 'Bearer YOUR_API_KEY'
}
});
const result = await client.mutate({
mutation: CREATE_VIDEO,
variables: {
input: {
prompt: 'Beautiful sunset over ocean',
model: 'luma',
duration: 9
}
}
});
import requests
import time
import json
import uuid
from typing import Dict, Optional, Any
class DoitongAPI:
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.doitong.com/graphql"
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
def generate(self,
content_type: str,
input_data: Dict[str, Any],
provider: Optional[str] = None,
options: Optional[Dict] = None,
idempotency_key: Optional[str] = None) -> Dict:
"""Universal generation method for all content types"""
# Add idempotency key for safe retries
headers = self.headers.copy()
if idempotency_key:
headers["Idempotency-Key"] = idempotency_key
else:
headers["Idempotency-Key"] = str(uuid.uuid4())
query = """
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
estimatedTime
error
errorCode
}
}
"""
variables = {
"input": {
"type": content_type.upper(),
"input": input_data
}
}
if provider:
variables["input"]["provider"] = provider
if options:
variables["input"]["options"] = options
response = requests.post(
self.base_url,
headers=headers,
json={"query": query, "variables": variables}
)
# Handle rate limiting
if response.status_code == 429:
retry_after = response.headers.get("X-RateLimit-Reset", 60)
raise Exception(f"Rate limited. Retry after {retry_after} seconds")
data = response.json()
if "errors" in data:
error = data["errors"][0]
raise Exception(f"API Error: {error.get('message', 'Unknown error')}")
return data["data"]["generate"]
def check_status(self, generation_id: str) -> Dict:
"""Check the status of a generation"""
query = """
query GetGeneration($id: ID!) {
generation(id: $id) {
id
status
type
url
progress
error
errorCode
metadata
}
}
"""
response = requests.post(
self.base_url,
headers=self.headers,
json={
"query": query,
"variables": {"id": generation_id}
}
)
return response.json()["data"]["generation"]
def wait_for_completion(self, generation_id: str, max_wait: int = 300) -> Dict:
"""Poll until generation is complete"""
start_time = time.time()
while time.time() - start_time < max_wait:
result = self.check_status(generation_id)
if result["status"] == "completed":
return result
elif result["status"] == "failed":
error_code = result.get("errorCode", "UNKNOWN_ERROR")
error_msg = result.get("error", "Generation failed")
raise Exception(f"[{error_code}] {error_msg}")
# Adaptive polling - start fast, slow down over time
wait_time = 2 if time.time() - start_time < 30 else 5
time.sleep(wait_time)
raise TimeoutError("Generation timed out")
# Example usage
if __name__ == "__main__":
api = DoitongAPI("YOUR_API_KEY")
try:
# Generate a video (auto-selects best provider)
video = api.generate(
content_type="video",
input_data={"text": "A majestic eagle soaring through clouds"},
options={"duration": 10, "resolution": "1080p"}
)
print(f"Video generation started: {video['id']}")
# Wait for completion
result = api.wait_for_completion(video['id'])
print(f"Video ready: {result['url']}")
print(f"Credits used: {result['creditCost']}")
# Generate with specific provider
image = api.generate(
content_type="image",
provider="flux-ultra",
input_data={"text": "Professional product photography"},
options={"aspectRatio": "16:9", "quality": "ultra"}
)
# Generate audio/TTS
audio = api.generate(
content_type="audio",
provider="elevenlabs",
input_data={"text": "Welcome to the future of AI"},
options={"voice": "rachel", "emotion": "excited"}
)
except Exception as e:
print(f"Error: {e}")
# Universal generation mutation - works for all content types
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
estimatedTime
progress
error
errorCode
}
}
# Example: Generate video (auto-select provider)
# Variables:
{
"input": {
"type": "VIDEO",
"input": {
"text": "A bustling Tokyo street at night with neon lights"
},
"options": {
"duration": 10,
"resolution": "1080p",
"style": "cinematic"
}
}
}
# Example: Generate video with specific provider
# Variables:
{
"input": {
"type": "VIDEO",
"provider": "kling",
"input": {
"text": "Epic space battle scene"
},
"options": {
"mode": "pro",
"duration": 10,
"aspectRatio": "16:9"
}
}
}
# Example: Image-to-video generation
# Variables:
{
"input": {
"type": "VIDEO",
"provider": "runway",
"input": {
"text": "Make the character dance",
"image": "https://example.com/character.jpg"
},
"options": {
"motionIntensity": "high",
"model": "gen-3"
}
}
}
# Example: Generate image
# Variables:
{
"input": {
"type": "IMAGE",
"provider": "flux-ultra",
"input": {
"text": "Photorealistic portrait in Rembrandt style"
},
"options": {
"aspectRatio": "16:9",
"quality": "ultra",
"seed": 42
}
}
}
# Example: Generate audio/TTS
# Variables:
{
"input": {
"type": "AUDIO",
"provider": "elevenlabs",
"input": {
"text": "Welcome to the future of artificial intelligence"
},
"options": {
"voice": "rachel",
"emotion": "excited",
"speed": 1.0
}
}
}
# Example: Generate avatar video
# Variables:
{
"input": {
"type": "AVATAR",
"provider": "heygen",
"input": {
"text": "Hello, I'm your AI assistant",
"voice": "professional_female"
},
"options": {
"avatarId": "kate",
"background": "modern_office",
"gesture": "friendly"
},
"webhookUrl": "https://your-app.com/webhook"
}
}
# Query generation status
query GetGeneration($id: ID!) {
generation(id: $id) {
id
status
type
provider
url
progress
metadata {
width
height
duration
format
}
creditCost
error
errorCode
createdAt
completedAt
}
}
# Cancel a generation
mutation CancelGeneration($id: ID!) {
cancelGeneration(id: $id)
}
# Get available providers for a content type
query GetProviders($type: GenerationType!) {
providers(type: $type) {
id
name
description
features
limitations
pricing {
creditCost
estimatedTime
}
options {
name
type
required
description
allowedValues
}
}
}
}
พร้อมที่จะสร้างสรรค์สิ่งที่น่าทึ่งแล้วหรือยัง?
เข้าร่วมกับนักพัฒนานับพันที่ใช้ API ของเราเพื่อสร้างคอนเทนต์ AI ยุคใหม่