当サイトにはアフィリエイト広告が含まれます。なおレビューは私の感想を書いており、内容を指示するご依頼はお断りしています

【無料で出来る】機械学習の力でイラストや写真を線画に変換する方法【Python】

https://github.com/Mukosame/Anime2Sketch/blob/master/figures/gradiodemo.png?raw=true

今回は、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
」に出力先のディレクトリパス
と置換すれば、写真やイラストなどの画像ファイルが、簡単に線画に変換できます。