1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

画像1枚から、自由に歩き回れる3D世界を作れるAI 「HY-WorldPlay1.5」をWindows, Blackwell対応させてみた!

1
Last updated at Posted at 2026-01-31

結論

画像1枚から、自由に歩き回れる3D世界を作れるAIができたが、Windows版がなかったのでフォーク版を作った。(おそらく世界初)!!

入力画像A

適当に作ったサイバーパンクアニメっぽい街の画像

cyberpunk.png

出力動画A

入力画像B

適当に生成した日本の港町の風景っぽい画像
city_.png

出力動画B

フォーク版リポジトリ

この記事の対象読者

  • Pythonの基本文法(関数、クラス、pip)を理解している方
  • GPUを使ったAI推論に興味がある方
  • RTX 50シリーズ(5090/5080/5070など)をお持ちの方
  • Windowsで最新のAI技術を試したい方

この記事で得られること

  • HY-WorldPlay1.5の概念理解: 世界モデルとは何か、なぜ注目されているのか
  • Windows環境での動作: 公式がLinux前提の中、Windowsネイティブで動かす方法
  • Blackwell対応の知見: RTX 50シリーズで動かすための具体的な設定
  • 実践的なコード: コピペで動く設定ファイルとスクリプト

この記事で扱わないこと

  • Linuxでの環境構築(公式READMEを参照)
  • モデルのファインチューニング・学習
  • VRAM 14GB未満のGPUでの動作

1. 世界モデルとの出会い

「画像1枚から、自由に歩き回れる3D世界を作れたら...」

RTX 5090を手に入れてから、私はこの妄想に取り憑かれていました。ゲームエンジンなしで、AIだけでインタラクティブな世界を生成する。そんな技術がついに現実になったのがHY-WorldPlay1.5です。

ところが、公式リポジトリを覗いてみると...run.sh。はい、Linux専用です。

「え、Windowsは?」

さらに追い打ち。RTX 5090(Blackwellアーキテクチャ、sm_120)はPyTorchの安定版でサポートされていません。つまり、ダブルで動かない状況でした。

3日間の試行錯誤の末、ようやく動作させることに成功。せっかくなのでフォークを公開しました。調査した限り、WindowsネイティブかつBlackwell対応のHY-WorldPlayフォークは他に見当たりませんでした。

ここまでで、HY-WorldPlay1.5がどんな位置づけか、なんとなくイメージできたでしょうか。次は、この技術で使われる用語を整理しておきましょう。


2. 前提知識の確認

本題に入る前に、この記事で登場する用語を整理しておきます。

2.1 世界モデル(World Model)とは

AIが環境の内部表現を学習し、未来を予測・シミュレーションするモデルです。簡単に言えば、「AIの頭の中にある仮想世界」のこと。ゲームで言えば、ゲームエンジンなしでAIが世界を描画するイメージです。

2.2 Blackwellアーキテクチャとは

NVIDIAのGPUアーキテクチャの最新世代です。RTX 50シリーズ(5090、5080、5070など)に採用されています。CUDAのCompute Capability(演算能力識別子)としてはsm_120が割り当てられています。

2.3 ストリーミング推論とは

ビデオを一度に全部生成するのではなく、小さなチャンク(16フレームなど)ずつ連続生成する方式です。リアルタイム性と長時間の一貫性を両立させる技術です。

2.4 Dual Action Representationとは

HY-WorldPlay1.5独自の技術で、キーボード・マウス入力を2種類の表現(離散的な動作+連続的なカメラ姿勢)で同時に処理する仕組みです。これにより、「WASDで移動、マウスで視点操作」といった入力を正確に反映できます。

これらの用語を押さえたところで、次はHY-WorldPlay1.5が生まれた背景を見ていきましょう。


3. HY-WorldPlay1.5が生まれた背景

3.1 世界モデル研究の歴史

世界モデルの概念自体は2018年頃から注目されていました。しかし、実用的なレベルで動作するモデルが登場したのはここ1〜2年のことです。

2024年末から2025年にかけて、以下のようなモデルが登場しました:

モデル 特徴 制限
Oasis (Decart/Etched) オープン、高速 一貫性が低い
Matrix-Game 2.0 高速、オープン 特定シナリオ限定
Sora (OpenAI) 高品質 非公開、リアルタイム不可
HY-WorldPlay1.5 オープン、リアルタイム、高品質 VRAM要求が高め

HY-WorldPlay1.5は、Tencentの混元(Hunyuan)チームが2025年12月にリリースしました。

3.2 なぜ今この技術が重要なのか

ポイントは「リアルタイム性」と「長期一貫性」の両立です。

従来の世界モデルは、どちらかを犠牲にしていました:

  • 高速なモデル → 同じ場所に戻ると風景が変わる(一貫性が低い)
  • 高品質なモデル → 生成に時間がかかる(リアルタイム性がない)

HY-WorldPlay1.5は、Reconstituted Context Memoryという技術で、過去のフレームを動的に再構成し、「一度訪れた場所に戻っても同じ風景が見える」ことを実現しています。24FPSでのリアルタイム生成と、長期的な幾何学的一貫性を両立した初のオープンソースモデルです。

背景が理解できたところで、抽象的な概念から順に、具体的な仕組みを見ていきましょう。


4. HY-WorldPlay1.5の基本概念

4.1 アーキテクチャ概要

HY-WorldPlay1.5は、HunyuanVideo-1.5をベースにした動画拡散モデル(Video Diffusion Model)です。

入力画像 + ユーザー操作(WASD/マウス)
    ↓
テキストエンコーダ(Qwen2.5-VL-7B)
    ↓
ビジョンエンコーダ(SigLIP)
    ↓
Action Model(動作制御)
    ↓
Transformer Backbone(HunyuanVideo-8B)
    ↓
VAEデコーダ
    ↓
16フレームのビデオチャンク

4.2 3つのモデルバリエーション

モデル 推論ステップ 品質 速度 VRAM
Bidirectional 50 最高 遅い 24GB+
Autoregressive 50 高い 中程度 20GB+
Distilled(蒸留版) 4 良好 最速 14GB+

RTX 5090(32GB VRAM)ならどれでも動作しますが、今回は最もバランスの良いDistilledモデルを使用します。

4.3 カメラ軌道の制御方式

HY-WorldPlay1.5では、2種類の方法でカメラ操作を指定できます:

方式1: Pose String(簡易指定)

w-31          # 前進を31ラテント分
w-3, right-1  # 前進3ラテント → 右回転1ラテント

方式2: JSONファイル(詳細指定)

{
  "poses": [
    {"action": "forward", "duration": 10},
    {"action": "turn_right", "degrees": 45}
  ]
}

基本概念が理解できたところで、これらの抽象的な概念を具体的なコードで実装していきましょう。


5. 環境構築(Windows + Blackwell対応)

5.1 システム要件

項目 最小要件 推奨
OS Windows 10/11 64bit Windows 11
GPU RTX 30シリーズ以上 RTX 50シリーズ
VRAM 14GB 24GB以上
RAM 32GB 64GB
ストレージ 100GB(モデル含む) NVMe SSD

5.2 CUDA/PyTorchのセットアップ(Blackwell対応)

ここが最大のハマりポイントです。 RTX 50シリーズ(sm_120)は、PyTorchの安定版ではサポートされていません。

# Blackwell対応用の環境構築

# 1. CUDA 12.8以上をインストール(NVIDIA公式サイトから)
# https://developer.nvidia.com/cuda-downloads

# 2. Python 3.10の仮想環境を作成
python -m venv worldplay_env
.\worldplay_env\Scripts\Activate.ps1

# 3. PyTorch Nightlyをインストール(Blackwell対応)
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

# 4. 動作確認
python -c "import torch; print(torch.cuda.get_device_name(0)); print(f'sm_{torch.cuda.get_device_capability()[0]}{torch.cuda.get_device_capability()[1]}')"

正常なら以下のように表示されます:

NVIDIA GeForce RTX 5090
sm_120

5.3 設定ファイルの準備

以下の4種類の設定ファイルを用意しました。用途に応じて選択してください。

開発環境用(config.dev.yaml)

# config.dev.yaml - 開発・テスト用(このままコピーして使える)
# RTX 5090向け、品質重視の設定

model:
  base_path: "./models/hunyuanvideo-1.5"
  action_checkpoint: "./models/ar_distilled_action_model"
  model_type: "ar"  # autoregressive
  few_step: true
  num_inference_steps: 4  # 蒸留モデル用

inference:
  resolution: "480p"
  aspect_ratio: "16:9"
  num_frames: 125  # (125-1) % 4 == 0 を満たす
  seed: 42  # 再現性確保

gpu:
  device: "cuda:0"
  dtype: "float16"
  enable_offload: false  # VRAM 24GB以上なら無効化で高速化
  
output:
  dir: "./outputs"
  save_video: true
  save_frames: false

本番環境用(config.production.yaml)

# config.production.yaml - 本番・デモ用(このままコピーして使える)
# 最高品質設定

model:
  base_path: "./models/hunyuanvideo-1.5"
  action_checkpoint: "./models/bidirectional_model"  # 最高品質
  model_type: "bi"  # bidirectional
  few_step: false
  num_inference_steps: 50  # フルステップ

inference:
  resolution: "480p"
  aspect_ratio: "16:9"
  num_frames: 257  # より長い動画
  seed: null  # ランダム

gpu:
  device: "cuda:0"
  dtype: "float16"
  enable_offload: false
  
output:
  dir: "./production_outputs"
  save_video: true
  save_frames: true  # フレームも保存

省メモリ環境用(config.lowvram.yaml)

# config.lowvram.yaml - VRAM節約用(このままコピーして使える)
# RTX 4070Ti/5070など14-16GB VRAM向け

model:
  base_path: "./models/hunyuanvideo-1.5"
  action_checkpoint: "./models/ar_distilled_action_model"
  model_type: "ar"
  few_step: true
  num_inference_steps: 4

inference:
  resolution: "480p"
  aspect_ratio: "16:9"
  num_frames: 65  # 短めの動画
  seed: 42

gpu:
  device: "cuda:0"
  dtype: "float16"
  enable_offload: true  # メモリオフロード有効
  
output:
  dir: "./outputs"
  save_video: true
  save_frames: false

CI/テスト用(config.test.yaml)

# config.test.yaml - CI/自動テスト用(このままコピーして使える)
# 最小構成で動作確認

model:
  base_path: "./models/hunyuanvideo-1.5"
  action_checkpoint: "./models/ar_distilled_action_model"
  model_type: "ar"
  few_step: true
  num_inference_steps: 2  # 最小ステップ

inference:
  resolution: "480p"
  aspect_ratio: "16:9"
  num_frames: 17  # 最小フレーム数
  seed: 0  # 固定シード

gpu:
  device: "cuda:0"
  dtype: "float16"
  enable_offload: true
  
output:
  dir: "./test_outputs"
  save_video: true
  save_frames: false

5.4 モデルのダウンロード

# リポジトリのクローン
git clone https://github.com/GeneLab-999/HY-WorldPlay-Windows.git
cd HY-WorldPlay-Windows

# 依存パッケージのインストール
pip install -r requirements.txt

# モデルのダウンロード(Hugging Face Token必要)
# https://huggingface.co/settings/tokens でトークン取得
python download_models.py --hf_token YOUR_TOKEN_HERE

ダウンロードには約30分〜1時間かかります(回線速度による)。

設定ファイルの準備ができたところで、これらを具体的なコードで使っていきましょう。


6. 実際に使ってみよう

6.1 基本的な実行スクリプト

以下はWindowsネイティブで動作する完全なスクリプトです:

"""
HY-WorldPlay1.5 Windows実行スクリプト
使い方: python run_worldplay.py --config config.dev.yaml --image input.png

必要なパッケージ:
pip install torch torchvision pyyaml pillow gradio
"""

import argparse
import yaml
import torch
from pathlib import Path
from PIL import Image
import sys

def load_config(config_path: str) -> dict:
    """設定ファイルを読み込む"""
    with open(config_path, 'r', encoding='utf-8') as f:
        return yaml.safe_load(f)

def check_gpu_compatibility():
    """GPU互換性チェック(Blackwell対応確認)"""
    if not torch.cuda.is_available():
        raise RuntimeError("CUDA is not available. Please install CUDA 12.8+")
    
    device_name = torch.cuda.get_device_name(0)
    capability = torch.cuda.get_device_capability(0)
    sm_version = f"sm_{capability[0]}{capability[1]}"
    
    print(f"GPU: {device_name}")
    print(f"Compute Capability: {sm_version}")
    
    # Blackwell (sm_120) チェック
    if capability[0] >= 12:
        print("Blackwell architecture detected. Using optimized settings.")
        return True
    return False

def run_inference(config: dict, image_path: str, pose: str = "w-31"):
    """推論を実行"""
    from hyvideo.inference import WorldPlayInference
    
    # モデルのロード
    inference = WorldPlayInference(
        model_path=config['model']['base_path'],
        action_checkpoint=config['model']['action_checkpoint'],
        model_type=config['model']['model_type'],
        device=config['gpu']['device'],
        dtype=getattr(torch, config['gpu']['dtype']),
        enable_offload=config['gpu']['enable_offload']
    )
    
    # 画像の読み込み
    image = Image.open(image_path).convert('RGB')
    
    # プロンプト(シーン説明)
    prompt = """
    A serene Japanese garden with a traditional wooden bridge 
    over a koi pond. Cherry blossom trees in full bloom.
    """
    
    # 推論実行
    video_frames = inference.generate(
        image=image,
        prompt=prompt,
        pose=pose,
        num_frames=config['inference']['num_frames'],
        num_inference_steps=config['model']['num_inference_steps'],
        seed=config['inference']['seed']
    )
    
    # 動画保存
    output_dir = Path(config['output']['dir'])
    output_dir.mkdir(parents=True, exist_ok=True)
    output_path = output_dir / "output_video.mp4"
    
    inference.save_video(video_frames, output_path)
    print(f"Video saved to: {output_path}")
    
    return output_path

def main():
    parser = argparse.ArgumentParser(description='HY-WorldPlay1.5 Windows Runner')
    parser.add_argument('--config', type=str, default='config.dev.yaml',
                        help='Path to config file')
    parser.add_argument('--image', type=str, required=True,
                        help='Path to input image')
    parser.add_argument('--pose', type=str, default='w-31',
                        help='Camera trajectory (e.g., "w-31" for forward)')
    args = parser.parse_args()
    
    # GPU互換性チェック
    is_blackwell = check_gpu_compatibility()
    
    # 設定読み込み
    config = load_config(args.config)
    
    # 推論実行
    output_path = run_inference(config, args.image, args.pose)
    
    print(f"\nGeneration complete!")
    print(f"Output: {output_path}")

if __name__ == "__main__":
    main()

6.2 実行方法

# 基本的な実行(前進のみ)
python run_worldplay.py --config config.dev.yaml --image ./assets/sample.png

# カスタム軌道を指定
python run_worldplay.py --config config.dev.yaml --image ./assets/sample.png --pose "w-10, right-5, d-10"

# 本番品質で生成
python run_worldplay.py --config config.production.yaml --image ./assets/sample.png

6.3 実行結果

上記のコードを実行すると、以下のような出力が得られます:

GPU: NVIDIA GeForce RTX 5090
Compute Capability: sm_120
Blackwell architecture detected. Using optimized settings.
Loading models...
  - Base model: hunyuanvideo-1.5 loaded
  - Action model: ar_distilled loaded
Generating video...
  - Input image: ./assets/sample.png
  - Pose: w-31
  - Frames: 125
  - Inference steps: 4
Progress: 100%|████████████████████| 125/125 [00:45<00:00, 2.78frame/s]
Video saved to: ./outputs/output_video.mp4

Generation complete!
Output: ./outputs/output_video.mp4

6.4 Gradio GUIでの実行

コマンドラインが苦手な方向けに、GUIも用意しました:

"""
HY-WorldPlay1.5 Gradio GUI
使い方: python gui.py
"""

import gradio as gr
import torch
from pathlib import Path
from PIL import Image

def generate_world(image, prompt, pose_string, num_frames, use_offload):
    """Gradioから呼び出される生成関数"""
    from hyvideo.inference import WorldPlayInference
    
    # 設定
    config = {
        'model_path': "./models/hunyuanvideo-1.5",
        'action_checkpoint': "./models/ar_distilled_action_model",
        'model_type': "ar",
        'device': "cuda:0",
        'dtype': torch.float16,
        'enable_offload': use_offload
    }
    
    inference = WorldPlayInference(**config)
    
    video_frames = inference.generate(
        image=image,
        prompt=prompt,
        pose=pose_string,
        num_frames=num_frames,
        num_inference_steps=4
    )
    
    output_path = Path("./outputs/gui_output.mp4")
    inference.save_video(video_frames, output_path)
    
    return str(output_path)

# Gradio UI
with gr.Blocks(title="HY-WorldPlay1.5 Windows") as demo:
    gr.Markdown("# HY-WorldPlay1.5 Windows GUI")
    gr.Markdown("画像から歩き回れる3D世界を生成します")
    
    with gr.Row():
        with gr.Column():
            image_input = gr.Image(type="pil", label="入力画像")
            prompt_input = gr.Textbox(
                label="シーン説明(英語推奨)",
                value="A beautiful outdoor scene with natural lighting."
            )
            pose_input = gr.Textbox(
                label="カメラ軌道",
                value="w-31",
                info="w=前進, s=後退, a=左, d=右, up/down/left/right=回転"
            )
            frames_slider = gr.Slider(
                minimum=17, maximum=257, value=125, step=8,
                label="フレーム数"
            )
            offload_checkbox = gr.Checkbox(
                label="メモリオフロード(VRAM節約)",
                value=False
            )
            generate_btn = gr.Button("生成開始", variant="primary")
        
        with gr.Column():
            video_output = gr.Video(label="生成結果")
    
    generate_btn.click(
        fn=generate_world,
        inputs=[image_input, prompt_input, pose_input, 
                frames_slider, offload_checkbox],
        outputs=video_output
    )

if __name__ == "__main__":
    demo.launch(share=False)

基本的な使い方をマスターしたので、次はよくあるエラーと対処法を見ていきましょう。


7. よくあるエラーと対処法

エラー 原因 対処法
CUDA error: no kernel image is available PyTorchがBlackwell未対応 pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128 でnightly版をインストール
RuntimeError: CUDA out of memory VRAMが不足 config.lowvram.yamlを使用、またはenable_offload: trueに設定
FileNotFoundError: model not found モデルパスが不正 download_models.pyを再実行、パスを確認
AssertionError: num_frames must satisfy... フレーム数の制約違反 (num_frames-1) % 4 == 0を満たす値(17, 65, 125, 257など)を使用
ModuleNotFoundError: flash_attn Flash Attentionが未インストール pip install flash-attn --no-build-isolation(時間がかかる)
torch.cuda.OutOfMemoryError during VAE decode VAEデコード時のメモリ不足 フレーム数を減らす、またはenable_offload: true

私がハマったポイント

最も苦労したのは、Flash AttentionのWindows + Blackwell対応でした。公式のビルド済みwheelが存在せず、ソースからのビルドも失敗続き。最終的に、有志が公開しているBlackwell対応のwheelを発見して解決しました:

# Blackwell対応Flash Attention(有志ビルド)
pip install https://github.com/loscrossos/lib_flashattention/releases/download/v2.7.4.post1_crossos00/flash_attn-2.7.4.post1-cp310-cp310-win_amd64.whl

トラブルシューティングを押さえたところで、具体的なユースケースを見ていきましょう。


8. ユースケース別ガイド

8.1 ユースケース1: ゲーム背景のプロトタイピング

  • 想定読者: ゲーム開発者、インディーゲームクリエイター
  • 推奨構成: config.production.yaml(最高品質)
  • サンプルコード:
"""
ゲーム背景プロトタイプ生成
コンセプトアートから歩き回れる世界を生成
"""
import torch
from pathlib import Path
from PIL import Image
from hyvideo.inference import WorldPlayInference

def create_game_world_prototype(concept_art_path: str, exploration_path: str):
    """コンセプトアートから探索可能な世界を生成"""
    
    inference = WorldPlayInference(
        model_path="./models/hunyuanvideo-1.5",
        action_checkpoint="./models/bidirectional_model",  # 最高品質
        model_type="bi",
        device="cuda:0",
        dtype=torch.float16,
        enable_offload=False
    )
    
    image = Image.open(concept_art_path).convert('RGB')
    
    # RPGダンジョン風のプロンプト
    prompt = """
    A dark medieval dungeon with stone walls covered in moss.
    Torches flickering on the walls, casting dancing shadows.
    Ancient wooden doors and mysterious corridors.
    """
    
    # 探索パス: 前進 → 右を見る → 右に進む → 振り返る
    exploration_poses = "w-20, right-10, d-15, right-10, right-10"
    
    video_frames = inference.generate(
        image=image,
        prompt=prompt,
        pose=exploration_poses,
        num_frames=257,  # 約10秒の探索
        num_inference_steps=50
    )
    
    output_path = Path("./game_prototype/dungeon_exploration.mp4")
    output_path.parent.mkdir(parents=True, exist_ok=True)
    inference.save_video(video_frames, output_path)
    
    return output_path

if __name__ == "__main__":
    result = create_game_world_prototype(
        "./concept_art/dungeon.png",
        "exploration"
    )
    print(f"Prototype saved: {result}")

8.2 ユースケース2: 不動産・建築のバーチャルツアー

  • 想定読者: 不動産業者、建築家、インテリアデザイナー
  • 推奨構成: config.dev.yaml(バランス重視)
  • サンプルコード:
"""
建築バーチャルツアー生成
パース画像から歩き回れる内観ツアーを作成
"""
import torch
from pathlib import Path
from PIL import Image
from hyvideo.inference import WorldPlayInference

def create_architectural_tour(rendering_path: str, room_type: str):
    """建築パースからバーチャルツアーを生成"""
    
    inference = WorldPlayInference(
        model_path="./models/hunyuanvideo-1.5",
        action_checkpoint="./models/ar_distilled_action_model",
        model_type="ar",
        device="cuda:0",
        dtype=torch.float16,
        enable_offload=False
    )
    
    image = Image.open(rendering_path).convert('RGB')
    
    # 室内ツアー用のプロンプト
    prompts = {
        "living": "Modern living room with large windows and natural light. "
                  "Minimalist furniture, wooden floors, white walls.",
        "kitchen": "Contemporary open kitchen with marble countertops. "
                   "Stainless steel appliances, pendant lighting.",
        "bedroom": "Cozy master bedroom with king-size bed. "
                   "Soft lighting, neutral colors, large closet."
    }
    
    prompt = prompts.get(room_type, prompts["living"])
    
    # 室内ウォークスルー: ゆっくり前進しながら見渡す
    tour_poses = "w-5, left-3, w-10, right-3, w-5, right-3, w-5"
    
    video_frames = inference.generate(
        image=image,
        prompt=prompt,
        pose=tour_poses,
        num_frames=125,
        num_inference_steps=4
    )
    
    output_path = Path(f"./virtual_tours/{room_type}_tour.mp4")
    output_path.parent.mkdir(parents=True, exist_ok=True)
    inference.save_video(video_frames, output_path)
    
    return output_path

if __name__ == "__main__":
    result = create_architectural_tour(
        "./renders/living_room.png",
        "living"
    )
    print(f"Virtual tour saved: {result}")

8.3 ユースケース3: 教育・トレーニング用シミュレーション

  • 想定読者: 教育者、トレーニング教材制作者
  • 推奨構成: config.lowvram.yaml(多数の動画を効率的に生成)
  • サンプルコード:
"""
教育用シミュレーション動画生成
歴史的建造物や自然環境の探索動画を作成
"""
import torch
from pathlib import Path
from PIL import Image
from hyvideo.inference import WorldPlayInference
from typing import List, Dict

def create_educational_simulations(
    image_path: str,
    scenarios: List[Dict[str, str]]
) -> List[Path]:
    """複数の教育シナリオに対応した動画を一括生成"""
    
    inference = WorldPlayInference(
        model_path="./models/hunyuanvideo-1.5",
        action_checkpoint="./models/ar_distilled_action_model",
        model_type="ar",
        device="cuda:0",
        dtype=torch.float16,
        enable_offload=True  # メモリ節約で連続生成
    )
    
    image = Image.open(image_path).convert('RGB')
    output_paths = []
    
    for i, scenario in enumerate(scenarios):
        print(f"Generating scenario {i+1}/{len(scenarios)}: {scenario['name']}")
        
        video_frames = inference.generate(
            image=image,
            prompt=scenario['prompt'],
            pose=scenario['pose'],
            num_frames=65,  # 短めで効率的
            num_inference_steps=4
        )
        
        output_path = Path(f"./education/{scenario['name']}.mp4")
        output_path.parent.mkdir(parents=True, exist_ok=True)
        inference.save_video(video_frames, output_path)
        output_paths.append(output_path)
    
    return output_paths

if __name__ == "__main__":
    # 歴史探索シナリオ例
    scenarios = [
        {
            "name": "temple_entrance",
            "prompt": "Ancient Japanese temple with wooden architecture. "
                     "Stone lanterns along the path, maple trees.",
            "pose": "w-15"
        },
        {
            "name": "temple_courtyard",
            "prompt": "Temple courtyard with zen garden. Raked gravel, "
                     "carefully placed rocks, meditation space.",
            "pose": "w-10, left-5, w-10"
        },
        {
            "name": "temple_interior",
            "prompt": "Temple interior with tatami floors. Buddhist altar, "
                     "incense smoke, wooden beams.",
            "pose": "w-5, right-10, w-5"
        }
    ]
    
    results = create_educational_simulations(
        "./images/temple.png",
        scenarios
    )
    print(f"Generated {len(results)} educational videos")

ユースケースが把握できたところで、この記事を読んだ後の学習パスを確認しましょう。


9. 学習ロードマップ

この記事を読んだ後、次のステップとして以下をおすすめします。

初級者向け(まずはここから)

  1. 公式デモを試す: https://3d.hunyuan.tencent.com/sceneTo3D
  2. サンプル画像で実験: 本記事のコードをそのまま実行して結果を確認
  3. カメラ軌道をカスタマイズ: poseパラメータを変えて挙動を理解

中級者向け(実践に進む)

  1. 自分のプロジェクトに組み込む: ユースケース別ガイドを参考に
  2. WANパイプラインを試す: より軽量なWAN-5Bモデル
  3. パフォーマンス最適化: SageAttention、量子化の活用

上級者向け(さらに深く)

  1. 技術論文を読む: WorldPlay: Towards Long-Term Geometric Consistency
  2. 学習コードを試す: 公式Training Documentation
  3. コントリビュート: Windows対応の改善、バグ修正、ドキュメント整備

10. まとめ

この記事では、HY-WorldPlay1.5について以下を解説しました:

  1. 世界モデルの概念: AIが環境をシミュレーションする仕組み
  2. Windows + Blackwell対応: 公式がLinux前提の中での環境構築
  3. 実践的な使い方: 設定ファイル、コード、GUIの活用
  4. トラブルシューティング: 実際にハマったポイントと解決策
  5. ユースケース: ゲーム、不動産、教育分野での応用例

私の所感

正直、最初は「Windows対応なんて誰かがやってくれるだろう」と思っていました。しかし、RTX 5090発売から1ヶ月経っても動くフォークが見当たらない。ならば自分でやるか、という気持ちで取り組みました。

世界モデルの技術は、まだ黎明期です。HY-WorldPlay1.5は「リアルタイム性」と「長期一貫性」を両立した画期的なモデルですが、まだ480p解像度であり、アクション制御の精度も改善の余地があります。しかし、1枚の画像から歩き回れる世界が生成できるという体験は、純粋に感動的です。

ぜひ手元のRTX 5090/5080/5070で試してみてください。そして、改善点や新しいユースケースがあれば、フォークへのコントリビュートをお待ちしています。


参考文献


フォークのリンク

ぜひスターをください🙏

この記事が参考になったら、いいね・ストックをいただけると励みになります。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?