技術

AnimeGAN2で実写ポートレートをアニメ化する!

Win10 RTX3070 Anaconda環境でStyleGAN3を動かせるようになったので、AnimeGAN2も動かしてみました。AnimeGANは実写の画像を宮崎駿風や新海誠風など様々なアニメ画像に高速変換することができます。

AnimeGAN2とStyleGAN3の環境構築の方法は次の記事を参照してください。どちらもPytorchが動く環境にすればOKです。

StyleGAN3環境構築 Win10 RTX3070 Anaconda2021年10月ぐらいにStyleGAN3がリリースされたので、早速遊んでみました。Windows10、RTX 3070、Anacondaで環境構築の手順をまとめておきます。...
執筆者

Win10 RTX3070 Anaconda環境でPytorchが動くようになったので、StyleGAN3だけでなく、手軽に実写をアニメ化できるGAN「AnimeGAN2」でも遊んでみました!

AnimeGANとは?

AnimeGANとは、TachibanaYoshinoさんが作成したGANで、実写の画像を学習した宮崎駿風や新海誠風など様々なスタイルへの変換を可能にするソフトウェアです。

https://github.com/TachibanaYoshino/AnimeGAN

CartoonGAN-TensorflowやAnime-Sketch-Coloring-with-Swish-Gated-Residual-UNetがベースになっており、Tensorflowが使われています。

AnimeGAN2ダウンロード

AnimeGAN2では、ノイズの低減、学習の安定化、生成器のパラメータ数低減などの改善がされています。私の環境ではTensorflowではなくPytorchで動かすため、次のgitから引っ張ってきます。

https://github.com/bryandlee/animegan2-pytorch

AnimeGAN2の動かし方

AnimeGAN2の環境は、以前StyleGAN3を動かすために構築したPytorch+CUDAで動かすことができます。環境構築は次の記事の方法を参照してください。

StyleGAN3環境構築 Win10 RTX3070 Anaconda2021年10月ぐらいにStyleGAN3がリリースされたので、早速遊んでみました。Windows10、RTX 3070、Anacondaで環境構築の手順をまとめておきます。...

AnimeGAN2の実行

Anacondaで作ったstyleganという環境をアクティブして、gitから落としてきたローカルフォルダにcdします。

フォルダ内のtest.pyをAnacondaのターミナルから実行してみます。

python test.py --input_dir [image_folder_path] --device [cpu/cuda]

–input_dirはデフォルトでは./samples/inputs内の画像を全て変換します。変換したい画像群を入れたフォルダのパスを指定します。

parser.add_argument(
        '--input_dir', 
        type=str, 
        default='./samples/inputs',
    )

–deviceはCPUとGPUのどちらで変換するかを決めます。

parser.add_argument(
        '--device',
        type=str,
        default='cuda:0',
    )

GPUの方が圧倒的に処理は早いのですが、すぐメモリーを使い果たしてしまいます。

どのアニメのテイストに変換するは–checkpointを追記します。

parser.add_argument(
        '--checkpoint',
        type=str,
        default='./weights/paprika.pt',
    )

デフォルトではpaprikaになっていますが、celeba_distill.pt/face_paint_512_v1.pt/face_paint_512_v2.pt/paprika.ptの4つの重みが用意されています。

では、結果を比較して見てみましょう。ロケで女性ポートレートを撮ってきたので、モデルさんの写真をAnimeGAN2で変換してみました。

AnimeGAN2のFace Portrait v1とFace Portrait v2で変換してみました。どちらもいい感じに実写からアニメ風に変換してくれてますね!

Face Portrait v1は手書きの水彩画のように輪郭や色が淡くなっていて柔らかいです。
Face Portrait v2はコントラストが高く、輪郭がはっきりシャープ、固めです。
どちらもキャラがあっていい感じですが、目の大きさや色などアニメ風にデフォルメされていることがAnimeGANならではってところです。顔認証バッチリ効いてますね。

他にも事前学習済みモデルの重みファイルがあって、L2 + VGG + GAN LossおよびCelebA-HQ画像を使用して、webtoonの顔モデルから抽出したceleba_distillと今敏風のpaprikaの2種類です。

今回はAnimeGAN2のtest.pyを動かして、Face Portrait v1とFace Portrait v2を試してみました。AnimeGAN2-Pytorchはtorch.hubが使えたり、python 3.6/tensorflow 1.15.0-gpuの元レポジトリから重量変換もできるようです。

以上、実写のポートレート写真から簡単にアニメ風に高速変換できるAnimeGAN2の使い方でした!