こんにちは、海行です。

先日、スタジオジブリでも使われていたToonzというアニメ制作ソフトがOpenToonzとなってオープンソースで無償公開されました。

参考リンク:
ジブリも使うアニメ制作ソフト「Toonz」オープンソースで無償公開 現場の声を研究に活用

このソフト自体にも興味がありますが、搭載されたというドワンゴ製の人工知能を使った画風変換プラグインというものが気になります。
とりあえず試してみようとしましたが、試すまでに物凄くハードルが高くて大変でした。
他の方が試す際に助けになるように、レポートしたいと思います。

インストール環境


私の環境はWindows10 64bitなので、この環境を前提に説明していきます。

OpenToonzのインストール


↓こちらがOpenToonzの公式ページです。

OpenToonz

下の方にダウンロードの項目があります。
「OpenToonz」「GTS」「エフェクト」と3つの項目がありますが、とりあえずOpenToonzだけダウンロードしてインストールします。

エフェクトプラグインのインストール


OpenToonz本体にはドワンゴ製エフェクトプラグインは含まれていないので、導入します。

先ほどのダウンロード項目からエフェクトをクリックすると、いきなりGitHubのリポジトリに飛びます。
下の方のREADME.mdに英語でインストール方法の説明が書いてますが、「日本語」というリンクから日本語の説明に飛べます。

説明の中に、プラグインダウンロードリンクがあるので、そちらからダウンロードして解凍して、説明に従ってpluginファイルをC:\OpenToonz 1.0 stuff\pluginsにコピーします。

さらに、OpenCV3.1.0の導入が必要との事なので、OpenCVをダウンロードして、私はCの直下に解凍しました。
opencv\build\x64\vc12\binにあるopencv_world310.dllなどをOpenToonz_1.0.exeがあるフォルダにコピーする必要があるとのことですが、私の場合は環境変数のPathにopencv\build\x64\vc12\binを追加しました。

エフェクトプラグインの実行


さて、エフェクトプラグインの導入が終わったのでOpenToonzを起動してプラグインを試してみましょう。
しかし、初めて目にしたOpenToonzのインターフェースは意味不明でどうやったらプラグインを試せるのか色々触りまくって調べる羽目になりました。
相当わかりにくいので画像を入れて解説したいと思います。

説明1

何はともあれ画像がないとエフェクトのかけようがないと思ったので、「シーン」という画面に適当な画像をドロップしてみました。
ドロップするたびにシーンの下にCol1、Col2という感じで画像が追加されてってるようです。

説明2

で、エフェクトをかける画面はどれだ!?
メニューバーのウインドウ→その他のウインドウ→スキマティックを選ぶと「ステージ・スキマティック」という画面が出てきます。
ステージ・スキマティックの一番右下のボタンを押すと「エフェクト・スキマティック」という画面に変わります。
ここから画像にエフェクトをかける事ができます。

説明3

エフェクト・スキマティックはノードエディタっぽい感じになってます。
エフェクトのノードを追加するためにエフェクト・スキマティック画面上で右クリックして「エフェクトを追加」でエフェクトを選択します。今回はPlugins→DWANGO→Kaleidoscopeを選んでみました。

説明4

エフェクトのノードが表示されたら、Col1、Col2などの画像のノードからエフェクトノードにドラッグして線をつなぎます。
エフェクトのノードをダブルクリックするとエフェクトのパラメータ設定画面が表示されてパラメータ調整できます。
エフェクトのノードを右クリックして「プレビュー」を選択することでエフェクト実行結果を確認できます。

NeuralStyleプラグインのインストール


プラグインのテストもできたところで、肝心の人工知能プラグインを試すぞ!
と思いきや、それらしいエフェクトは見当たりません。

どうやら人工知能プラグインは先ほどのプラグイン集のzipには含まれていないようです。
人工知能プラグインについての説明はこちらにありました。

Windowsへのインストールへの説明が書かれていますが、要するにChainerの実行環境とopenoptとcvxoptが必要だそうです。
いきなり難易度が上がってますが、開発者でなければ普通の人は導入は難しい気がします。

とりあえず説明に従ってインストールを行いますが、そもそものpluginファイルが配布されていない事に気付きます。
つまりこのプラグインを自前でビルドする必要があるという事です。
これはなかなか難関です。

NeuralStyleプラグインのビルド


プラグインのビルド方法についてはこちらに「サンプルのビルド方法」が書かれてます。
Cmakeが必要だという事なので、ダウンロードしてインストールします。

私はビルドにはVisual Studio 2015を使いましたが、Visual Studio 2015はデフォルトではVisualC++が入ってないのでまだ入れてない人は入れておいてください。

参考リンク:
C++/Visual Studio 2015 試用記

人工知能プラグインのリポジトリをクローンしてきて、私はCの直下におきました。
(日本語パスが含まれてるとCmakeの動作に悪影響があるらしいので)

私は自分で四苦八苦して知ったのですが、NeuralStyleプラグインをビルドするにはOpenCVのビルドも必要になるようです。

という訳でOpenCVを先にビルドします。
すでにOpenCV3.1.0は前述の通りインストールされているとします。
CMakeのGUIを起動して、「Where is the source code:」にC:\opencv\sourcesを、「Where to build the binaries:」にC:\opencv\buildを指定して、「Configure」を押します。
「Specify the generator for this project」は、私は「Visual Studio 14 2015 Win64」を選択しました。
(OpenToonzは64bitプラグインしか受け付けないようです)
そのまま「Generate」できればそれでいいのですが、私の場合はWITH_CUDAのチェックを外さないと上手くいきませんでした。

Generateに成功したらC:\opencv\buildにVisualStudio用のプロジェクトファイルが生成されてるので、開いてビルドします。
ビルドに成功すればOpenCVの準備はOKです。

続いて、本番のNeuralStyleプラグインをビルドします。
CMakeのGUIを起動して、「Where is the source code:」と「Where to build the binaries:」にC:\OpenToonz_neural_style_pluginを指定して、「Configure」を押します。
「Specify the generator for this project」は今回も「Visual Studio 14 2015 Win64」を選択しました。
OpenCV_DIRを指定しろ!と怒られるので、OpenCV_DIRをC:/opencv/buildに設定してもう一度「Configure」して上手くいけば「Generate」します。
後はやっぱりVisualStudioを開いてビルドして、成功すればC:\OpenToonz_neural_style_plugin\bin\Debugに「DWANGO_NeuralStyle.plugin」ができてます。

NeuralStyleプラグインの実行


プラグインのビルドが成功して、説明に従ってインストールも行ったら、いよいよ実行してみます。

その前に、ビルドしたOpenCVのdllファイルをOpenToonzのフォルダにコピーする必要があります。
C:\opencv\build\bin\Debugの中にあるdllファイルを全てC:\Program Files\OpenToonz 1.0にコピーしてください。

さらに、どこにも書いてませんが、C\:の直下に「TEMP」というフォルダが無いとNeuralStyleプラグインの実行でこけるので、作っておいてください。

これでようやく準備完了です。

OpenToonzからNeuralStyleプラグインを呼んでみます。
NeuralStyleノードは入力が2つあるのでスタイルに使いたい画像と変換ターゲット画像を指定します。
ちなみに何だかわかりませんがContentに入力した画像がスタイルに使われてStyleに入力した画像が変換ターゲットに使われるようです。

GPUを使いたい場合はパラメータのgpuを0にします。
イテレーションは10だとあまり効果が出ないので必要に応じて上げます。最大は1000です。
「プレビュー」を押すとプラグインの実行が始まります。
しばらく待って上手くいけば変換された画像がプレビューに表示されます。
お疲れ様でした。

説明5

それにしても、NeuralStyleプラグインのバイナリは何故プラグイン集に同梱されてないんでしょうか。
ビルドが上手くいかない人のために一応↓からビルドしたpluginファイル(windows 64bit向け)を配布します。

http://soysoftware.sakura.ne.jp/upload/other/DWANGO_NeuralStyle.zip

結局OpenCVもビルドしないといけないからあまり役に立たないかもしれませんが…

ちなみに注意しておきたい点として、OpenToonzのソフト終了時に、「編集を保存しますか?」というようなダイアログが出ますが、素直に従って保存して終了すると、二度とOpenToonzが起動しなくなる現象が頻発しました。
終了時の保存は今のところ行わない方がよさそうです。
もし起動しなくなったらC:\OpenToonz 1.0 stuffフォルダを削除か退避した上で再インストールする必要があるようです。

今後の展望


ただOpenToonzの機能を試したいだけだったのに相当苦労するハメになりましたが、それだけの価値はあったかもしれません。

私はこの人工知能プラグインというのは単なるchainer-goghのラップじゃないかと想像してましたが、chainer-goghで処理可能なサイズより大きな画像を処理できてますし、高速に動いている気がします。

もっといろいろ試してchainer-goghと比較したり、中のPythonプログラムを解析したりなど色々調べ甲斐がありそうです。