ヘルプTOP / 使い方ガイド / 仕組み

仕組み

Morphifexは4つの部品でできています。ブラウザーの画面、手元で動くサーバー、Ollama、そして保存先のSQLiteです。どこまでが自分の端末の中で完結するかを、ここで確認できます。

4つの部品

ブラウザーの画面作成条件を選び、結果を見るところ。Reactで書かれています。表示と操作だけを担当し、生成そのものは行いません。
手元のサーバーNode.jsで動く本体。画面からの依頼を受け、指示を組み立ててOllamaへ渡し、返ってきたコードを検査して保存します。
Ollamaモデルを動かす側。MorphifexはOllamaのHTTP APIを呼ぶだけで、モデル本体を持ちません。既定の接続先はhttp://localhost:11434です。
SQLite保存先。作品、生成履歴、設定、計測結果をすべて1つのファイルへ入れます。

依頼が流れる順番

  1. 画面 → 手元のサーバー

    選んだ題材、モデル、仕上がりの条件が送られます。

  2. サーバーが指示を組み立てる

    作品の種類ごとに決まった指示文と、利用者が選んだ条件を合わせます。Ollamaへ明示する生成オプションはnum_ctx(コンテキスト長)だけで、温度や乱数の種は指定しません。既定はどの種類も32,768です。作成画面の「コンテキスト長」から変更でき、変えた値はその種類だけに残ります。出力がこの長さに達すると途中で打ち切られるため、そのときは画面がコンテキスト長不足だとお知らせします。

  3. サーバー → Ollama

    1つのモデルへ1件ずつ依頼します。返答は届いたところから順に画面へ流れ、進み具合が見えます。

  4. 検査して保存

    返ってきたSVGやHTMLを安全確認にかけ、通ったものだけをSQLiteへ保存します。

どこまで出ていくのか

Morphifexが送るのは、作品を作るための指示だけです。テーマと追加の希望、生成設定、互換機能で参照画像を使う場合はその一時画像が該当します。送り先は設定したOllamaの接続先で、そこより先へ出す経路をMorphifexは持っていません。

同時に1件しか動かない理由

モデルはVRAMを占有するので、2つ同時に載せると入りきらないか、どちらも遅くなるためです。Morphifexはサーバー全体で同時に1件だけ作業を持ちます。モデルを比べるときも、まとめて生成するときも、1件ずつ順番に処理します。どれだけのVRAMが要るかは動かすモデル次第で、実測はモデルと速度の目安にあります。

作業中に別の生成を頼むと、サーバーは受け付けずに断ります。実行中の作業は画面上部のバーに常に表示され、そこから作業画面へ戻ることも、停止することもできます。生成はサーバー側で進むので、画面を離れても止まりません。

サーバーを再起動したときは、起動時に実行中だった記録を「中断」「停止」へ書き換えます。完了済みの部分と残りの試行回数は残るので、続きから再開できます。

保存先は1つ

保存先はMorphifexフォルダー直下のdata/app.sqliteだけです。作品、生成履歴、SVG、WebゲームのHTML、アプリの設定は、すべてこのファイルが正本になります。PNGはファイルとして持たず、必要になったときに作ります。今後ファイルが増える場合も、data/の中だけに置きます。

SQLiteはWALモードで、外部キーを有効にして動かします。退避と復元の手順はバックアップを参照してください。

このファイルの外に残るものもあります。ブラウザーのテーマ、サイドバーの開閉、接続先ごとに選んだモデルはブラウザー側の保存で、書き出したSVGやPNGは利用者が置いた場所にあります。どちらもバックアップの対象外です。

オフライン方針

Morphifexは、次のものを使わない前提で作っています。

ログインやユーザー管理も実装していません。単一の利用者が手元で動かすローカルアプリです。表示は日本語のみです。

ポートと待ち受け

通常起動画面、API、ヘルプをすべて3030番から配ります。ブラウザーでhttp://localhost:3030/を開きます。
開発モード画面が5194番、APIが3030番に分かれます。
待ち受けホスト既定は0.0.0.0で、同じLAN内の端末からも開けます。HOST=127.0.0.1にすると、その端末だけに限定できます。
ポートの変更環境変数PORTAPI_PORTWEB_PORTで変えられます。