ComfyUIとWan2.1、ローカル環境AIで長編動画を生成しよう!①
ComfyUI+Wan2.1で長時間動画を作ろうとしたらOUT OF MEMORY(※メモリー不足の限界)のエラーが出てしまい、どうにもこうにも長時間動画が作れない状況でした。。。ナゼ。。
そこでいろいろ考えて、無限ループにして細かい動画を繋げようと、ChatGPT と相談。どうやら「ComfyUI は無限ループが作れないよ!」ということらしいです。。。
これはどうしようも無いのかな。と思いきや。
「pythonからなら無限ループ作ってAPIで呼び出せるよ!」と教えてくれましたた。。
ということで、ChatGPTに聞いたところ、ちょっと複雑ですが、なんとか出来そうなので試してみました。ちなみに、ワークフローのJSONをChatGPTに投げ込むとComfyUIのワークフロー解析などもしてくれるようです。
(もっと簡単にループ出来ないのですかね?)
ちなみに、ちょっと遊びすぎたので、最終的なループの自動化は次回の記事で。。。今回は長編動画を作る、基礎的なところまで💦
※下記は以前の、ComfyUIでWan2.1を動かす記事です。


長編動画作成のワークフローを準備
まず、動画用のノードが必要なので、以下の順に動画ノードを入手します。
StableMatrixの場合になりますが、「Extentions」のパズルのピースのマークから「ComfyUI Manager」「ComfyUI VideoHelperSuite」の拡張機能をインストールします。

拡張機能を入れます
そして、以前の記事の、ネコ動画から「img2video」のサンプルワークフローを用意します。
※以前の記事の、ネコ動画のサンプルは下記を参考に
以下がネコ動画のサンプルを呼び出した直後のワークフローです。

ここから、最後の2つのノードを消して入れ替えます

VideoHelperSuiteから「Select Images」と「Video Combine」、そして「Save Image」のノードを追加します。

ここで「Select Images」は indexes を -1 (最後のフレーム)にします。
また「Video Combine」は video/h264-mp4 を指定して mp4 を保存させるようにします。
※前回の記事ではmp4変換サイトで変換してましたが「Video Combine」で簡単にmp4に変換できました。。。

とりあえず、どこか適当なAIに画像を作ってもらって、これで1回流してみましょう!最後に動画最後のフレームが画像として保存されるようになります。手動でやるなら、その最後の画像をまた最初に入れればいいだけです。
まずは手動だけど。。。ひたすら繰り返せば。。。もう、これで長編動画が作れます!!!
そして、このワークフローを基に、自動化します!
とりあえず動画を結合してみる
自動化する前に出来栄えを見てみましょう。ここからはpython先生の登場になります。。。
動画結合ツールがある人は、何かツールで結合すれば良いかと思いますが
面倒なので python で結合します。
「いやいや、むしろpythonが面倒だろ!」
という人はツールでもOKです。もー何でもいいから動画を結合です💦
python、何でも出来ちゃうので便利ですよ!
pythonで結合する場合、以下の通り、moviepy をインストールします。
pip install moviepy下記、数行のコード実行で、video1.mp4 と video2.mp4 が結合されます。
ファイル名は適切なファイル名に変えてください。
数を増やすならclip3など、どんどん増やせばいいだけです。
from moviepy.editor import VideoFileClip, concatenate_videoclips
# 2つのMP4ファイルを読み込み
clip1 = VideoFileClip("video1.mp4")
clip2 = VideoFileClip("video2.mp4")
# 動画を結合
final_clip = concatenate_videoclips([clip1, clip2])
# 書き出し
final_clip.write_videofile("merged_video.mp4", codec="libx264")頭2秒でカットしたい場合は、下記のように記載すればOKです。
subclip で好きなタイミングで動画をカットできます(秒単位)
clip1 = VideoFileClip("video1.mp4").subclip(0, 2)
clip2 = VideoFileClip("video2.mp4").subclip(0, 2)試しに短めの再生時間で、2秒×6で12秒の動画にしてみました。
ちなみに、pythonの動画結合の処理時間は1~2秒で超早いです!
ちゃんと1本に繋がってますね!これで、2秒x6個、結合して=12秒です!
ただ。顔が徐々に変わってきて、最後は何か怖い。。。
最後の画像が表情とか曖昧だと次の動画の出来具合が悪いですね。。。
下記が2秒毎の最後の画像なのですが、無心で作業していたら3枚目が半分白目、4枚目から別人みたいになってしまい、どうやら白目からズレてきたようです。。

まずは、この方法で、いろいろ動画作成を試してみる
1回2秒は短すぎるので。。LENGTH = 65 で倍にしてみます。。。

She smiles and shows off a variety of cute expressions and poses for the gallery to see.
※撮影会をイメージ
4秒 x 3 = 12秒。アカン。。。また怖い人になった。。
もう1回目の終わりで口開けた時点でオワッタ感がありましたね。

ナンデ踊るのよ。。。プロンプトが良くないです。。
まだ動画のプロンプトは不慣れなので。。
崩壊するから、あまり激しく動かないでね。
She doesn't move around much, but she flashes a variety of cute smiles for the gallery.
4秒 x 4 = 16秒

手が動いて崩壊するかと思ったけど、少し良くなりましたね。
あー・・・我々には ChatGPT があるの忘れてました。彼に作らせましょう。。
The girl stays mostly still, only making small and cute gestures. She tilts her head slightly, blinks slowly, and smiles sweetly. Her body remains seated and stable. Her movements are subtle and adorable, expressing charm through facial gestures. A gentle breeze slightly moves her hair. The atmosphere is soft and warm.
軽く首を傾げ、ゆっくりと瞬きをし、優しく微笑む。体は座ったまま安定している。
動きは繊細で愛らしく、表情の表情で愛らしさを表現している。
そよ風が彼女の髪をかすかに揺らし、柔らかく温かい雰囲気が漂っている。
さすがChatGPTです。細かくプロンプトを書きます。

まぁ。一番マシかもしれないですね。。
「ゆっくりと瞬き」のプロンプトが良くないですねぇ
最後、目をつぶったので、それ以上はやめました。このパターンで行くと目を開けたときには高確率で別の人になるので。。。
あまり激しく動くと崩壊する
ChatGPTにプロンプトを作らせたほうが良い
ゆっくりまばたきは駄目
※最後に目を閉じていると、その後、作成される動画は別人になる
そもそも動画のプロンプトの書き方が画像生成と全然違うから勉強しないとですね。。。。
動物でも試してみる。。。
も。。もう1回。。。人物をやめて動物で試してみます。
アニメ、人物、動物、どれが綺麗に出来るか。
以下、元ネタで、何かの思い付きで生成されたネコです。

A realistic kitten stands on its hind legs and dances playfully. It waves its front paws, sways side to side, bounces lightly, and spins in a cute and clumsy way. The kitten moves energetically with smooth and rhythmic motions.
前足を振り、左右に揺れ、軽やかに跳ね、可愛らしくぎこちなく回転します。
子猫は滑らかでリズミカルな動きで、エネルギッシュに動きます。
踊らない!そして何故か看板が動く!
最後の画像がイマイチなので1回でやめました。。。

継続不可能
2足歩行で踊るイメージだったのですが。。。
アニメは。。。以前のを参考に。。
全自動にする(python+API)
全自動をする前に遊び過ぎました。。。
何か脱線したようなw
python+APIで、完全ローカル、全自動で連続動画生成も、実は裏で動きましたが。。。
見ての通りプロンプトが自分はまだ下手クソなのもあり「途中で化け物」になったり「生成時間が長い」ということもあり、ちょっとその前にイロイロ確認したかったのですが。。。
長い動画にしてしまうと、なかなか一貫性を保てないですねぇ
記事も長くなるので、ここからは次回にしたいと思います💦
今まで見てきたローカル動画生成の中では、質も生成時間も良く感じられ、詳しく調べれば更にイロイロできそうな予感です。
無料で使えて動画生成AIのプロンプトの練習にもなりますね
ただ。。。画像生成と比べてしまうと、やはり生成時間は長い!
(あたりまえ)

いいなと思ったら応援しよう!
よろしければサポートお願いします🙏いただいたサポートは更新の活動費に使わせていただきます!