Documentos para desarrolladores UlazAI
Sora 2 API: generación de vídeo, precio y acceso
Sora 2 API: generación de vídeo, precio y acceso
Genere videos Sora 2 a través de UlazAI con puntos finales claros, precios de crédito, reglas prompt, sondeo de estado y manejo de salida CDN.
Verifique el precio actual del modelo Sora y cualquier oferta de cuenta activa antes de la generación.
✨ Características de Sora 2
✅ Texto a vídeo generación
✅ Imagen a vídeo animación
✅ Opciones de duración mostrado por la ruta actual API
✅ Configuración de salida se muestra en la documentación actual API
✅ Relaciones de aspecto admitidas Depende de la ruta seleccionada.
✅ Procesamiento asincrónico con sondeo de estado
✅ Almacenamiento automático de R2 con CDN
✅ Notificaciones por correo electrónico cuando esté completo
/api/v1/sora/generate/text-to-video/
Generar vídeo a partir de texto
Cree un video de 10 segundos a partir de un texto prompt usando Sora 2.
Cuerpo de solicitud
{
"prompt": "A serene mountain landscape at sunrise with birds flying",
"aspect_ratio": "landscape", // Options: "landscape", "portrait", "square"
"quality": "standard" // Options: "standard", "high"
}
Parámetros
prompt * (cadena)
Descripción de texto del vídeo a generar. Máximo 5000 caracteres. Sea descriptivo para obtener mejores resultados.
aspect_ratio (cadena)
Relación de aspecto del vídeo. Opciones: landscape (16:9), portrait (9:16), square (1:1). Predeterminado: landscape
calidad (cadena)
Preajuste de calidad. Opciones: standard, high. La alta calidad requiere más tiempo de procesamiento. Predeterminado: standard
prompt_directory_optin (booleano) 💰 -10 CRÉDITOS
Comparta su video en nuestro directorio público Prompt y obtenga 10 créditos de descuento! Predeterminado: true
Respuesta exitosa (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"
}
}
Ejemplo de rizo
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/
Generar video a partir de imagen
Anima una imagen estática a un vídeo de 10 segundos usando Sora 2.
Cuerpo de solicitud
{
"image_url": "https://example.com/your-image.jpg",
"prompt": "Camera slowly zooms in as the character turns and smiles",
"aspect_ratio": "landscape",
"quality": "standard"
}
Parámetros
image_url * (cadena)
URL de la imagen de origen a animar. Debe ser de acceso público. Formatos soportados: JPG, PNG, WebP.
prompt * (cadena)
Descripción de cómo animar la imagen. Máximo 5000 caracteres.
aspect_ratio (cadena)
Debe coincidir con la relación de aspecto de la imagen de origen para obtener mejores resultados.
calidad (cadena)
Preajuste de calidad. Predeterminado: standard
prompt_directory_optin (booleano) 💰 -10 CRÉDITOS
Comparta su video en nuestro directorio público Prompt y obtenga 10 créditos de descuento! Predeterminado: true
/api/v1/sora/status/{task_id}/
Verificar estado de generación
Obtenga el estado actual y el resultado de una tarea de generación de video de Sora.
Estados de respuesta
Tratamiento
{
"success": true,
"data": {
"task_id": "sra_2_1234567890abcdef",
"status": "processing",
"progress": 45,
"estimated_completion": "varies by queue"
}
}
Éxito
{
"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"
}
}
Fallido
{
"success": false,
"error": "Video generation failed",
"error_details": "Content policy violation detected in prompt",
"credits_refunded": 80
}
Ejemplo de rizo
curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
-H "Authorization: Token YOUR_API_KEY"
🔑 Sora 2 API acceso: oficial vs UlazAI
Acceso Sora 2 API Depende del proveedor, la verificación de la organización y el nivel de cuenta. Verifique el acceso y los precios actuales antes de la integración.
Oficial OpenAI API
- Invitación/verificación de organización cerrada
- Se factura por segundo de vídeo
- Usted administra su propia clave y cuotas OpenAI
Sora 2 en UlazAI
- Llámalo ahora con una clave UlazAI API, sin invitación separada
- Cotizado en créditos compartidos, reembolsado en caso de trabajos fallidos
- La misma clave también llama a Veo 3, Seedance y Kling: compare el costo y la latencia de un saldo
¿Quiere comparar primero el Sora 2 con las alternativas? Ver el Guía de modelos de vídeo de IA 2026.
💰 Precios Sora 2
Texto a vídeo
Verifique el precio actual de API
para la duración y modelo seleccionados
• Verifique la configuración de salida actual
• Verifique las relaciones de aspecto admitidas
• El tiempo de procesamiento varía según la cola
Imagen a vídeo
Verifique el precio actual de API
para imagen a video
• Cargue una imagen compatible que pueda utilizar
• Movimiento personalizado prompt
• El tiempo de procesamiento varía según la cola
Calcule su lote a partir del costo del modelo actual y la tasa de reintentos esperada.
📚 Mejores prácticas
Directrices Prompt
- Sea específico sobre los movimientos de la cámara (panorámica, zoom, inclinación)
- Describir la iluminación y la atmósfera.
- Incluir acciones y expresiones de personajes.
- Especificar el tiempo para los momentos clave
- Evite personajes o marcas con derechos de autor
Consejos de imagen a vídeo
- Utilice imágenes fuente de alta calidad (mínimo 1024 px)
- Haga coincidir la relación de aspecto para evitar recortar
- Describe el movimiento realista de la escena.
- Considere la física y el movimiento natural.
Integración de webhook
- Los videos se almacenan automáticamente en R2 con entrega CDN
- Notificaciones por correo electrónico enviadas cuando se completa la generación
- Sondee el punto final de estado cada 30 segundos para obtener actualizaciones
- Las generaciones fallidas reembolsan los créditos automáticamente
⚠️ Códigos de error
400
Parámetros de solicitud no válidos o prompt demasiado largo
401
Clave API no válida o faltante
402
Créditos insuficientes
422
Violación de la política de contenido
429
Límite de tasa excedido (máximo 10 simultáneos)
500
Error del servidor: se reembolsarán los créditos
💻 Ejemplos de código
pitón
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 (nodo.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();
🚀 ¿Listo para empezar?
Consulte su cuenta para conocer las ofertas de crédito actuales.