≡ menu 
 × menu 

cnnmmd

概要


各種アプリとその成果物をつなぐツールの、試作版です。

さまざまな創作活動(小説・音楽・絵画・映像・造形)の支援を目的に、このツールを作成しています。

当面のサンプルとして、各種キャラクタと各種 AI エンジンをつなぐパーツ群を試すことができます:



この動画の解説(権利関係ふくむ)は、次に記載しています:
dscmov

このサンプルの特徴は:

各種キャラクタと各種 AI エンジンを、柔軟に組み合わせることができる[※1]
任意のトリガとアクションを、いくつでも設定可能[※2]
パーツの選択とフローの作成(構成と流れ)は、GUI / CLI の両面に対応[※3]
フルのカスタマイズと、プラグインの作成〜共有[※4][※5]

※1
いろいろなキャラクタ(自作〜既製、仮想(2D 画像~3D モデル、ウェブブラウザ/デスクトップ/VR/MR)〜現実(ドール/フィギュア)、……)と、さまざまな AI エンジン(音声認識/音声合成/言語生成/感情分析/物体認識、ローカル/リモート/クラウド、CPU / GPU / API、……)を、結び付けることができます。
※2
基本のフローは、ユーザとキャラとの一対一の会話(チャット)ですが、キャラどうしの多対多の会話も可能です(メモリ機能)。また相互作用に使えるエンドポイント数に制限はないので、トリガ(環境の変化)とアクション(人物の動作)の制御で、多様なふるまいをさせることもできます(感情分析の結果で表情を変える、キャラに触れたら相応のふるまいをさせる、など)。
※3
会話のフローは視覚的に作っていけるので、この場合はコードを書く必要はありません(ComfyUI / DAG)。いっぽうスクリプトを書くことで、分岐や反復などの複雑なフローにも対応できます(LangGraph / state machine, ...)ーーいずれも、ブロックを組むようにフローを構成し〜組み替えていけます(たとえば、生成した画像をマイコンの画面に投げたり、変換のノードをひとつ変えて、ウェブブラウザ向けのフローをゲームエンジン向けに転用したり、など)。
※4
ツールのすべてをカスタマイズし、プラグインを作成〜共有できます(ツールのコア部分もプラグインになっています)ーー自作のモデルやサーバを組み込み、必要なコンテナを個別に動かすことができます。そのためのプラグイン群の設置〜削除・起動〜停止の手順は、すべて統一しています。
※5
いまは言語生成モデルを使うことで、サーバの設定からコードの作成まで、すべて自分で行えます(このツールが提供するプラグイン群にもそうやって作ったものがあり、いずれもサンプルのひとつでしかありません)ーー自分が好むインタフェースとスタイルで、キャラクタとの会話アプリを作り上げていくことができます。

images
images
images
images
images
images
images
images
images
images

対象


次のような方に向けたサンプルです:[※1]

自作のキャラと会話したい
会話のしくみを作りたい

※1
作ることに興味がある人、が対象です(なお、AI を利用したチャット・アプリはすでにたくさんあり、ほとんどが豊富なカスタム機能を提供していますーーそれで十分な場合、このツールは不要かもしれません)。

環境


現時点で、次のキャラクタ群と AI エンジン群の接続を検証済みです:

キャラクタ群(=クライアント側のデバイス+アプリ)
ワークフロー上(ComfyUI)
 + 携帯端末+ OS (iOS / Android)/ PC + OS(Windows / macOS / Linux)
ウェブブラウザ
 + 携帯端末+ OS(iOS / Android)/ PC + OS(Windows / macOS / Linux)
デスクトップ・アプリ(Electron)
 + PC + OS(Windows / macOS / Linux)
ゲームエンジン(Unity)
 + PC + OS(Windows / macOS)
VR/MR アプリ(Unity / Virt-A-Mate)
 + VR/MR 機器(Quest)+ PC(Windows)
マイコン:ベアメタル(M5Stack)
 + LCD/マイク(M5Stack)
フィギュア(ねんどろいどどーる)
 + マイコン:ベアメタル(M5Stack)+マイク/カメラ/スピーカ/モータ(M5Stack)
AI エンジン群(=AI 関連のモデル稼働/サービス利用)
音声認識モデル:
・ローカル(wav2vec2-large-japanese [GPU] / OpenAI: Whisper [CPU / GPU])
・サービス(OpenAI: Whisper [API])
音声合成モデル:
・ローカル(VOICEVOX [CPU] / Style-Bert-VITS2 [CPU / GPU])
・サービス(NIJI Voice [API][※1]
言語生成モデル:
・ローカル(Gemma 3n [CPU / GPU] / Vecteus-v1 [GPU])
・サービス(OpenAI: GPT [API] / NovelAI [API])
感情分析モデル:
・ローカル(luke-japanese-large-sentiment-analysis-wrime [GPU])
・サービス(OpenAI: GPT [API])
画像生成モデル:
・ローカル(* [GPU])
・サービス(OpenAI: DALL-E [API] / NovelAI [API])
物体認識モデル:
・ローカル(OpenCV: Haar Cascades [CPU])
中継サーバ(=サーバ間/サーバ〜クライアント間の通信を中継するサーバ)
PC + OS(Windows (WLS2 (Linux (Ubuntu))))
 + コンテナ(Docker / Docker Desktop)
PC(Mac)+ OS(macOS)
 + コンテナ(Docker Desktop)
PC + OS(Linux (Ubuntu))
 + コンテナ(Docker)
マイコン(Raspberry Pi)+ OS(Linux (Ubuntu))
 + コンテナ(Docker)

キャラクタ群(=キャラクタが動作するデバイス+アプリ)は、画像/映像/3D/VR/MR/フィギュアなど、仮想から現実までの媒体との接続を検証しています。AI エンジン群(=AI 関連のモデル稼働/サービス利用)は、CPU/GPU での稼働と API 呼び出しに対応した、音声認識/音声合成/言語生成/感情分析/画像生成/物体認識を試しています。それらをつなぐ中継サーバは、パソコンからマイコンまでの環境で動作します。

クライアント群/サーバ群/エンジン群のコードは、あくまでサンプルとして提供しています(十分な動作を保証するものではありません)ーーこのツールは、中継サーバのハンドラ群と、そのワークフロー(=ハンドラ群をノードとしてつなぐフロー)の作成を提供するものです。
※1
Niji VoiceのAPI 利用ハンドラは、学習元(音声)の権利関係が不明となったと考えるので、リポジトリから削除しました(2025.11.08):
https://x.com/JAU_Official/status/1986664719441404392

制約


現時点で、次の制約があります:

ツールの利用には、コンテナが必要です[※1]
現時点で、会話のやり取りの接続は不安定です[※2]
後方互換性は保証していません

※1
制限なく各種 AI エンジンを使えるよう、アプリ間の競合を防ぐために OS のコンテナ技術(Docker)を使用しています。
※2
性能の低い機器(ベアメタルのマイコンなど)でもクライアントのコードを簡易に実装できるようにしたので、いまのところ通信は、HTTP によるポーリングのみです。ストリーミングも、まず簡易版からの実装になります(WebSocket / WebRTC の追加は、そのあとの予定です)ーータイミングが合わないと、サーバとクライアントの接続は失敗します。そのようなときは、中継サーバや GUI のワークフロー作成環境(ComfyUI )を、いったん停止〜起動するなどの対応が必要になります。

権利


このツール独自のコードは、次のライセンスのもとに配布します:

MIT License

このツールが使用するリソース群(モデル群/ライブラリ群/アプリ群)は、それぞれの権利を有しますーーとくに取り扱いに注意が必要なリソースは、各プラグインの説明に明記しています。[※1]


※1
このツールのエンジンが使うモデルには(音声合成モデル、画像生成モデル、映像生成モデル、など)、個人が訓練した音声・画像・映像などを利用できるものもありますーー個人的な利用にとどまる以上に、肖像権・著作権・著作者人格権を侵害する行為に対しては、このツールが使用されることを想定していません。