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
288 lines
9.7 KiB
Python
288 lines
9.7 KiB
Python
# Copied and adapted from: https://github.com/hao-ai-lab/FastVideo
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
from dataclasses import dataclass, field
|
|
|
|
from sglang.multimodal_gen.configs.sample.sampling_params import SamplingParams
|
|
from sglang.multimodal_gen.configs.sample.teacache import TeaCacheParams
|
|
|
|
|
|
def _wan_1_3b_coefficients(p: TeaCacheParams) -> list[float]:
|
|
if p.use_ret_steps:
|
|
# from https://github.com/ali-vilab/TeaCache/blob/7c10efc4702c6b619f47805f7abe4a7a08085aa0/TeaCache4Wan2.1/teacache_generate.py#L883
|
|
return [
|
|
-5.21862437e04,
|
|
9.23041404e03,
|
|
-5.28275948e02,
|
|
1.36987616e01,
|
|
-4.99875664e-02,
|
|
]
|
|
# from https://github.com/ali-vilab/TeaCache/blob/7c10efc4702c6b619f47805f7abe4a7a08085aa0/TeaCache4Wan2.1/teacache_generate.py#L890
|
|
return [
|
|
2.39676752e03,
|
|
-1.31110545e03,
|
|
2.01331979e02,
|
|
-8.29855975e00,
|
|
1.37887774e-01,
|
|
]
|
|
|
|
|
|
def _wan_14b_coefficients(p: TeaCacheParams) -> list[float]:
|
|
if p.use_ret_steps:
|
|
# from https://github.com/ali-vilab/TeaCache/blob/7c10efc4702c6b619f47805f7abe4a7a08085aa0/TeaCache4Wan2.1/teacache_generate.py#L885
|
|
return [
|
|
-3.03318725e05,
|
|
4.90537029e04,
|
|
-2.65530556e03,
|
|
5.87365115e01,
|
|
-3.15583525e-01,
|
|
]
|
|
# from https://github.com/ali-vilab/TeaCache/blob/7c10efc4702c6b619f47805f7abe4a7a08085aa0/TeaCache4Wan2.1/teacache_generate.py#L892
|
|
return [-5784.54975374, 5449.50911966, -1811.16591783, 256.27178429, -13.02252404]
|
|
|
|
|
|
@dataclass
|
|
class WanT2V_1_3B_SamplingParams(SamplingParams):
|
|
# Video parameters
|
|
height: int = 480
|
|
width: int = 832
|
|
num_frames: int = 81
|
|
fps: int = 16
|
|
|
|
# Denoising stage
|
|
guidance_scale: float = 3.0
|
|
negative_prompt: str = (
|
|
"Bright tones, overexposed, static, blurred details, subtitles, style, works, paintings, images, static, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, misshapen limbs, fused fingers, still picture, messy background, three legs, many people in the background, walking backwards"
|
|
)
|
|
num_inference_steps: int = 50
|
|
|
|
# Wan T2V 1.3B supported resolutions
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
teacache_params: TeaCacheParams = field(
|
|
default_factory=lambda: TeaCacheParams(
|
|
teacache_thresh=0.08,
|
|
use_ret_steps=True,
|
|
coefficients_callback=_wan_1_3b_coefficients,
|
|
start_skipping=5,
|
|
end_skipping=1.0,
|
|
)
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class WanT2V_14B_SamplingParams(SamplingParams):
|
|
# Video parameters
|
|
height: int = 720
|
|
width: int = 1280
|
|
num_frames: int = 81
|
|
fps: int = 16
|
|
|
|
# Denoising stage
|
|
guidance_scale: float = 5.0
|
|
negative_prompt: str = (
|
|
"Bright tones, overexposed, static, blurred details, subtitles, style, works, paintings, images, static, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, misshapen limbs, fused fingers, still picture, messy background, three legs, many people in the background, walking backwards"
|
|
)
|
|
num_inference_steps: int = 50
|
|
|
|
# Wan T2V 14B supported resolutions
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(1280, 720), # 16:9
|
|
(720, 1280), # 9:16
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
teacache_params: TeaCacheParams = field(
|
|
default_factory=lambda: TeaCacheParams(
|
|
teacache_thresh=0.20,
|
|
use_ret_steps=False,
|
|
coefficients_callback=_wan_14b_coefficients,
|
|
start_skipping=1,
|
|
end_skipping=-1,
|
|
)
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class WanI2V_14B_480P_SamplingParam(WanT2V_1_3B_SamplingParams):
|
|
# Denoising stage
|
|
guidance_scale: float = 5.0
|
|
num_inference_steps: int = 50
|
|
# num_inference_steps: int = 40
|
|
|
|
# Wan I2V 480P supported resolutions (override parent)
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
teacache_params: TeaCacheParams = field(
|
|
default_factory=lambda: TeaCacheParams(
|
|
teacache_thresh=0.26,
|
|
use_ret_steps=True,
|
|
coefficients_callback=_wan_14b_coefficients,
|
|
start_skipping=5,
|
|
end_skipping=1.0,
|
|
)
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class WanI2V_14B_720P_SamplingParam(WanT2V_14B_SamplingParams):
|
|
# Denoising stage
|
|
guidance_scale: float = 5.0
|
|
num_inference_steps: int = 50
|
|
# num_inference_steps: int = 40
|
|
|
|
# Wan I2V 720P supported resolutions (override parent)
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(1280, 720), # 16:9
|
|
(720, 1280), # 9:16
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
teacache_params: TeaCacheParams = field(
|
|
default_factory=lambda: TeaCacheParams(
|
|
teacache_thresh=0.3,
|
|
use_ret_steps=True,
|
|
coefficients_callback=_wan_14b_coefficients,
|
|
start_skipping=5,
|
|
end_skipping=1.0,
|
|
)
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class FastWanT2V480PConfig(WanT2V_1_3B_SamplingParams):
|
|
# DMD parameters
|
|
# dmd_denoising_steps: list[int] | None = field(default_factory=lambda: [1000, 757, 522])
|
|
num_inference_steps: int = 3
|
|
num_frames: int = 61
|
|
height: int = 480
|
|
width: int = 832
|
|
fps: int = 16
|
|
|
|
|
|
# =============================================
|
|
# ============= Wan2.1 Fun Models =============
|
|
# =============================================
|
|
@dataclass
|
|
class Wan2_1_Fun_1_3B_InP_SamplingParams(SamplingParams):
|
|
"""Sampling parameters for Wan2.1 Fun 1.3B InP model."""
|
|
|
|
height: int = 480
|
|
width: int = 832
|
|
num_frames: int = 81
|
|
fps: int = 16
|
|
negative_prompt: str | None = (
|
|
"色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
|
|
)
|
|
guidance_scale: float = 6.0
|
|
num_inference_steps: int = 50
|
|
|
|
|
|
# =============================================
|
|
# ============= Wan2.2 TI2V Models =============
|
|
# =============================================
|
|
@dataclass
|
|
class Wan2_2_Base_SamplingParams(SamplingParams):
|
|
"""Sampling parameters for Wan2.2 TI2V 5B model."""
|
|
|
|
negative_prompt: str | None = (
|
|
"色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
|
|
)
|
|
|
|
# TODO(Wan2.2): TeaCache coefficients need to be calibrated for Wan2.2 by
|
|
# profiling L1 distances across timesteps. Until then, teacache_params is None
|
|
# and enable_teacache will be accepted but silently no-op.
|
|
# Consider using Cache-DiT (SGLANG_CACHE_DIT_ENABLED=1) as an alternative.
|
|
|
|
|
|
@dataclass
|
|
class Wan2_2_TI2V_5B_SamplingParam(Wan2_2_Base_SamplingParams):
|
|
"""Sampling parameters for Wan2.2 TI2V 5B model."""
|
|
|
|
height: int = 704
|
|
width: int = 1280
|
|
num_frames: int = 121
|
|
fps: int = 24
|
|
guidance_scale: float = 5.0
|
|
num_inference_steps: int = 50
|
|
|
|
# Wan2.2 TI2V 5B supported resolutions
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(1280, 704), # 16:9-ish
|
|
(704, 1280), # 9:16-ish
|
|
]
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class Wan2_2_T2V_A14B_SamplingParam(Wan2_2_Base_SamplingParams):
|
|
guidance_scale: float = 4.0 # high_noise
|
|
guidance_scale_2: float = 3.0 # low_noise
|
|
num_inference_steps: int = 40
|
|
fps: int = 16
|
|
|
|
num_frames: int = 81
|
|
|
|
# Wan2.2 T2V A14B supported resolutions
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(1280, 720), # 16:9
|
|
(720, 1280), # 9:16
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class Wan2_2_I2V_A14B_SamplingParam(Wan2_2_Base_SamplingParams):
|
|
guidance_scale: float = 3.5 # high_noise
|
|
guidance_scale_2: float = 3.5 # low_noise
|
|
num_inference_steps: int = 40
|
|
fps: int = 16
|
|
|
|
num_frames: int = 81
|
|
|
|
# Wan2.2 I2V A14B supported resolutions
|
|
supported_resolutions: list[tuple[int, int]] | None = field(
|
|
default_factory=lambda: [
|
|
(1280, 720), # 16:9
|
|
(720, 1280), # 9:16
|
|
(832, 480), # 16:9
|
|
(480, 832), # 9:16
|
|
]
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class Turbo_Wan2_2_I2V_A14B_SamplingParam(Wan2_2_Base_SamplingParams):
|
|
guidance_scale: float = 3.5 # high_noise
|
|
guidance_scale_2: float = 3.5 # low_noise
|
|
num_inference_steps: int = 4
|
|
fps: int = 16
|
|
|
|
|
|
# =============================================
|
|
# ============= Causal Self-Forcing =============
|
|
# =============================================
|
|
@dataclass
|
|
class SelfForcingWanT2V480PConfig(WanT2V_1_3B_SamplingParams):
|
|
pass
|