「高品質のアニメで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の動作確認を説明しました。