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.
Visão geral
Sobre o Luma API
O que o Luma faz, como ele se encaixa na linha de modelos da Luma AI e por que as equipes o escolhem.
Luma é um modelo de geração de vídeo da Luma AI, disponível pela API REST da 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.
A família Luma na WaveSpeedAI traz 6 endpoints REST cobrindo os fluxos de Video-To-Video, Image-To-Video, Text-To-Video, Image-To-Image, Text-To-Image. Cada variante tem seu próprio preço, parâmetros e exemplos de resultado — escolha a que combina com sua modalidade de entrada e suas restrições de produção, ou chame várias com a mesma chave de API para montar pipelines de várias etapas.
Execute o Luma com a mesma chave de API, a mesma conta de cobrança e os mesmos limites de taxa que você usa nos outros mais de 1.000 modelos de IA da WaveSpeedAI. Sem configuração separada por fornecedor, sem SDKs por provedor, sem limites de taxa por fornecedor — uma única integração cobre tudo, de texto para imagem e texto para vídeo até síntese de áudio, geração 3D, ampliação e edição.
Endpoints
Todos os endpoints da API de Luma
6 endpoints de Luma disponíveis agora na WaveSpeedAI — escolha a variante que combina com seu fluxo de trabalho.
/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.
Exemplos
Veja o Luma em ação
Resultados reais gerados pela API do Luma. Passe o mouse sobre qualquer vídeo para pré-visualizar e clique para abrir o visualizador em tamanho real.
Como usar
Como usar a API do Luma
Quatro passos do cadastro até uma geração concluída. Exemplos completos em Python, Node.js e cURL estão na seção de API abaixo.
- 01
Obtenha uma chave de API
Crie uma conta na WaveSpeedAI e copie sua chave de API no painel. Contas novas recebem créditos iniciais grátis — o suficiente para usar o playground algumas dezenas de vezes antes de a cobrança começar.
- 02
Envie uma predição
Faça POST da sua entrada em JSON para https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video. O endpoint devolve um id de predição imediatamente — as gerações são assíncronas, então você não mantém uma conexão aberta durante a inferência.
- 03
Consulte até concluir
Faça GET em https://api.wavespeed.ai/api/v3/predictions/{request_id}/result. Retorne os resultados quando o status for completed; pare com erro em failed, cancelled, timeout ou deleted; continue consultando em qualquer outro status.
- 04
Leia a URL do resultado
Quando o status for "completed", leia a URL em data.outputs[0]. A URL aponta para a mídia gerada na CDN da WaveSpeedAI — imagem, vídeo, áudio ou arquivo 3D, conforme a variante do Luma que você chamou.
Casos de uso
O que você pode criar com o Luma
Fluxos de trabalho comuns para os quais desenvolvedores e criadores usam a API do 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.
Dicas
Dicas de prompt para o Luma
Conselhos práticos para obter melhores resultados com o Luma — extraídos dos padrões que funcionam em modelos de vídeo em pipelines de produção.
- 01
Seja específico nos movimentos de câmera
Use vocabulário de cinematografia concreto — orbit, dolly-in, push-in, pan-left, crane shot, handheld follow. Prompts genéricos produzem escolhas de câmera estáticas ou arbitrárias; movimentos de câmera nomeados correspondem diretamente à intenção de movimento nos dados de treinamento do modelo e melhoram muito a qualidade do plano.
- 02
Ancore a identidade do personagem com imagens de referência
Se o seu prompt depende de uma pessoa, personagem ou produto específico, envie uma imagem de referência junto com o prompt. Sem referência, a identidade se desvia entre quadros e planos — o mesmo personagem acaba parecendo uma pessoa ligeiramente diferente a cada geração.
- 03
Descreva a iluminação e a hora do dia
Indicações de iluminação como "golden hour, soft warm directional light" ou "overcast diffused light, slate-grey sky" melhoram a qualidade e a consistência muito mais do que modificadores vagos de qualidade. A iluminação é um dos priors mais fortes em que o modelo se baseia.
- 04
Use prompts negativos para suprimir falhas comuns
Negativos úteis para vídeo: "frame flicker, motion blur, watermark, text artifacts, distorted hands, low resolution, jpeg compression". Prompts negativos não custam nada e reduzem de forma perceptível a taxa de gerações que você teria de refazer.
- 05
Escolha a menor duração que captura o seu momento
A maioria dos prompts funciona melhor em 5 a 8 segundos. Clipes mais longos amplificam inconsistências temporais (sujeito que se deforma, deriva do ambiente). Se você precisa de uma sequência de 20 segundos, gere três clipes de 6 a 8 segundos e monte-os na edição — a qualidade fica maior do que em uma única geração longa.
- 06
Combine a proporção de tela com a plataforma desde o início
9:16 para TikTok / Reels / Shorts, 16:9 para feeds em paisagem e YouTube, 1:1 para grades de posts. Os modelos são treinados de modo ligeiramente diferente por proporção de tela — recortar um 16:9 em 9:16 depois perde tanto a fidelidade quanto a composição que o modelo pretendia.
Preços
Preços da API de Luma
O preço é por resultado. O valor final varia conforme os parâmetros definidos no playground de cada variante (resolução, duração, quantidade de resultados, referências).
| Endpoint | Tipo | Preço 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
Chame a API de Luma
Crie uma chave de API em wavespeed.ai/accesskey e envie uma predição via REST. O playground gera exemplos prontos para colar para qualquer combinação 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 vs alternativas
Quando escolher o Luma em vez de modelos semelhantes na WaveSpeedAI.
Luma vs 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 vs 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.
FAQ
Luma API — Perguntas frequentes
Preços, licença, integração — perguntas comuns sobre executar o Luma na WaveSpeedAI.
O que é a API do Luma?
Luma é um modelo de geração de vídeo da Luma AI disponibilizado como API REST na 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. Você pode chamá-lo por código ou testá-lo no playground indicado acima.
Como chamo a API do Luma?
Crie uma conta na WaveSpeedAI, copie sua chave de API em /accesskey e faça POST para https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video com sua entrada em JSON. O endpoint devolve um id de predição. Consulte o endpoint de resultado a cada 2 segundos, aproximadamente, aumente o intervalo em tarefas longas e pare em qualquer status final. Exemplos prontos para produção em Python / Node.js / cURL estão acima.
Quanto custa a API do Luma?
O Luma começa em $0.042. O custo exato varia conforme os parâmetros definidos (resolução, duração, quantidade de resultados, referências). A prévia de custo ao vivo ao lado do botão Gerar no playground mostra o preço exato da sua entrada atual.
Quais variantes do Luma estão disponíveis?
A WaveSpeedAI hospeda 6 endpoints de Luma ativos: 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 tem sua própria página de playground e seu preço.
Posso usar os resultados do Luma comercialmente?
Os direitos de uso comercial seguem a licença do modelo da Luma AI. A maioria dos modelos da Luma AI permite o uso comercial dos resultados; veja o resumo da licença na página do playground de cada modelo e os Termos de Serviço da WaveSpeedAI para as condições da plataforma.
Por que usar o Luma na WaveSpeedAI em vez de ir direto à fonte?
Uma chave de API e uma conta de cobrança para o Luma E mais de 1.000 outros modelos de IA de outros provedores. Sem configuração de SDK por fornecedor, sem limites de taxa separados, sem reescrever o código de integração a cada fornecedor. Os preços costumam ser iguais ou menores que os da API direta da Luma AI.
Comece a criar com o Luma na WaveSpeedAI
Créditos iniciais grátis no cadastro. Uma chave de API para mais de 1.000 modelos de IA da Luma AI e de todos os outros provedores.
/filters:quality(82)/examples/7090bb21305b0b99db644a0756b3a4ca/1783684141735187042_eUGQZ8ir.webp)