【Stable Diffusion】パンク風の画像を生成する

【Stable Diffusion】Inkpunk Diffusionの利用 機械学習

「Inkpunk Diffusionの利用方法がわからない・・・」
「Stable Diffusionでカラフルなパンク風画像を生成したい」

このような場合には、この記事の内容が参考になります。
この記事では、Inkpunk DiffusionをDiffusersで利用する方法を解説しています。

本記事の内容

  • Inkpunk Diffusionとは?
  • Inkpunk Diffusionの利用方法
  • Inkpunk Diffusionの動作検証

それでは、上記に沿って解説していきます。

Inkpunk Diffusionとは?

Inkpunk Diffusionとは、ファインチューニングされたStable Diffusionの学習済みモデルになります。
モデルの開発者によると、以下から影響を受けているようです。

  • Gorillaz(バンド)
  • FLCL(漫画)
  • Yoji Shinkawa(新川洋司)

これらに関連する画像をもとに学習を繰り返したのでしょう。
学習の際には、DreamBoothが用いられているようです。

公式ページでは、次の画像が作成例として公開されています。

確かに、メタルギアソリッドのような感じもします。
新川氏は、以前にコナミでスネークを描いていたようです。

また、キャラクター以外の画像も公式で公開されています。

これらを見ると、新川氏の画風にGorillazとFLCLの色使いをミックスしている印象です。
画風と色使い(配色)の組み合わせ次第で、可能性は広がりますね。

以上、Inkpunk Diffusionについて説明しました。
次は、Inkpunk Diffusionの利用方法を説明します。

Inkpunk Diffusionの利用方法

Stable Diffusionを動かせる環境が、必要です。
Google Colabではなくローカル環境で動かす場合は、次の記事が参考になります。

Stable Diffusionが動くなら、公式に載っているコードでInkpunk Diffusionを利用できます。

from diffusers import StableDiffusionPipeline
import torch

model_id = "Envvi/Inkpunk-Diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")

prompt = "nvinkpunk, a girl"
image = pipe(prompt).images[0]

image.save("./test.png")

ポイントは、「nvinkpunk」をプロンプトに含むことです。
それ以外は、普通にStable Diffusionを利用するのと変わりません。

また、GPUに余裕があれば、「float16」を「float32」に変更してもよいでしょう。

初めてInkpunk Diffusionを利用する場合は、モデルのダウンロードが始まります。
そのファイル容量は、全部で5.1GBほどです。

上記コードを実行すると、test.pngが作成されます。

test.png

以上、Inkpunk Diffusionの利用方法を説明しました。
次は、Inkpunk Diffusionの動作検証を説明します。

Inkpunk Diffusionの動作検証

Inkpunk Diffusionの動作検証として、検証した結果を載せるつもりでした。
しかし、Inkpunk Diffusionはそれ以前の問題として動かない可能性が多いにあります。

Inkpunk Diffusionを試すと、次のようなエラーが出ていませんか?

AttributeError: module transformers has no attribute CLIPImageProcessor

このエラーが出る原因は、次の記述にあります。

この記述は、特徴抽出に関する設定ファイルで確認できます。

他のモデルの場合は、次のように「image_processor_type」項目自体が記載されていません。

「image_processor_type」が気になる方は、各自で調べてみてください。
ここでは、エラーの解決方法を記載しておきます。

その解決方法とは、Transformersのバージョンを4.25.0以降にすることです。
Transformersについては、次の記事で説明しています。

現時点(2022年12月初旬)では、4.24.0が最新バージョンとなっています。

これが早くバージョンアップすれば、問題は簡単に解決します。
とりあえず、現時点ではGitHubから開発中の最新バージョンをインストールしましょう。

GitHubからインストールするには、次のコマンドを実行します。

 pip install git+https://github.com/huggingface/transformers.git

これにより、エラーが解消されます。
そして、Inkpunk Diffusionで画像を生成できるはずです。

タイトルとURLをコピーしました