ジョブの排他制御
Inkubus はローカル LLM(Ollama)と GPU を単一リソースとして扱い、次の 4 つの処理を 同時 1 件までに絞っています。どれか 1 つが走っている間、他は開始できません。
01 全体像
小説生成バッチ / AI 1 画像を読む / AI 2 名前を考える・AI 3 プロフィールを書く / ひらめき(作品案づくり) の 4 つは、同じ Ollama / GPU を取り合うため、同時に走れるのは 1 つだけです。これにより、画像解析と小説生成が同時に走って GPU が二重占有される事故を防いでいます。なお、どの処理も生成中に画面を閉じてかまいません(裏で続き、終わると結果が保存されます)。
AI 1・AI 2・AI 3 はキャストの画面で AI に頼める 3 つのことです(キャストガイド — 3 つの AI の関係)。このページは v3.3.0 の呼び名で書いています。v3.1.0 までは、AI 2 と AI 3 をまとめて「Magic Pen」と呼んでいました。
小説生成キューが走っている途中にキャストの AI・ひらめきを挟むと、キューは自動で一時停止 → 完了後に自動再開します。
02 対象の 4 処理
| 処理 | 種類 | 所要時間の感覚 |
|---|---|---|
| 小説生成バッチ | 章単位 N 回 + 各セクション | 長時間(章数 × 単章生成 + α) |
| AI 1 画像を読む(キャスト) | 画像を読めるモデル 1 回 | 短〜中時間(モデルと GPU 次第) |
| AI 2 名前を考える・AI 3 プロフィールを書く(キャスト) | 描写から名前候補 or プロフィール 1 回 | 短〜中時間 |
| ひらめき(作品案づくり) | 原作から作品案を逐次生成 | 短〜中時間(個数ぶん) |
具体的な秒数はマシン構成・モデルサイズに大きく左右されるので明記していません。手元の環境で 1 回試して当たりを付けてください。
03 ブロックの仕方
| 実行中の処理 | 開始できなくなる操作 |
|---|---|
| 小説生成バッチ | キャストの AI 1 / AI 2 / AI 3 / ひらめき(各画面にバナー + ボタン無効) |
| AI 1 画像を読む | 小説生成 / AI 2 / AI 3 / ひらめき(ヘッダーに「キャストの AI 1 実行中」、各画面のボタン無効) |
| AI 2 名前を考える・AI 3 プロフィールを書く | 小説生成 / AI 1 / ひらめき(ヘッダーに「キャストの AI 実行中」。画面を閉じても候補・プロフィールは保存されます) |
| ひらめき(作品案づくり) | 小説生成 / キャストの AI 1 / AI 2 / AI 3(ヘッダーに実行中バッジ。閉じても裏で継続) |
AI 2 と AI 3 は同じ 1 枠を分け合います。名前を考えてもらっている間はプロフィールを書いてもらえませんし、その逆も同じです。ジョブ画面の履歴では キャスト AI 2 名前を考える のように、大きい分類と中身の 2 段で並びます。
04 キューの自動再開
待機中の小説生成キューは、キャストの AI / ひらめき の完了と同時に自動で再開します。手動で再開ボタンを押す必要はありません。寝る前に小説生成キューを積み、起きてからキャストの画像登録やひらめきを進める運用でも、合間に小説生成が自動的に進むので GPU を遊ばせずに済みます。