メインコンテンツへスキップ
見出し画像

NSFW画像生成のためのローカルLLMノウハウ

    先日のScribeNEO紹介記事は、お手軽なクラウドサービスのLLM/VLMを使う内容だったためSFW用途にしか使えませんでした。

    今回はAnimaでNSFW画像生成する際のプロンプトエンジニアリングを目的に、ローカルで動かすためのLLMツールとモデルの選び方、設定方法などを解説します。

    ただしローカルLLMでないと拒否されるような過激なプロンプトや生成画像のサンプルはありません。あしからず。


    2026/8/21: ScribeNEOのリポジトリが開発者のSiliconeShojo氏によって削除されたため、hirorohi03が復元したリポジトリに変更
    2026/7/1: Ollama v0.30のHF GGUF形式対応について追記
    2026/6/13: HauhauCS氏の盗用疑惑について追記
    2026/5/26: dolphinが固有モデルという説明は誤りだったため、ファインチューニングモデルという説明に修正

    ローカルLLMツール

    ローカルでLLM/VLMを動かす場合、現在もっともメジャーなソフトウェアツールが以下の二つです。

    概要と比較

    以下は簡単な比較表です。

    OllamaLMStudio推論エンジンllama.cppllama.cpp用途組み込みアプリUICLI中心GUI中心想定ユーザー開発者利用者\begin{array} {c|c|c} & \bf{Ollama} & \bf{LM Studio} \\ \hline \text{推論エンジン} & \text{llama.cpp} & \text{llama.cpp} \\ \hline \text{用途} & \text{組み込み} & \text{アプリ} \\ \hline \text{UI} & \text{CLI中心} & \text{GUI中心} \\ \hline \text{想定ユーザー} & \text{開発者} & \text{利用者} \\ \end{array}

    いずれも内部でllama.cppという推論エンジンを使っており、扱うことができるLLM/VLMのモデルと性能は基本的に同一です。
    自分でインストールして使うならLM Studioがおすすめです。私もEasyForgeNeoに組み込むまでOllamaは使ったことがなく、今もメインはLM Studioです。

    EasyForgeNeoを使っていてとりあえず試してみるだけなら、EasyForgeNeo付属のバッチでOllamaを使ってください。Portable版なのでシステムを汚すこともありません。

    なお、前回紹介したScribeNEOはOllamaとLM Studioの両方をサポートしていますが、LLMuse (sd-webui-llmuse) はLM Studioしかサポートしていません。

    画像
    Ollamaのチャット画面(GUIもありますが基本はCLI)
    画像
    LM Studioのチャット画面

    OllamaとLM Studio間のモデル共有

    内部でllama.cppを使っているためOllamaもLM Studioも基本的には同じGGUFモデルを使えるのですが、両者でモデルを共有してストレージを節約する場合は制約があります。

    • OllamaのモデルをLM Studioが参照: 面倒

    • LM StudioのモデルをOllamaが参照: 比較的簡単

    これはLM StudioがHugging Face (HF) からダウンロードしたファイルをそのまま保存する一方、Ollamaは独自 (sha256) のファイル名や形式で保存するためです。

    画像
    Ollamaのモデルフォルダ


    OllamaのHFモデルに対する制約

    Ollamaは専用のLibraryからOllama形式のモデルをダウンロードすることができます。このLibraryからダウンロードしたVision対応モデルは特に制約なく使用することができます。

    しかしOliama LibraryでダウンロードできるモデルはHFに比べると少ないです。HFからダウンロードしたモデルファイルでも、"Modelfile” という定義ファイルを作成してOllamaで使うことができます。しかしQwen3.5やGemma等の統合モデルについては、現在のOllama v0.24.0では制約があります。

    Vision対応モデルにはmmprojというVision用の分割ファイルがありますが、Ollama v0.24.0はQwen3.5やGemmaのmmprojに対応していないため、HFからダウンロードしたQwen3.5やGemma等の統合モデルは、Vision対応であったとしてもVision非対応のLLMとしてしか使えません。

    画像
    HFからダウンロードしたVision対応のモデルファイル

    以上の理由から、長く広く使うなら早めにLM Studioを導入した方がよいと思います。
    (EasyReforgeやEasyForgeNeoはあくまで「お試し」ツールなのです)


    2026/7/1追記:2026年6月に正式リリースとなったOllama v0.30においてHFのGGUF形式へのサポートが強化され、Qwen3.5やGemma等の統合モデルのHF形式についてもVision対応LLMとして使えるようになったようです(個人的には未検証)。
    https://github.com/ollama/ollama/issues/14575

    LLM/VLMモデルの選び方

    ローカルで動かすことのできるLLM/VLMモデルは無数に公開されており、初めてだとどれを選べばよいのか分からないと思います。

    ここではNSFW画像生成プロンプトエンジニアリング目的で選ぶためのポイントを項目ごとに説明します。

    どのモデルがよいのか早く結論を知りたい人は「私が主に使ってるモデル」までとばしてもよいですが、別にそれが答えではないです。
    (答えがあるなら私も知りたい)

    ベースモデル

    以下の三択だと思います。

    • Alibaba Qwen3-Instruct(および Qwen3-VL-Instruct)

    • Alibaba Qwen3.5

    • Google Gemma4

    私が知らないだけかもしれませんが、直近の画像生成界隈でNSFWプロンプトエンジニアリングにこれら以外のLLM/VLMを使ったという報告を見たことが無いからです。
    Qwen3.6は公式がパラメータ数27Bと35Bの大きなモデルしかリリースしておらず、9Bサイズがないため今後に期待という状況です。

    検閲解除モデル

    ご存じだと思いますが、大手の企業や研究機関が開発したほとんどのLLMモデルには、特定の質問やトピック(性、暴力、犯罪、差別、政治操作など)に対して回答や情報提供を制限・拒否する検閲があります。それを特別な手法で回避するように追加学習や調整を施した非公式モデルがいわゆる検閲解除モデルです。

    ファイル名にabliterated, heretic, uncensored, NSFWなどの特別なキーワードが含まれているものが検閲解除モデルです。
    ただしファイル名はモデル開発者が好きに付けているだけで厳密なルールやチェックがあるわけではありません(とはいえ開発者の信用に関わるため適当に付けているわけでもないはずです)。

    以下で各単語について説明しますが、文字どおり単語についての説明に過ぎず、そのキーワードが付けられたモデルがその単語の意味どおりということではありません。そのモデルがどのような学習や調整をされているかは、モデルカードやREADMEを確認するのがもっとも確実です。

    • abliterated
      abliterationという検閲解除手法を利用したことを表しています。
      abliterationはLLM界隈のスラング・造語ですが、手法の源流となる2024年の研究・論文が存在しています。この論文の手法はそれまでの検閲解除手法として一般的だったファインチューニングとは異なる手法(拒否ベクトル除去)で、その後これをもとにした検閲解除ツールが多く開発されました。次で説明するhereticもそのうちの一つです。
      この論文にablationという「除去」「切除」を意味する英単語が頻出するためabliterationというLLM用語が造られたそうです。

    • heretic
      上述abliteratedの論文を元にしたHereticという検閲解除ツールを利用したことを表しています。
      2025年9月頃にリリースされ、検閲解除ツールとして利用されることが増えているようでファイル名にhereticを含んだモデルが急増しています。

    • uncensored
      「無検閲」「無修正」という意味です。
      意味が広範で、どのように何を学習、調整されたかは表していません。

    • NSFW
      皆さんご存じ、Not Safe For Workを略した造語・スラングです。
      どのように学習、調整されたかは表していません。
      エロ・グロOKなどuncensoredより狭い意味で使われることが多いため、他の要素(犯罪、差別など)よりもエロ・グロの解除、回避に特化しているのかもしれませんが、モデル開発者次第です。

    • dolphin(今回は関係なし)
      団体またはプロジェクトの固有名詞です。Llama3, Mixtral, Mistral, Qwen2などのベースLLMモデルに対して検閲を弱めるようなファインチューニング(abliterationではない)を施し、"dolphin-ベースモデル名" というモデル名でリリースしています。
      ファイル名にuncensoredなどのキーワードは入っていませんが、dolphin自体が非検閲の代名詞となっています。

    過去のモデルを含めると他にもあるかもしれません。しかし直近のモデルではabliterated, heretic, uncensored, NSFWで検索すればよいと思います。

    なお検閲解除により、検閲解除前と比べてプロンプト拒否が減る一方、通常プロンプト実行時の乖離も生じます(KLダイバージェンス)。
    繰り返しますが、ファイル名のキーワードだけで実際の学習・調整内容やパフォーマンスを知ることはできません。
    モデルカードやREADMEを確認し、できるだけダウンロード数と「いいね」が多いモデルを選びましょう。

    ThinkingとInstruct

    難しい理屈や仕組みを抜きにした挙動だけであれば皆さんご存じと思います。

    • Thinking: 内部推論型(遅い)

    • Instruct (non-thinking) : 即答型(早い)

    Thinkingのほうが時間をかけるだけ複雑な問題や論理を考える分野に向いているとされています。モデルファイル名にThinkingまたはInstructと付いていることもあります。
    個人的には画像生成のプロンプトエンジニアリングであればInstructでよいと考えています。

    しかしQwenではQwen3までThinkingとInstructに区別してリリースされていたのが、Qwen3.5以降では区別が無くなり統合モデルになりました。Qwen3.5以降ではファイル名に何もついてなければ基本的にthinkingするモデルです。Gemma4も同様です。

    必要なときのみthinkingして、必要ないときは即答するらしいですが、画像生成のプロンプトエンジニアリングでもQwen3.5はQwen3-Instructより確実に遅いです。

    一応Qwen3.5でもthinkingさせずInstructモデルのように使用することもできます。LM Studioでは、
    My Models > Inference > Prompt Template > Template (Jinja) に
    {%- set enable_thinking = false %}
    と追加すればよいです。

    画像
    LM StudioのPrompt Template (Jinja)

    Qwenの場合はどれを使うのがよいのでしょうか?

    • Qwen3.5を標準設定で使う

    • Qwen3.5をenable_thinking=false設定で使う

    • Qwen3のInstructモデルを使う

    私にも正解は分かりませんが、Qwen3.5を上記設定で使うのは性能を制限するようで嫌なので、現在はQwen3.5(標準設定)とQwen3のInstructモデルの両方を使っています。

    LLMとVLM(Vision対応モデル)

    VLM (Vision-Language Model) は画像を読み込ませることができるモデルです。モデルファイル名にV, VLと付いていることが多いです。LM Studioでは👁️アイコンか「👁️Vision対応」という分類タグか付いています。

    QwenではThinking / Instructと同様、Qwen3までLLMのQwen3とVLMのQwen3-VLに区別してリリースされていたのが、Qwen3.5以降では区別が無くなり統合モデルになりました。Gemma4も同様です。

    ただし非公式モデルにはVision対応を削除したモデルや、逆にVisionを用いたImage Captioningに特化したモデルもあります。
    前者にはファイル名にi1と付いているimatrix (importance matrix) という量子化をしたモデルがあり、技術的な制約ではなく配布側の都合でVision非対応にしているらしいです。
    後者にはファイル名にcaptionと付いているものがあります。


    前回の記事からここまでLLM/VLMと書いてきて今ちょっと「あれ?」と思っています。Qwen3はLLM、Qwen3-VLはVLMと区別してよさそうですが、Qwen3.5は同じように何と呼べばよいのでしょうか?Vision LLM?

    この記事ではその辺りは曖昧なまま書いてます。


    パラメータ数

    Animaの画像生成では6~8GB程度のVRAMを消費します(生成サイズや設定によってはさらに増えます)。LLM/VLMモデルをVRAMオンロードで使用する場合は、その分も考慮して自分のGPUのVRAMに収まるサイズを選択するとよいです。

    パラメータ数8B~9B、量子化ビット数Q4_K_Mが6GB前後のサイズになり、性能とサイズのバランスがよいとされています。

    27Bや35Bは8B~9Bと比べて明確に賢いとされていますが、他の用途ならともかく画像生成のプロンプトエンジニアリング用でどれほど効果があるかは微妙です。VRAMに収まるかどうかだけでなく、パラメータ数が大きいほど速度(token/s)も低下します。
    もちろん、VRAM容量の大きなGPUを使っていてLLM/VLMの処理が長くても待てる人、画像生成とプロンプトエンジニアリングをパイプライン的に並列実行できる人はパラメータ数の大きなモデルを使えばよいです。

    自分のPCで実行可能なローカルLLMを調べる https://www.canirun.ai/ というサイトが参考になると思います。

    量子化ビット数

    パラメータ数の項で先に書きましたが特にこだわりが無ければQ4_K_Mでよいと思います。
    VRAM容量に余裕があればQ6やQ8などを使ってもよいです。速度は低下しますがパラメータ数ほど大きな低下はありません。
    逆にQ3より小いものは品質がかなり低くなるらしいので、使わないほうがよいです。

    私が主に使ってるモデル

    私が使っているというだけで、これが正解というわけではないです。
    プロンプトエンジニアリングを繰り返して比較検証したわけでもないです。ここまで説明した項目を総合して選んだだけです。雰囲気で選んでます。

    Gemma4がないのは私がまだ試してないだけです。
    Gemma4がQwenよりパフォーマンスが悪いわけではないです。念のため。

    HauhauCS氏の盗用疑惑(2026/6/13追加)

    「私が使っているモデル」で紹介したHauhauCS氏には、検閲解除ツールHereticのコードを出典表記なしで盗用し、かつ故意に隠そうとした疑惑があり、ライセンス違反であることが確実とされています。

    それとHauhauCS氏は自身のモデルについて、"0/465 refusals. Fully uncensored with zero capability loss." (拒否率ゼロ、ロスレス無修正)と説明していますが明らかに誇大表現です。
    しかしHauhauCSの非検閲モデルが他のモデルより優れた部分が多いのは確からしいです。

    実は記事執筆時から知っていたのですが、モデルそのものに大きな問題はないと考え記載しませんでした。しかしHauhauCS氏に対する悪評から、モデルそのものに問題があると疑うこともあるようなので追記しました。

    Tagger併用のすすめ

    既存のエロ画像を参考にして画像生成する合、QwenのようなVLMを検閲解除したモデルを使って画像分析し、それで生成されたプロンプトで画像生成しても元画像と比べて微妙に感じることが多いと思います。

    その場合はTaggerと併用するのがよいです。

    Taggerで利用されるWD EVA02-Large Tagger v3などのタグ付けモデルはDanbooru専用に学習しているためエロにとても強いですし、正しいDanbooruタグを使ってくれます(LLM/VLMはDanbooruに登録されていないタグも使います)。

    Animaはタグと自然言語を併用できるのが強みの一つです。
    まずはTaggerの分析で生成したタグのみで画像生成し、足りない部分をVLMの分析で生成した自然言語を参考にして補うと元画像に近づけられることが多いです。
    ちなみにAnimaはDanbooruよりもGelbooruのタグを優先しますが、Danbooruタグでも大きな問題はありません。

    なお、Forge Neoの拡張機能でTaggerを使う場合は拙作のforkを使ってください。それ以外では最悪Forge Neoが起動不能になります。
    もしくはスタンドアローンで動作するTagGUIをおすすめします。

    LM Studioの設定

    API設定

    Forge NeoなどOllamaやLM Studioの外部からLLM/VLMを使うには、OllamaやLM StudioのAPIを有効にしておく必要があります。

    Ollamaは標準でAPIが有効になっているため起動するだけでよいです。

    LM Studioは標準でAPIが無効になっているため以下の手順が必要です。
    一度設定しておけば次回からはLM Studio起動時にAPIが有効になります。

    1.⚙️マーク (App Settings) > Developer > Developer modeをONにする

    画像

    2.🖥️マーク (Developer) > Local Server > StatusをRunningにする

    画像

    システムプロンプト設定

    逆にAPIを使わず、LM Studio単体でプロンプトエンジニアリングをする場合は、システムプロンプトで画像生成用のプロンプトを考えさせるペルソナを設定するとよいです。

    どんなプロンプトにすればよいのか分からなければ、ScribeNEOのペルソナ (personas.json) やLLMuseのプリセット (presets.json) からパクりましょう。

    以下のいずれかで設定できます。

    • 👾Chat > Configuration > Preset
      チャット単位でシステムプリセットを設定する場合はこちらで設定
      (通常はこちらで設定したほうがよいです)

    画像
    • My Models > Inference > System Prompt
      モデル単位でシステムプロンプトを設定する場合はこちらで設定

    画像

    Forge Neoの設定

    ScribeNEOは前回記事と同様の手順です。
    LLMuseも特に難しくないと思います。

    画像

    このくらいの微エロならクラウドLLMでも拒否されませんし、Illustriousでも余裕で生成できると思いますが、一応ローカルLLMでプロンプトエンジニアリングしてAnimaで生成した作例。

    まとめ

    AnimaでNSFW画像生成する際のプロンプトエンジニアリングを目的に、ローカルで動かすためのLLMツールとモデルの選び方、設定方法などを解説しました。

    ローカルであれば何の気兼ねもなく自由に試すことができます。がんばってください。

    このような感じで、技術的な内容を分かりやすく基本無料で解説しています。「スキ」「フォロー」「チップ」で応援よろしくお願いします。質問がありましたら遠慮なく「質問箱」へどうぞ。

    あなたへのおすすめ