雑記帳
- 従来の日本語選択からのDanbooruタグを利用してプロンプト組み立てて画像を生成する機能とは別に、VLMをバックエンドにしてチャットしながら画像を生成できるモードを実装中。
- VLMは入力された画像や文章からプロンプトを組み立てて、システムがComfyUIに投げて画像を生成する仕組みで進めている。
- チャット形式で生成された画像にダメ出しするとプロンプトを内部で調整して再生成できる。簡易版のChatGPT Imagesみたいなイメージ。
- 生成画像はセッションに紐づく形で、気に入った画像だけ履歴ライブラリに保存できる。
- セッションを削除するとライブラリに保存してない画像は一緒に消える。
- 想定している機能を実装したつもりなんだが、VLMが吐き出す生成プロンプトにreasoningの内容なんかが混じることがあるので調査中。どうしても、VLMのパラメータ数が少なすぎるので仕方ないとは思うけど。システム側でどう吸収するかというところ。
- 最終的には入力内容に応じてInpaintで済ませたりとか、そういった処理内容の分岐みたいなのを自動判断できるようにしていきたいところ。
AIラジオ
- 完成でいいかなと思っていたが、実際使い始めるといくつか問題が発覚。
- まず、RSSの読み込みに関して完全ランダムなので、更新頻度が高くて記事数の多いサイトのニュースの話題ばかりになってしまっていた。サイトごとにローテすることで改善。
- 次になんだか同じ曲ばかり流れる気がしているのでそれについても改善中。
- 原因の一つ目はMacBook内のローカル音源ファイルについてMP3とM4Aを合計で140個ほど用意したが、なぜかM4Aファイルが使われていなかったのでそれを改善中。
- もう一つはニュース同様に完全ランダムになっていたので、いわゆるシャッフルしたうえでのループ再生を実装することで対応予定。
- Codexからの通知音声に関しても、たぶん通知が来てから毎回音声を生成しているはずなので、状況別の固定音声をシステム起動時にあらかじめ生成しておいてそれを毎回使うことで通知音声再生までのラグを減らしたいところ。
その他
- 禁酒と引き換えにChatGPTのプランをPlusからPro 5xに変更した。
- AIでのアプリ開発が捗るし、健康にもなれる。いいことしかない(謎)
- 作業できる量が増えたんだが、Plusの時にトークン節約のためにやっていた極力Luna Maxに作業を委譲する方針だと作業速度が遅い。
- AGENTS.mdを修正して改善するかどうかを試そうと思っている。
AIラジオ
- Codexに作業させている間は動画見ながらFGOの周回したりしてるんだけど、動画見るのも飽きてきたし、動画はどうしても目が持っていかれる。
- ということでLLMとTTS使ってラジオができないか?ということで作り始めた。
- 各種ニュースサイトとかのRSSフィードから記事を取得。記事内容とランダムに選択したローカルのMP3音源データを元にしてラジオのナビゲーター2人の台本をLLMで作成。それをTTSに読み上げさせる。読み上げ終了後に音源を再生。曲を再生している間に次の台本データと読み上げ音声を生成してループという感じ。
- 曲の再生中に音声を生成するため最初の再生開始に若干時間がかかるもののそれ以降はスムーズ。
- Codexで作業中の場合は、承認を求められたり作業が完了した時には音楽再生とかを中断して速報的に報告が入るようにもした。
- ナビゲーター二人の設定プロンプト画面とか、Irodori-TTSの読み方がブレたりそもそも読めない単語の読み方を登録する辞書機能など、基本機能は実装できた。日常用途では困らないからもう完成でもいいかなと思ってる。
- 思いついてから今に至るまで作業時間は実質2日ほど。
日本語ベンチマークが欲しい
- 自分で作ってるロールプレイチャットのシステムに合っているモデルの選定のためのベンチマークツールが欲しい。次に作るのはこれかな。
- 単純な日本語の堪能さと、キャラクターを演じてそれを維持し続けられるかどうかというのは別に感じるんだよね。
- 今のところ私が手動で試して何となくでいい悪いを判断しているから、定量的に同じ条件で判断できるようにしたい。
- ただ、審判役のLLMが高性能じゃないとそもそも意味ないから、ベンチーマークシステムの出力をChatGPTあたりに渡して判断させる方式にしたい。従量課金は避けたいからAPI連携はなしかな。
ロールプレイチャットシステム
- メインのチャット用のサーバーとは別にバックグラウンドサーバーを指定してステータスなどの自動更新を実装した。
- 今までの手動機能をほぼそのまま自動で実行するようにしただけ。
- メインチャットはOllamaのクラウドモデル、バックグラウンド処理はローカルのLM StudioでGemma4-26B-A4BのMLX版を動かすことで現状は対応している。完全ローカルの場合はメインをGemma4-31Bにする必要があるので、バックグラウンド処理はGemma4-E4Bあたりにしないと厳しそう。
- システムのファビコンが現状のUIイメージと合ってなかったので適当にAIに作らせて手元のAffinityで調整して差し替えた。
- .commandファイルで起動して、Ctrl+Cで終了というのが面倒だったので、起動用のランチャーアプリをCodexに実装させた。Dockで起動と終了ができるようになったので便利。
画像生成用GUI
- 前述のファビコンの差し替えについてなかなか反映されなかったので、Safariブラウザ内データを消すかと作業したら、当然IndexedDBに保存していた本システムのデータも吹き飛んだ。
- タグ辞書とかチェックポイントやLoRAの登録情報、画像の生成履歴が丸ごとなくなった。ComfyUIがバックエンドなのでモデルデータ自体はそこに残っている。消えたのはあくまで参照情報だけ。
- そもそもブラウザ内に保存しておくのが良くないわけで、ということでロールプレイチャットシステムと同様にSQLiteに移行すべく作業を始めたとこ。
- 移行完了後の作業として、LoRAの再登録はまぁいいんだけど、タグ辞書の再登録がめんどくさいなぁ。こまめにバックアップ取っておくべきだったわ。
その他
- ローカルLLM動かしたいからということで今MacBook Pro買うのはあんまりおすすめできないなぁと。
- とはいえMacStudioはいつ出るかわからんし、十分なサイズのLLMを動かそうとすると200万とか300万とかになりそう。
- M5 Maxにするならメモリ128GB一択。M5 Proなら64GBが良さそう。メモリ64GBにした時の価格がMaxとProで20万くらい違う。
- LLM目的なのにユニファイドメモリをケチって36GBとかにするのはお金の無駄なのでやめた方がいい。個人的にはMacBook ProならM5 Maxの128GB以外選択肢ないと思う。
- あとMacの場合、標準の状態だとユニファイドメモリの75%をVRAMとして利用できる。128GBなら96GBがVRAM扱い。割り当てを無理やり変更もできるけど、結局macOS動かす分とかは確保しておかないとダメだしね。VRAM128GBとか最強やんけっていうのはそうじゃないので要注意。これはDGX Spark互換機も同じ話。
- 今買うならAmazon.comでASUS Ascent GX10がやたら安い。関税とか送料とか考慮してもたぶん安い。日本のAmazonで売ってるやつ転売品じゃねーの?と思ったり。2台買うと楽しいかもしれない。
- あとはRTX5090積んだゲーミングPCにRAMを128GBとか192GBとか積んでFreeToken使うとか? GPU代だけで死ぬほど高いけど。
- RTX50系のVRAM16GB以上のモデルを使っててRAMが最低64GBできれば128GBとかあるとFreeTokenためしてみてもいいかも。
- LLM目的だけ考えると NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition が最強な気もするけど、それを買うお金でRTX5090積んだPCが余裕で組めそうなのでコスパとしてどうなのか。
- 明日からChatGPT PlusにCodex使用量の5時間制限が復活するらしい。主に週末にまとめて作業する民としては厳しい。
- 断酒して酒代をChatGPT Pro代に充てるかわりと真面目に考えている。
キャラ状態管理に関して検討
- 何となくそんな気はしていたが reasoning がボトルネックなことがわかったので、推論オフできちんと動作するLLMモデルを選定中。Codexに色々テストさせているところ。MoEモデルであることはほぼマスト。
- 更新などのバックグラウンドモデルを動かすLLMサーバーはLM StudioよりもoMLXのほうがいいのかなぁ、と思ったので比較してみる予定。
その他
- キャラクターとユーザープロファイルの組み合わせをベースに管理されてないデータがあったので整理した。
- 新しいセッションを作ったら前のセッションは進行できないようにする予定。新セッションを削除して前セッションに巻き戻せるようにするイメージでいる。そうしないとステータスとかシーン情報と矛盾が生じちゃうんだよね。
- そういう構造にするのであれば、キャラクターとユーザー間での作中時計があると面白そうだなと思った。恋人になった日を覚えてないとキャラクターからの好感度が下がったり。
- 以前書いたキャラクター側から話しかけてくるというのは今回のシステムと相性が良くないのでやめた。それについてはLLM連動のデスクトップマスコットでやることにしている。基本実装だけは済んでいるんだけど、ロールプレイチャットの方で忙しくてそれ以上進められていない。キャラクターアニメーションの導入、好感度による関係性の変化、記憶に関してのベクトル検索などやりたいことは色々あるんだけどね。