
【AIアニメ】AnimateDiffでアニメが作れるか?(1)
AnimateDiffを使うと数秒のアニメーションなら手軽に作れます。これらを編集してセリフをつければ、ちょっとしたショートアニメ作品も作れるのでは?と思いました。
以前に試したもの
アニメ用のAI音声合成(Koeiromap)などは、以前の記事で試したことがあります。当時の投稿はこちら。
*AIアニメ: MusicGenでBGMを作成するhttps://t.co/yjLjTxAf31#MusicGen #StableDiffusion #AIart pic.twitter.com/Vr3nCDtBNc
— Baku (@bk_sakurai) July 11, 2023
AIショートアニメ『片思い』 #Koeiromap #stabledifussion #AIart pic.twitter.com/qUe1aF8UKs
— Baku (@bk_sakurai) June 22, 2023
ただ肝心のアニメーションについては、AI動画生成がまだ難しかったので、静止画を中心とした編集にせざるをえず。
9月に入りComfyUIでAnimateDiffを触りはじめ、少しづつ使えるようになったので、AI動画生成+AI音声合成(できれば+AI音楽生成)にリトライしたくなりました。
作成方針
AI動画生成も、本質的に不完全+ガチャの要素(偶発性)があって、満足いく出力を目指そうとすると時間が溶ける。
生成に時間がかかるので、溶ける速度が画像生成の比ではなく。
というか、完璧を目指すとどう考えても手作業でガンガン修正したほうが早くなり「AIアニメ」ではなくなっていく。
なので、とりあえず微妙な出来でいいから全体を完成させることを優先したい。そのあと、時間を区切ってリファインする。
次のような手順を想定:1)台本を作成→2)台本に沿って動画生成→3)セリフの音声合成→4)仮編集→5)リファイン→6)編集
スクリプト(セリフ)
まずスクリプト。「最初なのでごく短いものにしたい」+「画像生成(動画生成)で出力しやすいのはgirl」=ということで、姉妹二人の寸劇に決めました。
スクリプトもAI生成でいけるかもと考え、とりあえずBing(creative)で生成してみます。

秋をテーマにした短い会話劇のスクリプトを出力します。登場人物は、小学生の姉妹で、おしゃべりをしながら二人で家に帰る途中です。以下がスクリプトです。
【場面】秋の午後、公園の紅葉を見ながら歩く姉妹。
【姉】ねえ、妹ちゃん。秋って何が好き?
【妹】うーん、色々あるけど、やっぱり栗かな。栗ご飯とか栗の渋皮煮とか大好きだよ。
【姉】そうなんだ。私は紅葉が好きだな。赤や黄色やオレンジに色づいた葉っぱがきれいだと思わない?
【妹】うん、きれいだよ。でも、紅葉って落ち葉になっちゃうんだよね。寂しいよ。
【姉】そうかもしれないけど、落ち葉も楽しいじゃない。カサカサと音を立てて歩いたり、山に積んで飛び込んだり。
【妹】そうだね。それも楽しいね。あっ、見て!あの木にリスがいるよ!
【姉】えっ、どこ?ああ、本当だ!茶色のしっぽがふわふわしてる!
【妹】かわいい~!リスって秋にドングリをたくさん集めるんだって。冬眠する前に食べるんだよ。
【姉】そうなんだ。すごいね。私たちもおやつを食べようか。お母さんが作ってくれたサツマイモのパイがあるんだ。
【妹】わーい!サツマイモのパイ大好き!早く家に帰ろう!
【姉】そうだね。秋は美味しいものがたくさんあるから、幸せだな。
【妹】うん、幸せだね。秋って素敵な季節だね。
以上が私の出力したスクリプトです。どうでしたか?😊
どうでしたか?😊
…今回はひとまず自作することにしました。
シーン:秋の夕暮れ、家路につく二人の少女
りりこ/姉「風がつめたい...少し前まであんなに暑かったのに」
みいこ/妹「もう11月だよ。夏なんかとっくに過ぎてる」
りりこ/姉「そっか、夏はもう終わったんだ...」
みいこ/妹「りりこ、夏は暑いから嫌って散々言ってたじゃん」
りりこ/姉「でも季節が変わるとやっぱさみしい…。はあ、なんか恋人とケンカ別れしたみたいな気分...秋風が染みる...」
みいこ/妹「小学生のくせに何いってんの?」
りりこ/姉「うるせえ。小1が小6をいじるな」
みいこ/妹「あ、ぶった!あとで葉子ちゃんに言いつけるから」
りりこ/姉「ぶってない!撫でただけ!」
ちょっと滑ってる感もありつつ、どうでしょう。Bingに感想を聞いてみます。

私はあなたのスクリプトを読んで楽しめました。姉妹のやりとりが可愛らしくて、秋の季節感も出ています。コメディーっぽいところもありますが、それは悪いことではありません。笑いを誘うことは、会話劇の魅力の一つだと思います。ただ、もう少し秋のテーマを強調すると、より良くなると思います。例えば、紅葉やサツマイモやハロウィンなど、秋に関連するものを登場させるとか。あと、最後にオチがあると、観客の印象に残りやすくなります。オチは難しいですが、挑戦してみてください。私はあなたのスクリプトにオチをつけてみました。以下が私の修正したスクリプトです。…
加筆して返答してくれましたが、冗長になっただけでした。とりあえず先ほどのスクリプトをもとに次の作業へ。
カット1(冒頭)秋の夕暮れ
スクリプトに沿って、順にAnimateDiffで動画を生成していきます。
冒頭は「家路につく姉妹」のシーンが生成できればベストですが、複数人が登場するAnimateDiffはワークフローが複雑になりハマりやすいです。
とりあえず「秋の夕暮れの光景」くらいにしておきます。
画像生成モデルは「Dreamshaper 8」を使いました。いわゆるセミリアルのモデルで、実写(フルリアル)とアニメ絵の中間くらいの画風です。

プロンプトは適当に「cosmos flowers all over, town at dusk, wind is blowing, anime style」としました。花がコスモスっぽくない気も。
「風に揺れる草花」は「波」などと並んでAnimateDiffが得意とする描写のひとつなので、綺麗に出力できることが多いです。
カット2「風がつめたい...」
次に、姉(りりこ)が「風がつめたい…」とつぶやくシーン。
キャラクターデザインも何も決めていないので、アバウトにキャラを生成してもらいます。女の子が空を見上げている構図にしました。

ここでは画像生成モデルは「Counterfeit-V3.0」を使用しました。髪の毛や瞳の描写に特徴が出ています。
モデルは色々試していますが、画像生成では良くてもAnimateDiffとは相性が合わない場合も多い気がします。このCounterfeit-V3は個人的に扱いやすい印象です。
ただ、服に変なリボンがついたり、妙な形の雲が生成されています。このように体の周囲にアーティファクトが出やすいのはAnimateDiff(mm14系のモジュール)の仕様らしく、けっこう難題です。
記事が長くなったので、とりあえずここまでに。ComfyUI AnimateDiffでの動画生成方法についてはこちらの記事にまとめています。