【Stable Diffusion】多人数をリアルに描けるPFG

機械学習

「Stable Diffusionで多人数が綺麗に映る画像を生成したい」
「NSFW上等のヤバい画像を作りたい」

このような場合には、PFGがオススメです。
この記事では、Stable Diffusionでヤバい画像が生成できるPFGを解説しています。

本記事の内容

  • PFGとは?
  • PFGの利用方法

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

PFGとは?

PFGを利用すると、次のような画像を生成できます。

そして、NSFWコンテンツの生成についても得意なモデルになります。
つまり、ヤバい画像が生成できるということです。

そんなヤバい画像を生成できるPFGは、出所不明のStable Diffusion用のモデルと言われています。
有志によって、Civitaiで公開されています。

Civitaiのdescriptionは、翻訳すると以下となります。

Civitaiは、Stable Diffusion AI Artモデルのためのプラットフォームです。
私たちは50人以上のクリエイターから1000以上のモデルを集めています。
また、コミュニティからの145以上のレビューと、あなたが始めるためのプロンプトを含む100以上の画像もあります。

モデルと言えば、Hugging Faceがよく利用されています。
でも、Hugging Faceは開発者向けのページになります。

もっと一般利用者向けにシフトしたのが、Civitaiという感じでしょうか。
ユーザーがコメントや画像も投稿できるようですからね。

そのCivitai上におけるPFGのページは、以下。

PFG | Civitai
https://civitai.com/models/1227/pfg

上記ページは、NSFWコンテンツが豊富なページとなります。
一応フィルターはあるので、いきなり開いても大丈夫なはずです。

ただ、ログインしていないと次のように表示されてしまいます。

モデルのダウンロードに必要であるため、アカウントを作成しましょう。
さて、ページにアクセスできたでしょうか?

こんな感じでフィルターがあるので、フィルターを外すも外さないもあなた次第。

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

PFGの利用方法

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

上記記事に従えば、自ずとDiffusersをインストールすることになります。

この記事では、Diffusersでの利用を対象としています。
Stable Diffusion web UI(AUTOMATIC1111版)だと、あえて説明する必要がありません。

利用する前に、まずはモデルのダウンロードが必要となります。
checkpointが、次の二つの形式で配布されています。

  • Safetensor形式
  • Pickle形式

ダウンロード数に圧倒的な差がついています。

Safetensor形式

Pickle形式

Safetensor形式の方が、安全と記載されています。
まあ、普通は安全な方をダウンロードすることになるでしょう。

よって、ここでもSafetensor形式のダウンロードを推奨しておきます。
Safetensor形式のcheckpointをDiffusersで利用するためには、工夫が必要です。

その工夫については、次の記事で解説しています。

変換には、次のコマンドを用いました。

python convert_diffusers20_original_sd.py ..\..\ckpt\pfg_111Safetensors.safetensors  ..\..\model\pfg  --v1 --reference_model runwayml/stable-diffusion-v1-5

変換したモデルを利用するには、モデルのパスを指定します。

from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler

model_id = "./model/pfg"
device = "cuda"

pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to(device)

prompt = "drunken beautiful woman 1girl as delirium from sandman, (hallucinating colorful soap bubbles), abs, fit, thin, wearing a black crop top jean jacket and jean shorts, punk rock, tank girl, high detailed, 8k"
negative_prompt = "cartoon, 3d, obese, fat, ((disfigured)), ((bad art)), ((deformed)), ((poorly drawn)), ((extra limbs)), ((close up)), ((b&w)), weird colors, blurry"

image = pipe(
    prompt,
    num_inference_steps=25,
    guidance_scale=7.5,
    width=512,
    height=768,
    negative_prompt=negative_prompt,
).images[0]

image.save("test.png")

上記を実行すると、次のような画像が生成されます。

なお、プロンプトはユーザーの投稿を参考にしています。
投稿された画像には、「i」と付いているモノがあります。

これをクリックすると、次のような情報が表示されます。

以上、PFGの利用方法を説明しました。

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