# Grok Imagine Video 1.5 — CLI/API image-to-video 実機検証

> 2026-06-18 shadow実機検証。@masahirochaen の投稿(xAI Video 1.5公開)を受けて、grok CLI/API から動画生成が叩けるか調査・実証。
> スクリプト: `~/.claude/scripts/grok_imagine_video.py`(shadow設置済・syntax OK・E2E実証済)

## 結論

**叩ける。課金は SuperGrok + X Premium のサブスク定額内(実APIクレジット引き落としなし)。** xAI の hermes xai-oauth トークンで `grok-imagine-video-1.5` を image-to-video で利用可能。
`usage.cost_in_usd_ticks: 6.5e9 = 約$0.65/本` が返るが、これは**サブスク枠の内部計上値**であって実請求ではない。

### 課金状況の確定(2026-06-18 実画面/実データ確認)

| 系統 | 状態 | 確認方法 |
|------|------|---------|
| **SuperGrok** | ✅ 課金中 | grok.com設定→アカウント画面に「SuperGrok 管理」表示 |
| **X Premium** | ✅ 課金中 | 同画面 @GokouMutsumi = Premium |
| xAI API従量課金(console.x.ai) | ❌ 未開通 | console.x.ai が「チーム/APIキー未作成」画面 |

- ⚠️ **JWTの `tier: 1` からティアを推定するのは誤り**。tier:1 でも SuperGrok 契約は存在した。実画面で確認すること([[instinct-grok-tier-from-ui-not-jwt]])
- 旧rules記録「SuperGrok解約済み(2026-05-28)」は誤りだった→ grok-hermes-x-search.md を訂正済
- → **Grok Imagine の生成は SuperGrok(最も枠が緩いティア)で動作。実金銭支出なし・サブスク回数枠の消費のみ**

## 1日の生成可能量(2026-06-18 X検索 + 実ヘッダ確認)

- **固定の公開daily上限は無い**。xAIは "no fixed public daily number" と明言・完全に動的(rolling quota)・短時間窓で徐々に回復
- レスポンスヘッダに `x-ratelimit-limit-requests: 70` / `x-ratelimit-remaining-requests: 70`(短時間窓のレート)・`x-zero-data-retention` あり
- 参考値(2025年公式): 動画 Premium 50本/日・Premium+ 100本/日・SuperGrok 200〜500本/日。**SuperGrokは最も緩い**ので動画数百本クラスも狙える
- 正確な残量は grok.com/imagine アプリ内表示でのみ判明
- 動画は画像より大幅に枠消費。**画像で構図を詰めてから動画化**が公式推奨(本件の①静止画無料→④動画化フローと一致)

## API仕様(実測で確定)

モデル一覧(`GET /v1/models`): `grok-imagine-video` / `grok-imagine-video-1.5`

```
# 投入(非同期ジョブ)
POST https://api.x.ai/v1/videos/generations
Authorization: Bearer
body: {"model":"grok-imagine-video-1.5", "prompt":"<動きの指示>", "image":{"url":""}}
-> 200 {"request_id":""}
# ポーリング
GET https://api.x.ai/v1/videos/{request_id}
-> 202 {"status":"pending","progress":N}
-> 200 {"status":"done","video":{"url":"https://vidgen.x.ai/...mp4","duration":8},"usage":{"cost_in_usd_ticks":6500000000}}
```

- **text-to-video は非対応**(image必須)。**image-to-video専用**
- `image` は **オブジェクト** `{"url": ...}`(または `{"file_id": ...}`)。文字列直渡しは422、`b64_json`キーは400
- 出力は **8秒mp4**。生成は実測 約18〜30秒
- 動画CDN `vidgen.x.ai` は素のUAを弾く → ブラウザ風UAでDL(静止画 `imgen.x.ai` の error 1010 と同型)

## パラメータ探索の試行錯誤(再現メモ)

| 試した形 | 結果 |
|----------|------|
| `image_url:""`(文字列) | 400 t2v扱い(paramを無視) |
| `image:""`(文字列) | 422 型違い(structを期待) |
| `image:{"url":""}` | ✅ 200 request_id |
| `image:{"image_url":""}` | ✅ 200(url系は通る) |
| `image:{"b64_json":...}` | 400 "must have either url or file_id" |
| poll `/v1/videos/generations/{id}` | 404 |
| poll `/v1/videos/{id}` | ✅ 202/200 |

## 運用判断

- **静止画→動画パイプライン**: `grok_imagine.py`(静止画) → `grok_imagine_video.py`(動画化)。インプレ稼ぎショート動画はこれで作製可(2026-06-18 子猫ショート実証)
- スクリプトはデフォルトで確認プロンプト(`--yes`で省略)。サブスク枠内とはいえ回数枠は有限なので乱用しない

## 関連
- [[cli-image-generation]] — ①Grok Imagine(静止画)ルート。本件はその動画拡張
- [[grok-hermes-x-search]] — xai-oauth トークンの再認証手順
- [[instinct-grok-tier-from-ui-not-jwt]] — ティアはJWTでなくUIで確認
- [[feedback-no-chinese-apis]] — xAIは非中華で適合