API ya Stable Diffusion
Mfumo wa kawaida wa tasnia wa chanzo huru wenye ubinafsishaji mpana
✓ Chanzo huru
✓ Inayoweza kubinafsishwa
✓ ControlNet
✓ Msaada wa LoRA
Uthibitishaji
Ili kufikia Stable Diffusion kupitia API ya Doitong, tumia ufunguo wako wa API ya Doitong. Ujumuishe kwenye mutation ya GraphQL au vichwa vya habari vya REST API.
// GraphQL Header
{
"Authorization": "Bearer YOUR_API_KEY"
}
// REST Header
"X-API-Key": "YOUR_API_KEY"
Anza Haraka
Anza kutumia Stable Diffusion API ndani ya dakika chache tu. Fuata hatua hizi rahisi ili kuunda text to image yako ya kwanza.
Hatua ya 1: Pata Ufunguo Wako wa API
Jisajili kwa akaunti ya Doitong na uende kwenye dashibodi yako ili kutengeneza ufunguo wa API.
Hatua ya 2: Tuma Ombi Lako la Kwanza
Tumia mojawapo ya mifano ya kodi hapa chini ili kutuma ombi lako la kwanza la API.
curl -X POST https://api.doitong.com/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
"variables": {
"input": {
"type": "IMAGE",
"provider": "stable-diffusion",
"input": {
"text": "A futuristic city with flying cars and neon lights"
},
"options": {
"width": 1024,
"height": 1024
}
}
}
}'
const response = await fetch('https://api.doitong.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
query: `
mutation GenerateImage($input: ImageGenerationInput!) {
generateImage(input: $input) {
id
url
width
height
}
}
`,
variables: {
input: {
service: 'stable-diffusion',
prompt: 'A futuristic city with flying cars and neon lights',
width: 1024,
height: 1024
}
}
})
});
const data = await response.json();
console.log('Image:', data.data.generateImage);
import requests
import json
url = "https://api.doitong.com/graphql"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
query = """
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
}
}
"""
variables = {
"input": {
"type": "IMAGE",
"provider": "stable-diffusion",
"input": {
"text": "A futuristic city with flying cars and neon lights"
},
"options": {
"width": 1024,
"height": 1024
}
}
}
response = requests.post(url, json={
"query": query,
"variables": variables
}, headers=headers)
data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
generate(input: $input) {
id
status
type
provider
url
metadata
creditCost
createdAt
}
}
# Variables
{
"input": {
"type": "IMAGE",
"provider": "stable-diffusion",
"input": {
"text": "A futuristic city with flying cars and neon lights"
},
"options": {
"width": 1024,
"height": 1024,
"version": "sd-2.1",
"quality": "high"
}
}
}
Bei
Stable Diffusion API hutumia mfumo wa bei unaozingatia salio. Salio hutumiwa kulingana na ugumu na muda wa maudhui yaliyoundwa.
| Kipengele | Salio | Maelezo |
|---|---|---|
| Ubora wa Kawaida | 10-20 Salio | Pikseli 512x512 hadi 1024x1024 |
| Ubora wa Juu | 30-50 Salio | Pikseli 2048x2048 na zaidi |
Vituo vya API
Stable Diffusion API inapatikana kupitia kituo chetu kimoja cha GraphQL.
Kituo cha GraphQL
POST https://api.doitong.com/graphql
Kituo cha REST
POST https://api.doitong.com/v1/text_to_image
Vigezo
Vigezo vinavyopatikana kwa maombi ya Stable Diffusion API:
| Kigezo | Aina | Lazima | Maelezo |
|---|---|---|---|
service |
String | Yes | Kitambulisho cha huduma: "stable-diffusion" |
prompt |
String | Yes | Maelezo ya maandishi ya kile unachotaka kuunda |
width |
Integer | No | Upana wa picha katika pikseli (msingi: 1024) |
height |
Integer | No | Urefu wa picha katika pikseli (msingi: 1024) |
version |
String | No | Model version: "sd-xl", "sd-2.1" |
webhookUrl |
String | No | URL ya kupokea arifa za kukamilika |
Mfumo wa Majibu
Majibu yote ya API hufuata mfumo thabiti:
Jibu la Mafanikio
{
"data": {
"generateimage": {
"id": "abc123xyz",
"status": "processing",
"url": null,
"webhookUrl": "https://your-webhook.com/callback",
"createdAt": "2024-01-01T00:00:00Z"
}
}
}
Jibu la Kukamilika
{
"data": {
"generateimage": {
"id": "abc123xyz",
"status": "completed",
"url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
"duration": null,
"createdAt": "2024-01-01T00:00:00Z"
}
}
}
Ushughulikiaji wa Hitilafu
API hutumia misimbo ya hali ya HTTP ya kawaida na hutoa ujumbe wa hitilafu wenye maelezo ya kina.
Misimbo ya Hitilafu ya Kawaida
| Msimbo wa Hali | Aina ya Hitilafu | Maelezo |
|---|---|---|
| 400 | Bad Request | Invalid parameters or malformed request |
| 401 | Unauthorized | Missing or invalid API key |
| 402 | Payment Required | Insufficient credits |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error, please retry |
Mfumo wa Jibu la Hitilafu
{
"errors": [
{
"message": "Insufficient credits for this operation",
"extensions": {
"code": "INSUFFICIENT_CREDITS",
"creditsRequired": 100,
"creditsAvailable": 50
}
}
]
}
Webhooks
Pokea arifa za papo hapo wakati uundaji wa text to image yako unapokamilika.
Kusanidi Webhooks
Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.
Data ya Webhook
{
"id": "abc123xyz",
"status": "completed",
"url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
"service": "stable-diffusion",
"createdAt": "2024-01-01T00:00:00Z",
"completedAt": "2024-01-01T00:01:00Z",
"metadata": {
"duration": null,
"width": 1920,
"height": 1080
}
}
Usalama wa Webhook
Maombi yote ya webhook yanajumuisha saini kwenye kichwa cha habari kwa ajili ya uthibitishaji:
X-Doitong-Signature: sha256=abc123...
Vikomo vya Matumizi
Ili kuhakikisha matumizi ya haki na utulivu wa mfumo, vikomo vifuatavyo vinatumika:
| Mpango | Maombi/Dakika | Kazi Zinazoendelea Pamoja | Kikomo cha Kila Siku |
|---|---|---|---|
| Bure | 10 | 1 | 100 |
| Starter | 30 | 3 | 1,000 |
| Pro | 60 | 10 | 10,000 |
| Enterprise | Maalum | Maalum | Bila Kikomo |
X-RateLimit-Limit: Maximum requests per windowX-RateLimit-Remaining: Requests remainingX-RateLimit-Reset: Window reset timestamp
Mbinu Bora
1. Boresha Maelekezo Yako
Andika maelekezo (prompts) yaliyo wazi na yenye maelezo kwa matokeo bora zaidi:
- Be specific about visual elements, style, and mood
- Include details about lighting, camera angles, and composition
- Avoid contradictory or impossible requests
2. Shughulikia Uchakataji wa Async
Uundaji hufanyika kwa njia ya asinkronasi. Weka mfumo mzuri wa polling au webhooks:
// Polling example
async function pollStatus(jobId) {
let status = 'processing';
while (status === 'processing') {
await sleep(2000); // Wait 2 seconds
const result = await checkJobStatus(jobId);
status = result.status;
}
return result;
}
3. Urejeshi wa Hitilafu
Weka mantiki ya kujaribu tena yenye kuchelewa kwa ongezeko (exponential backoff):
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
await sleep(Math.pow(2, i) * 1000);
}
}
}
4. Fuatilia Matumizi ya Salio
Fuatilia matumizi yako ya salio ili kuepuka kukatizwa kwa huduma:
- Check credit balance before large batch operations
- Set up alerts for low credit thresholds
- Implement credit-aware request queuing
Uko Tayari Kuanza?
Jiunge na maelfu ya watengenezaji wanaotumia Stable Diffusion API kuunda maudhui ya kustaajabisha