Dokumentacja programisty UlazAI
Sora 2 API: generowanie wideo, ceny i dostęp
Sora 2 API: generowanie wideo, ceny i dostęp
Generuj filmy Sora 2 za pomocą UlazAI z przejrzystymi punktami końcowymi, cenami kredytów, regułami prompt, odpytywaniem stanu i obsługą danych wyjściowych CDN.
Sprawdź aktualną cenę modelu Sora i ofertę aktywnego konta przed generacją.
✨ Funkcje Sora 2
✅ Tekst na wideo pokolenie
✅ Obraz do wideo animacja
✅ Opcje czasu trwania pokazywana przez aktualną trasę API
✅ Ustawienia wyjściowe pokazano w aktualnej dokumentacji API
✅ Obsługiwane współczynniki kształtu zależy od wybranej trasy
✅ Przetwarzanie asynchroniczne z odpytywaniem statusu
✅ Automatyczne przechowywanie R2 z CDN-em
✅ Powiadomienia e-mailowe kiedy jest kompletny
/api/v1/sora/generate/text-to-video/
Wygeneruj wideo z tekstu
Utwórz 10-sekundowy film z tekstu prompt za pomocą Sora 2.
Treść żądania
{
"prompt": "A serene mountain landscape at sunrise with birds flying",
"aspect_ratio": "landscape", // Options: "landscape", "portrait", "square"
"quality": "standard" // Options: "standard", "high"
}
Parametry
prompt * (ciąg)
Tekstowy opis filmu do wygenerowania. Maks. 5000 znaków. Aby uzyskać najlepsze wyniki, opisz go.
aspect_ratio (ciąg)
Proporcje wideo. Opcje: landscape (16:9), portrait (9:16), square (1:1). Domyślnie: landscape
jakość (ciąg)
Jakość ustawiona wstępnie. Opcje: standard, high. Wysoka jakość wymaga dłuższego czasu przetwarzania. Domyślny: standard
prompt_directory_optin (wartość logiczna) 💰 -10 KREDYTÓW
Udostępnij swój film w naszym publicznym katalogu Prompt i zdobądź Rabat 10 kredytów! Domyślnie: true
Odpowiedź na sukces (201)
{
"success": true,
"data": {
"task_id": "sra_2_1234567890abcdef",
"status": "processing",
"estimated_completion": "varies by queue",
"credits_charged": 80,
"credits_remaining": 920,
"webhook_url": "https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/",
"message": "Sora 2 video generation started successfully"
}
}
Przykład cURL
curl -X POST https://ulazai.com/api/v1/sora/generate/text-to-video/ \
-H "Authorization: Token YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A serene mountain landscape at sunrise with birds flying across the sky",
"aspect_ratio": "landscape",
"quality": "standard"
}'
/api/v1/sora/generate/image-to-video/
Wygeneruj wideo z obrazu
Animuj statyczny obraz w 10-sekundowym filmie za pomocą Sora 2.
Treść żądania
{
"image_url": "https://example.com/your-image.jpg",
"prompt": "Camera slowly zooms in as the character turns and smiles",
"aspect_ratio": "landscape",
"quality": "standard"
}
Parametry
image_url * (ciąg)
Adres URL obrazu źródłowego do animacji. Musi być publicznie dostępny. Obsługiwane formaty: JPG, PNG, WebP.
prompt * (ciąg)
Opis sposobu animacji obrazu. Maks. 5000 znaków.
aspect_ratio (ciąg)
Aby uzyskać najlepsze rezultaty, musi odpowiadać współczynnikowi proporcji obrazu źródłowego.
jakość (ciąg)
Jakość ustawiona wstępnie. Domyślnie: standard
prompt_directory_optin (wartość logiczna) 💰 -10 KREDYTÓW
Udostępnij swój film w naszym publicznym katalogu Prompt i zdobądź Rabat 10 kredytów! Domyślnie: true
/api/v1/sora/status/{task_id}/
Sprawdź status generacji
Uzyskaj bieżący status i wynik zadania generowania wideo Sora.
Stany odpowiedzi
Przetwarzanie
{
"success": true,
"data": {
"task_id": "sra_2_1234567890abcdef",
"status": "processing",
"progress": 45,
"estimated_completion": "varies by queue"
}
}
Sukces
{
"success": true,
"data": {
"task_id": "sra_2_1234567890abcdef",
"status": "success",
"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"
}
}
Przegrany
{
"success": false,
"error": "Video generation failed",
"error_details": "Content policy violation detected in prompt",
"credits_refunded": 80
}
Przykład cURL
curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
-H "Authorization: Token YOUR_API_KEY"
🔑 Sora 2 API dostęp: oficjalny vs UlazAI
Dostęp Sora 2 API zależy od dostawcy, weryfikacji organizacji i poziomu konta. Przed integracją sprawdź aktualny dostęp i ceny.
Oficjalny OpenAI API
- Zaproszenie / weryfikacja organizacji zamknięta
- Rozliczane za sekundę wideo
- Zarządzasz własnym kluczem i przydziałami OpenAI
Sora 2 na UlazAI
- Zadzwoń teraz za pomocą jednego klucza UlazAI API - bez osobnego zaproszenia
- Wycenione w postaci wspólnych kredytów, zwracane w przypadku nieudanych zadań
- Ten sam klucz wywołuje również Veo 3, Seedance i Kling - porównaj koszty i opóźnienia z jednego salda
Chcesz najpierw porównać Sora 2 z alternatywami? Zobacz Przewodnik po modelach wideo AI na rok 2026.
💰 Ceny Sora 2
Tekst na wideo
Sprawdź aktualne ceny API
na wybrany okres i model
• Sprawdź aktualne ustawienia wyjścia
• Sprawdź obsługiwane proporcje
• Czas przetwarzania różni się w zależności od kolejki
Obraz na wideo
Sprawdź aktualne ceny API
do konwersji obrazu na wideo
• Prześlij obsługiwany obraz, którego możesz użyć
• Niestandardowy ruch prompt
• Czas przetwarzania różni się w zależności od kolejki
Oblicz swoją partię na podstawie bieżącego kosztu modelu i oczekiwanej częstotliwości ponownych prób.
📚 Najlepsze praktyki
Wytyczne Prompt
- Określ szczegółowo ruchy kamery (obrót, zoom, pochylenie)
- Opisz oświetlenie i atmosferę
- Uwzględnij działania i wyrażenia znaków
- Określ czas kluczowych momentów
- Unikaj znaków i marek chronionych prawem autorskim
Wskazówki dotyczące konwersji obrazu na wideo
- Używaj wysokiej jakości obrazów źródłowych (min. 1024 piks.)
- Dopasuj proporcje, aby uniknąć przycięcia
- Opisz realistyczny ruch w danej scenie
- Weź pod uwagę fizykę i naturalny ruch
Integracja webhooka
- Filmy są automatycznie zapisywane w R2 z dostawą CDN
- Powiadomienia e-mail wysyłane po zakończeniu generowania
- Sonduj punkt końcowy stanu co 30 sekund w celu uzyskania aktualizacji
- Nieudane generacje automatycznie zwracają kredyty
⚠️ Kody błędów
400
Nieprawidłowe parametry żądania lub prompt jest za długi
401
Nieprawidłowy lub brakujący klucz API
402
Niewystarczające kredyty
422
Naruszenie polityki treści
429
Przekroczono limit szybkości (maks. 10 jednocześnie)
500
Błąd serwera - kredyty zostaną zwrócone
💻 Przykłady kodu
Pyton
import requests
import time
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://ulazai.com/api/v1"
# Generate video
response = requests.post(
f"{BASE_URL}/sora/generate/text-to-video/",
headers={"Authorization": f"Token {API_KEY}"},
json={
"prompt": "A beautiful sunset over the ocean with waves",
"aspect_ratio": "landscape",
"quality": "standard"
}
)
if response.status_code == 201:
task_id = response.json()["data"]["task_id"]
# Poll for status
while True:
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"] == "success":
print(f"Video ready: {status_data['video_url']}")
break
elif status_data["status"] == "failed":
print("Generation failed")
break
time.sleep(30) # Wait 30 seconds before next check
Javascript (node.js)
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://ulazai.com/api/v1';
async function generateSoraVideo() {
try {
// Generate video
const response = await axios.post(
`${BASE_URL}/sora/generate/text-to-video/`,
{
prompt: 'A beautiful sunset over the ocean with waves',
aspect_ratio: 'landscape',
quality: 'standard'
},
{
headers: { 'Authorization': `Token ${API_KEY}` }
}
);
const taskId = response.data.data.task_id;
console.log(`Generation started: ${taskId}`);
// Poll for 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 === 'success') {
console.log(`Video ready: ${statusResponse.data.data.video_url}`);
} else if (status === 'failed') {
console.log('Generation failed');
} else {
setTimeout(checkStatus, 30000); // Check again in 30 seconds
}
};
setTimeout(checkStatus, 30000);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
generateSoraVideo();
🚀 Gotowy do startu?
Sprawdź na swoim koncie aktualne oferty kredytowe.