
【AI動画生成】ComfyUIでポカリスエットCM風の動画をつくる
生成AI用の画像/映像作成ツール「ComfyUI」とその拡張機能の「ComfyUI-AnimateDiff-Evolved」を使って、CM風のショート動画を作ってみたので、その時の反省メモです。
実写系の動画生成もちゃんと試しておこうと思い、一昔前のポカリスエットのCMのイメージで30秒程度の動画を作ってみました。
AI動画生成/ComfyUIでポカリスエットCM風の動画をつくってみるhttps://t.co/pULE5CAjI2#animatediff #aiart pic.twitter.com/JPd4RCUTRF
— Baku (@bk_sakurai) May 14, 2024
カット1:砂浜にとめた自転車
冒頭のカットは、自転車の写ったフリー画像をお借りして、ControlNetで線画を抽出。線画からオーソドックスに画像生成しました。ここではモデルにJuggernautを使っています。

これは止め絵でいい気もしましたが、一応動画化してみます。通常のEmpty Latentの代わりに元画像をInputに入れ、低denoiseでAnimateDiffの動画生成にかける疑似的なimage2videoをにかけました(モーションモジュールはAnimateLCM-t2vを使用)。

動きを大きくすると海面のアーティファクトが増殖してしまい、結果的に地味な絵に。左端のグリーン部分だけ切り取って動きをつければよかったのかもしれません。

カット2:走る/後ろ姿
VRoid StudioのモーションからCNでOpenpose/Depth/線画を抽出して、AnimateDiffのオーソドックスなvideo2videoワークフローで動画化します。


動画は512x288で生成したあと、Latent Upscaleとアップスケーラ(RealESRGAN)を使って2段階で720pに拡大しました。画像生成モデルはBeautiful Realistic Asiansに切り替えています。

VRoidキャラはアニメ風なので、実写にしてはスタイルが子供っぽい感じです。もう少しモデルをリアル寄りに調整しておくべきでした。
カット3:桟橋から海に飛び込む
前のカットと同じくvideo2videoを使います。長めの尺の生成も試したかったので「桟橋を走って海に飛び込む」というカットにしました。
今度はMixamoから走るモーションと跳ぶモーションをお借りして、Blender経由で元動画を用意しています。


このカットは固定アングルなので、背景とキャラクターはマスクを使って別々にAnimateDiffにかけComfyUI上で合成します。

被写体が小さい引きの構図では、普通の解像度でAnimateDiffにかけるとキャラのディティールが破綻しがちです。

こういう場合、Detailerのようにキャラクターだけを拡大して細かく修正するのが一般的だと思いますが、今回は被写体が大きく移動するためか、いまいちの出来でした。

Inpaintで影をつける時に歪んだこともあり、編集時にエフェクトを入れてエイヤーで誤魔化しました…。この辺りはもう少し丁寧に処理すれば改善できそうです。
カット4:水しぶき
飛び込んだ後の水しぶきをイメージしたカットです。適当な静止画を生成し、DynamiCrafterを使用してimage2videoにかけます。
DynamiCrafterはStable Video Diffusionと類似したimage2video専用の生成ツールです。ComfyUI上で使うためのカスタムノードも複数公開されています。

Stable Video Diffusionに比べると、より派手な動きの生成に向いている印象です。キャラクターなどは破綻しやすいかもしれません。
DynamiCrafterでは16フレームの動画しか作れないので、AnimateDiffでアップスケールを兼ねて尺を伸ばしました(同じ動画を2つ繋げてLatentに入れただけ)。

カット5:顔のクローズアップ
水面に浮かんだときの顔のアップをイメージしたカットです。手元にあった適当な画像をimage2imageにかけて日本人風に変換し、image2videoで動画化してみました。

このカットも、DynamiCrafterで生成後にAnimateDiffでアップスケールにかけています。このような寄りの絵は十分に綺麗に生成できそうです。

カット6:空に雲が流れる
青空のカットです(カット4-5と似たフローなので説明割愛)。この手の自然風景はAI生成の得意分野だと思いますが、動きを大きくすると不自然さが見えてきます。

カット7:バストショット
おしまいのカットです。適当な静止画を生成しInpaint/Outpaintで意図した構図に修正したうえで、image2videoで動画化しました。

同じくDynamiCrafterで動画化したところ表情が崩れてしまったのでAnimateDiffによるvideo2videoで強めに修正しました。IPAdapterは併用したものの、最終的に元画像とは別人に。

飛び込んだあとのカットという体裁なので髪も濡れた状態にしたかったのですが、このあたりは上手く再現できず。突っ込みどころが残りました。

BGM by Udio
動画のBGMとして最近話題になっていたUdioによるAI音楽生成を試してみました。pop rock, summer, highwayというプロンプトで4曲ほど生成。
かなり自然です。強いて言えば歌詞がちょっとはまってない感があるくらいでしょうか。求めていた「ありがちな洋楽」がちゃんと生成されます。