簡単なプロンプトを用いて、長編小説を自動生成する方法について、様々な試行錯誤を重ねています。その中で比較的成功した手法の一部をここに公開します。
1.プロンプト作成プロンプト
AIで高品質な小説を生成するには、単純なプロンプトでは足りず、より長く複雑なプロンプトが必要になります。この複雑なプロンプトを作成する手間を省くため、プロンプトを作成するためのプロンプトを用意します。
○ 長編SF小説を自動生成するプロンプトを作成するプロンプト
長編小説を破綻なく生成するために、最初に小説のアウトラインを作成し、次にアウトラインに基づいて1章ずつ原稿を作成するという2段階で進めます。
条件は、自分の書きたい小説に合わせて、オリジナルな条件を設定してください。
2.2種類のプロンプト
このプロンプトをClaude 3.5 Sonnetで実行すると、以下のような2種類のプロンプトが生成されます。
(1) アウトライン作成プロンプト
(2) 章ごとの原稿執筆プロンプト
3.プロンプトの実行例
(1) アウトライン作成プロンプトの実行例
Claude 3.5 Sonnetで上記のアウトライン作成プロンプトを実行した結果は以下の通りです。
(2) 章ごとの原稿執筆プロンプトの実行例
また、Claude 3.5 Sonnetで続けて章ごとの原稿執筆プロンプトを実行した結果は以下の通りです。
第2章以降は、「同様に第2章を続けて」のような簡単な指示で続きの原稿を生成してくれます。
第10章まで完成した内容は、以下の記事をご覧ください。
量子力学と人間の意識をテーマとした約2万字のSF小説です。
Claudeは、必ずしもアウトラインに従わずに物語を展開していくため、完成したストーリーは元のアウトラインの章立てとはかなり異なる内容になっています。
なお、この小説はAIによる「一発出し」のものであり、原稿の修正は行っていません。さらに品質を向上させるには、以下に示すような原稿修正プロンプトを利用したり、自分で手を加えたりして、原稿をブラッシュアップしていきます。
(3) 原稿修正プロンプト
4.GPT-4oでの実行例
(1) アウトラインの作成
ChatGPTのGPT-4oモデルでアウトライン作成プロンプトを実行した結果は以下の通りです。
(2) 章ごとの原稿執筆
ChatGPTのGPT-4oモデルで続けて章ごとの原稿執筆プロンプトを実行した結果は以下の通りです。
ChatGPTの特性として、章の終わりにその章の要約や次章以降の執筆方針が記載されます。この記述が不要な場合は削除してください。
5.Gemini 1.5 Proでの実行例
(1) アウトラインの作成
Gemini 1.5 Pro Experimental 0801(Google AI Studio)でアウトライン作成プロンプトを実行した結果は以下の通りです。
(2) 章ごとの原稿執筆
Gemini 1.5 Pro Experimental 0801で続けて章ごとの原稿執筆プロンプトを実行した結果は以下の通りです。
Geminiの場合も、章の終わりにその章の要約や次章以降の執筆方針が記載されます。この記述が不要な場合は削除してください。
6.ClaudeのProjectsの利用
Projectsは、アップロードしておいた資料を基に回答させたり、カスタム指示を設定したりすることができるClaudeのプロジェクト管理ツールです。
上記3のClaudeによるプロンプトの実行例では、生成された原稿があまりアウトラインに従っていなかったため、このProjects機能を利用して、よりアウトラインに沿った原稿を生成できるように改良してみます。
(1) Projectsの設定
サイドバーのProjects→Create Projectをクリックして、以下の画面でプロジェクトの題名と概要(目的)を入力し、右下のCreate Projectボタンをクリックします。
次に、以下の画面でAdd Content→Add text contentをクリックし、プロジェクトにこの小説のアウトラインを保存します。
Upload from deviceを選択して、pdf, docx, csv, txt, htmlなどのファイルを保存することもできます。(※最大5ファイル、1ファイル当たり30MBまで)
Titleに資料の名称を入力し、Contentにアウトラインの内容をコピペします。最後に右下のAdd Contentボタンをクリックすると、アウトラインの内容が保存されます。
今回、Contentにコピペしたアウトラインの内容は以下の通りです。
上記3で作成したSF小説アウトラインを流用しています。
次にカスタム指示を設定します。
プロジェクト作成画面で+Set custom instructionsをクリックして、以下のように章ごとの原稿執筆についての指示を入力し、最後に右下のSave Instructionsボタンをクリックします。
今回、カスタム指示に入力した指示の内容は以下の通りです。
章ごとの原稿執筆プロンプトの最初の行を一部修正しています。
あとは、以下のように入力欄に1、2、3、4、5と番号を入力していけば、入力した番号の章の原稿を自動的にClaudeが生成します。
1章ずつ生成されるので、生成された原稿を、その都度修正していくことも可能です。
(2) Projectsを利用した原稿生成の実行例
生成された第1章の原稿は以下の通りです。
最後の部分には、第1章の要約や次章以降の執筆方針、この原稿作成の意図などが記載されています。次章以降の文章を繋げていく場合には不要なため、削除してください。
第2章以降も番号を指定するだけで、その番号の章の原稿をClaudeが生成します。
第10章まで完成した内容は、以下の記事をご覧ください。
量子力学と人間の意識をテーマとした約1万7000字のSF小説です。
(3) Projects利用の効果
Projectsを利用したのは、よりアウトラインに従った内容にするためでした。しかし、Projectsを利用しない場合よりはアウトラインに近い内容ですが、やはり元のアウトラインとは異なる内容になってしまいました。
また、ストーリにいくつか矛盾点があり、ゼノの口調が途中で大きく変わっていることなども気になりました。
全体を通して、Projectsを利用しない場合の方がストーリーの流れが分かりやすくて良かったと思います。ただ、文章の受け取り方には個人差があるため、ぜひ両方のストーリーを読み比べて、どちらが優れているか評価してみてください。
ChatGPTでも、カスタム指示やGPTsを利用して、Projectsと似たようなことができます。
7.AIで質の高い小説を生成するコツ
今のところ、AIで質の高い小説を生成するコツは、ガチャと修正です。
アウトラインは、AIに複数生成させて、一番よいと思うものを選びます。各章の原稿を生成した時も、内容が気に入らなければ、すぐにRetryします。たくさん生成してその中から最良のものを選び出す「ガチャ」が重要です。
また、アウトラインの段階から修正を加えます。アウトラインがつまらないと、生成する小説も面白くありません。ショートストーリーを何本か書かせて、その中から面白いものを選んで、AIにアウトライン化を依頼するという手法もあります。
原稿も各章ごとに修正を入れます。修正する時も、全部自分で修正するのではなく、AIをできるだけ活用します。「○○の部分をもっと書き込んで」「キャラクターの感情がもっと出るように書いて」など抽象的な指示でもよいので、AIに指示して修正させます。前の章を修正し、確定してから後の章を生成しないと、前後で矛盾が生じる可能性があります。
実は、ガチャも修正も、どちらもある程度AIで自動化できます。複数のアウトラインを作成して、それを評価し一番良いものを選ぶ、原稿の文章の問題点を指摘して、それを修正する、どちらもAIで自動化することが可能です。まだ精度的な問題がありますが、将来的には、このあたりも全て自動化できると思います。
現時点では、AIを利用して質の高い小説を書くのには、まだまだ課題がありますが、今後も、より質の高い小説を書けるようにプロンプトやProjectsなどの機能の利用をグレードアップしていきたいと思います。