キャラクターブックのコマンド

Last-modified: 2023-01-16 (月) 09:03:27

概要

キャラクターブックには、記述することで特殊な効果を発揮するコマンドというものがある。
コマンドは@から始まり、1行に1コマンドずつ記述する。同一のコマンドは同じキャラクターブックの中には複数書くことはできない。
コマンドを書く位置は1行1コマンドの原則を守っていればどこでもよい。

公式ヘルプのキャラクターブック/コマンド一覧も一読のこと。

各コマンド説明

@range

詳細オプションの「キャラクターブックをスキャンする文字数」の代わりに、このコマンドで指定した文字数をスキャンする文字数として使う。
なお、「キャラクターブックをスキャンする文字数」と同様に、脚注は常に検索の対象となるので、このコマンドで制御することはできない。

書き方その1

@range 文字数

本文の下から指定した文字数の範囲をタグの検索範囲とする。

@range 300

この書き方だと、下から300文字の範囲にタグ文字列があるときだけ、このキャラクターブックが追加される。

書き方その2

@range 開始位置-終了位置

本文の下から開始位置の文字目まで読み飛ばして、その位置から終了位置の文字目までの範囲をタグの検索範囲とする。

@range 100-300

この書き方だと、下から100文字目から300文字目までの範囲にタグ文字列があるときだけ、このキャラクターブックが追加される。

@priority

@priority 優先度

詳細オプションの「キャラクターブックの優先度」の代わりに、このコマンドで指定した数値を優先度として使う。

@priority 4

この書き方だと、このキャラクターブックの優先度は、詳細オプションの「キャラクターブックの優先度」に4を指定した場合と同じ位置に、このキャラクターブックが挿入される。

@and

@and 文字列

または

@and 文字列1|文字列2|文字列3|...

タグに指定した文字列に加えて、このコマンドに指定した文字列も含んでいないと、このキャラクターブックが挿入されないようにする。
指定文字列の検索範囲はタグに準じる。@rangeコマンドを使っていればその範囲に従う。
「|」を使って文字列を複数指定することができ、その場合は「|」で区切られた全ての文字列が範囲内に存在しなければ挿入されない。
「|」は全角で「|」と書いても同じように動作する。

@and トリン|ワーズ

この書き方だと、タグに加えて、「トリン」と「ワーズ」がキャラクターブックのスキャン範囲に含まれている場合だけ、このキャラクターブックが挿入される。

@not

@not 文字列

または

@not 文字列1|文字列2|文字列3|...

タグに指定した文字列がスキャン範囲に含まれている場合でも、このコマンドに指定した文字列が含まれている場合には、このキャラクターブックが挿入されないようにする。
指定文字列の検索範囲はタグに準じる。@rangeコマンドを使っていればその範囲に従う。
「|」を使って文字列を複数指定することができ、その場合は「|」で区切られた文字列のいずれかが範囲内に存在すると挿入されない。
「|」は全角で「|」と書いても同じように動作する。

@not トリン|ワーズ

この書き方だと、タグが検索にヒットしたとしても、「トリン」か「ワーズ」がキャラクターブックのスキャン範囲に含まれている場合は、このキャラクターブックは挿入されない。

@random

@ramdom 0から1までの数字

タグに指定した文字列がスキャン範囲に含まれている場合でも、このコマンドに指定した数値の確率でこのキャラクターブックを無視する。

@ramdom 0.7

この書き方だと、タグが検索にヒットしたとしても、70%の確率でこのキャラクターブックは適用されない。

@addbanword

@addbanword 単語

または

@addbanword 単語<<|>>単語<<|>>単語<<|>>...

このキャラクターブックが適用されている場合に、このコマンドで指定された単語を禁止ワードに追加する。
追加される禁止ワードの効果は、普通に禁止ワード欄に書く場合と変わらない。トークンに一致する場合はそのトークンが出現しなくなり、そうでない場合は出力時にその単語までで出力が止まる。
追加したい禁止ワードが複数ある場合は、「<<|>>」で区切って指定する。

@addbanword ねずみロボ<<|>>ネズミロボ

この書き方だと、タグが検索にヒットした場合、禁止ワードに「ねずみロボ」と「ネズミロボ」が追加される。

@addbias

@addbias トークン,バイアス値

または

@addbias トークン,バイアス値<<|>>トークン,バイアス値<<|>>トークン,バイアス値<<|>>...

このキャラクターブックが適用されている場合に、このコマンドで指定されたトークンが出力に含まれる確率を、バイアス値の分だけ上下させる。
1トークンになっていない文字列を指定すると、その設定は無視される。
バイアス値は確率の内部表現のロジット(logit)に作用するため、パーセントやポイントで表しているわけではない。
バイアス値は-40~40の間の実数(10.2のような小数を含む数値でもOK)で指定でき、プラスで出現確率が上がり、マイナスで下がる。40以上のバイアス値は40を、-40以下は-40を指定したのと同じ意味になる。
公式ヘルプに書かれているように、バイアス値は-30~30の範囲が推奨されている。この範囲内だとしても、絶対値が大きい値を指定すると、そのトークンばかりが連続して出力されたり、一切出現しなくなったりしがちになる。
しかし、本文の流れからそのトークンが出力可能性がかなり低い場合は、多少バイアス値を上げたところでなかなか出力されない。出力可能性がかなり高い場合も同様である。
例として、本文に「焼肉定」まで書いたところで、次に来る可能性がとても高いと思われるトークン「食」のバイアスを下げる場合、本文のそれまでの文章にもよるが、-20程度まで下げても「食」が出力されやすい。-30ぐらいまで下げると「食用」や「食肉」などの別のトークンが出てくる。

バイアス値は、本文の傾向を見ながら何度か出力してみて、自分で適切な値を探す必要があるだろう。

@addbias 猫,10<<|>>犬,-7

この書き方だと、「猫」というトークンの出現確率が上がり、「犬」というトークンの出現確率が下がる。
ただし「猫」や「犬」を含むだけのトークンには影響しない。例えば「犬種」というトークンや、やみおとめモデルでの「猫の」*1というトークンなどである。
そのため「犬種」や「猫の」などのトークンは通常通りの確率で出力される。


*1 とりんさまモデルには存在しないトークン