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.
Présentation
À propos de Luma API
Ce que fait Luma, sa place dans la gamme de modèles Luma AI, et pourquoi les équipes l’adoptent.
Luma est un modèle de génération vidéo proposé par Luma AI, disponible via l’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 famille Luma sur WaveSpeedAI propose 6 points d’accès REST couvrant les workflows Video-To-Video, Image-To-Video, Text-To-Video, Image-To-Image, Text-To-Image. Chaque variante a ses propres tarifs, paramètres et exemples de résultats — choisissez celle qui correspond à votre type d’entrée et à vos contraintes de production, ou appelez-en plusieurs avec la même clé API pour composer des pipelines en plusieurs étapes.
Exécutez Luma avec la même clé API, le même compte de facturation et les mêmes limites de débit que pour les plus de 1 000 autres modèles IA de WaveSpeedAI. Pas de configuration fournisseur distincte, pas de SDK par fournisseur, pas de limites de débit par fournisseur — une seule intégration couvre tout, du texte vers image et du texte vers vidéo à la synthèse audio, la génération 3D, l’agrandissement et l’édition.
Points d’accès
Tous les points d’accès de l’API Luma
6 points d’accès Luma disponibles dès maintenant sur WaveSpeedAI — choisissez la variante qui correspond à votre workflow.
/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.
Exemples
Luma en action
De vrais résultats générés par l’API Luma. Survolez une vidéo pour la prévisualiser, cliquez pour ouvrir la visionneuse en taille réelle.
Mode d’emploi
Comment utiliser l’API Luma
Quatre étapes de l’inscription à une génération terminée. Des exemples complets en Python, Node.js et cURL se trouvent dans la section API ci-dessous.
- 01
Obtenez une clé API
Créez un compte WaveSpeedAI et copiez votre clé API depuis le tableau de bord. Les nouveaux comptes reçoivent des crédits de démarrage gratuits — de quoi utiliser le playground quelques dizaines de fois avant le début de la facturation.
- 02
Soumettez une prédiction
Envoyez votre entrée en JSON par POST à https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video. Le point d’accès renvoie immédiatement un identifiant de prédiction — les générations sont asynchrones, vous ne gardez donc pas de connexion ouverte pendant l’inférence.
- 03
Interrogez jusqu’à la fin
GET https://api.wavespeed.ai/api/v3/predictions/{request_id}/result. Retournez les outputs sur completed ; arrêtez avec une erreur sur failed, cancelled, timeout ou deleted ; continuez d’interroger pour tout autre statut.
- 04
Lisez l’URL du résultat
Une fois le statut "completed", lisez l’URL dans data.outputs[0]. Elle pointe vers votre média généré sur le CDN de WaveSpeedAI — fichier image, vidéo, audio ou 3D selon la variante Luma appelée.
Cas d’usage
Ce que vous pouvez créer avec Luma
Les workflows courants pour lesquels développeurs et créateurs utilisent 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.
Conseils
Conseils pour rédiger vos prompts avec Luma
Des conseils pratiques pour obtenir de meilleurs résultats avec Luma — tirés des pratiques qui fonctionnent sur les modèles vidéo dans les pipelines de production.
- 01
Soyez précis sur les mouvements de caméra
Mentionnez un vocabulaire cinématographique concret — orbit, dolly-in, push-in, pan-left, crane shot, handheld follow. Les prompts génériques produisent des choix de caméra statiques ou arbitraires ; les mouvements de caméra nommés correspondent directement à l'intention de mouvement dans les données d'entraînement du modèle et améliorent considérablement la qualité du plan.
- 02
Ancrez l'identité du personnage avec des images de référence
Si votre prompt repose sur une personne, un personnage ou un produit précis, importez une image de référence avec le prompt. Sans référence, l'identité dérive d'une frame à l'autre et d'un plan à l'autre — le même personnage finit par ressembler à une personne légèrement différente à chaque génération.
- 03
Décrivez l'éclairage et le moment de la journée
Des indications d'éclairage comme 'golden hour, soft warm directional light' ou 'overcast diffused light, slate-grey sky' améliorent la qualité et la cohérence bien plus que des modificateurs de qualité vagues. L'éclairage est l'un des a priori les plus forts sur lesquels le modèle se conditionne.
- 04
Utilisez des prompts négatifs pour écarter les défauts courants
Négatifs utiles pour la vidéo : 'frame flicker, motion blur, watermark, text artifacts, distorted hands, low resolution, jpeg compression'. Les prompts négatifs ne coûtent rien et réduisent sensiblement le nombre de générations que vous devriez sinon relancer.
- 05
Choisissez la durée la plus courte qui capture votre moment
La plupart des prompts fonctionnent mieux sur 5 à 8 secondes. Les clips plus longs amplifient les incohérences temporelles (métamorphose du sujet, dérive de l'environnement). Si vous avez besoin d'une séquence de 20 secondes, générez trois clips de 6 à 8 secondes et montez-les ensemble — la qualité reste supérieure à celle d'une seule longue génération.
- 06
Adaptez dès le départ le format d'image à la plateforme
9:16 pour TikTok / Reels / Shorts, 16:9 pour les fils paysage et YouTube, 1:1 pour les grilles de publications. Les modèles s'entraînent légèrement différemment selon le format — recadrer un 16:9 en 9:16 après coup fait perdre à la fois la fidélité et la composition voulue par le modèle.
Tarifs
Tarifs de l’API Luma
La tarification se fait par résultat. Le montant final dépend des paramètres définis dans le playground de chaque variante (résolution, durée, nombre de résultats, références).
| Point d’accès | Type | Prix de départ |
|---|---|---|
| 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
Appelez l’API Luma
Obtenez une clé API sur wavespeed.ai/accesskey, puis soumettez une prédiction via REST. Le playground génère des exemples prêts à copier pour toute combinaison d’entrées.
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)Comparer
Luma face aux alternatives
Quand choisir Luma plutôt que des modèles similaires sur 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 — Questions fréquentes
Tarifs, licence, intégration — les questions courantes sur l’utilisation de Luma sur WaveSpeedAI.
Qu’est-ce que l’API Luma ?
Luma est un modèle Luma AI de génération vidéo exposé sous forme d’API REST sur 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. Vous pouvez l’appeler par programmation ou l’essayer depuis le playground indiqué ci-dessus.
Comment appeler l’API Luma ?
Créez un compte WaveSpeedAI, copiez votre clé API depuis /accesskey, puis envoyez votre entrée en JSON par POST à https://api.wavespeed.ai/api/v3/luma/ray-3.2/text-to-video. Le point d’accès renvoie un identifiant de prédiction. Interrogez le point d’accès de résultat environ toutes les 2 secondes, augmentez l’intervalle pour les tâches longues et arrêtez-vous à tout statut final. Des exemples Python / Node.js / cURL orientés production figurent ci-dessus.
Combien coûte l’API Luma ?
Luma démarre à $0.042. Le coût exact dépend des paramètres définis (résolution, durée, nombre de résultats, références). L’estimation en direct à côté du bouton Générer dans le playground affiche le prix exact pour votre saisie actuelle.
Quelles variantes de Luma sont disponibles ?
WaveSpeedAI héberge 6 points d’accès Luma actifs : 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. Chaque variante a sa propre page playground et ses propres tarifs.
Puis-je utiliser commercialement les résultats de Luma ?
Les droits d’usage commercial suivent la licence du modèle Luma AI. La plupart des modèles Luma AI autorisent l’usage commercial des résultats ; consultez la page playground de chaque modèle pour le résumé de sa licence, et les Conditions d’utilisation de WaveSpeedAI pour les conditions au niveau de la plateforme.
Pourquoi utiliser Luma sur WaveSpeedAI plutôt qu’en direct ?
Une seule clé API et un seul compte de facturation pour Luma ET plus de 1 000 autres modèles IA d’autres fournisseurs. Pas de configuration de SDK par fournisseur, pas de limites de débit distinctes, pas de code d’intégration à réécrire pour chaque fournisseur. Les tarifs sont généralement au niveau de l’API directe de Luma AI, ou en dessous.
Commencez à créer avec Luma sur WaveSpeedAI
Crédits de démarrage gratuits à l’inscription. Une seule clé API pour plus de 1 000 modèles IA de Luma AI et de tous les autres fournisseurs.
/filters:quality(82)/examples/7090bb21305b0b99db644a0756b3a4ca/1783684141735187042_eUGQZ8ir.webp)