今回は次のよう動画を作る
他にも1枚絵だけの作例でギターもピクセル化してみた。
人魚の例は次のCGが連番で動画になっている物をAIに通した。
ギターの例は次の画像を使用した。
今回使用するのはStable Diffusion
のExtensionであるstable-diffusion-webui-pixelization
AUTOMATIC1111/stable-diffusion-webui-pixelization: stable-diffusion-webui-pixelization
こちらがピクセルアート(ドット絵)を生成するためのエクステンション。
使い方がとにかく簡単なのでサクっと解説する。
Extension
のタブInstall from URL
のタブhttps://github.com/AUTOMATIC1111/stable-diffusion-webui-pixelization
Install
ボタン再起動後Extras
タブへ行き
下部にEnable pixelization
が表示されていれば成功
Google Colab
でもインストールがうまくいくことを確認しているが、エクステンションのインストールは失敗するケースが時々あるので念のため書いておく。
\stable-diffusion-webui\extensions\
のフォルダへ移動し、ここで次のコマンドを入力する。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui-pixelization
あとは通常通りweb-UIを起動すれば入っているはず。
Stable Diffusion
だけならCPUで動かすオプションがあるのでNvidiaのグラフィックボードを持っていないユーザーでも画像生成はできる。
しかしながら、こちらのエクステンションはCPUで起動ができても(画像生成が可能でも)ドット絵化させようとするとエラーで止まってしまう。
Nvidiaのグラボを用意するかGoogle Colab
で使おう。
上でも解説したがExtra
タブから使用する。
まず1枚だけの絵を作る場合は、i2i
と同様に画像をドロップする。
画面下部までスクロールすると次のような設定項目がある。
Enable pixelization
:これをオンにすることでドット絵化モードがオンになるKeep resolution
:出力される絵のサイズが元絵と同じになる。オンにしないと非常に小さいサイズになるのでオン推奨。Pixel size
:ドット絵化するときの粗さ。大きくするほどモザイクっぽくなる。逆に小さすぎるとドット絵っぽくならないので適度に8-10ぐらいで調整が良い(?)その他のスライダはいじらなくて良い。
画像下部のGenerate
ボタンで生成開始する。
上のギターの例のようにPixel size
がデフォルトの4
だとピクセルが細かくなり、遠目に見ても変化が少ない。少し上げると良いかと思う。
アルゴリズム的にピクセル化しているというより、あくまでAIがリペイントしてドット化するという手順なのでどんな画像でも問題なくドット絵化できるかというとそうでもない。
私のケースでは元絵の情報量が少ないフレーム等に灰色のノイズっぽい色が乗ってしまうところがある。
変な色がでてしまったフレーム。
AI側の設定をかえたり、元絵のコントラストや背景を真っ白にする調整を入れても必ずこういう絵になってしまった。
AIのクセだと判断しているが、もしかすると元絵を作るときのコツがあるかもしれないので要研究。
この記事を書いているときに気づいたのだが、カメラの被写界深度がオンになったままだったので、こういったものを排除してよりアニメっぽい絵にして出力したほうが良いかもしれない。
上の例は1枚しか作成されない。
動画にしたい場合はバッチ処理を利用する。
まずは動画をpng
連番の動画で保存しておく。
Blender
の場合は初期設定でpng
書き出しになっておりctrl + F12
を押すと上のような連番で書き出される。
Batch from Directory
へ移動し、入力と出力のディレクトリを記述。
この画像はGoogle Colab
を使用した例。windowsの場合はc:\
のような始まりになるはず。
Google Colab
の場合、出力ディレクトリの最後の/
が入っていないと画像が出力されないことがあったので注意。
あとはGenerate
ボタンを押せばよい。
このエクステンションはコンソールにログが出ない(一部出るものもある)
出力が終わったかどうかはアウトプットフォルダを開いてすべての画像ファイルが生成されたかどうかを確認する。
私は動画の結合はDaVinci Resolve
が無料で簡単なので使用している。
こちらの使い方は詳しくは解説しないが、次に連番ファイルを動画として扱うメモを書いている。
【Stable Diffusion】AI絵をつなげてアニメーションを作る | 謎の技術研究部
連番ファイルをMedia
に突っ込んだときにひとまとまりの動画として扱われない場合、ファイル名の番号が特殊になっているとだめらしい(000-001.png
のような形式)
私は「勝手にファイルリナンバー」というツールがとても簡単に使えるので利用させていただいている。
こちらも使い方は簡単なので、リンク先の解説に従って0001.png
のように直すと良い。
DaVinci Resolve
はGif
形式の書き出しには対応していない。
一旦mp4
などのよくある形式に書き出してから次のサイトで変換するのが個人的に最も楽。
MP4 GIF 変換。オンライン フリー — Convertio
こちらのサイトで出力されるgif
がファイルサイズも丁度良く、設定も不要なのでおすすめ。
便利なので利用させていただいているが、サーバー側で元データを保管している可能性がある。
外部に漏れるとまずいようなデータはこの手のサイトでコンバートしないほうが良いだろう。
自己責任で。
AviUtil
でもGif
変換できるプラグインがあるのだが、動作が非常に重くデフォルトではかなりファイルサイズが大きいものが出てきてしまう。
細かい設定が面倒ではない玄人向け。
今回は文字多めの解説となった。
ドット絵化して遊びたい人はたくさんいると思うが、正直なところ私のように「動画にしたい」という需要は少ないと思う。
あまり詳しく解説はしていないが、なんとなく動画化のやり方がわからない人向けの参考になれば幸いだ。