Luma API
Luma API on WaveSpeedAI — Ray 3.2 text-to-video, image-to-video, video edit and video reframing, earlier Ray 2 and Ray 1.6 models, and Uni v1 and Photon image generation and editing, all through one REST API.
Use Luma's Ray 3.2 for cinematic text-to-video and image-to-video with controllable aspect ratio, resolution and duration, re-render or reframe existing footage with video edit and video reframing, and generate or edit images with Uni v1 and Photon. Ray 2 and Ray 1.6 stay available for earlier workflows.
Resumen
Acerca de Luma API
Qué hace Luma, cómo encaja en la gama de modelos de Luma AI y por qué los equipos lo eligen.
Luma es un modelo de generación de vídeo de Luma AI, disponible a través de la API REST de WaveSpeedAI. Luma API on WaveSpeedAI — Ray 3.2 text-to-video, image-to-video, video edit and video reframing, earlier Ray 2 and Ray 1.6 models, and Uni v1 and Photon image generation and editing, all through one REST API.
Use Luma's Ray 3.2 for cinematic text-to-video and image-to-video with controllable aspect ratio, resolution and duration, re-render or reframe existing footage with video edit and video reframing, and generate or edit images with Uni v1 and Photon. Ray 2 and Ray 1.6 stay available for earlier workflows.
La familia Luma en WaveSpeedAI incluye 6 endpoints REST que cubren los flujos de trabajo de Video-To-Video, Image-To-Video, Text-To-Video, Image-To-Image, Text-To-Image. Cada variante tiene su propio precio, parámetros y ejemplos de resultados: elige la que se ajuste a tu modalidad de entrada y a tus requisitos de producción, o llama a varias con la misma clave de API para componer flujos de varios pasos.
Ejecuta Luma con la misma clave de API, la misma cuenta de facturación y los mismos límites de uso que ya usas para los demás más de 1.000 modelos de IA de WaveSpeedAI. Sin configuración aparte por proveedor, sin SDK por proveedor, sin límites de uso distintos por proveedor: una sola integración lo cubre todo, desde texto a imagen y texto a vídeo hasta síntesis de audio, generación 3D, escalado y edición.
Endpoints
Todos los endpoints de la API de Luma
6 endpoints de Luma disponibles ahora en WaveSpeedAI: elige la variante que se ajuste a tu flujo de trabajo.
/filters:quality(82)/media/images/1782717317688496873_qX6fpyHQ.webp)
Ray 3.2 Video Edit
Luma Ray 3.2 Video Edit is a fast AI video-to-video editing model that re-renders an existing source video from a text prompt while preserving the original motion and timing. Ready-to-use REST inference API for video restyling, creative edits, product videos, advertising creatives, social media clips, visual storytelling, and professional video editing workflows with simple integration, no coldstarts, and affordable pricing.
/filters:quality(82)/media/images/1782717390795771980_eQLU3clv.webp)
Ray 3.2 Video Reframing
Luma Ray 3.2 Video Reframing is a fast AI video reframing model that changes an existing video’s aspect ratio and fills the newly exposed canvas from a prompt while preserving the source footage. Ready-to-use REST inference API for aspect ratio conversion, social media resizing, cinematic reframing, video outpainting, creator content, advertising creatives, and professional video editing workflows with simple integration, no coldstarts, and affordable pricing.
/filters:quality(82)/media/images/1781079452793266676_0T2d6enx.webp)
Ray 3.2 Image To Video
Luma Ray 3.2 Image to Video is a fast AI image-to-video generation model that animates a source image into cinematic video guided by a text prompt, with controllable aspect ratio, resolution, and duration. Ready-to-use REST inference API for image animation, cinematic clips, product videos, social media content, advertising creatives, visual storytelling, and professional image-to-video workflows with simple integration, no coldstarts, and affordable pricing.
/filters:quality(82)/media/images/1781079292182866010_NdMW5fpz.webp)
Ray 3.2 Text To Video
Luma Ray 3.2 Text to Video is a fast AI video generation model that creates cinematic videos from text prompts with controllable aspect ratio, resolution, and duration. Ready-to-use REST inference API for cinematic clips, storytelling videos, social media content, advertising creatives, product visuals, concept videos, and professional text-to-video workflows with simple integration, no coldstarts, and affordable pricing.
/filters:quality(82)/media/images/1781079512370971296_kmKPCCyz.webp)
Uni v1 Edit
Luma Uni v1 Edit is a fast AI image editing model that reworks source images from text instructions while preserving composition and supporting optional reference images. Ready-to-use REST inference API for photo editing, product image updates, creative retouching, marketing assets, brand visuals, style changes, and professional image editing workflows with simple integration, no coldstarts, and affordable pricing.
/filters:quality(82)/media/images/1781079484942032323_VCwGPY8i.webp)
Uni v1 Text To Image
Luma Uni v1 Text to Image is a fast AI image generation model that creates high-fidelity images from prompts with flexible aspect ratios, visual style control, and optional reference-image guidance. Ready-to-use REST inference API for creative design, marketing visuals, product mockups, brand assets, social media content, concept art, and professional text-to-image workflows with simple integration, no coldstarts, and affordable pricing.
Ejemplos
Mira Luma en acción
Resultados reales generados con la API de Luma. Pasa el cursor sobre cualquier vídeo para previsualizarlo y haz clic para abrir el visor a tamaño completo.
Cómo empezar
Cómo usar la API de Luma
Cuatro pasos desde el registro hasta una generación terminada. Encontrarás ejemplos completos en Python, Node.js y cURL en la sección de API más abajo.
- 01
Obtén una clave de API
Regístrate en WaveSpeedAI y copia tu clave de API desde el panel. Las cuentas nuevas incluyen créditos gratuitos para empezar: suficientes para usar el playground unas decenas de veces antes de que empiece la facturación.
- 02
Envía una predicción
Haz POST de tu entrada como JSON a https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video. El endpoint devuelve un id de predicción de inmediato: las generaciones son asíncronas, así que no mantienes una conexión abierta durante la inferencia.
- 03
Consulta hasta que termine
Haz GET a https://api.wavespeed.ai/api/v3/predictions/{request_id}/result. Devuelve los resultados con completed; detente con un error en failed, cancelled, timeout o deleted; sigue consultando con cualquier otro estado.
- 04
Lee la URL del resultado
Cuando status sea "completed", lee la URL de data.outputs[0]. La URL apunta a tu contenido generado en la CDN de WaveSpeedAI: imagen, vídeo, audio o archivo 3D según la variante de Luma que hayas llamado.
Casos de uso
Qué puedes crear con Luma
Flujos de trabajo habituales para los que desarrolladores y creadores usan la API de Luma.
Cinematic text-to-video
luma/ray-3.2/text-to-video generates cinematic videos from text prompts with controllable aspect ratio, resolution, duration and optional reference images.
Animate a still image
luma/ray-3.2/image-to-video animates a source image into video guided by a text prompt, with the same aspect ratio, resolution and duration controls.
Restyle footage and keep the motion
luma/ray-3.2/video-edit re-renders an existing source video from a text prompt while preserving the source motion and timing.
Reframe video to a new aspect ratio
luma/ray-3.2/video-reframing changes a video's aspect ratio and fills the newly exposed canvas from a prompt while preserving the source footage.
Image generation and editing
luma/uni-v1/text-to-image generates images with aspect ratio, style, format and reference-image guidance; luma/uni-v1/edit transforms an input image from a text instruction while preserving composition.
Consejos
Consejos para escribir prompts en Luma
Consejos prácticos para obtener mejores resultados con Luma, basados en los patrones que funcionan en modelos de vídeo en flujos de producción.
- 01
Sé específico con los movimientos de cámara
Menciona vocabulario cinematográfico concreto: órbita, travelling de acercamiento, push-in, panorámica a la izquierda, plano grúa, seguimiento con cámara en mano. Los prompts genéricos producen decisiones de cámara estáticas o arbitrarias; los movimientos de cámara con nombre se corresponden directamente con la intención de movimiento en los datos de entrenamiento del modelo y mejoran mucho la calidad del plano.
- 02
Ancla la identidad del personaje con imágenes de referencia
Si tu prompt depende de una persona, un personaje o un producto concretos, sube una imagen de referencia junto con el prompt. Sin referencia, la identidad se desvía entre fotogramas y entre planos: el mismo personaje acaba pareciendo una persona ligeramente distinta en cada generación.
- 03
Describe la iluminación y la hora del día
Indicaciones de iluminación como «hora dorada, luz cálida direccional suave» o «luz difusa de cielo nublado, cielo gris pizarra» mejoran la calidad y la consistencia mucho más que los modificadores de calidad vagos. La iluminación es uno de los priors más fuertes en los que se condiciona el modelo.
- 04
Usa prompts negativos para suprimir los fallos habituales
Negativos útiles para vídeo: «parpadeo de fotogramas, desenfoque de movimiento, marca de agua, artefactos de texto, manos deformadas, baja resolución, compresión jpeg». Los prompts negativos no cuestan nada y reducen de forma notable la tasa de generaciones que de otro modo tendrías que repetir.
- 05
Elige la duración más corta que recoja tu momento
La mayoría de los prompts funcionan mejor con 5-8 segundos. Los clips más largos amplifican las inconsistencias temporales (el sujeto se transforma, el entorno se desvía). Si necesitas una secuencia de 20 segundos, genera tres clips de 6-8 segundos y móntalos: la calidad se mantiene más alta que con una sola generación larga.
- 06
Ajusta la relación de aspecto a la plataforma desde el principio
9:16 para TikTok / Reels / Shorts, 16:9 para feeds horizontales y YouTube, 1:1 para cuadrículas de publicaciones. Los modelos se entrenan de forma ligeramente distinta según la relación de aspecto: recortar un 16:9 a 9:16 después pierde tanto fidelidad como la composición que el modelo pretendía.
Precios
Precios de la API de Luma
El precio es por resultado. El cargo final depende de los parámetros que definas en el playground de cada variante (resolución, duración, número de resultados, referencias).
| Endpoint | Tipo | Precio inicial |
|---|---|---|
| luma/ | video-to-video | $0.144 |
| luma/ | video-to-video | $0.06 |
| luma/ | image-to-video | $0.10 |
| luma/ | text-to-video | $0.10 |
| luma/ | image-to-image | $0.042 |
| luma/ | text-to-image | $0.042 |
API
Llama a la API de Luma
Obtén una clave de API en wavespeed.ai/accesskey y envía una predicción por REST. El playground genera ejemplos listos para pegar con cualquier combinación de entradas.
POSThttps://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "16:9",
"resolution": "540p",
"duration": 5
}')
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "16:9",
"resolution": "540p",
"duration": 5
}),
});
const task = body.data ?? body;
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video", json.dumps(payload).encode())
task = body.get("data", body)
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout", "deleted"}:
raise RuntimeError(result)
time.sleep(2)Comparar
Luma frente a las alternativas
Cuándo elegir Luma en lugar de modelos similares en WaveSpeedAI.
Luma frente a Kling 3.0
Kling 3.0 offers Standard, Pro and 4K tiers with native audio. Luma Ray 3.2 adds video edit and video reframing endpoints for working on existing footage.
Luma frente a Veo 3.1
Veo 3.1 is Google's video model with synchronized audio. Luma Ray 3.2 is a separate family with optional reference images and footage-level edit and reframing endpoints.
Preguntas frecuentes
Luma API — Preguntas frecuentes
Precios, licencia, integración: preguntas habituales sobre cómo ejecutar Luma en WaveSpeedAI.
¿Qué es la API de Luma?
Luma es un modelo de generación de vídeo de Luma AI expuesto como API REST en WaveSpeedAI. Luma API on WaveSpeedAI — Ray 3.2 text-to-video, image-to-video, video edit and video reframing, earlier Ray 2 and Ray 1.6 models, and Uni v1 and Photon image generation and editing, all through one REST API. Puedes llamarlo por programación o probarlo desde el playground enlazado arriba.
¿Cómo llamo a la API de Luma?
Regístrate en WaveSpeedAI, copia tu clave de API desde /accesskey y haz POST a https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video con tu entrada como JSON. El endpoint devuelve un id de predicción. Consulta el endpoint de resultados aproximadamente cada 2 segundos, aumenta el intervalo en las tareas largas y detente ante cualquier estado final. Arriba tienes ejemplos en Python / Node.js / cURL orientados a producción.
¿Cuánto cuesta la API de Luma?
Luma empieza en $0.042. El coste exacto depende de los parámetros que definas (resolución, duración, número de resultados, referencias). La vista previa del coste en tiempo real junto al botón Generar del playground muestra el precio exacto de tu entrada actual.
¿Qué variantes de Luma hay disponibles?
WaveSpeedAI aloja 6 endpoints de Luma en producción: luma/ray-3.2/video-edit, luma/ray-3.2/video-reframing, luma/ray-3.2/image-to-video, luma/ray-3.2/text-to-video, luma/uni-v1/edit, luma/uni-v1/text-to-image. Cada variante tiene su propia página de playground y sus propios precios.
¿Puedo usar comercialmente los resultados de Luma?
Los derechos de uso comercial dependen de la licencia del modelo de Luma AI. La mayoría de los modelos de Luma AI permiten el uso comercial de los resultados; consulta la página del playground de cada modelo para ver el resumen de su licencia y los Términos del servicio de WaveSpeedAI para las condiciones de la plataforma.
¿Por qué usar Luma en WaveSpeedAI en lugar de ir directamente al proveedor?
Una sola clave de API y una sola cuenta de facturación para Luma Y más de 1.000 modelos de IA de otros proveedores. Sin configurar un SDK por proveedor, sin límites de uso aparte y sin reescribir el código de integración para cada proveedor. Los precios suelen ser iguales o inferiores a los de la API directa de Luma AI.
Empieza a crear con Luma en WaveSpeedAI
Créditos gratuitos al registrarte. Una sola clave de API para más de 1.000 modelos de IA de Luma AI y de todos los demás proveedores.
/filters:quality(82)/examples/7090bb21305b0b99db644a0756b3a4ca/1783684141735187042_eUGQZ8ir.webp)