AIで動画を全自動、はできなかった。4つに分けたら回るようになった
AIで動画を作る、という話をよく見る。やってみると、1つのAIでは作れないと分かる。
理由は単純で、得意なものが違うからだ。文章を書くAIは絵を描けないし、絵を描くAIは動画をつなげないし、動画をつなぐ道具は台本を考えてくれない。
なので4つに分けた。分けたら回るようになった。1つでやろうとしていたのが間違いだった。
分けたのはこの4つだ。
① 台本・構成 … 文章のAI
② 画像 … 画像生成のAI
③ 音声 … 読み上げソフト
④ 合成 … ffmpeg
このうち①と④は同じAIに任せられる。ffmpeg のコマンドを書くのは文章の仕事だからだ。②だけがどうしても別になる。
Claude Code は画像を作れない
私はコードを書かせるのに Claude Code を使っている。ターミナルで動いて、ファイルを読み書きして、スクリプトを走らせてくれる。
ただし絵は出せない。画像を生成する機能そのものを持っていないので、どれだけ丁寧に頼んでも、作れないという返事が来るだけで終わる。
これは弱点というより、担当が違うという話だと思う。文章と手順とコードには強い。絵はそもそも仕事の範囲に入っていない。
なので画像は別のAIで作って、こちらに渡す形にしている。生成した画像をリポジトリに置いて、そこから読ませる。渡してしまえば、加工も配置も一括処理もできる。作れないのは生成の1点だけで、それ以外は全部できる。
LINEスタンプを作ったときも同じ流れだった。絵は画像生成のAIで出して、サイズ調整や背景の透過や文字入れは、こちらのスクリプトで一括処理した。分担がはっきりしていると、どちらも得意なところだけをやることになる。
画像でいちばんつまずくのは一貫性だった。動画にすると絵の枚数が増えて、1本で10枚も20枚も要る。
そこで問題になるのが、同じキャラや同じ雰囲気が保てないことだ。1枚ずつ頼むと、少しずつ変わる。別人になる。
対策は、最初に決めた1枚を基準にして、毎回それを添付することだった。「この絵で、別の場面」と頼む。文字は入れさせない。
これは絵に限らず、色や構図でも同じことが起きる。基準を1つ決めて、毎回渡す。それだけでかなり揃う。
音声と合成は、実はここが一番楽
読み上げは、無料のものがいくつもある。日本語なら VOICEVOX が使いやすい。台本を渡せば音声ファイルが出てくる。
合成は ffmpeg でやる。画像と音声を並べて動画にする道具で、コマンドで動く。
画像 + 音声 → 1シーン
シーンを並べる → 1本
字幕を焼き込む → 完成
ここが自動化しやすいのは、判断が要らないからだ。何秒表示するか、どの順番で並べるか、字幕をどこに出すか、そういったものは1回決めてしまえば、あとは同じ設定を使い回すだけで済む。
決まっていることは自動化できる。決まっていないことは自動化できない。この線引きが、そのまま「どこまでAIに任せるか」の線になる。
全自動にならないのは、選ぶところ
やってみて分かったのは、詰まるのが技術ではないことだった。
台本は出る。絵も出る。音声も出る。つなぐのも動く。それでも1本が完成しないのは、出てきたものの中からどれを使うかを途中で何度も決めないといけなくて、そこだけは誰も代わってくれないからだ。
出てきた台本のどれを使うか。20枚の絵のうちどれを採用するか。読み上げの速さは合っているか。ここは人が見るしかない。良いか悪いかを決めるのは、目的を持っている側の仕事だからだ。
全自動をうたうものは、この選ぶ部分を省いている。省くと、それなりのものが大量に出てくる。数を出すだけなら成立するが、見てもらうものにはならない。
量は出る。中身が残らない。
なので私は、選ぶ場所を減らす方向で考えている。全部を自動にするのではなく、選ぶ回数を1本あたり3回くらいまでに抑える。そうすれば続く。
いま組んでいる形
台本を書かせる(文章のAI)
↓ 選ぶ ①
場面ごとに絵を出す(画像のAI・基準画像を毎回添付)
↓ 選ぶ ②
台本を読み上げる(読み上げソフト)
↓
画像と音声を並べて動画にする(ffmpeg・スクリプト)
↓ 確認 ③
書き出す
選ぶのは3回。あとはコマンド1つだ。
ここまで来ると、1本あたりにかかるのは絵の生成待ちの時間がほとんどになる。作業そのものは短い。
まだ本数を出していないので、続けられるかどうかは分からない。回してみて、詰まったところをまた書く。