見出し画像

【検閲なし】GPUで生成するローカルAIチャット環境と小説企画+執筆用ゴールシークプロンプトで叡智小説生成最強に見える

この記事では日本語小説に強いローカルLLM環境を簡単構築できるEasyLightChatAssistantの紹介と、論理破綻が少ない効率的な小説生成を促す(と個人的には思っている)AIチャット用プロンプトの公開をしていきます。このコンテンツは主に官能小説をベースに語りますので、年齢制限などお住まいの国家地域のレーティングに従ってお読みください。

どうもこんにちは、休日に「生成AIなんでも展示会」というイベントを知って寝てからいくかーと思って起きて行こうと思ったら当日参加不可イベントだったことを知ったカガミカミ水鏡です。そうよ鉄郎……私は計画性がない女……

ところでエロ小説が大好きな皆さん(直球)、カガミカミ水鏡さんという方はご存知ですか? 生成AIが頭角を表すはるか以前の2015年からpixivの片隅できしょいジャンルの小説を投稿してるエロSS書きです(猫耳の奴などは2011年にbbspinkにて投稿)。R18ランキングは最高2位だそうですが……えっ知らない? そら(ジャンルがあまりにも局地的すぎるので)そうよ

んで唐突な自分語りをした理由について、実は今月、小説生成AIにドハマリしてました。小説生成AIといえばAIのべりすとさんなんかが走りですね、今でもpixiv小説などで利用してる方も多いですね。

で、その後頭角を現したGPTさん等などのWebサービス系の賢いチャットAIが台頭してきて、彼らに小説を書かせるような取り組みも多くされてきました。芥川賞を受賞した九段理江さんのお話も盛り上がりましたね。

……しかし、チャットAIには問題があります。

NSFWコンテンツが作成できない。

エロい話など、ちんげの先っちょだけでも赦されない。

OpenAIさんとこに卑猥な言葉を投げつけただけで、勝手に出力結果を消されたり、やり過ぎればアカウントにも影響が及ぶというもの。もちろん規約も存在しますので、絶対にやめましょう。AIのべりすとも、規約にてヌードやわいせつなコンテンツの投稿は禁止されてます(そのコンテンツがプロンプトまで及ぶかどうかは匙加減のような気もしますが)

だから待ち望んでいたのです。今年に入りローカルLLMが盛り上がった時も、密かに胸を踊らせていたのです。日本語が流暢で、性的なコンテンツを生成できる、「エロ小説用ローカルLLM」を‼️

画像小説AIと同じように、AIモデルを動かすためのUI実装(ソフト)+AIモデル(しかも日本語が得意なもの。を調べるだけで大変なのに、さらに小説が得意なやつ)が必要になるため、ゼロ知識から調べにゃならんのかとグニャア……としてたところに、画像生成AI環境を簡単に構築できるEasySdxlWebUiを公開されてたzuntanさんが今月、EasyNovelAssistantというソフトを公開されたんですね。


EasyNovelAssistantが凄いという話

EasyNovelAssistantはUI実装のひとつkoboldcppと、日本語での小説執筆が得意なモデルの2つを簡単に準備できて、かつ英語UIのkoboldcppよりも分かりやすい、小説特化のシンプルな日本語UIまでついてくるという便利さ。さらに初回起動時、おすすめAIモデルのLightChatAssistant-TypeB-2x7Bまで自動ダウンロード。
※ 実はEasyNovelAssistantより以前、といっても今月のことですが、同氏のEasyLightChatAssistantを使用していました。ですが後発のこちらの方がオススメかなと

インストール方法は「インストールと更新」の通りでカンタン(特にこだわりが無ければcドライブ直下にnovelみたいなフォルダ作って、そこにbatファイルをおいて実行すれば良いです)初回に6.7GBのモデルをダウンロードしてくる感じ。

しばらくすると怪獣さんのアイコンが出てくる場合があります。「パブリックネットワークとプライベートネットワークにこのアプリへのアクセスを許可しますか」という表示が出た場合は「許可」押してください。

起動完了すると、こんなUIが立ち上がります。この時上部メニューの「サンプル」から「計算能力と論理思考能力」を開くと

サンプル充実してるので、プロンプトや作りたいものがなくても楽しめる

さておき左側のテキストボックスは、ユーザ側のプロンプト欄ということですね。自分で何か命令したい場合はここに書けばOKということ。さて、まずはサンプルの質問のまま上部メニュー「生成」→「生成の開始/終了」を押します。

なんかめんどくさそうな質問が出ました。ふええ、わかんないよぉ……。

めっちゃ遅いけど動きました! なおVRAMが潤沢なパソコンなら、「GPUレイヤー数」を調整することで超高速化することができます。詳しくは本家Githubを読んでね。

更になぜ遅いかというと、俺環の理由があり、このスクリーンショットを撮影しているノートPCのVRAMが4GBしかないこと(しかもRAMから2GBほど間借りしてるやつ)。でも逆に言えば、ここまでスペックが微妙なPCでも、ネット接続されてない状況でも、ノートPCがチャットAIになってくれてるって、凄くないですか?

また、右下に生成途中の内容が表示され、それが完了すると、右上に「### 1」みたいな項番つきで、回答結果が生成されます。それが終わると「### 2」と項番が新しく振られ、左側プロンプトを反映した出力がもう一度(別の表現)で出てきます。

これは画像生成AI試した方だとピンと来るかと思うんですが、要は「シードガチャ」やってるわけ。このUIは画像生成AIのWebUIのようにgenerate foreverを行って、最も良い出力をピックするような使い方が前提なんかなと思います。ピックは右上のテキストをコピペしてもいいですが、もしくはlogフォルダの中→今日の日付がついたフォルダ→output.txtを別のフォルダ(デスクトップとか)にコピーしてから選ぶ方がオススメですかね。

生成途中は右上の画面を確認して、そこから一番良い文章をピックしていく形。使い方としてはこれだけ!

このソフトに慣れてくると、右下出力が冒頭からしてクソ文投げてくるケースに出くわします。そこでF5キーを押すことで現在の出力を中断し、シードを変更して再度生成してくれます。このキャンセルを使った時短テクは小説RTA学会では必須スキルと言われてます


さてこれだけでも生成は楽しめるんですが、生成毎にシナリオのブレが気になったり、シナリオの途中で設定がズレてしまったりなどを感じるようになりました。設定の精度が下がり、感情が単調になっていくような……。AI特有のハルシネーションみたいなものかも知れませんが、たぶんこう。小説に対する計画性というものが薄い。

SS書きとしての視点から小説の作成を考える際、まず初めに「設定とシナリオ方針」を起こしていく事が多いんですね。俺はこんなゆるふわ性格なので、話が途中で乱雑になったりまとまりがつかなくなったりする事が多かったんですが、先にシナリオの流れと着地点をまとめておくと、かなりスムーズに書けるようになったという経験がありました。……そう、上記のブレって、実は人間でも普通に発生するんですよね……

そんな感じでローカルLLMの不満を抱えながら、お友達のAIプロンプトエンジニアとdiscordでダベってた時に、GPTに投げる「ゴールシークプロンプト」や「json化プロンプト」など、いろいろと教えて頂いたんですが、その時思いついたんですね。GPTで育ったテクニックをローカルLLMに使えば……、エロ小説書くのに使えませんか?

さらに色々試したところ、AIに「設定・プロット」をまとめさせてから、AIに小説を書かせる、という方法を思いつきました。つまり、AIに、編集者と小説家と、分業させるわけですね!

respected by kaoru mori

アレな小説を書くためのプロンプト goalseek_ad

まずはこちらのgithubをご覧ください。これは「init_editor」と「init_writer」二つのロールを持ったプロンプトに分けて、「編集者」が「設定とプロットがまとまった箇条書きの資料」を生成してから、それを「小説家」が読み取り「小説本文」を執筆していくというプロンプトです。


基本的にはこちらのhow to useに従って、……ってわかりにくい? うん

ここは一つ、生成した実例を見てもらった方がいいですね。ここからの動作環境は先ほどとは異なりGeForce RTX A4000 16GB + Geforce RTX 3060Ti 8GBの環境で動かしていきます。koboldcppはStableDiffusion実装とは違い、なんとGPUの複数挿しに対応してます! なのでVRAM実質24GB。つよすんぎ

さて、pixivに設定のプロンプトから生成された小説とプロンプトを公開したので見てくださいな。まずはinit_editorに、濃縮した欲望を一行に込めて、左側にプロンプトを貼り付け送信しましょう。プロンプト例は以下の2ページ目です。

すると上記ページの3ページ目が出力されるんですね。100回ほどガチャを回し、良いものをベースに、箇条書きの設定リストにまとめました。それをinit_writerの中に組み込み、小説の書き出しを追加し、それをプロンプトとして送信します。それが上記4ページ目。

こうすることで、序章(または第一章)から書き始めてくれるようになります。一章を書き終えたら、小説の章をコピーして、次の章を書かせていく。これの繰り返しですね。また第二章以降は、プロンプト送信前に必ず校正を手作業で掛けましょう。なお終章を書かせたときのスクリーンショットはこんな感じ。

そうこうしてる間に、小説ができました! それが1ページ目の以下。朝の支度をしながらだったので、init_writerからは大体1時間半で書き終えたと思います。

書き上げた感想なんですが、これはモデルの影響かも知れませんが、だいぶ携帯小説よりの短さで、わかりやすい平易な文章になりましたね。文章力で魅せるタイプではないですが、読みやすさと展開の良さで興奮させるタイプになったかなと。

ちなみに俺が加筆した部分は5%程度。実は先週からこのプロンプトをビルドスクラップで試しており、最初は20%くらいの加筆修正が必要だったので、かなり進化したんじゃないかと!特に「ラバースーツは特別製」と言い出した辺りで「ワザマエ!」と叫びました。俺が全く考えなかったような展開も組み込んできたのは、プロンプトも、AIモデルも含めて、かなりの進化を感じます。

ただまあもっと進化の余地はあるんだろうなーと思います。設定をバチクソ固めても、微妙に話がズレたり矛盾が出たりするシードはありますし、最後になるほど表現が単調になるなどの問題は拭いきれてないかも。もしかしたら、編集者ではなく小説家の方は、EasyNovelAssistantでのガチャではなく、koboldcppのチャット風UIを使って対話的に制作した方が良いかも知れません。まだまだ実験の積み重ねで改善できる余地はありそう!

でも、恐らく、ローカルLLM自体は進化が始まったばかりです。「まあ、実用的かも?」って思った1ヶ月後には「うおおおおおおおおAI最強!」って発言しそうなんですよね。実は同じ経験を、2022年の8月にしています。そう、画像生成AIの登場です。

ああ、進化といえば……ちょっとだけ追記します。EasyNovelAssistantに新しいモデルが追加されまして、それを試したものを先程のpixiv投稿の5ページ目に、書き出しだけ公開しときます。このモデル用に設定チューニングが必要なのでまだ研究が必要ですが……かなり、人間くさい文章じゃないですか? うーん、スケベニンゲン!

※注: 筆者は興奮するとWinning Postに登場する競走馬を叫ぶ悪癖がございます。同作に登場するスケベニンゲンはオランダの観光地から命名されたものであり、暗喩などの他意はございません


2024-05-02追記:どんな助平な挿絵でも出力してくれる画像生成出力用プロンプト

というわけで、ローカルLLMの利点は、どんなお願いでも検閲やサ停することなく聞いてくれるため、えちちなコンテンツと非常に相性が良い、という記事でした。

ん? いま何でもしてくれるって言ったよね?

という事は、小説の挿絵に使う画像生成AI用のプロンプト(しかもえっちなの)も生成してくれるのでは?

という理由で、もう一つプロンプトを作成しました! こちらのリンクのプロンプトをコピペし、出力したキャラ設定を差し替えれば、それっぽいキャラのプロンプトを生成してくれます!

さて、この生成には別のオススメモデル「japanese-starling-chatv-7b.Q4_K_M」を使います。

EasyNovelAssistantでのモデル変更はちょいコツが必要。起動すると、ウィンドウが3つ立ち上がっていることに気づいたかと思います。モデル変更の際はそのうち1つ、モデル名がタイトルに表示された黒い画面のものだけを、✗で閉じてください。

その後、EasyNovelAssistant本体のメニューから「モデル」を開き、japanese-starling-chatv-7b.Q4_K_Mを選択。最初は「ダウンロード」を押して、後は数分後にもう一度モデルを確認すると、下画像のように、L0からL33(GPUレイヤー数のこと)まで表示されると思います。それをお使いのパソコンのスペックに合わせて選択することで切り替えられます。

……というわけで、実際に先程の小説の挿絵を作ってみました。まあぶっちゃけ期待せずに生成した方がいいです、俺だってそうです。 だって先程も説明したけど俺、2022年8月から画像生成触ってるわけですし? 俺には1年半以上のプロンプトの蓄積があるわけですし? たかだかポッと出のローカルLLMなんかに性癖の濃さで、しかもラバースーツの光沢表現とかで負ける訳

正直、全く思いもつかなかったような画質向上プロンプトが多かったです。衣装も背景もかなり良い。しかも、「ああ、確かにこれは小説の挿絵だ。すごい場面説明感ある」みたいなカットも多かった印象です。なんだ、なんなんだこの敗北感は…… あと今回SD-Turbo初めて使いました。DPO+freeU+LCM同時適用でも使えたので嬉しすぎる!

あひいいぃぃ~~~~っ!!! 完全敗北しましゅううううう❣️❣️❣️

なお他の挿絵も先程の小説に追加しました! みてみてね


2024-05-05追記:LLMモデル「Vecteus-v1」が凄すぎる件

まずはコイツを読んでみてほしい。前回懸念として上げていたケータイ小説感が薄れ、一気に小説書きの文体に肉薄してきました! まだ記事公開して1週間しか立ってねえぞ進化早すぎだろ!?

こちらも上記記事同様、EasyNovelAssistant本体のメニューから「モデル」を開き、Vecteus-v1を選択することで生成環境が整います! editorもwriterもimagerも全てのプロンプトで使えるので、おすすめモデルNo.1になりました! 他のモデルも良かったら作品投稿の上で紹介しときますー

このモデルは文体が各シード平均で見ても優れていますが、逆に優れているから故に文章の細かい間違いが目立つ、という事があります(校正やった方なら、この感覚解るかも?)  そこで手作業で校正かけたりもしたのですが、EasyNovelAssistantならではの利点として同条件別シードで大量に同じ(設定で違う表現の)内容を生成できるので、それら優れたセンテンスをピックアップして組み立てる事で、より良い表現の選出やタームのボリュームアップが狙えるという、今までの小説執筆に存在し得なかったワークフローを組んでクオリティアップが可能になったかと思います。音楽のbreakbeatsに近いかな、MPCやAbleton Liveで素材を並べて構築してくみたいな。

……

DALL-Eさん、大丈夫……なんですね……(ニチャァ

2024-05-14追記:LLMモデル「Japanese-TextGen-MoE-TEST-2x7B-NSFW_iMat_IQ4_XS」が凄すぎる件


セイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイセイ

うおおおおおおおおAI最強!!!!!!!!

5/11にEasyNovelAssistantに、大幅な更新が入ったんですね。で、おすすめモデルなんかも追加されたそうで、ちょっと気になってたJapanese-TextGen-MoEというモデル試したんですが、まあ沼りましたね……良すぎるんですよ、出力が。 5/13の朝に企画起こしから生成を開始したんですが、一気呵成に一本小説書き上げました、というか、LLMに書かせたというか、いやLLMに書かされたというか……

もうここまで来ると、普通のSS書きの表現力と並んでます、多少の設定ズレを許容できれば、15000文字超がたった1日でできます(しかも画像生成利用であれば扉絵含めて)。

終章あたりでは途中で整骨院に行ってる間に生成させて、帰宅してそれらを繋ぎ合わせてボリュームアップを図った感じですね。あそこらへんやたら文章量多いのはその辺が理由です。家事の間にも筆が進まない部分を1時間50パターンくらい代筆してくれると考えると、やっぱめっちゃ便利だなって思いますね!

そうなると、AIだから表現としてどうだとか、AIの表現力は未熟だからとか、その辺の言説が意味をなさなくなってくるレベルになってくる気がします。量です。時々創作界隈で言われる、量が質を担保するような状況が、AIによって生まれるんじゃないか? と考えています。

例えば同じシーン1つにつき10個から100個の作例を比較参照して切り貼りしたり(ミクロストーリーを再構築する)、納得がいかなかったらプロット段階でシナリオの軌道微修正を図ってシナリオの未来をコントロールする(マクロストーリーを再構築する。この行為人間がやると上手くいかなかったり途中破綻したりするんですが、多分AIの方が得意分野です)みたいな、多分AIならでは、みたいな創作手法ができてきて、1つの作品に対するリリース速度が大幅に上がるような方法論も生まれてくんじゃねかと思いながらサムネの女の子をフォトレタッチソフトで膨乳化してましたハイ。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?