| import sys | |
| import os | |
| sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) | |
| import torch | |
| from modular_pipeline import MatrixGameWanModularPipeline | |
| from modular_blocks import ACTION2VIDEO_BLOCKS | |
| from diffusers.modular_pipelines import SequentialPipelineBlocks | |
| from diffusers import AutoModel | |
| from diffusers.utils import load_image, export_to_video | |
| blocks = SequentialPipelineBlocks.from_blocks_dict(ACTION2VIDEO_BLOCKS.copy()) | |
| pipe = MatrixGameWanModularPipeline(blocks) | |
| pipe.load_components(torch_dtype=torch.bfloat16) | |
| pipe.load_components(["vae"], repo="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", subfolder="vae", torch_dtype=torch.float32) | |
| pipe.load_components(["scheduler"], repo="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", subfolder="scheduler") | |
| transformer = AutoModel.from_pretrained("./transformer", trust_remote_code=True, torch_dtype=torch.bfloat16) | |
| pipe.transformer = transformer | |
| pipe.to("cuda") | |
| image = load_image("/home/dhruv/matrix-game-workspace/Matrix-Game/Matrix-Game-2/demo_images/universal/0000.png") | |
| output = pipe(image=image, num_frames=141) | |
| export_to_video(output.values['videos'][0], "modular-matrix-game.mp4") |