目次 / 仕組み(構成)
Pixubus EX の仕組み(構成)
登場するのは 3 つだけ — 操作と保存をあずかる 本体(ブラウザ + サーバー)と、画像を読みプロンプトを作る llama-server。この関係さえ掴めば、1 台で動かすのも、強い GPU を別に用意するのも考え方は同じです。
全体像:本体と llama-server
ブラウザ / UI React + Vite
本体サーバー Node / Express
ジョブ管理・SQLite 保存。
llama-server Gemma4
本体と llama-server の間は、ふつうの HTTP 通信(OpenAI 互換 API)です。だから接続先を「同じ PC」「家の別 PC」「クラウド」のどこに置いても、URL を変えるだけで差し替えられます(→ 構成パターン)。セットアップが済めば外部サービスにはつながりません。すべて localhost なら完全オフラインで完結します。
なぜ ~800px の壁を越えられるのか
これが Pixubus EX の核心です。同じ Gemma4 でも、エンジンの違いで「画像をどれだけ細かく読めるか」が変わります。
| Ollama(本家 Pixubus) | llama.cpp(Pixubus EX) | |
|---|---|---|
| 画像トークン上限 | 内部で 280 固定 | --image-max-tokens で可変(本アプリ既定 1120) |
| 実質の解像度 | 約 0.65MP(≈ 803px)に縮小 | 長辺 ≈ 1600px 相当まで |
| 小さな文字・細部 | つぶれて幻覚しがち | 読める |
Ollama は画像トークン上限がコード内に固定されていて、何 px 送っても内部で縮小されます。Pixubus EX は llama.cpp を直接使い、画像トークン予算を引き上げることで、髪飾りや小さなボタンといった細部まで読ませます。検証の詳細は research/ 側のレポートにあります。
※ モデルや Ollama の仕様は変動します。数値は検証時点(2026-06)のものです。
ジョブと履歴(サーバー側で動く)
抽出・生成はジョブとしてサーバー側で実行されます。だからブラウザのタブを閉じても止まりません。あとで開き直せば、進行中なら再アタッチ、完了済みなら結果が残っています(スマホ・不安定な回線でも安心)。GPU は 1 つなので、重い処理が重ならないよう順番に処理されます。
データの保存場所
作ったものは あなたの PC の data/ の中に保存されます。
- 履歴・設定・ジョブ —
data/history.db(Node 24 組み込みのnode:sqlite)。 - 入力画像 —
data/uploads/。
まるごとバックアップするなら data/ を取れば 1 セットです(バックアップ に npm run backup あり)。
3 つの構成パターン
「本体」と「llama-server」をどこに置くかで 3 通り。どれも仕組みは同じ(本体 → llama-server)で、頭脳をどの PC に置くかが違うだけです。
パターン 1
ぜんぶ 1 台の PC で(オールインワン)
いちばん手軽。本体も llama-server も同じ PC で、その PC の GPU/CPU で動かします。まずはこれで十分。
パターン 2
家のネットワーク(2 台の PC)
ふだん使いの PC で操作し、重い llama-server だけを強い GPU の PC に置いて LAN 越しに使います(connect モード)。
パターン 3
クラウド GPU / Tailscale
強い GPU を持っていなくても、クラウド GPU 上の llama-server に接続できます。外出先のスマホから家の GPU を使う応用も(Tailscale 等)。