C’est lors d’un des nombreux échanges avec Laurie Zingaretti à ce sujet (la fonction de looping chez Luma/Dream Machine venait de sortir) que l’inspiration est arrivée.
M’est alors venue l’idée de créer cette petite chanson, qui dénoncerait gentiment cette course sans fond à laquelle on participe tous (avec plaisir, quand même !).
La chanson : les paroles avec ChatGPT
Comme chacun sait, je ne suis pas le plus grand des paroliers, aussi ai je mis ChatGPT à contribution. S’en est suivi une longue partie de ping-pong avec l’IA conversationnelle afin de créer les paroles de la chanson.
De base, le morceau devait être plus urbain, tourné vers le rap. Il était nécessaire aussi que les paroles soient assez évocatrices et imagées. Ainsi il serait plus facile de les traduire grâce à Midjourney. J’ai donc sculpté au fur et à mesure les résultats avec ChatGPT. Je l’ai renseigné avec divers textes et références en rap français. Je lui ai également fourni les techniques de rimes simples employées dans ces mêmes textes.
Petit à petit, les résultats sont devenus plus précis et je n’avais pas la prétention non plus de créer quelque chose de révolutionnaire. Il ne restait que quelques rimes que ChatGPT ne trouvait pas, aussi pour accélérer le process, je les ai mises en forme moi-même (l’humain doit toujours primer sur la machine !).
La création du morceau avec Suno
J’ai pris l’habitude de créer mes bandes-son avec Udio, je trouve que ça sonne bien moins « pop/club » par défaut qu’avec Suno lorsqu’il s’agit de créer des pistes sans paroles. N’ayant plus mis les pieds depuis un temps sur Suno, j’y suis retourné pour voir ce qu’il avait de nouveau dans le ventre. Je précise aussi que j’utilise les versions gratuites de chacune de ces solutions, essayant de ne pas multiplier les abonnements qui sont déjà une lourde charge supplémentaire à porter pour un indépendant.
Le choix d’utiliser Suno a été l’option gagnante, mais pas à la première écoute, loin de là ! Tout d’abord, les résultats donnés sonnaient extrêmement « club » dès le départ. J’avais envie de quelque chose de plus dramatique, mais rien n’y faisait : tout sonnait bien trop pop à mon goût malgré mes différentes variations de prompt. Ceci étant, vu que le travail avec l’IA est un éternel dialogue, j’ai décidé de changer mon fusil d’épaule et de mettre cette option à profit.
Les fichiers qui sortent de Suno (du moins en version gratuite) étant assez compressés, ne restait qu’à faire le mastering à la volée via l’IA lui aussi. Je n’ai pas poussé cette étape à fond, la vidéo ne sera lue quasiment que sur des téléphones et leurs haut-parleurs limités par la suite.
La création des images clés via Midjourney
Normalement pour garder un personnage récurrent, une des solutions idoines serait d’entraîner un LoRa avec une multitude d’images du même personnage. Ceci afin de pouvoir le générer et garder la même cohérence tout au long du process. Cependant, mon but ici était d’utiliser Midjourney, pour plus de facilité et de rapidité d’exécution.
Il s’agit d’un projet personnel, non destiné à un client, je ne m’étais donc donné que quelques jours pour le réaliser. Le cref sur Midjourney permet de générer des personnages gardant une certaine cohérence globale, mais pas des personnages strictement identiques.
Aussi, pour m’assurer que le personnage soit bien identifiable sur les futurs plans, j’ai opté pour la technique éprouvée de « l’influenceuse aux cheveux roses » (un clin d’œil à Aïtana ?). Une coupe de cheveux simple et une robe jaune : c’est facile à reconnaître, ça apporte des marqueurs forts afin de faire le relais visuel sur les différents plans.
Vu que le morceau puisait un peu de ses inspirations dans l’univers de Yelle, il me paraissait logique d’opter pour une palette de couleurs dérivée de celles employées par Étienne Bardelli (aka AKROE) à l’époque TTC.
Grâce aux paroles imagées, je peux générer les images clés et les disposer tout au long de ma timeline, bâtissant ainsi le squelette du futur clip.
L’animation avec Luma…
Les images clés étant posées, vient le moment de l’animation. C’est la plus grosse partie du process et également celle la plus chronophage. Comme je souhaitais ensuite utiliser Live Portrait pour réaliser l’animation labiale et donner un peu d’émotions au personnage, il était plus facile de garder au maximum des vues de face. Cette méthode offre aussi de bien meilleurs résultats dans l’enchaînement des plans créés avec Luma et dans les mouvements du personnage lorsqu’on le voit en pieds.
L’IA, comme toujours, ne se suffit pas à elle-même. Aussi il m’a été nécessaire d’utiliser Adobe After Effects pour réaliser certains plans, à base notamment de rotoscoping (lui aussi augmenté par l’IA) et de mouvements de caméra afin de rendre certains plans plus naturels.
… l’animation labiale et les expressions avec Live Portrait
Une fois les différents plans obtenus via Luma, restait à réaliser l’animation labiale. Ça m’a valu quelques sessions de « pseudo-chant » devant ma webcam, apprenant les paroles de la chanson d’un côté en les reportant de l’autre sur chaque séquence via Live Portrait. Comme avec n’importe quel outil IA, ce n’est pas du 100 % de réussite dès le premier coup. Il faut tâtonner, générer et générer encore, refaire les prises pour s’approcher au mieux d’un résultat acceptable. Ceci dit, l’implémentation de Live Portrait sur les vidéos générées via Luma est une première réponse au manque d’humanité des personnages. Reste qu’il faudra avoir à l’avenir quelques talents d’acteur !
Et l’unification des caractéristiques faciales avec Facefusion
Je l’ai précisé, le paramètre cref de Midjourney ne permet pas de créer de personnages identiques. Pas le temps nécessaire pour créer un LoRa de toutes pièces non plus. Aussi, j’ai opté pour le faceswapping vidéo via Facefusion. Cela me semblait être la solution la plus pratique afin de garder au mieux la cohérence des personnages tout en pouvant avancer plus rapidement dans le projet. Comme avec Live Portrait, des résultats ont été assez aléatoires dans certains cas (la génération vidéo fait que parfois, les traits d’un personnage diffèrent beaucoup entre l’image donnée en référence au départ). Il aura fallu quelques petits tweaks sur la timeline pour m’en sortir au mieux. Les résultats pouvant être largement perfectibles sur certains plans.
Le bilan de cette expérience
Une fois toutes ces séquences générées, il ne me restait plus qu’à monter tout ça dynamiquement sur Adobe Premiere… en prenant soin de caler les animations labiales avec les paroles de la chanson. D’une époque où le travail ne se cantonnait quasiment qu’à l’écosystème Adobe, s’inscrivant dans une quasi-hégémonie du mastodonte californien, nous sommes en train de passer à une époque multitâche, navigant entre les différentes micro-applications.
D’un process de travail qui pouvait être par le passé assez linéaire, on passe aujourd’hui à une gymnastique de la forme et du temps. Il s’agit de jongler entre les fenêtres de notre système d’exploitation et de notre navigateur, de s’adapter mentalement à l’état d’avancement des nombreuses générations en cours, de savoir traiter et classer la quantité d’infos qui nous arrivent en même temps, voire de faire de l’acting basique soi-même.
Et après ?
Travailler à l’aide de l’IA en général a encore un côté assez expérimental. Cependant la logique des process se précise de plus en plus, du moins concernant le futur proche. À chaque micro-application son éditeur dédié. Et l’abonnement qui va de pair. C’est certainement là que le bât blesse : si l’hégémonie d’Adobe nous rendait auparavant “prisonniers”, enchaînés au bon vouloir de l’avancée de leur (petites) mises à jour, tout avait le “mérite” d’être à peu près inclus dans l’abonnement.
L’IA est arrivée et a renversé la table, offrant un nombre fini de générations disponibles pour une poignée d’euros par mois. Qui s’ajoute à toutes les autres poignées liées aux micro-applications. Qui s’ajoute à la grosse poignée qu’est l’abonnement aux applications Adobe et ainsi de suite. M’est d’avis que la bulle finira par exploser un jour, mais c’est une toute autre histoire !
Antoine DUHAMEL