Des visuels clés avec Wan 3.0 (2) — Boucle vidéo et transition vers le logo avec FLF2V

Dans (1), nous avons pris une seule photo de trophée comme première image et créé 10 teasers vidéo uniquement par le prompt. Dans (2), nous indiquons aussi la dernière image. On fixe le début et la fin, et on laisse le modèle créer ce qui se trouve entre les deux (FLF2V : First-Last-Frame to Video).
Nous avons réalisé trois choses : une boucle vidéo pouvant tourner en continu sur les écrans du lieu, une transition où le trophée se change en l'emblème du prix, et l'inverse, une ouverture. Pour finir, nous avons enchaîné les 3 vidéos en un teaser de 17 secondes.
Les conditions de cet article
| Modèle | wan3.0-video, 720p, 5 secondes |
| Entrée | La même photo de trophée que dans (1), et une image de l'emblème du prix sur fond blanc |
| Génération | 3 vidéos (boucle, de la photo à l'emblème, de l'emblème à la photo). 21 000 AP au total, 111 à 132 secondes par vidéo |
| Post-traitement | ffmpeg (assemblage, fondu enchaîné, remplacement du logo). Sans frais |
Appeler l'API
On transmet les images en base64 dans first_frame et last_frame. Le reste est identique à (1).
curl -X POST https://api.aicu.ai/v1/video/generate \
-H "Authorization: Bearer $AICU_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"wan3.0-video\",
\"first_frame\": \"$(base64 -i trophy.jpg)\",
\"last_frame\": \"$(base64 -i logo-frame.jpg)\",
\"prompt\": \"The crystal trophy glows brighter and dissolves into streams of golden light ...\",
\"resolution\": \"720p\",
\"seconds\": 5
}"
Avec l'id renvoyé, interrogez GET /v1/video/status/{id} toutes les 10 secondes ; une fois l'état completed atteint, récupérez le mp4 avec GET /v1/video/file/{id} (détails dans Video API).
Vous pouvez aussi télécharger un script qui regroupe en une seule étape l'envoi d'une vidéo et sa réception. Il ne dépend que de la bibliothèque standard et, par défaut, se contente d'estimer le coût : wan-flf2v.py
curl -O https://api.aicu.ai/docs/samples/wan-teaser/wan-flf2v.py
python3 wan-flf2v.py --first trophy.jpg --last logo-frame.jpg --out to-logo.mp4 \
--prompt "The crystal trophy glows brighter and dissolves into streams of golden light ..." --apply
Les deux images doivent avoir la même taille. Ici, elles font toutes deux 1671×941.
Exemple 1 : boucle vidéo
Transmettre la même image aux deux extrémités
On transmet la même photo au début et à la fin, et on écrit dans le prompt que « ça bouge, puis ça revient à l'état initial ».
The white cloth ripples gently in the breeze and golden caustic light drifts slowly across it,
then everything settles back to exactly where it began. A soft lens flare pulses once at the tip
of the trophy. Fixed camera.

La première et la dernière image sont presque identiques, et même en lecture répétée le raccord est à peine perceptible (la vidéo ci-dessus est en lecture en boucle).
Comparaison avec les méthodes par post-traitement seul
On peut aussi transformer une vidéo existante en boucle. Nous avons essayé avec la 03 de (1) (caméra fixe, éclat scintillant) et mesuré à quel point la première et la dernière image se ressemblent avec le PSNR (plus la valeur est élevée, plus elles se ressemblent).
| Méthode | Durée | PSNR du raccord | Usage adapté |
|---|---|---|---|
| Répéter telle quelle la 03 de (1) | 5 secondes | 13.2 dB | Saut nettement visible au raccord |
| Fondu enchaîné (superposer la dernière seconde au début) | 4 secondes | 31.9 dB | Mouvements sans forme définie, comme la lumière ou l'eau |
| Ping-pong (lecture puis lecture inversée) | 10 secondes | 35.5 dB | Mouvements lents. Ne convient pas aux mouvements dont l'inversion se remarque (eau qui coule, personne qui marche) |
| FLF2V (même image aux deux extrémités) | 5 secondes | 41.9 dB | Si vous créez une nouvelle vidéo, c'est la plus naturelle |
Le fondu enchaîné et le ping-pong se font avec ffmpeg.
# Fondu enchaîné : 1 à 5 s forment le corps, fondu vers 0 à 1 s pendant la dernière seconde (boucle de 4 secondes)
ffmpeg -i 03.mp4 -filter_complex "[0:v]split[a][b];[a]trim=1:5,setpts=PTS-STARTPTS[body];[b]trim=0:1,setpts=PTS-STARTPTS[head];[body][head]xfade=transition=fade:duration=1:offset=3,format=yuv420p[v]" -map "[v]" -an xfade-loop.mp4
# Ping-pong : enchaîner la lecture inversée après la lecture normale (10 secondes)
ffmpeg -i 03.mp4 -filter_complex "[0:v]split[f][r];[r]reverse[rv];[f][rv]concat=n=2:v=1[v]" -map "[v]" -an pingpong.mp4
| Fondu enchaîné | Ping-pong |
|---|---|
Utiliser la boucle vidéo
Retirez le son (le -an des commandes ffmpeg ci-dessus). Wan 3.0 ajoute du son même sans instruction (voir (1)), mais si l'image se raccorde, le son, lui, se coupe au raccord. Diffusez la musique séparément, côté lieu ou côté diffusion.
Pour l'utiliser en fond de page web, ajoutez muted afin de permettre la lecture automatique.
<video src="loop.mp4" autoplay muted loop playsinline></video>
Pour la livrer en version longue à un affichage dynamique ou à un écran, faites-en un seul mp4 répété sur la durée voulue.
# Répéter la boucle de 5 secondes 60 fois = un fichier de 5 minutes (sans réencodage)
ffmpeg -stream_loop 59 -i loop.mp4 -c copy loop-5min.mp4
Exemple 2 : transition vers le logo
La dernière image est le logo
Comme dernière image, nous avons transmis une image avec l'emblème du prix au centre d'un fond blanc.

Lorsque vous utilisez un logo, respectez les règles de son propriétaire. Pour l'emblème de l'International AI Creator Award, il y en avait trois : le placer sur fond blanc, ne modifier ni les couleurs ni les proportions, ne pas laisser l'IA en changer la forme.
The crystal trophy glows brighter and dissolves into streams of golden light. The light swirls
into two glowing orbits around a small figure, and the background fades to clean white as the
emblem settles at the center. The camera slowly pushes in.

Le trophée se dissout en filets de lumière qui se rassemblent en deux orbites pour former l'emblème. À un moment, pendant quelques images, l'emblème flotte en relief et projette une ombre, mais à la fin il retombe correctement sur l'image transmise.
Remplacer la dernière image par l'image d'origine
Même s'il retombe correctement, la dernière image générée n'est pas l'image d'origine elle-même. À gauche, la dernière image générée ; à droite, l'image d'origine transmise.

La forme est presque identique, mais le fond a pris une légère teinte crème et les couleurs sont un peu décalées (PSNR 37.7 dB). Comme la règle du logo est de « ne pas laisser l'IA en changer la forme », nous fondons vers l'image d'origine pendant les 0,5 dernière seconde, puis la figeons 2 secondes. Que l'emblème se déforme dans les images intermédiaires est acceptable comme effet de mise en scène, mais ce qui apparaît à la fin doit être l'image d'origine.
# Fondu vers l'image d'origine (mise au même 1280x720 que la vidéo) pendant les 0,5 dernière seconde des 5 s générées, puis arrêt sur image de 2 s
ffmpeg -i to-logo.mp4 -loop 1 -t 2.5 -framerate 24 -i logo-1280x720.png -filter_complex \
"[0:v]fps=24,format=yuv420p,setsar=1[a];[1:v]format=yuv420p,setsar=1[b];[a][b]xfade=transition=fade:duration=0.5:offset=4.5[v];[0:a]apad=pad_dur=2,afade=t=out:st=5:d=2[au]" \
-map "[v]" -map "[au]" -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest to-logo-final.mp4
Après remplacement, la dernière image atteint 42.1 dB par rapport à l'image d'origine (la différence restante est due à la compression mp4).
Exemple 3 : une ouverture qui commence par le logo
En inversant le début et la fin, on obtient une ouverture qui part de l'emblème pour arriver à la photo. Ici aussi, nous montrons d'abord l'image d'origine pendant 1 seconde, avant de fondre vers la vidéo générée.
The emblem on the white background breaks into soft golden light. The light spreads across the
frame like silk, forming waves of white cloth, green trees appear behind, and the light gathers
into a crystal trophy standing in the sunlight. The camera slowly pulls out.

Enchaîner les 3 vidéos en une seule
Les 3 vidéos réalisées jusqu'ici ont des images d'extrémité concordantes. La fin de l'ouverture, le début et la fin de la boucle, le début de la transition : c'est à chaque fois la même photo du trophée. Un simple fondu enchaîné de 0,3 seconde suffit donc à les relier sans raccord visible.
ffmpeg -i from-logo-final.mp4 -i loop.mp4 -i to-logo-final.mp4 -filter_complex \
"[0:v]fps=24,format=yuv420p,setsar=1[a];[1:v]fps=24,format=yuv420p,setsar=1[b];[2:v]fps=24,format=yuv420p,setsar=1[c];[a][b]xfade=transition=fade:duration=0.3:offset=5.7[ab];[ab][c]xfade=transition=fade:duration=0.3:offset=10.4[v]" \
-map "[v]" -an chain.mp4
Emblème → trophée → scintillement de la lumière → emblème : 17 secondes. Le son a été retiré ; on termine en ajoutant une musique. En répétant plusieurs fois la boucle du milieu, on peut aussi ajuster librement la durée.
En fixant la première et la dernière image, on peut assembler comme des pièces des vidéos créées séparément. C'est l'aspect le plus pratique de FLF2V.
Ce que nous avons appris
| Résultat | |
|---|---|
| Boucle | Transmettre la même image aux deux extrémités est le plus naturel (raccord à 41.9 dB). En post-traitement : ping-pong (35.5 dB) ou fondu enchaîné (31.9 dB) |
| Son de la boucle | Il se coupe au raccord, donc on le retire. La musique est diffusée séparément |
| Transition vers le logo | La dernière image retombe correctement, mais ce n'est pas l'image d'origine elle-même (37.7 dB). À la fin, on remplace par l'image d'origine |
| Assembler comme des pièces | Si les images d'extrémité concordent, un court fondu enchaîné suffit à les relier |
Récapitulatif des coûts
| 3 générations (720p, 5 secondes) | 7 000 AP × 3 = 21 000 AP (environ 2,10 $) |
| Post-traitement (ffmpeg) | 0 |
Même en ajoutant les 10 vidéos de (1) (77 000 AP), le total est de 98 000 AP (environ 9,80 $).
⭐︎ Les prix sont ceux en vigueur à la publication (12 novembre 2026). Les tarifs actuels peuvent être vérifiés dans Tarifs et avec GET /v1/models.
Articles liés
- Des visuels clés avec Wan 3.0 (1) — À partir d'une seule photo de trophée, 10 teasers avec le guide officiel de prompts
- Des visuels clés avec Wan 3.0 (3) — Du blanc au logo, à la photo, à la boucle, puis au blanc : enchaîner des FLF2V en une seule vidéo
- Video API — appel, première et dernière images, désignation de personnages
- Alibaba Cloud: Text-to-video / image-to-video prompt guide
Special Thanks to Alibaba Wan 3.0
