【Stable Diffusion】Hassakuの利用方法

【Stable Diffusion】Hassakuの利用方法 機械学習

「高品質のアニメでNSFWコンテンツを生成したい」
「Grapefruitを画像生成のモデルとして利用している」

このような場合には、Hassaku がオススメです。
この記事では、Hassakuについて解説しています。

本記事の内容

  • Hassakuとは?
  • Hassakuの利用方法
  • Hassakuの動作確認

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

Hassakuとは?

Hassaku (hentai model) | Stable Diffusion Checkpoint | Civitai
https://civitai.com/models/2583/hassaku-hentai-model

Hassakuとは、アニメ画像を生成できるStable Diffusion用モデルです。
アニメの中でも、NSFWの画像生成をメインにしています。
もちろん、SFWのコンテンツも普通に生成可能です。

追記 2023年9月6日
SDXL 1.0用のHassakuがリリースされました。

このモデルの開発者は、Grapefruitというモデルの開発者でもあります。

このGrapefruitの次期モデルとなるのが、Hassakuという訳です。
おそらく、この系統のモデルは今後もメンテナンスはされていくでしょう。

すでに、Hassakuにはスポンサーが2社(サイト)も付いています。

モデルでビジネスを考えている人にとって、Hassakuは参考になるかもしれませんね。
なお、Hassakuは結合モデルです。

以下のモデルを結合して、Hassakuは開発されています。

  • AnythingV3
  • ElysiumV2
  • AbyssOrangeMix
  • AbyssOrangeMix2
  • basilMix

結合モデルであれば、やろうと思えば誰でも開発は可能です。
モデルのマージについては、以下の記事が参考になります。

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

Hassakuの利用方法

まずは、公式ページからモデルをダウンロードします。
ただし、Civitaiへのログイン必須です。

ログインした状態でアクセスすると、「Download」ボタンからダウンロードが可能です。

ダウンロードしたファイルは、以下となります。
「hassakuHentaiModel_v11.safetensors」

このファイルの利用方法は、それぞれの環境で異なります。

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • Diffusers

それぞれの場合を以下で説明します。

Stable Diffusion web UI(AUTOMATIC1111版)

web UIのインストールは、次の記事で説明しています。

ダウンロードしたファイルを指定のディレクトリ(models/Stable-diffusion)に設置するだけです。
web UIの起動後、以下のようにcheckpointを選択できるようになっています。

Diffusers

Diffusersの場合は、少し工夫が必要となります。
まずは、Stable Diffusionを動かす環境を用意します。

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

Diffusersの場合、そのままではダウンロードしたモデルを読み込めません。
そのため、Diffusersで利用できるように変換処理を行う必要があります。

Safetensors形式ファイルの変換処理は、次の記事で解説しています。

今回変換に用いたのは、以下のコマンドになります。

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

変換に成功すると、次のようなディレクトリ・ファイルが作成されます。

ここまで準備できたら、あとは次のコードで画像生成が可能です。

from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler

model_id = "./model/hassakuHentaiModel_v11"

pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
# pipe.enable_attention_slicing()

prompt = "masterpiece, best quality, 1girl, repairing, tools, construction worker, warning sign, sitting, helmet, yellow eyes, black hair, gloves,"
negative_prompt = "(low quality, worst quality:1.4),"

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

image.save("test.png")

以上、Hassakuの利用方法を説明しました。
次は、Hassakuの動作確認を説明します。

Hassakuの動作確認

Hassakuを利用する上での注意事項があります。

  • Restore facesは使わない
  • 高解像度にはしない(Hires. fixを使えば高解像度に対応可能)
  • アンダースコア「_」はプロンプトに使わない(× red_eyes、〇 red eyes)

これらを念頭にして、デモ画像やユーザー投稿を参考にします。
気に入った画像があれば、PNG Infoを利用しましょう。

PNG Infoを利用すると、同じ条件で画像生成が可能になります。

例えば、次の画像を参考にしてみましょう。
https://civitai.com/images/377265

参考にして作成した結果が、以下。

モデル開発者は、以下のsamplerを推奨しています。

  • DDIM
  • DPM++ SDE Karras

モデル開発者は、DDIMが最も好きということらしいです。
私個人は、DPM++ SDE Karrasの方が好みになります。

上記の画像は、DPM++ SDE Karrasを用いて生成しています。

以上、Hassakuの動作確認を説明しました。

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