plasmasphere.net -プラズマスフィア ドットネット-
Diary
ローカル LLM エージェントと一緒 第零章、前史(Open-LLM-VTuber編)
2026/10/03(Sat) 14:10
これは、ローカルLLMでローカルエージェントを作って遊ぶ(運用)までの Claude 先生との記録である。
前史、自作を決意するまで
何かの動画で見つけた Open-LLM-VTuber が楽しそうだったので使ってみた。
設定項目がやたら多い、Live2dのキャラが動くだと…??ローカル LLM の OpenAI 互換 API を設定してデスクトップペットが作れるというのは分かったので、とりあえず Live2d キャラを自作してみる。
絵描ところからやるのが早いか、とりあえず生成してからやるのが早いか、悩んだ結果生成してもらうことにした。久々にローカルの Stable Diffusion WebUI を動かす。
100枚ほど生成して加工しやすそうな立ち絵を選ぶ。が、Live2d のパーツ分けが余りに大変。
この辺りは AI に任せるとヘナチョコになるのは目に見えてるので自分で画像加工したが、paint.net ではできることに限界がある。
5時間ほどかけて顔のパーツ分けが最低限完了、描きながらパーツ分けたほうが早かったのでは、判断ミスったな…等と思いつつ Live2d の設定へ。
なるほど、分からん。
ある程度設定したつもりで、Claude 先生に投げてみる。何と調整してくれた、先生は Live2d まで分かるのか…。
Live2D が Open-LLM-VTuber で動かない。そんな、Live2Dアプリ上ではちゃんと見えているのに…。
ブラウザのコンソールにはエラーが出続ける Model not ready for scaling yet
追いかけてみると以下の内容も。
[CSM][I]Live2D Cubism Core version: 05.00.0000 [CSM][E]csmHasMocConsistency: The Core unsupport later than moc3 ver:[5]. This moc3 ver is [6]. [CSM][E]Inconsistent MOC3. [CSM][E]Failed to CubismMoc.create().
どうやら Live2D 側で Cubism Editor 5.3 で書き出すと、moc3 は ver 6 になるらしい。
Open-LLM-VTuber に同梱されている Cubism Core は 05.00。つまり moc3 ver 5 までしか読めないらしい…書き出しバージョンを 4.0 に下げたらエラーは無くなった。
エラーは、である。表示はされない。
ここも時間がかかったが、結局ブラウザで持ってるキャッシュのせいだった。WASM はキャッシュがしっかり効くらしい。効きすぎかもしれん。
ブラウザの開発者ツールを開いて、Network タブで「Disable cache」にチェックを入れてリロードして解決した。
ここからが更に大変だった。
まず音声、TTS は19種類も接続が準備されているが…OS標準搭載の Edge-TTS(ななみちゃん) は声があんまり可愛くないので別のTTS、ボイスモデルを探す。piper が良さそうということで設定するが、日本語対応モデルがない。
つくよみちゃんの piper-plus モデルを拾うも multilingual is not a valid PhonemeType で再生できない。
ガーンだな、早速詰まってしまった…で調べていると AivisSpeech を見つける。まおちゃんどちゃくそ可愛いやんけ…しかし Open-LLM-VTuber の TTS選択肢 に VOICEVOX 系の項目が無い
どうしたもんかと考えていると、Claude 先生が一つ案を出してくれた。Open-LLM-VTuber には openai_tts(OpenAI互換TTS)のプロバイダがあるから、これをラッパーすればいい、と。
ブリッジは /v1/audio/speech を受け付け、OpenAIの声の名前(alloy、coral など)を、voice_mappings/aivis-speech.json でAivisSpeechの話者IDに変換する
なるほど?わからん?
ここは Claude 先生に丸投げ。どうやら GitHub にライブラリを公開してくれている神がいらっしゃったようで、ほぼ利用できた。
ちなみに AivisSpeech は AivisSpeech-Engine\run.exe を叩くとGUI無しで起動できる。
Open-LLM-VTuber を動かすための中間ライブラリを挙げるとこれらになった。
・ローカルLLM(ここでは llama.cpp で Bonsai 8B を使う、サーバ起動)
・AivisSpeech(サーバ起動)
・AivisSpeech → OpenAI互換変換用ブリッジサーバ、サーバ起動
・Open-LLM-VTuber (サーバ起動)
と、全部API通信になるからサーバが立ちまくる。
何ならローカル LLM の間に RAG も入れてる。
動いたデスクトップペットは確かに凄かった。凄かったが、使わない機能も多いし引きずられて設定項目も多くて全く制御できない。
特に自発会話がイケてない。おそらく Electron で動いてるデスクトップペット経由で発火するから、フロントで何らかのエラーが起きると全部止まる。
これはちゃんとしてる頭の良い人が使うものであって、自分みたいに到着にとりあえず進める人には合わない。
なら自分で作れば良いんじゃない(ニチャア)
と思い立ったのが6月末のこと。
ちなみに「自分で」と書いてルビは「Claude 先生に」である。
幸いな事に、システムプロンプトを注入できるローカルLLM用のソフト(RAG)は前作ってたので、これをベースに開発を進めてみる。
しかし暗礁に乗り上げる。Claude 先生の課金が切れたのだ。
元々3ヶ月限定で買ったのだけど、いい所で切れた。
Rust のコードはテメーで書くもんじゃない、そう思っていた私はローカルコーディングエージェントを探す旅に出ることになった。
