「 TrinArt Characters model v1の利用方法がわからない・・・」
「TrinArtキャラクターモデルの情報が少なくて困っている・・・」
このような場合には、この記事の内容が参考になります。
この記事では、TrinArtキャラクターモデルを使う方法を解説しています。
本記事の内容
- TrinArtキャラクターモデルとは?
- TrinArtキャラクターモデルの検証環境
- TrinArtキャラクターモデルの利用方法
それでは、上記に沿って解説していきます。
TrinArtキャラクターモデルとは?
TrinArtキャラクターモデルについては、中の人の意見を見てみましょう。
上記ツイートから、2つのモデルが存在することを確認できます。
- TrinArtで試験運転中の1920万枚訓練済のキャラクターモデル
- HuggingFaceにもアップロードしたとりんさまアートv2モデル
前者のキャラクターモデルが、ここで言うTrinArtキャラクターモデルになります。
TrinArtとは、次のページで提供されているサービスです。
TrinArt とりんさまアート
https://ai-novel.com/art.php
プレミアム登録は、もちろん有償になります。
つまり、TrinArtキャラクターモデルを無償で利用できませんでした。
それに対して、後者のとりんさまアートv2モデルが無料公開されていたという状況です。
naclbit/trinart_stable_diffusion_v2 · Hugging Face
https://huggingface.co/naclbit/trinart_stable_diffusion_v2
とりんさまアートv2モデルは、Stable Diffusionのモデルに4万枚の画像を追加で学習させたとのことです。
でも、1920万枚と4万枚では桁が全く異なりますね。
しかし、なんとその1920万を学習させたTrinArtキャラクターモデルがオープンソースになりました。
有償でしか利用できなかったTrinArtキャラクターモデルが、無料で利用できるようになったということです。
そのモデルの正式名称は、「Stable Diffusion TrinArt Characters model v1」になります。
以上、TrinArtキャラクターモデルについて説明しました。
次は、TrinArtキャラクターモデルの検証環境を説明します。
TrinArtキャラクターモデルの検証環境
Stable Diffusionを含むその周辺の動きは、早すぎます。
「関連ライブラリのバージョン違いで動かない」ということも普通にあり得るでしょう。
そのこともあり、今回TrinArtキャラクターモデルを検証した環境を記載しておきます。
システム要件としては、Stable Diffusionが動くことが最重要ポイントです。
基本的には、次の記事の内容で環境を構築しています。
TrinArtキャラクターモデルの検証で利用したコマンド一覧です。
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116 pip install transformers pip install diffusers pip install ftfy
各自の環境により、GPU版PyTorchのインストールコマンドは異なります。
詳細は、次の記事で説明しています。
すべてインストールした後のインストール済みのパッケージ状況は、以下となります。
> pip list Package Version ------------------ ------------ certifi 2022.9.24 charset-normalizer 2.1.1 colorama 0.4.5 diffusers 0.5.1 filelock 3.8.0 ftfy 6.1.1 huggingface-hub 0.10.1 setuptools 65.5.0 tokenizers 0.13.1 torch 1.12.1+cu116 torchaudio 0.12.1+cu116 torchvision 0.13.1+cu116 tqdm 4.64.1 transformers 4.23.1 typing_extensions 4.4.0 urllib3 1.26.12 wcwidth 0.2.5 wheel 0.37.1 zipp 3.9.0
TrinArtキャラクターモデルが動かない場合は、上記と比較してみてください。
diffusersのバージョンが大きく異なれば、動かない可能性は大いにあります。
以上、TrinArtキャラクターモデルの検証環境を説明しました。
次は、TrinArtキャラクターモデルの利用方法を説明します。
TrinArtキャラクターモデルの利用方法
TrinArtキャラクターモデルは、ckptがHugging Faceで公開されています。
naclbit/trinart_characters_19.2m_stable_diffusion_v1 at main
https://huggingface.co/naclbit/trinart_characters_19.2m_stable_diffusion_v1/tree/main
「trinart_characters_it4_v1.ckpt」をダウンロードしましょう。
ダウンロードできたら、このckptをもとにDiffusers用のモデルを作成します。
ckptからDiffusers用のモデルを作成する方法は、次の記事で解説しています。
Python仮想環境で変換用のプロジェクトを作成した方がよいでしょうね。
そして、変換作業の実行の際に用いたのは次のコマンドです。
python .\convert_original_stable_diffusion_to_diffusers.py --checkpoint_path "..\..\ckpt\trinart_characters_it4_v1.ckpt" --dump_path "..\..\model\trinart"
上記コマンドに成功すると、次のようなモデルを確認できます。
スケジュール関数を確認しておきます。
scheduler/scheduler_config.json
{ "_class_name": "PNDMScheduler", "_diffusers_version": "0.4.2", "beta_end": 0.012, "beta_schedule": "scaled_linear", "beta_start": 0.00085, "num_train_timesteps": 1000, "set_alpha_to_one": false, "skip_prk_steps": true, "steps_offset": 1, "trained_betas": null }
「PNDMScheduler」と記述されています。
したがって、TrinArtキャラクターモデルを動かすコードは以下となります。
import torch from diffusers import StableDiffusionPipeline, PNDMScheduler from torch import autocast MODEL_PATH = "./model/trinart" DEVICE = "cuda" pipe = StableDiffusionPipeline.from_pretrained( MODEL_PATH, torch_dtype=torch.float16, # GPUに余裕があるなら「torch.float32」 scheduler=PNDMScheduler( beta_start=0.00085, beta_end=0.012, beta_schedule='scaled_linear', num_train_timesteps=1000, ), ).to(DEVICE) prompt = "cute girl with pink hair | | very very anime!!!, fine - face, symmetry face, fine details. anime. realistic shaded lighting poster by sakimichan, kidmo, trending on pixiv, magali villeneuve, artgerm, jeremy lipkin and michael garmash and rob rey" # ====ここから==== def null_safety(images, **kwargs): return images, False pipe.safety_checker = null_safety # ====ここまで==== with autocast(DEVICE): image = pipe(prompt, guidance_scale=7.5)["sample"][0] image.save("test.png")
上記を実行した結果、次のような画像が作成されればOKです。
test.png
これは、たまたまうまく行ったケースです。
TrinArtキャラクターモデルで生成した画像は、顔の一部が潰れてしまうことが多いです。
特に目の付近が、イマイチ残念に感じます。
プロンプトを変更すれば、それが改善される可能性はあります。
しかし、もっと簡単な方法としてGFPGANをオススメします。
GFPGANを利用すれば、顔が簡単に綺麗になります。
単純に綺麗にするだけではなく、高画質にもしてくれます。
次の変換なんて、モンスターから美女への変換ですからね。
したがって、GFPGANはセットで利用することを推奨しておきます。
なお、NSFWフィルターを回避するために一工夫しています。
NSFWフィルターを回避する方法については、次の記事で解説しています。
以上、TrinArtキャラクターモデルの利用方法を説明しました。