Skip to content

Commit 94a6150

Browse files
committed
[fix]: drop unrelated autoregression registry entry, add package init, and enhance smoke test
1 parent 873adfa commit 94a6150

3 files changed

Lines changed: 52 additions & 34 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# SPDX-License-Identifier: Apache-2.0

fastvideo/registry.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -879,20 +879,6 @@ def detect(path: str) -> bool:
879879
)
880880

881881
# Cosmos 2
882-
register_configs(
883-
sampling_param_cls=None,
884-
pipeline_config_cls=CosmosConfig,
885-
workload_types=(WorkloadType.T2V, WorkloadType.I2V),
886-
hf_model_paths=[
887-
"nvidia/Cosmos-1.0-Autoregression-7B-Video",
888-
],
889-
model_detectors=[
890-
lambda path: "cosmos" in path.lower() and "autoregression" in path.lower(),
891-
],
892-
model_family="cosmos",
893-
default_preset="cosmos_ar_7b",
894-
)
895-
896882
register_configs(
897883
sampling_param_cls=None,
898884
pipeline_config_cls=CosmosConfig,

tests/local_tests/pipelines/test_cosmos_predict_pipeline_smoke.py

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,67 @@
11
# SPDX-License-Identifier: Apache-2.0
2+
"""Smoke, registry, preset, and stage-contract tests for Cosmos Predict pipeline."""
3+
4+
import json
5+
from pathlib import Path
26
import pytest
37
import torch
48
from unittest.mock import MagicMock
59

6-
from fastvideo.api.sampling_param import SamplingParam
7-
from fastvideo.fastvideo_args import FastVideoArgs
8-
from fastvideo.registry import get_model_family, get_default_preset
10+
from fastvideo.api.presets import get_preset
11+
from fastvideo.configs.pipelines.cosmos_predict import CosmosPredictConfig, CosmosPredict14BConfig
12+
from fastvideo.fastvideo_args import FastVideoArgs, WorkloadType
13+
from fastvideo.registry import get_model_info, get_preset_selection
914
from fastvideo.pipelines.pipeline_batch_info import ForwardBatch
1015
from fastvideo.pipelines.basic.cosmos_predict.pipeline_cosmos_predict import (
1116
CosmosPredictPipeline,
1217
CosmosPredictLatentPreparationStage,
18+
EntryClass,
1319
)
1420

1521

16-
def test_cosmos_predict_registry_and_preset_resolution():
17-
"""Verify that presets are properly registered and resolvable via SamplingParam."""
18-
# 7B model check
19-
param_7b = SamplingParam.from_pretrained("nvidia/Cosmos-1.0-Prompt2World-7B-Video")
20-
assert param_7b.height == 704
21-
assert param_7b.width == 1280
22-
assert param_7b.num_frames == 93
23-
assert param_7b.num_inference_steps == 35
24-
assert get_model_family("nvidia/Cosmos-1.0-Prompt2World-7B-Video") == "cosmos_predict"
25-
assert get_default_preset("nvidia/Cosmos-1.0-Prompt2World-7B-Video") == "cosmos_predict_preset"
22+
def test_cosmos_predict_registry_and_preset_resolution(tmp_path: Path):
23+
"""Verify exact class resolution, required modules, configs, and official preset defaults."""
24+
assert EntryClass is CosmosPredictPipeline
25+
assert CosmosPredictPipeline._required_config_modules == [
26+
"text_encoder", "tokenizer", "vae", "transformer", "scheduler"
27+
]
28+
29+
# 7B model preset check
30+
preset_name_7b, family_7b = get_preset_selection("nvidia/Cosmos-1.0-Prompt2World-7B-Video")
31+
assert (preset_name_7b, family_7b) == ("cosmos_predict_preset", "cosmos_predict")
32+
preset_7b = get_preset(preset_name_7b, family_7b)
33+
assert preset_7b.defaults["height"] == 704
34+
assert preset_7b.defaults["width"] == 1280
35+
assert preset_7b.defaults["num_frames"] == 93
36+
assert preset_7b.defaults["fps"] == 24
37+
assert preset_7b.defaults["guidance_scale"] == 7.0
38+
assert preset_7b.defaults["num_inference_steps"] == 35
39+
40+
# 14B model preset check
41+
preset_name_14b, family_14b = get_preset_selection("nvidia/Cosmos-1.0-Prompt2World-14B-Video")
42+
assert (preset_name_14b, family_14b) == ("cosmos_predict_14b_preset", "cosmos_predict")
43+
preset_14b = get_preset(preset_name_14b, family_14b)
44+
assert preset_14b.defaults["num_frames"] == 93
45+
46+
# Local layout model info resolution check
47+
model_dir = tmp_path / "Cosmos-1.0-Prompt2World-7B-Video"
48+
model_dir.mkdir()
49+
model_index = {
50+
"_class_name": "CosmosPredictPipeline",
51+
"_diffusers_version": "0.32.0",
52+
"scheduler": ["diffusers", "EDMEulerScheduler"],
53+
"text_encoder": ["transformers", "Qwen2_5_VLForConditionalGeneration"],
54+
"tokenizer": ["transformers", "AutoTokenizer"],
55+
"transformer": ["diffusers", "CosmosTransformer3DModel"],
56+
"vae": ["diffusers", "AutoencoderKLCosmos"],
57+
}
58+
for component in CosmosPredictPipeline._required_config_modules:
59+
(model_dir / component).mkdir()
60+
(model_dir / "model_index.json").write_text(json.dumps(model_index), encoding="utf-8")
2661

27-
# 14B model check
28-
param_14b = SamplingParam.from_pretrained("nvidia/Cosmos-1.0-Prompt2World-14B-Video")
29-
assert param_14b.height == 704
30-
assert param_14b.width == 1280
31-
assert param_14b.num_frames == 93
32-
assert get_model_family("nvidia/Cosmos-1.0-Prompt2World-14B-Video") == "cosmos_predict"
33-
assert get_default_preset("nvidia/Cosmos-1.0-Prompt2World-14B-Video") == "cosmos_predict_14b_preset"
62+
info_7b = get_model_info(str(model_dir), workload_type=WorkloadType.T2V)
63+
assert info_7b.pipeline_cls is CosmosPredictPipeline
64+
assert info_7b.pipeline_config_cls is CosmosPredictConfig
3465

3566

3667
def test_cosmos_predict_latent_preparation_temporal_downsampling():

0 commit comments

Comments
 (0)