mieki256's diary



2023/05/23(火) [n年前の日記]

#1 [cg_tools] 画像生成AIで生成した画像をFILMとAviUtlで動かしてみる

画像生成AI Stable Diffusion web UI で生成した画像を動かしてみたい。

手順の流れとしては以下。
  1. Stable Diffusion web UIで、2枚の人物画像と背景画像を生成。
  2. フレーム補間ツール FILM で中間画像ファイル群を生成。
  3. 動画編集ソフト AviUtl で読み込んで再生速度にイージングをつけて動画にする。

とりあえず、成果物を先に出しとく。




左肩や髪のあたりがおかしいとか、瞬きをしてないから怖いとか、人間の動きじゃないとか、色々問題はあるだろうけど…。それでもまあ、AIが生成した画像を、(この程度の動きでも良いのであれば)一応動画にできるようではあるなと。

作業手順をメモしておく。ちなみに環境は以下。

元になる素材画像を用意する :

画像生成AI Stable Diffusion web UI を使って、似た感じの人物画像を2枚、加えて、背景画像を1枚、生成した。ちなみに、LoRAを使えば、人物の顔をある程度統一できそうな気はする。

src_1.png

src_2.png

src_bg.png

人物画像の背景を消去 :

画像生成AIが生成した人物画像は、人物部分はともかく、背景部分が全然違う。

このままだとフレーム補間で中間画像を作った際におかしなことになるので、人物の背景を消去して透過部分にしてしまって、別の背景画像を合成してしまうことにした。

Stable Diffusion web UI には、人物画像の背景部分を消去してくれる拡張機能がいくつか存在している。今回は、sd_katanuki という拡張機能を利用させてもらった。ありがたや。

_GitHub - aka7774/sd_katanuki: Anime Image Background Remover for AUTOMATIC1111
_【sd_katanuki】画像の背景を一括で透明化や白背景化してくれる拡張機能の紹介!【Stable Diffusion】 | 悠々ログ

人物の背景部分がある程度消去できた。

rgba_1.png

rgba_2.png

フリンジが残っていたり、髪の毛のあたりがちょっとアレなのが気になるし、処理時間は若干かかるというか、待たされている感じはあるのだけど、それでも、手作業での切り抜き作業と比べたら、圧倒的に早く目的を果たせる感じはする。

切り抜いた人物画像に対して、GIMP 2.10.34 Portable を使って、背景画像を合成。以下のような感じになった。

1.png

2.png


このぐらいの画像になってくれれば、フレーム補間ツールもそれなりに処理をしてくれるだろう…。

FILMで中間画像を生成 :

Googleが開発したフレーム補間ツール、FILM を使って、2枚の画像から中間画像を生成した。全部で65枚の画像が得られた。

0000.png - 0064.png にリネームして、連番画像にしておく。

FILMの導入の仕方、使い方については、 _昨日の日記メモ が参考になるかもしれない。

AviUtl+拡張編集プラグインで連番画像を読み込み :

出来上がった連番画像を、動画編集ソフト AviUtl + 拡張編集プラグインを使って動画にしていく。読み込んだ動画(連番画像)に対して、再生速度にイージングを適用していくことで、多少はそれっぽい動きになってくれることを期待する。

ここから先は、自分も作業手順を忘れそうなので、スクリーンショットを貼ってメモしていく…。3日後には忘れてそう…。

まずはプロジェクトを新規作成。拡張編集ウインドウの上で右クリック。「新規プロジェクトの作成」を選択。

aviutl_ss01.png


元になる連番画像のサイズに合わせて、512x512、24fpsにしておく。

aviutl_ss02.png


連番画像を動画として読み込む。右クリック → メディアオブジェクトの追加 → 動画ファイル。

aviutl_ss03.png


動画ファイルオブジェクトのプロパティウインドウが開くので、「参照ファイル」をクリック。

aviutl_ss04.png


連番画像の一番最初のファイルを選択して「開く」。

aviutl_ss05.png


これで、連番画像を読み込んで、動画ファイルとして配置することができた。

aviutl_ss06.png

ループ動画にするために動画ファイルを複製 :

1 → 2 → 1 と再生されるようなループ動画を作ってみたいので、読み込んだ動画(連番画像)をコピペで増やして配置する。

aviutl_ss07.png

aviutl_ss08.png

aviutl_ss09.png

動画を早送り、逆再生 :

前半の動画、1 → 2 に相当する部分は、若干早送りで再生して尺を短くしたい。動画ファイルのプロパティウインドウで、再生速度を、100 から 150 に変更。これで、元の動画の150%の速度で再生されて、尺はその分短くなる。

aviutl_ss10.png

例えばこの値を200にすれば倍速再生になるし、50にすれば1/2の速度でスロー再生される、らしい。


後半部分は、2 → 1 と再生されるようにしたいので、逆再生を指定する。再生速度にマイナス値を設定すると逆再生になってくれる。

aviutl_ss11.png

再生速度にイージングをかける :

このまま再生すると、フレーム補間で作った中間画像がリニア(線形)で再生されて、機械的な動きになってしまう。イージングと呼ばれる加速/減速をつけてやることで、多少は自然な動きになるようにしたい。

再生速度、というか再生位置を調整するオブジェクトとして、「時間制御」というオブジェクトがあるらしいので、ソレを追加する。右クリック → メディアオブジェクトの追加 → 時間制御。

aviutl_ss12.png


AviUtl でイージングを実現するスクリプトは色々あるようだけど、今回は、「イージングスクリプト トラックバー対応版」を利用させてもらうことにした。

_AviUtl イージングの悩みをあっさり解決。導入から使い方・2020年版まで初心者でもわかる。 - Aviutl簡単使い方入門|すんなりわかる動画編集
_AviUtlで必須のスクリプト、イージング(トラックバー版) - FLAPPER

もっと細かくタイミングを指定をしたい場合は、グラフを描画して調整していくタイプのプラグインやスクリプトを利用することになるのだと思う。

_AviUtl、イージングをウィンドウ上で編集するCurve Editor - FLAPPER
_GitHub - mimaraka/aviutl-plugin-curve_editor: Curve Editor - 様々なイージングをウィンドウ上で編集
_AviUtlのイージングをカスタマイズ、マルチベジェ軌道 - FLAPPER


時間制御オブジェクトのプロパティウインドウ上で、「位置」をクリックして、easing_normal@uf_easing を選択。

aviutl_ss13.png


イージングの種類を指定しないといけない。「位置」をクリックして、「設定」を選ぶ。

aviutl_ss14.png


表示された「移動フレーム間隔」というウインドウ上で、イージングの種類番号を入力してEnter。

aviutl_ss15.png


イージング種類は、イージングスクリプトに同梱されている画像を参考にする。一応引用しておきます。

easing.png

終了フレームを指定 :

動画の終了フレームを指定。最後のフレームを表示した状態にしてから、右クリック → 範囲設定 → 現在位置を最終フレーム。

aviutl_ss16.png


これで、再生速度にイージングをつけた状態の動画を作成することができた。

後は、連番画像として保存してからffmpegでmp4動画にしてもいいし、いきなり mp4 で出力できるプラグインを導入してもいい。

_AviUtlの連番画像の読み込みと出力のやり方を初心者にもわかりやすく解説 - Aviutl簡単使い方入門|すんなりわかる動画編集
_AviUtl 物置 - JPN takeshima
_GitHub - rigaya/x264guiEx: 拡張 x264 出力(GUI) Ex

イージングの有無を比較 :

念のため、リニア(線形、直線的)な再生速度のまま出力した動画と、イージングをつけた動画を並べておく。






個人的にはイージングがついてるほうが良いと思うのだけど…どうだろうか…。

余談。コマを抜いたり増やしたりしたい :

もっと細かく、コマ(フレーム)を抜いたり増やしたりしてタイミング調整をしたいのだけど、そういう作業が向いている動画編集ソフトはないのだろうか…。それはもう、動画編集ではなく、アニメ制作ソフトのジャンルになってしまいそうな気もするけど…。

連番画像を読み込んで、このコマは使う、このコマは使わない、とチェックを入れて編集する、みたいな…。後から何度も、各コマの有効無効を切り替えて調整するだろうから、一般的な動画編集ソフトの、コマをズバッと削除して作業するソレとはちょっと違うソフトになりそうな気がする。ソフトには、そのコマが読み込まれているし、ずっと保持されているけど、プレビュー再生時は無効のコマをスキップして再生するだけ、みたいな…。まあ、需要が無いか…。

以上です。

過去ログ表示

Prev - 2023/05 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project