![見出し画像](https://assets.st-note.com/production/uploads/images/107255117/rectangle_large_type_2_f63cf643a7692967e4dff909bc3e1602.png?width=800)
ChatGPT、Bingによるプロンプトの生成・変換(NyaFuさんバージョン)
すっごいネタ来ました!
この記事を読んでできるようになること
・プロンプトの自然言語←→羅列表記変換
・適当な文章(日英問わず)のプロンプト化
・作成したプロンプトのランダム生成
・日本語での要約
・プロンプトの微調整
まずは、こちらを読んでください!
間にJSON変換をかませるだとっ!?
こんな面白いネタ、そりゃもうやっちゃいますよね。
てことで、半クローズな環境でNyaFuさんにすっごいGPTプロンプトを見せてもらったので、さっそくどんどんと手を入れてしまいました。(NyaFuさん、その節はすいませんでした)
その後、快く了承いただけたので、今回はコラボ記事を書かせていただきます!みんなもNyaFuさん、フォローしようぜ!
仕組みと考え方についてはNyaFuさんの記事でしっかりと確認しておいてください。使い始めてから自分用にカスタマイズしやすくなります。
ChatGPT-4もしくはBingで動作します。(ChatGPT-3.5はかなり怪しいです)
※Bingで使う場合には、「より創造的に」もしくは「より厳密に」に設定すると4000文字までいけます。
![](https://assets.st-note.com/img/1685843483215-92VZ8pkNpZ.png?width=800)
使い方
このテキストファイルにプロンプトが入ってますので、それをまるごとコピーして、ChatGPTもしくは、Bingに貼り付けてください。(Bingが受けれる4000文字ギリギリまでせめました)
![](https://assets.st-note.com/img/1685777837507-4yFXoSMblv.png?width=800)
このプロンプトには4つ機能があります。
#2pr
1つ目は、NyaFuさんの記事で紹介されていた機能ですね。
様々なものを自然言語プロンプトに変換します。
#2prと併せてプロンプトにしたいものを入力してください。
日英、羅列、メモ、文章、なんでもOKです。強調も対応しています。
![](https://assets.st-note.com/img/1685778075743-mtCess8Vb9.png?width=800)
![](https://assets.st-note.com/img/1685778347020-JVFqqwqEoi.png?width=800)
![](https://assets.st-note.com/img/1685781631398-jm7GujS9kz.png?width=800)
#rand
先程のJSONの中身をランダムなものに変更してプロンプトを出してくれます。最初に呼び出しても動きません。(当たり前)
![](https://assets.st-note.com/img/1685778630452-PpAkVCj3ZG.png?width=800)
![](https://assets.st-note.com/img/1685778718916-fEKhhDLBeL.png?width=800)
#2db
出力するプロンプトを自然言語ではなく、danbooruタグの羅列式で出力します。従来の見慣れたスタイルですね。
※もし、BingでJSON状態で止まった時は、もう一度#2dbを入力するとプロンプトになります。
※文字数の制限で#2dbは例を用意していないので、若干、出力が不安定です。
![](https://assets.st-note.com/img/1685778915013-BhWKKlQ53x.png?width=800)
#2jp
先程だしたプロンプトを日本語で要約してくれます。特に#randしたあととかに便利ですね。
![](https://assets.st-note.com/img/1685779058892-XGaWEIct1N.png?width=800)
動作説明
なにがどうなって、こういう動作をしているかをちょっと説明しておきます。ここを読めば、すぐにカスタマイズできますよ!
前文
以下は、コマンド定義と、その実行例です。コマンド定義を言語モデル上のシミュレーションとして実行してください。理解できたら「了解しました。」とのみ返答してください。出力以外は日本語で返答してください。
理解できたら「了解しました。」とのみ返答してください。
この文章を入れないと、長々と復唱をはじめます。3.5君はこれを入れていても復唱しがちです。
コマンド定義
1. `t2i_prompt`を入力します。
2. `t2i_prompt`が日本語の場合、それを英語に変換します。(:数字)は()でくくられた部分の強調値を表しているのでそのまま保持します。
3. `t2i_prompt`を内容に応じた大カテゴリごとにobjectに分け、さらに関連ごとにkeyを設定し、`t2i_prompt`をvalueとしてJSONに変換し出力します。
4. 変換したJSONを元に、「変換後プロンプト」を英語のまま自然言語として出力します。そのvalueに強調値が存在する場合には、その部分を "(value:強調値)" の形式で出力します。強調値の範囲は0.5から1.7までとします。
5. objectが変わるタイミングで "BREAK" を改行で挟んで挿入します。このとき、object名は不要です。
日本語なんでわかりやすいですね!
1で入力
2で翻訳
3でJSON変換
4でプロンプト出力
5はBREAKを挟む
BREAKが不要な方は5行目を削除すると、BREAKしなくなります。
1. `t2i_prompt`を入力します。
2. `t2i_prompt`が日本語の場合、それを英語に変換します。(:数字)は()でくくられた部分の強調値を表しているのでそのまま保持します。
3. `t2i_prompt`を内容に応じた大カテゴリごとにobjectに分け、さらに関連ごとにkeyを設定し、`t2i_prompt`をvalueとしてJSONに変換し出力します。
4. 変換したJSONを元に、「変換後プロンプト」をdanbooruタグで出力します。そのvalueに強調値が存在する場合には、その部分を "(value:強調値)" の形式で出力します。強調値の範囲は0.5から1.7までとします。各要素を要素ごとにまとめカンマで区切った、短文、あるいは単語の羅列で出力してください。
5. objectが変わるタイミングで "BREAK" を改行で挟んで挿入します。このとき、object名は不要です。
4だけが違います。従来の羅列系が良い方はこちらをどうぞ。
1. これは、「#rand」が入力されない限り起動しません。
2. 前処理のJSONをオブジェクトはそのままでキーだけを任意で変更し、「変換後プロンプト」を出力します。ただし、全体の雰囲気は残し、genderは維持します。
3. この際、object1つにつき1つのランダムなキーを強調します。強調値の範囲は0.5から1.7までとします。強調のスタイルは "(value:強調値)" の形式で出力します。
GPTさんたちは、頭から順に流そうとするクセがありますので、1行目に宣言しています。じゃ、前の2つはいいの?って話ですが、もともと#2dbはなかったので、問題はありませんでした。で、今も問題ないはずです。正確性を求めるなら、前2つにも付け加えるべきですね。
雰囲気を残してランダムガチャできるんで、楽しいですよ。
1. これは、「#2jp」が入力されない限り起動しません。
2. 前処理の「変換後プロンプト」の要約を日本語で出力します。
そのままですね。
ランダムプロンプトした後に使うと、どんな内容かすぐに分かりますね。
追記(6/4
プロンプトを出力した後に追加の指示ができます。
要素を追加・変更
「年齢を20歳に」「夕日を加えて」などの、要素の追加や変更ができます。
要素の詳細化(見習い魔女めぐるさん情報
「更にxxのディテールを詳細にしたいです」(xxの部分は全体でも化)と入力すると該当部分のプロンプトに加筆をしてくれます。
最後に
これ、むっちゃくちゃ楽しいです。ぜひ皆さんも色々といじってみてください。
謝辞
そもそもこの素晴らしい種を見つけて形にされたNyaFuさんに最大限の感謝を。JSONに一度変換するということがとんでもない可能性を秘めてます。
覚束ないままぐちゃぐちゃに弄ってたものを、きれいに整形していただいたビッグバードさんにも感謝を。おかげさまで人前に出せるものになりました。
追加情報いただいた見習い魔女めぐるさん、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?