UlazAI API Documentatie

Sora 2 Videogeneratie API

Professionell videogenerering med OpenAI:s Sora 2-modell - Förvandla textmeddelanden eller bilder till högkvalitativa AI-videor.

🎉 Sora 2 lanseringsspecial: Få 20 % bonus på alla köp! Endast begränsad tid.

✨ Sora 2 funktioner

Text-till-video generation

Bild-till-video animation

10 sekunders videor vid 24 fps

1080p upplösning Utgång

Flera bildförhållanden (16:9, 9:16, 1:1)

Snabb bearbetning (~2-3 minuter)

Automatisk R2-lagring med CDN

E-postmeddelanden när den är klar

POSTA /api/v1/sora/generate/text-to-video/

Skapa video från text

Skapa en 10-sekunders video från en textprompt med Sora 2.

Begäran kropp

{
  "prompt": "Ett fridfullt bergslandskap vid soluppgången med fåglar som flyger",
  "aspect_ratio": "landskap", // Alternativ: "landskap", "stående", "fyrkantig"
  "kvalitet": "standard" // Alternativ: "standard", "hög"
}

Parametrar

snabbt * (sträng)

Textbeskrivning av videon som ska genereras. Max 5000 tecken. Var beskrivande för bästa resultat.

aspekt_förhållande (sträng)

Videobildförhållande. Alternativ: landskap (16:9), porträtt (9:16), fyrkant (1:1). Standard: landskap

kvalitet (sträng)

Kvalitet förinställd. Alternativ: standard, hög. Hög kvalitet kräver mer handläggningstid. Standard: standard

prompt_directory_optin (Boolesk) 💰 -10 SP

Dela din video i vår offentliga promptkatalog och ta emot 10 krediter rabatt! Standard: sann

Framgångssvar (201)

{
  "framgång": sant,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "bearbetar",
    "estimated_completion": "2-3 minuter",
    "credits_charged": 80,
    "credits_remaining": 920,
    "webhook_url": "https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/",
    "message": "Sora 2-videogenerering startade framgångsrikt"
  }
}

cURL exempel

curl -X POST https://ulazai.com/api/v1/sora/generate/text-to-video/ \
  -H "Auktorisering: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Ett fridfullt bergslandskap vid soluppgången med fåglar som flyger över himlen",
    "aspect_ratio": "landskap",
    "kvalitet": "standard"
  }'
POSTA /api/v1/sora/generate/image-to-video/

Skapa video från bild

Animera en statisk bild till en 10 sekunder lång video med Sora 2.

Begäran kropp

{
  "image_url": "https://example.com/din-bild.jpg",
  "prompt": "Kameran zoomar långsamt in när karaktären vänder sig och ler",
  "aspect_ratio": "landskap",
  "kvalitet": "standard"
}

Parametrar

image_url * (sträng)

URL till källbilden som ska animeras. Måste vara allmänt tillgänglig. Format som stöds: JPG, PNG, WebP.

snabbt * (sträng)

Beskrivning av hur man animerar bilden. Max 5000 tecken.

aspekt_förhållande (sträng)

Bör matcha källbildens bildförhållande för bästa resultat.

kvalitet (sträng)

Kvalitet förinställd. Standard: standard

prompt_directory_optin (Boolesk) 💰 -10 SP

Dela din video i vår offentliga promptkatalog och ta emot 10 krediter rabatt! Standard: sann

/api/v1/sora/status/{task_id}/

Kontrollera generationens status

Få aktuell status och resultatet av ett Sora-videogenereringsjobb.

Statens svar

Bearbetning

{
  "framgång": sant,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "bearbetar",
    "framsteg": 45,
    "estimated_completion": "1-2 minuter"
  }
}

Framgångar

{
  "framgång": sant,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "framgång",
    "video_url": "https://cdn.ulazai.com/sora/videos/sra_2_1234567890abcdef.mp4",
    "thumbnail_url": "https://cdn.ulazai.com/sora/thumbnails/sra_2_1234567890abcdef.jpg",
    "duration": 10,
    "resolution": "1920x1080",
    "file_size": "15,2 MB",
    "created_at": "2025-01-03T10:15:30Z"
  }
}

Misslyckades

{
  "framgång": falskt,
  "error": "Videogenerering misslyckades",
  "error_details": "Innehållspolicyöverträdelse upptäcktes vid uppmaning",
  "credits_refunded": 80
}

cURL exempel

curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
  -H "Auktorisering: Token YOUR_API_KEY"

💰 Sora 2-priser

Text-till-video

80 poäng

Video per 10 sekunder

• 1080p upplösning

• Alla bildförhållanden

• 2-3 minuters bearbetning

Bild-till-video

80 poäng

Per animation på 10 sekunder

• Animera varje bild

• Anpassade rörelsesignaler

• 2-3 minuters bearbetning

💡 Exempel: 25 € = 2 500 poäng ≈ 31 Sora-videos

📚 Bästa metoder

Snabba riktlinjer

  • Var specifik om kamerarörelser (panorera, zooma, luta)
  • Beskriv ljussättning och atmosfär
  • Inkluderar karaktärshandlingar och uttryck
  • Ange tidpunkten för viktiga ögonblick
  • Undvik upphovsrättsskyddade tecken eller varumärken

Tips för bild till video

  • Använd källbilder av hög kvalitet (min. 1024px)
  • Justera bildförhållandet för att undvika beskärning
  • Beskriv realistiska rörelser för scenen
  • Tänk på fysik och naturlig rörelse

Webhook integration

  • Videor lagras automatiskt i R2 med CDN-leverans
  • E-postmeddelanden skickas när genereringen är klar
  • Kontrollera hälsoslutpunkten för uppdateringar var 30:e sekund
  • Misslyckade generationer återbetalar automatiskt krediter

⚠️ Felkoder

400 Ogiltiga begärandeparametrar eller för lång prompt
401 Ogiltig eller trasig API-nyckel
402 Otillräckliga poäng
422 Innehållspolicybrott
429 Frekvensgränsen har överskridits (max. 10 samtidigt)
500 Serverfel - krediter återbetalas

💻 Kodexempel

Python

importförfrågningar
importtid

API_KEY = "DIN_API_KEY"
BASE_URL = "https://ulazai.com/api/v1"

# Generera video
svar = requests.post(
    f"{BASE_URL}/sora/generate/text-to-video/",
    headers={"Authorization": f"Token {API_KEY}"},
    json={
        "prompt": "En vacker solnedgång över havet med vågor",
        "aspect_ratio": "landskap",
        "kvalitet": "standard"
    }
)

if response.status_code == 201:
    task_id = response.json()["data"]["task_id"]

    # Enkät för status
    medan det är sant:
        status_response = requests.get(
            f"{BASE_URL}/sora/status/{task_id}/",
            headers={"Authorization": f"Token {API_KEY}"}
        )

        status_data = status_response.json()["data"]

        if status_data["status"] == "framgång":
            print(f"Video klar: {status_data['video_url']}")
            bryta
        elif status_data["status"] == "misslyckades":
            print("Generation misslyckades")
            bryta

        time.sleep(30) # Se 30 sekunder för nästa kontroll

JavaScript (Node.js)

const axios = require('axios');

const API_KEY = 'DIN_API_KEY';
const BASE_URL = 'https://ulazai.com/api/v1';

asynkron funktion genereraSoraVideo() {
    prova {
        // Skapa video
        const response = invänta axios.post(
            `${BASE_URL}/sora/generate/text-to-video/`,
            {
                uppmaning: 'En vacker solnedgång över havet med vågor',
                aspect_ratio: 'landskap',
                kvalitet: 'standard'
            },
            {
                rubriker: { 'Authorization': `Token ${API_KEY}` }
            }
        );

        const taskId = response.data.data.task_id;
        console.log(`Generation start: ${taskId}`);

        // Poll voor status
        const checkStatus = async () => {
            const statusResponse = await axios.get(
                `${BASE_URL}/sora/status/${taskId}/`,
                { headers: { 'Authorization': `Token ${API_KEY}` } }
            );

            const status = statusResponse.data.data.status;

            if (status === 'framgång') {
                console.log(`Video redo: ${statusResponse.data.data.video_url}`);
            } annat om (status === 'misslyckades') {
                console.log('Generationen misslyckades');
            } annat {
                setTimeout(checkStatus, 30000); // Kontrollera igen om 30 sekunder
            }
        };

        setTimeout(checkStatus, 30000);

    } fånga (fel) {
        console.error('Error:', error.response?.data || error.message);
    }
}

genereraSoraVideo();

🚀 Redo att börja?

🎉 Begränsad tid: Få 20 % bonus på alla köp!