94057c3d3e
PR Test (NPU) / check-changes (push) Has been cancelled
PR Test (NPU) / pr-gate (push) Has been cancelled
PR Test (NPU) / set-image-config (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-4-npu-a3 (push) Has been cancelled
PR Test (NPU) / stage-b-test-16-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-1-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-2-npu-a3 (push) Has been cancelled
PR Test (Arm64) / pr-gate (push) Has been cancelled
PR Test (Arm64) / check-changes (push) Has been cancelled
PR Test (Arm64) / build-test (push) Has been cancelled
PR Test (sgl-router) / gate (push) Has been cancelled
PR Test (sgl-router) / tier-1 — lint (push) Has been cancelled
PR Test (sgl-router) / tier-2 — build + test (push) Has been cancelled
PR Test (sgl-router) / tier-3 — docker (placeholder) (push) Has been cancelled
PR Test (sgl-router) / tier-3 — k8s integration (push) Has been cancelled
PR Test (sgl-router) / tier-3 — e2e (push) Has been cancelled
PR Test (sgl-router) / finish (push) Has been cancelled
PR Test (NPU) / single-node-poc (map[name:qwen3_6_27b_w8a8_1p_in64k_out1k_50ms runner:linux-aarch64-a3-2 test_case:test/registered/ascend/performance/qwen3_6_27b/test_npu_qwen3_6_27b_w8a8_1p_in64k_out1k_50ms.py test_type:perf]) (push) Has been cancelled
PR Test (NPU) / pr-test-npu-finish (push) Has been cancelled
PR Test (Xeon) / pr-gate (push) Has been cancelled
PR Test (Xeon) / check-changes (push) Has been cancelled
PR Test (Xeon) / build-test (, xeon-gnr, base-b-test-cpu) (push) Has been cancelled
PR Test (XPU) / check-changes (push) Has been cancelled
PR Test (XPU) / pr-gate (push) Has been cancelled
PR Test (XPU) / stage-a-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / wait-for-stage-a (push) Has been cancelled
PR Test (XPU) / stage-b-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / finish (push) Has been cancelled
CI Model Inventory / build-inventory (push) Has been cancelled
Lint / lint (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Compilation Check (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Manual Policy (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Request Processing (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Summary (push) Has been cancelled
PR Test (SMG) / build-wheel (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on windows (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (x86_64 - auto) (push) Has been cancelled
PR Test (SMG) / python-unit-tests (push) Has been cancelled
PR Test (SMG) / unit-tests (push) Has been cancelled
PR Test (SMG) / benchmarks (push) Has been cancelled
PR Test (SMG) / chat-completions (push) Has been cancelled
PR Test (SMG) / chat-completions-4gpu (push) Has been cancelled
PR Test (SMG) / e2e (push) Has been cancelled
PR Test (SMG) / docker-build-test (push) Has been cancelled
PR Test (SMG) / k8s-integration (push) Has been cancelled
PR Test (SMG) / finish (push) Has been cancelled
PR Test (SMG) / summarize-benchmarks (push) Has been cancelled
Release SGLang Model Gateway Docker Image / publish (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Build SDist (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Upload to PyPI (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (aarch64, 12.9, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (x86_64, 12.9, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu129 (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (aarch64, 13.0, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (x86_64, 13.0, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu130 (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 700) (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 720) (push) Has been cancelled
Release SGLang Kernels / release-rocm700 (push) Has been cancelled
Release SGLang Kernels / release-rocm720 (push) Has been cancelled
Release SGLang Kernels / build-musa43 (43, 3.10) (push) Has been cancelled
Release SGLang Kernels / release-musa43 (push) Has been cancelled
77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
||
"""Sampling parameters for SANA-WM TI2V world model generation."""
|
||
|
||
from dataclasses import dataclass
|
||
from typing import Any, Optional, Sequence, Union
|
||
|
||
from sglang.multimodal_gen.configs.sample.sampling_params import (
|
||
DataType,
|
||
SamplingParams,
|
||
)
|
||
|
||
# Type alias for the camera tensor inputs. Accept torch.Tensor, numpy arrays,
|
||
# or nested Python lists — coerced to torch.Tensor downstream in the stage.
|
||
CameraTensorLike = Union[Any, Sequence[Sequence[Sequence[float]]]]
|
||
|
||
|
||
@dataclass
|
||
class SanaWMSamplingParams(SamplingParams):
|
||
"""Default sampling parameters for SANA-WM 720p (704×1280) 16fps video.
|
||
|
||
Frame counts must satisfy (num_frames - 1) % 8 == 0.
|
||
|
||
Optional camera conditioning:
|
||
camera_to_world: (T, 4, 4) extrinsics, one per output frame.
|
||
intrinsics: (T, 3, 3) pinhole intrinsics, one per output frame.
|
||
action: WASD/IJKL action DSL (e.g. "w-80,jw-40,w-40"), rolled
|
||
out to camera_to_world before the camera branch.
|
||
Omitted camera_to_world -> static identity camera. Omitted intrinsics ->
|
||
centered heuristic; pass explicit intrinsics for closest NVlabs parity.
|
||
"""
|
||
|
||
data_type: DataType = DataType.VIDEO
|
||
|
||
# Resolution: 720p landscape (LTX-2 VAE requires multiples of 32)
|
||
height: int = 704
|
||
width: int = 1280
|
||
|
||
# 49 = (49-1)/8 = 6 latent frames → ~3 seconds at 16fps
|
||
num_frames: int = 49
|
||
|
||
# SANA-WM is trained at 16fps (override base default of 24).
|
||
fps: int = 16
|
||
|
||
num_inference_steps: int = 20
|
||
|
||
guidance_scale: float = 4.5
|
||
|
||
# NVlabs' SANA-WM inference defaults to an empty negative prompt.
|
||
negative_prompt: str = ""
|
||
|
||
# --- Camera trajectory (6-DoF) — optional ---
|
||
camera_to_world: Optional[CameraTensorLike] = None
|
||
intrinsics: Optional[CameraTensorLike] = None
|
||
action: Optional[str] = None
|
||
translation_speed: float = (
|
||
0.04 # match official streaming (STREAMING_TRANSLATION_SPEED)
|
||
)
|
||
rotation_speed_deg: float = 1.2
|
||
pitch_limit_deg: float = 85.0
|
||
|
||
def build_request_extra(self) -> dict[str, Any]:
|
||
extra = super().build_request_extra()
|
||
if self.action is not None and self.camera_to_world is not None:
|
||
raise ValueError(
|
||
"SANA-WM accepts either action or camera_to_world, not both."
|
||
)
|
||
if self.camera_to_world is not None:
|
||
extra["camera_to_world"] = self.camera_to_world
|
||
if self.intrinsics is not None:
|
||
extra["intrinsics"] = self.intrinsics
|
||
if self.action is not None:
|
||
extra["action"] = self.action
|
||
extra["translation_speed"] = self.translation_speed
|
||
extra["rotation_speed_deg"] = self.rotation_speed_deg
|
||
extra["pitch_limit_deg"] = self.pitch_limit_deg
|
||
return extra
|