NovelAI Tag Manager v4.6.0を公開しました。
主な更新内容
NovelAI との間で、プロンプトの素材をそのまま持ち運べるようにしました。
NovelAI 側にも、候補からランダムに選ぶ書き方(Randomizer)と、よく使う一文をまとめて呼び出す仕組み(Prompt Chunk)があります。これまでは、同じ内容を本アプリと NovelAI の両方で作り直すしかありませんでした。
今回、その行き来を全部つなぎました。貼って取り込む、選んでコピーする。それだけです。
NovelAI の Randomizer を、そのまま抽選の候補にできます。
バリエーションタブにNovelAI Randomizerから取り込みを追加しました。押すと入力欄が開くので、プロンプトを丸ごと貼り付けてください。
“`
1girl, ||red hair|blue hair|green hair||, ||smile|serious||, masterpiece
“`
|| で囲まれたところだけを見つけて、候補のグループにします。上の例なら 2 つのグループ(髪の色 3 件、表情 2 件)ができます。|| の外側にある普通のプロンプトは取り込みません。 また、いま画面で組み立てているプロンプトも変わりません。
取り込む前に確認画面が開きます。グループ名は仮に「Randomizer 1」「Randomizer 2」と付くので、分かる名前へ変えてから取り込んでください。行を選ぶと、候補の中身も確かめられます。
候補の中のカンマは分けません。 ||red hair, long hair|blonde|| の 1 つ目は「red hair, long hair」で 1 つの候補です。同じ候補が 2 回出てくる場合も、そのまま残します。出る確率が変わってしまうためです。
逆に、本アプリのタググループを Randomizer として渡せます。
NovelAI Randomizerとしてコピーで、選んでいるタググループを ||a|b|c|| の形にしてクリップボードへ入れます。NovelAI のプロンプト欄へそのまま貼れます。
ただし Randomizer は「候補から 1 つ選ぶ」だけの書き方です。重み・抽選方式・抽選する件数・発動率・固定(Lock)・バリエーションシードは、渡す先に置き場所がありません。 これらを設定しているグループをコピーしようとしたときは、何が失われるかをお伝えして、確認してからコピーします。
候補に | やバックスラッシュが入っているときはコピーを止めます。NovelAI の書き方には、この文字を「ただの文字」として逃がす方法が用意されていません。勝手な逃がし方を決めると、貼った先で候補の切れ目がずれるためです。
書き出した設定つき Wildcard を、設定ごと読み戻せるようになりました。
これまで .natm-wildcard.json は書き出せるだけで、読み込む先がありませんでした。バリエーションタブのNATM Wildcard JSONを読み込みから取り込めます。
候補の並び順と重複、候補ごとの名前と重み、抽選方式、抽選する件数の下限と上限、発動率、同じ候補を続けて選ぶかどうか、有効・無効。書き出したときの設定がそのまま戻ります。
いつも新しいグループとして作ります。 同じ名前のグループがあるときは (2) を付けます。取り込みで既存のグループが書き換わることはありません。
固定(Lock)については、ひとつだけご承知おきください。この形式には「固定していたかどうか」しか入っておらず、そのとき何が選ばれていたかまでは入っていません。 取り込んだ直後に選ばれたものを固定します。以前の抽選結果そのものを戻したいときは、プロジェクトか生成履歴をお使いください。
画像から復元するとき、抽選前と抽選後のプロンプトを見分けます。
NovelAI で Randomizer を使って生成した画像には、|| を含んだままの元のプロンプトと、実際に選ばれた結果の実際のプロンプトが、別々に記録されていることがあります。これまではどちらか一方を読むだけで、区別が付きませんでした。
「画像から復元」の確認画面で、読み取れた場合は 2 行に分けてお見せします。
“`
☐ プロンプト(Original) 1girl, ||red hair|blue hair||, smile
☐ プロンプト(Actual) 1girl, blue hair, smile
“`
どちらか一方だけを選べます。 両方入れてしまうと、どちらで作った絵なのか分からなくなるためです。
候補と実際のプロンプトを突き合わせて、どれが選ばれたのかも表示します。
“`
Randomizer 1
red hair
blue hair ← Actualで選択
“`
1 通りに決まらないときは「未確定」とお伝えします。 前後の言い回しが同じで見分けが付かない場合、あとから手で書き換えた場合などです。それらしい候補を選んだことにはしません。
Randomizer を使っていない画像の見え方は、これまでと変わりません。
Set と NovelAI の Prompt Chunk を行き来できます。
NovelAI の Chunk は「使い回すプロンプトのかたまり」で、本アプリの Set タグ 1 行と役割が同じです。Set タブに 2 つのボタンを足しました。
- Prompt Chunkから取り込み — 貼り付けた文字列を、そのまま 1 つの Set タグとして登録します
- Prompt Chunkとしてコピー — 一覧で選んでいる Set タグの本文をコピーします
こちらもカンマで分けません。強調の記号や改行も、そのまま持ちます。
追加タグ 1〜6 はコピーに含めません。 あれは Set を選んだあとに足すもので、Chunk そのものの中身ではないためです。
!macro:名前! の書き方は、展開も削除もせずそのまま残します。展開先は NovelAI 側にしかないので、本アプリで解決したふりはしません。取り込むときに「未解決のまま持っています」とお伝えします。
この 2 つは Android 版にもあります。
これまでとの互換性
- v4.5.0 までのデータベースをそのまま開けます。データベースの構造は 1 か所も変えていません。
- 抽選のしくみとバリエーションシードは変えていません。同じシードなら、これまでと同じ結果になります。 今回足したのはプロンプトの受け渡しだけです。
- 以前に書き出した
.natm-wildcard.jsonも読み込めます。新しく書き出したものには有効・無効の状態が増えますが、古い版でも読めます。 - これらの機能を使わなければ、動作はこれまでと変わりません。
そのほか
- 今回の更新はダウンロード量が少し大きくなります(約 5MB)。 同梱している .NET ランタイムを 10.0.11 から 10.0.12 へ更新したためです。ランタイムの更新にはセキュリティ修正が含まれるため、そのまま同梱しています。ランタイムが変わらない次の版では、通常の大きさ(1MB 未満)へ戻ります。
- 取り込みの確認画面に、候補と抽選設定を確かめるプレビュー欄を足しました。行を選ぶと中身が出ます。
- 確認画面の「同じ候補が重なっている行はまとめる」「# で始まる行はコメントとして読み飛ばす」は、
.txtを取り込むときだけの設定です。JSON と Randomizer では使わないので、灰色にしてあります。 - 長い文字列を貼り付ける入力欄は、大きさを変えられるようにしました。
- NovelAI の Chunk ファイルの読み込みや、クラウドのライブラリとの同期には対応していません。今回はプロンプト本文の受け渡しだけです。
- Randomizer の入れ子(候補の中にさらに候補を書く形)は読みません。
アップデート方法
インストーラー版をご利用の方は、起動時の自動アップデートで更新できます。新規インストールや手動で入れ直す場合は、紹介ページから最新版のSetup.exeを取得してください。
