今回は、Pythonプラグイン「Anime2Sketch」を使用して、イラストや写真などの画像データを簡単に線画にする方法について紹介していきます。
「Python」や「git」を使いますので、これらはあらかじめインストールしておいてください
「Anime2Sketch」をインストール
「Anime2Sketch」本体をダウンロード
github上にある「Anime2Sketch」をコマンドラインを使ってダウンロードします
$ git clone https://github.com/Mukosame/Anime2Sketch.git
「Anime2Sketch」に必要なプラグインをダウンロード
必要なプラグインをインストールします。なかなか重いので注意!
$ pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html $ pip install tqdm
「Anime2Sketch」に必要な学習データをダウンロード
次に、こちらのリンク「Anime2Sketch - Google ドライブ」から学習データ「netG.pth」をダウンロードします
ダウンロードした「netG.pth」は、「Anime2Sketch」のフォルダ「weights」に保存します
エラーの改修「data.py」のコードを書き換える
READMEに記載された手順では以上なのですが、このまま実行すると以下のようなエラーが発生します
$ python test.py --dataroot test_samples/madoka.jpg --load_size 512 --output_dir ./ 0%| | 0/1 [00:00<?, ?it/s]test 0%| | 0/1 [00:00<?, ?it/s] Traceback (most recent call last): File "C:\****\Anime2Sketch\test.py", line 48, in <module> save_image(aus_img, aus_path, aus_resize) File "C:\****\Anime2Sketch\data.py", line 96, in save_image image_pil = image_pil.resize(output_resize, bic) File "C:\****\AppData\Local\Programs\Python\Python39\lib\site-packages\PIL\Image.py", line 2037, in resize raise ValueError(ValueError: Unknown resampling filter (InterpolationMode.BICUBIC). Use Image.Resampling.NEAREST (0), Image.Resampling.LANCZOS (1), Image.Resampling.BILINEAR (2), Image.Resampling.BICUBIC (3), Image.Resampling.BOX (4) or Image.Resampling.HAMMING (5)
上記のエラーが発生するので、「Anime2Sketch/data.py」のコードを書き換えます
try: from torchvision.transforms import InterpolationMode bic = InterpolationMode.BICUBIC except ImportError: bic = Image.BICUBIC
↓↓↓ 以下のように書き換える ↓↓↓
# try: # from torchvision.transforms import InterpolationMode # bic = InterpolationMode.BICUBIC # except ImportError: bic = Image.BICUBIC
テスト実行
$ python test.py --dataroot test_samples/madoka.jpg --load_size 512 --output_dir ./
現在のディレクトリに「madoka.jpg」という線画のファイルが出来たらインストール完了です。
あとは
「--dataroot 」に元画像のファイルパス
「--output_dir 」に出力先のディレクトリパス
と置換すれば、写真やイラストなどの画像ファイルが、簡単に線画に変換できます。