構築ログ

H3をMacから操作する:RTX 2070 SUPER実録のセットアップ手順

2026年9月22日の実機記録の付録。Windowsの専用環境、Profile 5のキュー、MacからのSSH操作、Google Driveへの保存設定をまとめる。

2026年9月22日の実機作業を、記事から参照できる手順に整理した。実測結果は本文、確認範囲は出典メモにまとめている。

今回成功したのは Windows 11 Home / RTX 2070 SUPER 8GB / RAM 16GB / Profile 5 のCLI生成1回。通常サンプルのProfile 4とは区別する。以下の G: と I: は実機で使ったドライブ文字の例であり、読者のPCに合わせて変更する。

1. 使うものと配置

端末・場所 役割
Mac Python 3.10以降、SSH、SCPを使いWindowsへ指示する
Windows Tailscale、OpenSSH Server、Git、Miniforge、NVIDIAドライバー、H3の実行環境
G:\AI\H3-Setting 補助PowerShellと実行設定。空白のないASCIIパスを使う
G:\AI\WanGP-H3 固定コミットのWanGPとモデル
G:\AI\H3-Tools\Miniforge3 今回のMiniforge導入先
G:\AI\H3-Data ログ、環境記録、初回のローカル出力
I:\マイドライブ\〇素材 後から設定するGoogle Driveの保存先

モデル関連11ファイルの合計は53,282,088,782 bytes。Python環境、ダウンロード時の一時領域、出力動画は別途必要になる。元の構築ガイドではSSDに100〜150GBの余裕を見ていたが、これは計画上の目安で、公式最低要件ではない。

WindowsのGitとMiniforgeは先に用意する。Git for WindowsとMiniforge公式から入手できる。今回のMiniforgeはJustMeで導入し、グローバルPATHへの追加、Pythonの既定登録、conda initは行わず、補助設定にCondaの絶対パスを書いた。補助インストーラー自身はGit・Miniforge・GPUドライバーを導入しない。

今回のNVIDIAドライバーは596.36。CUDA Toolkitは追加せず、PyTorchのcu130パッケージを利用して動作した。固定版の公式導入手順にはToolkit導入も記載されているが、この記事の実機結果とは区別する。

2. SSHの接続先を調べる

WindowsのPowerShellで確認する。

hostname
whoami
tailscale ip -4
Get-Service sshd, Tailscale
nvidia-smi

whoamiの結果は接続先Windowsのアカウントを特定するために使う。tailscale ip -4で得たWindowsのIP、またはTailscale上で名前解決できるホスト名を WINDOWS_HOST に入れる。Mac側のユーザー名と混同しない。

Macのターミナルから接続する。コード中の大文字の置き換え欄は、実際の値に変更する。

ssh -l WINDOWS_USER WINDOWS_HOST whoami

初回のホスト鍵は接続先と照合し、意図したWindowsのアカウントが返ることを確認する。公開鍵など、通常のWindows OpenSSHの認証設定が必要だ。Windows OpenSSHの公式手順

今回の実機では、既存のOpenSSH・鍵認証を利用できた。新規PCでサーバーが未導入の場合は上記Microsoftの手順、または同梱の windows/Enable-H3Ssh.ps1 を使う。後者はWindowsの管理者PowerShellで、接続を許可するMacのTailscale IPを -AllowedRemoteAddress に指定する。OpenSSHの受信規則の範囲も変更するため、既存の接続元を確認してから適用する。公開鍵の登録は別途行う。

これはTailscaleのネットワーク上で通常のOpenSSHを使う構成。Tailscale SSHという製品機能をWindowsで有効化する手順ではない。

3. Macの補助CLIとWindowsの設定を用意する

手順・設定・補助スクリプトの資料一式(ZIP)をダウンロードして展開し、setup-guide.md と downloads フォルダのある場所をカレントディレクトリにして実行する。

unzip downloads/h3-setup.zip -d work
cd work/h3-setup
cp config/mac.example.json config/mac.json
cp .././downloads/minimax-h3-rtx2070super/downloads/h3.windows.example.json config/h3.json

config/mac.jsonは接続用。次の置き換え欄を編集する。

{
  "host": "WINDOWS_HOST",
  "user": "WINDOWS_USER",
  "sshPort": 22,
  "remoteDirectory": "G:\\AI\\H3-Setting",
  "localPort": 7860,
  "remotePort": 7860
}

既定以外のSSH鍵が必要なら "identityFile": "~/.ssh/KEY_FILE" を追加する。Windowsのドメイン付きユーザー名をJSONに書く場合は、バックスラッシュを \\ と表記する。

一方、config/h3.jsonはWindowsで使う実行設定の転送元。同梱のWindows設定例はProfile 5、プリロード0、固定バージョン、ローカルSSD出力で揃えてある。CondaやSSDの実際の配置を確認して編集する。

python3 scripts/h3.py deploy

deployはPowerShellと標準設定例を転送し、Windowsに config/h3.json がなければ初回だけ作る。Macで編集した config/h3.json を自動転送する機能ではない。既存のWindows設定も保持する。

新しい専用環境として初期設定する場合は、続いて編集済み設定を明示的に転送する。

scp config/h3.json WINDOWS_USER@WINDOWS_HOST:G:/AI/H3-Setting/config/h3.json
python3 scripts/h3.py doctor

既にH3を運用中のPCでは、このSCPで設定を上書きする前にWindows側の既存ファイルを退避し、差分を確認する。SSHのポート・鍵を変更した場合は、手動の scp にも -P・-iを付ける。補助CLIの設定は手動SCPには自動適用されない。

4. 固定バージョンで環境を作る

Macから実行する。

python3 scripts/h3.py install
項目 今回の固定値
WanGPコミット 59e55609067579415517b987acff1703bd45bdae
Conda環境 h3-2070
Python 3.11.14
torch 2.10.0+cu130
torchvision 0.25.0+cu130
torchaudio 2.10.0+cu130

インストーラーは専用のWanGPチェックアウトとConda環境を作り、依存関係を導入する。pip checkとCUDAのFP32/FP16行列演算も検査する。同名の既存環境を無条件に流用したり、既存チェックアウトを強制リセットしたりはしない。

doctorは通常のハードウェア・ツール確認用。環境内のCUDAも再検査する場合は、WindowsのPowerShellで次を実行する。

powershell.exe -NoProfile -ExecutionPolicy Bypass `
  -File 'G:\AI\H3-Setting\windows\Test-H3System.ps1' `
  -ConfigPath 'G:\AI\H3-Setting\config\h3.json' -CheckEnvironment

FP16行列演算の成功は、H3全体がFP16で計算される証明ではない。今回の設定はSDPA、INT8量子化、Profile 5、プリロード0、コンパイル無効。--fp16、追加SageAttention、未マージのsafe-FP16修正は使っていない。

依存パッケージすべてを固定した完全なロックファイルではない点にも注意する。将来の再構築に備え、導入成功後に環境記録を保存する。

python3 scripts/h3.py snapshot

スナップショットはWindows側の snapshotsDirectory に保存される。生成動画の検証とは別機能なので、記録内の generationVerified: false だけを見て動画生成の失敗とは判断しない。

5. モデル取得で実施したこと

インストール成功だけでは、H3モデル一式の取得完了を意味しない。WanGPで対象モデルを初めて使う際には追加の取得が必要になる。モデル本体はこの資料には同梱していない。

今回の取得元は DeepBeepMeep/MiniMax-H3、検証に使ったリビジョンは 7b61c8edb895aaf25b248f064e9726ffdcc7ec46。資産名とサイズは11ファイルの記録に残した。

Windowsからの取得が遅かったため、実作業では次の経路に切り替えた。

  1. 同じリビジョンの必要ファイルをMacで取得した。
  2. 取得元が示すチェックサムとローカルファイルを照合した。
  3. SCPでWindowsへ転送し、WindowsでもSHA-256を照合した。
  4. 固定版WanGPのモデル設定が期待する配置先へ置いてから、生成キューを実行した。

この迂回転送は今回の個別作業で、同梱インストーラーの自動機能ではない。資料にはその場限りのダウンロード用ヘルパーを含めていない。

また、同梱キューのLoRA URLは公式設定に合わせた resolve/main で、固定リビジョンURLではない。WanGP側の取得先と合わせ、未取得の状態から将来実行した場合までモデル資産を完全固定した配布物ではない。今回の実測条件は上記リビジョン・資産記録を参照する。

6. キューを検証して1本生成する

Macの work/h3-setup で実行する。deployはキューJSONを転送しないので、ここでもSCPを明示する。

scp examples/h3-smoke-16gb.json WINDOWS_USER@WINDOWS_HOST:G:/AI/H3-Setting/h3-smoke-16gb.json
python3 scripts/h3.py queue 'G:\AI\H3-Setting\h3-smoke-16gb.json' --validate-only

このキューは576×320、124フレーム、24fps、8ステップ、Seed 42。公式のLightx2v FL2V Turbo 8 Steps v1.0 LoRA、倍率1.0、CFG 1、Flow Shift 12を組み合わせている。Windows設定の profile とキューの override_profile は、両方とも 5 にする。

--validate-onlyはWindows上でWanGPのキュー検証を実行する。補助CLIの --dry-run はSSHコマンドを表示するだけなので、意味が異なる。どちらも実生成の完了やVRAMへの収容を証明するものではない。

検証が通ったら実生成する。

python3 scripts/h3.py queue 'G:\AI\H3-Setting\h3-smoke-16gb.json'

生成中はこのターミナルとSSH接続を維持する。初回の出力先は G:\AI\H3-Data\renders、ログは G:\AI\H3-Data\logs。今回の1本は68分30秒で1/1件完了、終了コード0になった。導入・モデル取得・生成後の転送検査の時間は、この68分30秒には含まれない。

生成中に数分無出力となる場面もあった。メモリ逼迫時は追加SSHも遅くなるため、無出力だけで停止と断定せず、既存ログの進捗を確認した。

7. 出力ファイルを検査する

実際の出力名を確認し、Macへコピーして調べる。次はFFmpeg / ffprobeが利用できるMacでの例。

scp 'WINDOWS_USER@WINDOWS_HOST:G:/AI/H3-Data/renders/OUTPUT_FILE.mp4' ./h3-result.mp4
shasum -a 256 h3-result.mp4
ffprobe -v error -count_frames -show_streams -show_format -of json h3-result.mp4
ffmpeg -v error -i h3-result.mp4 -f null -
ffmpeg -hide_banner -i h3-result.mp4 -vf 'blackdetect=d=0.1:pic_th=0.98:pix_th=0.1,freezedetect=n=0.001:d=0.5' -an -f null -

Windows側の元ファイルはPowerShellの Get-FileHash -Algorithm SHA256 -LiteralPath '実際の動画パス' で確認する。転送前後のハッシュが一致すれば、同一ファイルであると確認できる。上記検査に加え、実際の映像と音を確認して素材に採用するか決める。

今回の映像は124フレーム、5.166667秒。全デコードに成功し、指定した黒映像・静止の検出条件ではイベントなし。ただし先頭フレームで車体の一部が画面外にあり、音声の自然さは聴覚評価していない。今回の検査結果

8. Google Drive「〇素材」へ保存先を変える

WindowsでDrive for desktopにログインし、エクスプローラーから「〇素材」が見えることを確認する。ドライブ文字はPCごとに異なる。Driveデスクトップ版の公式案内

まず完成済みの動画を「〇素材」へコピーし、同期状態とクラウド側のファイルを確認する。今回はこちらを先に実施し、Drive上のファイル情報、Mac・Windowsの同期ファイル、SHA-256の一致を確認できた。

次にH3を停止した状態で、WindowsのPowerShellから実行設定を変更する。以下は例示パスが実際に存在することを確認してから使う。

$h3ConfigPath = 'G:\AI\H3-Setting\config\h3.json'
$h3Destination = 'I:\マイドライブ\〇素材'
if (-not (Test-Path -LiteralPath $h3Destination -PathType Container)) {
    throw 'Driveの起動・ログイン・実際の保存先を確認してください。'
}
$h3BackupPath = $h3ConfigPath + '.' + (Get-Date -Format 'yyyyMMdd-HHmmss') + '.bak'
Copy-Item -LiteralPath $h3ConfigPath -Destination $h3BackupPath
$h3Config = Get-Content -LiteralPath $h3ConfigPath -Raw -Encoding UTF8 | ConvertFrom-Json
$h3Config.outputsDirectory = $h3Destination
[IO.File]::WriteAllText(
    $h3ConfigPath,
    ($h3Config | ConvertTo-Json -Depth 30),
    (New-Object Text.UTF8Encoding($false))
)

Macから再度キュー検証を行う。

python3 scripts/h3.py queue 'G:\AI\H3-Setting\h3-smoke-16gb.json' --validate-only

補助スクリプトは起動・検証時に outputsDirectory を読み、CLIの --output-dir と、実行設定の save_path / image_save_path / audio_save_path へ反映する。Macの設定ファイルだけを書き換えても反映されない点に注意する。

今回確認できたのは、変更後のキュー検証成功と、H3のPython環境から既存の同期動画を読み書きモードで開けることまで。Drive出力先での新規生成・最終MP4書き出しは未実施なので、次回の実生成でそこを確認する。

端末上でファイルが見えることと、クラウド同期が完了したことは区別する。生成後はDriveの同期状態も確認する。ストリーミングとミラーリングの違い

9. 通常運用と任意のブラウザUI

毎回の利用条件は、Windowsが起動してスリープしていないこと、Tailscaleとsshdが動作していること、WindowsユーザーがログインしDriveが使えること。今回のDriveストリーミング構成では、PCの電源だけを入れた状態では条件が足りない。Driveのオフライン利用条件

sshd/Tailscaleの自動起動は確認済みだが、ログアウト後のTailscale無人運転は試験していない。必要な場合はRun unattendedを別に設定・検証する。生成のバックグラウンド化、自動再試行、起動時の自動生成も今回の範囲には含めていない。

ブラウザUI用のコマンドも同梱している。キューとUIを同時実行せず、Macのターミナルを2つ使う。

# ターミナル1: WindowsでUIを起動する
python3 scripts/h3.py start
# ターミナル2: 起動後にSSHトンネルを維持する
python3 scripts/h3.py tunnel

ブラウザで http://127.0.0.1:7860 を開く。Windows側もループバック待受で、接続はSSHトンネルを通す。今回の生成成功はCLIによるもので、UIから同じ動画を生成した実績ではない。

10. 今回のトラブルと対応表

症状 今回の対処・判断
Conda経由で複数行のPythonコマンドが失敗 PythonコードをBase64化し、1行で渡して復元。修正済み補助スクリプトを同梱
SSH経由のエンコードしたPowerShell呼び出しが進まない ASCIIの専用パスへ.ps1を配置し、-File経由で実行
Windowsからモデル取得が遅い Macで固定リビジョンを取得・照合し、SCP後にWindowsでも照合
Driveの日本語パス表示が文字化け 表示と実パスを分け、H3のPythonからファイルを開いて検証。表示の恒久修正は未実施
空きRAMが約95MiBまで低下し遅い Profile 5で完了を待って実測。RAM増設・pagefile移設による速度改善は未検証
Macのh3.jsonを変えても動作が変わらない Windows側の設定を確認。deployは既存設定を保持する

再生成の際は、解像度・尺・プロンプトを一度に変更せず、まず同梱の小さいキューと同じ条件で結果を残す。その後の速度・安定性は追加の実測として記録する。