# GALLERIA 2台でH3動画を生成する運用手順

更新: 2026-08-23

## 目的

GALLERIA1(gpc001) と GALLERIA2(gpc002) の2台を使い、1本の動画を5秒前後のカットに分けて並列生成する。COMは管理画面と公開用コピーの置き場に限定し、完成動画の正本はストレージ容量が大きいGALLERIA2のSSDへ保管する。

## 画面

- 管理画面: https://www.delivery-wine.com/share/h3-manager/
- 2台ノード状況: https://www.delivery-wine.com/share/h3-manager/galleria-nodes.php
- ジョブ詳細例: https://www.delivery-wine.com/share/h3-manager/job.php?id=20260822-195947-10

どのページもBASECORD公式ヘッダーを読み込む。ページ本文はライトデザインを維持する。

## 2台生成の基本

1. 管理画面でプロンプトをカットごとに `---` で区切る。
2. 振り分けを `自動 GALLERIA 2台多め` にする。
3. 5秒動画なら `124フレーム` を選ぶ。
4. 10秒動画なら2カット、20秒動画なら4カットにする。
5. ジョブ作成後、`job.php?id=<ジョブID>` で進捗を見る。

自動振り分けでは、主に `galleria`（GALLERIA1）と `gpc002`（GALLERIA2）へカットが分散される。生成中は各カットが担当ノードごとに並列実行される。

## スリープと起床

- 普段は両機ともアイドル約1分でスリープする。
- 動画生成リクエストが来ると、ワーカーが対象マシンを起こす。
- 起床後、`/usr/local/sbin/h3-screen-wake` を呼び、物理モニターをONにする。
- 生成中は `/run/vstudio-h3/keep-awake` により寝ない。
- 完了後、放置すれば再びアイドル判定で寝る。

注意: 両機が完全に寝ている場合、COM/POCOからは起床予約までは入れられるが、RTC復帰が不安定なことがある。戻らない場合はGALLERIA1の電源ボタンを短押しして起こす。GALLERIA1が起きれば、GALLERIA2はWOLで起こせる。

## 物理画面

両機の物理モニターには同じ種類の動画生成ノード画面を出す。

- 見出し: `GALLERIA1` / `GALLERIA2`
- 表示: CPU、MEM、SWAP、DISK、GPU、VRAM、GPU温度、消費電力
- サービス: `h3-gpu-dashboard.service`
- 画面復帰: `/usr/local/sbin/h3-screen-wake`

画面が黒くても本体が起きている場合があるため、画面状態だけで停止判定しない。SSHまたは `bc-gpu-power status` で確認する。

## 保管場所

完成動画の正本:

```text
gpc002:/data/h3-manager/archive/<job-id>/
```

COM側の公開用コピー:

```text
/var/www/www.delivery-wine.com/https/share/h3-manager/out/<job-id>/
https://www.delivery-wine.com/share/h3-manager/out/<job-id>/<job-id>.mp4
```

COM側の `out/` はブラウザで見るための公開コピーであり、長期保管の正本ではない。容量が増えたらCOM側は削除してよい。削除前にGALLERIA2側の正本があることを確認する。

## 今ある動画

ワインボトルがビル屋上から落ちて割れる10秒テスト:

```text
COM公開コピー:
/var/www/www.delivery-wine.com/https/share/h3-manager/out/20260822-195947-10/

ブラウザ:
https://www.delivery-wine.com/share/h3-manager/out/20260822-195947-10/20260822-195947-10.mp4
https://www.delivery-wine.com/share/h3-manager/out/20260822-195947-10/20260822-195947-10-720.mp4
```

このジョブは既にCOM側に生成済み。GALLERIA2が起きている時に `gpc002:/data/h3-manager/archive/20260822-195947-10/` へ退避する。

退避待ちジョブをまとめてGALLERIA2へ送る:

```bash
/var/www/www.delivery-wine.com/https/share/h3-manager/bin/archive-pending.py
```

## 手動コマンド

COMから:

```bash
bc-gpu-power status gpc001
bc-gpu-power status gpc002
bc-gpu-power wake gpc001
bc-gpu-power wake gpc002
bc-gpu-power sleep gpc001
bc-gpu-power sleep gpc002
bc-gpu-power board
```

POCOから:

```bash
bc-galleria-wake gpc001
bc-galleria-wake gpc002
bc-galleria-wake gpc001 --wait
bc-galleria-wake board
```

## 失敗時

- 片方だけ失敗した場合は、ワーカーがGALLERIA1へ退避生成する。
- 両方寝たまま戻らない場合は、GALLERIA1を物理起床する。
- GALLERIA2への保管に失敗した場合は、ジョブJSONの `storage.status` が `archive_pending` になる。次回起床時に再退避する。
