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.
Panoramica
Informazioni su Luma API
Cosa fa Luma, come si inserisce nella gamma di modelli di Luma AI e perché i team lo scelgono.
Luma è un modello di generazione video di Luma AI, disponibile tramite l'API REST di 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 famiglia Luma su WaveSpeedAI offre 6 endpoint REST che coprono i flussi di lavoro Video-To-Video, Image-To-Video, Text-To-Video, Image-To-Image, Text-To-Image. Ogni variante ha il suo prezzo, i suoi parametri e i suoi esempi di output: scegli quella più adatta alla tua modalità di input e ai tuoi vincoli di produzione, oppure richiamane diverse con la stessa chiave API per comporre pipeline in più passaggi.
Usa Luma con la stessa chiave API, lo stesso account di fatturazione e gli stessi limiti di frequenza che usi per gli altri oltre 1.000 modelli AI di WaveSpeedAI. Nessuna configurazione separata per fornitore, nessun SDK per provider, nessun limite di frequenza per fornitore: un'unica integrazione copre tutto, dal text-to-image e text-to-video alla sintesi audio, alla generazione 3D, all'upscaling e all'editing.
Endpoint
Tutti gli endpoint API Luma
6 endpoint Luma disponibili ora su WaveSpeedAI: scegli la variante più adatta al tuo flusso di lavoro.
/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.
Esempi
Luma in azione
Output reali generati dall'API Luma. Passa il mouse su un video per l'anteprima, clicca per aprire il visualizzatore a schermo intero.
Guida
Come usare l'API Luma
Quattro passaggi dalla registrazione alla generazione completata. Esempi completi in Python, Node.js e cURL sono nella sezione API qui sotto.
- 01
Ottieni una chiave API
Registrati su WaveSpeedAI e copia la tua chiave API dalla dashboard. I nuovi account includono crediti gratuiti di benvenuto: bastano per usare il playground qualche decina di volte prima che inizi la fatturazione.
- 02
Invia una predizione
Invia con POST il tuo input in formato JSON a https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video. L'endpoint restituisce subito un id di predizione: le generazioni sono asincrone, quindi non devi tenere una connessione aperta durante l'inferenza.
- 03
Controlla il completamento
Fai GET su https://api.wavespeed.ai/api/v3/predictions/{request_id}/result. Restituisci gli output con completed; interrompi con un errore con failed, cancelled, timeout o deleted; continua il polling per ogni altro stato.
- 04
Leggi l'URL dell'output
Quando lo stato è "completed", leggi l'URL da data.outputs[0]. L'URL punta al tuo contenuto generato sulla CDN di WaveSpeedAI: immagine, video, audio o file 3D a seconda della variante di Luma che hai richiamato.
Casi d'uso
Cosa puoi creare con Luma
I flussi di lavoro più comuni per cui sviluppatori e creator usano l'API 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.
Consigli
Consigli per scrivere i prompt per Luma
Consigli pratici per ottenere output migliori da Luma, ricavati dagli schemi che funzionano con i modelli video nelle pipeline di produzione.
- 01
Sii specifico sui movimenti di camera
Cita un vocabolario cinematografico concreto — orbit, dolly-in, push-in, pan-left, crane shot, handheld follow. I prompt generici producono scelte di camera statiche o arbitrarie; i movimenti di camera con un nome si traducono direttamente nell'intento di movimento nei dati di addestramento del modello e migliorano drasticamente la qualità dell'inquadratura.
- 02
Ancora l'identità del personaggio con immagini di riferimento
Se il tuo prompt dipende da una persona, un personaggio o un prodotto specifico, carica un'immagine di riferimento insieme al prompt. Senza riferimento, l'identità deriva tra i frame e tra le inquadrature — lo stesso personaggio finisce per sembrare una persona leggermente diversa a ogni generazione.
- 03
Descrivi illuminazione e ora del giorno
Indicazioni di luce come «golden hour, luce direzionale calda e morbida» o «luce diffusa da cielo coperto, cielo grigio ardesia» migliorano qualità e coerenza molto più di vaghi modificatori di qualità. L'illuminazione è uno dei prior più forti su cui il modello si condiziona.
- 04
Usa i prompt negativi per sopprimere i difetti più comuni
Negativi utili per il video: «frame flicker, motion blur, watermark, text artifacts, distorted hands, low resolution, jpeg compression». I prompt negativi non costano nulla e riducono sensibilmente la quota di generazioni che altrimenti rilanceresti.
- 05
Scegli la durata più breve che cattura il tuo momento
La maggior parte dei prompt funziona meglio a 5-8 secondi. Le clip più lunghe amplificano le incoerenze temporali (soggetto che cambia forma, deriva dell'ambiente). Se ti serve una sequenza di 20 secondi, genera tre clip da 6-8 secondi e montale insieme — la qualità resta più alta che con una sola generazione lunga.
- 06
Adatta subito le proporzioni alla piattaforma
9:16 per TikTok / Reels / Shorts, 16:9 per i feed orizzontali e YouTube, 1:1 per le griglie dei post. I modelli si addestrano in modo leggermente diverso per ogni proporzione — ritagliare un 16:9 in 9:16 a posteriori fa perdere sia la fedeltà sia la composizione che il modello aveva previsto.
Prezzi
Prezzi dell'API Luma
Il prezzo è per output. L'addebito finale dipende dai parametri impostati nel playground di ciascuna variante (risoluzione, durata, numero di output, riferimenti).
| Endpoint | Tipo | Prezzo di partenza |
|---|---|---|
| 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
Richiama l'API Luma
Ottieni una chiave API su wavespeed.ai/accesskey, poi invia una predizione tramite REST. Il playground genera esempi pronti da incollare per qualsiasi combinazione di input.
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)Confronto
Luma a confronto con le alternative
Quando scegliere Luma rispetto a modelli simili su 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 — Domande frequenti
Prezzi, licenza, integrazione: le domande più comuni sull'uso di Luma su WaveSpeedAI.
Che cos'è l'API Luma?
Luma è un modello di generazione video di Luma AI reso disponibile come API REST su 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. Puoi richiamarlo da codice o provarlo dal playground collegato qui sopra.
Come richiamo l'API Luma?
Registrati su WaveSpeedAI, copia la tua chiave API da /accesskey, poi invia con POST a https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video il tuo input in formato JSON. L'endpoint restituisce un id di predizione. Fai polling sull'endpoint dei risultati circa ogni 2 secondi, aumenta l'intervallo per le attività di lunga durata e fermati a qualsiasi stato terminale. Gli esempi in Python / Node.js / cURL orientati alla produzione sono qui sopra.
Quanto costa l'API Luma?
Luma parte da $0.042. Il costo esatto dipende dai parametri impostati (risoluzione, durata, numero di output, riferimenti). L'anteprima del costo in tempo reale accanto al pulsante Genera nel playground mostra il prezzo esatto per il tuo input attuale.
Quali varianti di Luma sono disponibili?
WaveSpeedAI offre 6 endpoint Luma attivi: 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. Ogni variante ha la sua pagina playground e i suoi prezzi.
Posso usare gli output di Luma a fini commerciali?
I diritti di uso commerciale seguono la licenza del modello di Luma AI. La maggior parte dei modelli di Luma AI consente l'uso commerciale degli output; consulta la pagina playground di ciascun modello per il riepilogo della licenza e i Termini di servizio di WaveSpeedAI per le condizioni a livello di piattaforma.
Perché usare Luma su WaveSpeedAI invece di rivolgersi direttamente al fornitore?
Una sola chiave API e un solo account di fatturazione per Luma E per oltre 1.000 altri modelli AI di altri provider. Nessuna configurazione di SDK per fornitore, nessun limite di frequenza separato, nessun codice di integrazione da riscrivere per ogni fornitore. I prezzi sono in genere in linea o inferiori a quelli dell'API diretta di Luma AI.
Inizia a creare con Luma su WaveSpeedAI
Crediti gratuiti di benvenuto alla registrazione. Una sola chiave API per oltre 1.000 modelli AI di Luma AI e di ogni altro provider.
/filters:quality(82)/examples/7090bb21305b0b99db644a0756b3a4ca/1783684141735187042_eUGQZ8ir.webp)