Skip to content

Characters API

プレフィックス: /api/characters

この router はキャラクタープロファイル、モデル割り当て、ペルソナ導入、キャラクターカード、マイク選択、音声ライフサイクルを管理します。コレクション route は末尾スラッシュなしの GET /api/characters です。

キャラクターとモデル状態

メソッドとパス用途
GET /api/charactersキャラクタープロファイルを列挙。リクエスト言語に応じて編集フィールド名をローカライズできます。
POST /api/characters/catgirlJSON プロファイルからキャラクターを作成。
PUT /api/characters/catgirl/{name}既存キャラクターの変更可能フィールドを更新。
DELETE /api/characters/catgirl/{name}安全なパス名でキャラクターを削除。
POST /api/characters/catgirl/deleteJSON body で削除。URL に安全に置けない過去の名前向けです。
POST /api/characters/catgirl/{old_name}/renameキャラクター名と関連状態を移行。body: { "new_name": "..." }
GETPOST /api/characters/current_catgirl現在のキャラクターを取得または選択。POST body: { "catgirl_name": "..." }
POST /api/characters/reloadストレージから設定を再読み込み。
POST /api/characters/masterマスタープロファイルを更新。
POST /api/characters/master/{old_name}/renameマスタープロファイルを改名。
POSTGET /api/characters/set_microphone/get_microphoneマイクを保存または取得。POST は microphone_id、任意で microphone_name

名前にはパス安全性と長さの検証があります。多くの書き込み API は { "success": true } 形式のアプリケーション envelope を返し、不正 JSON、名前、未存在、競合、書き込みフェンスは操作に応じて 400404409503 になります。

モデル割り当て

メソッドとパス用途
GET /api/characters/current_live2d_model現在または指定キャラクターの Live2D、VRM、MMD、PNGTuber 割り当てを解決。任意 query: catgirl_nameitem_id
PUT /api/characters/catgirl/l2d/{name}モデル割り当てを更新。歴史的な l2d 名ですが、現行モデル種別を扱います。
PATCH /api/characters/catgirl/{name}/touch_set現在モデルのタッチ動作セットを置換。
PUT /api/characters/catgirl/{name}/lightingVRM ライティングを更新。
GETPUT /api/characters/catgirl/{name}/mmd_settingsMMD の描画、物理、照明、ポインター追従設定を取得・更新。

ペルソナ選択

メソッドとパス用途
GET /api/characters/persona-presetsローカライズ済み内蔵プリセットを列挙。
GETPOST /api/characters/persona-onboarding-state初回ペルソナ導入状態を取得・更新。
POSTDELETE /api/characters/persona-reselect-current現在キャラクターの再選択要求を設定・解除。
GETPUTDELETE /api/characters/character/{name}/persona-selection指定キャラクターの選択を取得・設定・解除。

キャラクターカードとポートレート

メソッドとパス用途
GET /api/characters/character-card/list保存済みカードを列挙。
POST /api/characters/character-card/saveインポートしたカードデータを設定へ保存。
POST /api/characters/catgirl/save-to-model-folderパッケージ用にカードをモデルフォルダーへ保存。
GET /api/characters/catgirl/{name}/exportプロファイルとモデル archive を埋め込んだ PNG カードを export。
GET /api/characters/catgirl/{name}/export-settingsモデル素材なしで設定だけを export。
POST /api/characters/import-cardmultipart zip_file を import。card_image は任意。
GET /api/characters/card-facesカード面データを列挙。
GET /api/characters/card-metasカードの由来・メタデータを列挙。
GETPUT /api/characters/catgirl/{name}/card-meta1 枚のメタデータ JSON を取得・更新。
GETPUT /api/characters/catgirl/{name}/card-faceカード面画像を取得・アップロード(image)。
POST /api/characters/catgirl/{name}/export-with-portraitmultipart portrait で export。include_model の既定値は true。

export は JSON ではなくファイルを返します。upload/import はファイル名、サイズ、archive entry、パス境界を検証し、通常 400 または 413 を返します。

音声操作

メソッドとパス用途
GET /api/characters/voices現在の provider 設定で利用可能な音声を列挙。
GET /api/characters/voice_preview必須 voice_id のローカライズ済み試聴を生成。language/i18n_language は任意、JSON に base64 音声を返します。
PUT /api/characters/catgirl/voice_id/{name}キャラクターへ voice ID を割り当て。
GET /api/characters/catgirl/{name}/voice_mode_status音声モード状態を取得。
POST /api/characters/catgirl/{name}/unregister_voiceカスタム音声割り当て・登録を解除。
POST /api/characters/clear_voice_ids全キャラクターのローカル voice ID を消去。
GET /api/characters/custom_tts_voicesカスタム TTS 音声を列挙。任意 provider filter。
POST /api/characters/voicesJSON からカスタム音声を登録。
DELETE /api/characters/voices/{voice_id}登録済み音声を削除。
POST /api/characters/voice_clonemultipart 音声から clone。fileprefix 必須、provider 固有フィールドも受付。
POST /api/characters/voice_clone_direct検証済み直リンク音声から登録/clone。プライベートネットワークや危険な redirect は拒否。
POST /api/characters/voice_designproviderprefixvoice_prompt から再利用可能な音声を作成して保存。対応 provider と制約は TTS provider registry に従います。
POST /api/characters/voice_design_previewElevenLabs voice design の候補を生成。
POST /api/characters/voice_design_create選択候補を再利用可能な音声として保存。
POST /api/characters/audio/analyze_silencemultipart file の無音区間を解析。
POST /api/characters/audio/trim_silencemultipart file を trim。task_id は任意。
GET /api/characters/audio/trim_progress/{task_id}trim 進捗を取得。
POST /api/characters/audio/trim_cancel/{task_id}trim 中止を要求。

Provider エラーは JSON envelope に入り、分類可能な場合は HTTP 4xx/5xx も使います。Provider 固有フィールドと音声 catalog は実行時データであり、provider 間の固定 schema ではありません。

実装で確認した route 一覧

text
GET    /api/characters
GET    /api/characters/character-card/list
POST   /api/characters/catgirl/save-to-model-folder
POST   /api/characters/character-card/save
GET    /api/characters/catgirl/{name}/export
GET    /api/characters/catgirl/{name}/export-settings
POST   /api/characters/import-card
GET    /api/characters/card-faces
GET    /api/characters/card-metas
GET    /api/characters/catgirl/{name}/card-meta
PUT    /api/characters/catgirl/{name}/card-meta
GET    /api/characters/catgirl/{name}/card-face
PUT    /api/characters/catgirl/{name}/card-face
POST   /api/characters/catgirl/{name}/export-with-portrait
POST   /api/characters/catgirl/{old_name}/rename
GET    /api/characters/current_catgirl
POST   /api/characters/current_catgirl
POST   /api/characters/reload
POST   /api/characters/master
POST   /api/characters/master/{old_name}/rename
POST   /api/characters/catgirl
PUT    /api/characters/catgirl/{name}
POST   /api/characters/catgirl/delete
DELETE /api/characters/catgirl/{name}
POST   /api/characters/set_microphone
GET    /api/characters/get_microphone
GET    /api/characters/current_live2d_model
PUT    /api/characters/catgirl/l2d/{name}
PATCH  /api/characters/catgirl/{name}/touch_set
PUT    /api/characters/catgirl/{name}/lighting
PUT    /api/characters/catgirl/{name}/mmd_settings
GET    /api/characters/catgirl/{name}/mmd_settings
GET    /api/characters/persona-presets
GET    /api/characters/persona-onboarding-state
POST   /api/characters/persona-onboarding-state
POST   /api/characters/persona-reselect-current
DELETE /api/characters/persona-reselect-current
GET    /api/characters/character/{name}/persona-selection
PUT    /api/characters/character/{name}/persona-selection
DELETE /api/characters/character/{name}/persona-selection
POST   /api/characters/audio/analyze_silence
POST   /api/characters/audio/trim_silence
GET    /api/characters/audio/trim_progress/{task_id}
POST   /api/characters/audio/trim_cancel/{task_id}
POST   /api/characters/voice_clone
POST   /api/characters/voice_design
POST   /api/characters/voice_design_preview
POST   /api/characters/voice_design_create
POST   /api/characters/voice_clone_direct
GET    /api/characters/voices
GET    /api/characters/voice_preview
PUT    /api/characters/catgirl/voice_id/{name}
GET    /api/characters/catgirl/{name}/voice_mode_status
POST   /api/characters/catgirl/{name}/unregister_voice
POST   /api/characters/clear_voice_ids
GET    /api/characters/custom_tts_voices
POST   /api/characters/voices
DELETE /api/characters/voices/{voice_id}