JanitorAI → SillyTavern カードエクスポーター
概要
JanitorAI → SillyTavern Card Exporter は、JanitorAI 上にあるキャラクターを SillyTavern の Chara Card V2 形式で使える PNG ファイルとしてエクスポートするための Tampermonkey 用ユーザースクリプトです。キャラクターページに浮かぶ操作ボタンからページ情報(名前、説明、アバターや設定)を取得し、JSON 形式のキャラ定義を PNG のテキストチャンクに埋め込んだ単一の PNG ファイルを生成・ダウンロードします。GUI は軽量で導入が容易、MIT ライセンスで配布されており、SillyTavern にキャラクターを移行したいユーザーやバックアップを取りたい開発者に便利なツールです。
リポジトリの統計情報
- スター数: 8
- フォーク数: 0
- ウォッチャー数: 8
- コミット数: 4
- ファイル数: 3
- メインの言語: JavaScript
主な特徴
- Tampermonkey 用の単一ユーザースクリプトで簡単インストール/使用
- JanitorAI のキャラクター情報を SillyTavern 用 Chara Card V2 PNG に変換
- 生成する PNG にキャラクター JSON を tEXt(または類似)チャンクとして埋め込み
- 軽量な UI(浮動アクションボタン)でページから直接エクスポート可能
技術的なポイント
このスクリプトの肝は「ページ上のキャラクターデータを取得して、PNG ファイルにメタデータとして埋め込む」点にあります。実装の流れは大きく分けて (1) DOM から必要情報を抽出、(2) SillyTavern の Chara Card V2 フォーマットに合わせて JSON を生成・整形、(3) PNG イメージを用意して JSON を埋め込む、(4) ブラウザ経由でダウンロード、の 4 段階です。
JSON の埋め込みには PNG のテキストチャンク(tEXt / zTXt / iTXt など)を利用します。一般的な実装方法としては、まずキャラクターのアバターや背景を canvas に描画して PNG バイナリ(Data URL または ArrayBuffer)を得て、得られた PNG データのチャンク列をパースして tEXt チャンクを挿入、CRC を再計算して新しい PNG バイナリを組み立てる、という手順を踏みます。Tampermonkey のスコープ内で完結するため、外部依存を最小化する設計が多く、純粋な JavaScript で PNG バイナリ操作(バイナリ文字列、Uint8Array、DataView、CRC32 計算)を行うケースが見られます。
注意点としては、クロスオリジンの画像を canvas に描画する際の CORS 制約です。キャラクターのアバターを直接取得して canvas に描くと「tainted canvas」になり、toDataURL / toBlob が使えなくなることがあります。そのため、ユーザースクリプト側で画像 URL に対してプロキシ経由で取得するか、画像データを直接 Base64 化して埋め込む手法、あるいは最小限の画像(アイコン等)だけを利用する回避策が考えられます。
また、JanitorAI の DOM 構造や内部 JSON スキーマに依存するため、サイト側の更新でスクレイピング部分が壊れる可能性があります。SillyTavern 側の Chara Card V2 仕様に準拠していることが重要で、スクリプトは JSON のキー名や形式を合わせることで互換性を保ちます。ライセンスは MIT で、userscript の形態により個人用途・コミュニティ用途で扱いやすく、保守・拡張もしやすい構成です。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.md: file
- janitorai-sillytavern-exporter.user.js: file
まとめ
JanitorAI のキャラクターを手軽に SillyTavern 用にエクスポートできる実用的なユーザースクリプトです。
リポジトリ情報:
- 名前: janitorai-sillytavern-exporter
- 説明: 説明なし
- スター数: 8
- 言語: JavaScript
- URL: https://github.com/cwlum/janitorai-sillytavern-exporter
- オーナー: cwlum
- アバター: https://avatars.githubusercontent.com/u/189766284?v=4
READMEの抜粋:
JanitorAI → SillyTavern Card Exporter
A Tampermonkey userscript that exports JanitorAI characters as SillyTavern-compatible Chara Card V2 PNGs. The script surfaces a floating action button on character pages, captures page data, embeds the JSON definition inside a PNG text chunk, and s…