WeMM-Embedding-4B / patch_sglang_video.py
kekekeke's picture
Upload folder using huggingface_hub
6ec8714 verified
Raw
History Blame
1.98 kB
#!/usr/bin/env python3
"""Align SGLang 0.5.9 video preprocessing with WeMM-Embedding."""
import importlib.metadata
import py_compile
import shutil
from pathlib import Path
import sglang
EXPECTED_VERSION = "0.5.9"
REPLACEMENTS = (
(
"IMAGE_FACTOR = 28",
"IMAGE_FACTOR = 32 # patch_size=16 * spatial_merge_size=2",
),
(
" idx = np.linspace(0, total_frames - 1, num=nframes, dtype=np.int64)",
" idx = torch.linspace(0, total_frames - 1, nframes).round().long().cpu().numpy()",
),
(
""" video = torchvision.transforms.functional.resize(
video,
[resized_height, resized_width],
interpolation=InterpolationMode.BILINEAR,
)
""",
""" video = torchvision.transforms.functional.resize(
video,
[resized_height, resized_width],
interpolation=InterpolationMode.BICUBIC,
antialias=True,
).float()
""",
),
)
def main() -> None:
version = importlib.metadata.version("sglang")
if version != EXPECTED_VERSION:
raise RuntimeError(f"Expected sglang=={EXPECTED_VERSION}, found {version}")
path = (
Path(sglang.__file__).resolve().parent
/ "srt"
/ "multimodal"
/ "processors"
/ "qwen_vl.py"
)
text = path.read_text(encoding="utf-8")
if all(new in text for _, new in REPLACEMENTS):
print("SGLang video preprocessing is ready.")
return
updated = text
for old, new in REPLACEMENTS:
if updated.count(old) != 1:
raise RuntimeError(f"Unexpected SGLang source: {old.splitlines()[0]}")
updated = updated.replace(old, new, 1)
backup = path.with_suffix(path.suffix + ".original")
if not backup.exists():
shutil.copy2(path, backup)
path.write_text(updated, encoding="utf-8")
py_compile.compile(str(path), doraise=True)
print("SGLang video preprocessing is ready.")
if __name__ == "__main__":
main()