Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
a9da8da
[None][test] DO NOT MERGE: CI diagnostic for Cosmos3 LPIPS golden div…
ishovkun Aug 16, 2026
0ed750f
[None][test] DO NOT MERGE: run the Cosmos3 diagnostic pre-merge
ishovkun Aug 17, 2026
ace3955
Merge upstream/main (triton 3.7.0 / torch 2.12 floor) into diagnostic…
ishovkun Aug 17, 2026
a36c902
[None][test] DO NOT MERGE: fingerprint checkpoint weights and tokeniz…
ishovkun Aug 17, 2026
a4ed9a9
[https://nvbugs/6418815][test] Pin fp32-matmul precision in VisualGen…
ishovkun Aug 17, 2026
ccf3fda
[https://nvbugs/6418815][test] Re-baseline Cosmos3 LPIPS goldens unde…
ishovkun Aug 17, 2026
e83a1a5
[https://nvbugs/6418815][test] Record self-verification scores; drop …
ishovkun Aug 18, 2026
c859d38
[https://nvbugs/6418815][test] Pin fp32-matmul precision in the LPIPS…
ishovkun Aug 18, 2026
b110883
[https://nvbugs/6418815][test] Scope the fp32-matmul pin to Cosmos3 only
ishovkun Aug 19, 2026
1e551f0
[https://nvbugs/6418815][test] Leave the i2v_4step path unpinned
ishovkun Aug 19, 2026
69544cb
[https://nvbugs/6418815][test] Annotate the fp32-matmul pin contextma…
ishovkun Aug 19, 2026
1fc46d1
[https://nvbugs/6418815][test] Do not pin the NVFP4 feature profile
ishovkun Aug 19, 2026
90b9866
Merge remote-tracking branch 'upstream/main' into cosmos3-rebaseline-…
ishovkun Aug 20, 2026
9ad6e39
Merge remote-tracking branch 'upstream/main' into cosmos3-rebaseline-…
ishovkun Aug 20, 2026
d701313
Merge remote-tracking branch 'upstream/main' into cosmos3-rebaseline-…
ishovkun Aug 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions scripts/visualgen_eval/visual_gen_lpips_score_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,14 @@ def _evaluate(args: argparse.Namespace) -> dict[str, Any]:


def main() -> None:
# Pin fp32-matmul arithmetic for scoring, mirroring the generation-side pin
# (_lpips_pinned_fp32_matmul_precision in visual_gen_test_utils.py). This
# script runs as a subprocess, so the parent's torch flags do not propagate;
# without the pin the scorer inherits the host default, which differs
# between NGC containers (TF32 on) and PyPI torch (TF32 off).
torch.set_float32_matmul_precision("highest")
torch.backends.cudnn.allow_tf32 = True

args = parse_args()
result = _evaluate(args)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
{
"source": "diffusers Cosmos3OmniPipeline on diffusers main (reference implementation, not a TRT-LLM self-golden)",
"diffusers_reference": "huggingface/diffusers#14181 'Cosmos3 edge support' + #14246 'Fix Cosmos3 Edge generator K normalization'",
"diffusers_version": "0.40.0.dev0",
"diffusers_commit": "2919c50968389232c527bdab1a3af69cef01ed07",
"scheduler_override": "UniPCMultistepScheduler.from_config(checkpoint config, use_karras_sigmas=False, flow_shift=3.0). With the checkpoint's use_native_flow_schedule=true this reproduces the cosmos-framework PyTorch backend schedule (fm_solvers_unipc @ 117c7d2) to fp32-ulp: timesteps bit-identical, full synthetic step() trajectories agree to <=1.6e-7 rel (see TestNativeFlowSchedule fixtures). Stock diffusers is NOT used as-is because its karras branch swallows the native flow sigmas.",
"prompt_text_matching": "The golden run passed pre-formatted cond AND uncond texts with add_duration_template=False and add_resolution_template=False. Both texts were produced by TRT-LLM's _format_prompt_with_metadata (keep-metadata negative-prompt semantics, matching cosmos-framework's CLI default rather than diffusers' inverse templates), so both stacks tokenize identical sequences in both CFG branches.",
"model": "Cosmos3-Edge",
"seed": 42,
"generator": "torch.Generator(device='cuda').manual_seed(42); initial latents match TRT-LLM's randn_tensor draw bit-for-bit (same shape/dtype/generator semantics)",
"use_system_prompt": false,
"torch_dtype": "bfloat16",
"lpips_net": "alex",
"video": "cosmos3_edge_i2v_lpips_golden_video.mp4",
"model": "Cosmos3-Edge",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "The orange sphere slowly rises while the camera pans right across the scene",
"conditioning_image": "deterministic 832x480 image drawn by _write_cosmos3_edge_conditioning_image in test_visual_gen.py",
"negative_prompt": "",
"height": 480,
"width": 832,
"num_frames": 29,
"num_inference_steps": 10,
"guidance_scale": 5.0,
"seed": 42,
"frame_rate": 24.0,
"conditioning_image": "deterministic 832x480 image drawn by _write_cosmos3_edge_conditioning_image in test_visual_gen_cosmos3.py",
"note": "Regression gate only (TRT-LLM vs itself under pinned arithmetic). Cross-stack correctness vs diffusers is covered by the per-step parity unit test (test_cosmos3_edge.py::TestDiffusersParity).",
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.13,
"measured_lpips_at_creation": 0.0778,
"threshold_rationale": "0.0778 measured cross-stack at 10 steps (I2V accumulates cross-stack drift faster than T2V: 0.1105 at the deployed 50 steps), plus ~0.04 cross-host headroom. The failure signal is far away: a wrong-seed run against this golden measures LPIPS 0.858. The deployed 50-step I2V shape is exercised by test_cosmos3_edge_i2v_example.",
"notes": "Per-step masked-velocity parity vs diffusers is 0.8-1.5 percent rel (noisy frames); diffusers zeroes the conditioned frame's velocity while TRT-LLM masks it in the pipeline - equivalent for the scheduler."
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "1fd9b0ab24de130f593056a32a7b8555fafbbf073b76c29a4633504870b1dad0"
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
{
"source": "diffusers Cosmos3OmniPipeline on diffusers main (reference implementation, not a TRT-LLM self-golden)",
"diffusers_reference": "huggingface/diffusers#14181 'Cosmos3 edge support' + #14246 'Fix Cosmos3 Edge generator K normalization'",
"diffusers_version": "0.40.0.dev0",
"diffusers_commit": "2919c50968389232c527bdab1a3af69cef01ed07",
"scheduler_override": "UniPCMultistepScheduler.from_config(checkpoint config, use_karras_sigmas=False, flow_shift=3.0). With the checkpoint's use_native_flow_schedule=true this reproduces the cosmos-framework PyTorch backend schedule (fm_solvers_unipc @ 117c7d2) to fp32-ulp: timesteps bit-identical, full synthetic step() trajectories agree to <=1.6e-7 rel (see TestNativeFlowSchedule fixtures). Stock diffusers is NOT used as-is because its karras branch swallows the native flow sigmas.",
"prompt_text_matching": "The golden run passed pre-formatted cond AND uncond texts with add_duration_template=False and add_resolution_template=False. Both texts were produced by TRT-LLM's _format_prompt_with_metadata (keep-metadata negative-prompt semantics, matching cosmos-framework's CLI default rather than diffusers' inverse templates), so both stacks tokenize identical sequences in both CFG branches.",
"model": "Cosmos3-Edge",
"seed": 42,
"generator": "torch.Generator(device='cuda').manual_seed(42); initial latents match TRT-LLM's randn_tensor draw bit-for-bit (same shape/dtype/generator semantics)",
"use_system_prompt": false,
"torch_dtype": "bfloat16",
"lpips_net": "alex",
"image": "cosmos3_edge_t2i_lpips_golden.png",
"model": "Cosmos3-Edge",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A ceramic teapot pouring steaming tea into a cup, morning window light",
"negative_prompt": "",
"height": 640,
"width": 640,
"num_frames": 1,
"num_inference_steps": 50,
"guidance_scale": 4.0,
"seed": 42,
"output_type": "image",
"note": "Regression gate only (TRT-LLM vs itself under pinned arithmetic). Cross-stack correctness vs diffusers is covered by the per-step parity unit test (test_cosmos3_edge.py::TestDiffusersParity).",
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.05,
"measured_lpips_at_creation": 0.0056,
"threshold_rationale": "0.0056 measured cross-stack on B200; 0.05 matches the FLUX/QwenImage image-gate convention."
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "3f7c9b958807356ced2de1734e301dc837fa0b095f8fed1e29da764993926046"
}
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
{
"source": "diffusers Cosmos3OmniPipeline on diffusers main (reference implementation, not a TRT-LLM self-golden)",
"diffusers_reference": "huggingface/diffusers#14181 'Cosmos3 edge support' + #14246 'Fix Cosmos3 Edge generator K normalization'",
"diffusers_version": "0.40.0.dev0",
"diffusers_commit": "2919c50968389232c527bdab1a3af69cef01ed07",
"scheduler_override": "UniPCMultistepScheduler.from_config(checkpoint config, use_karras_sigmas=False, flow_shift=3.0). With the checkpoint's use_native_flow_schedule=true this reproduces the cosmos-framework PyTorch backend schedule (fm_solvers_unipc @ 117c7d2) to fp32-ulp: timesteps bit-identical, full synthetic step() trajectories agree to <=1.6e-7 rel (see TestNativeFlowSchedule fixtures). Stock diffusers is NOT used as-is because its karras branch swallows the native flow sigmas.",
"prompt_text_matching": "The golden run passed pre-formatted cond AND uncond texts with add_duration_template=False and add_resolution_template=False. Both texts were produced by TRT-LLM's _format_prompt_with_metadata (keep-metadata negative-prompt semantics, matching cosmos-framework's CLI default rather than diffusers' inverse templates), so both stacks tokenize identical sequences in both CFG branches.",
"model": "Cosmos3-Edge",
"seed": 42,
"generator": "torch.Generator(device='cuda').manual_seed(42); initial latents match TRT-LLM's randn_tensor draw bit-for-bit (same shape/dtype/generator semantics)",
"use_system_prompt": false,
"torch_dtype": "bfloat16",
"lpips_net": "alex",
"video": "cosmos3_edge_t2v_lpips_golden_video.mp4",
"model": "Cosmos3-Edge",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A red ball rolls across a wooden floor, casting a soft shadow.",
"negative_prompt": "",
"height": 480,
"width": 832,
"num_frames": 29,
"num_inference_steps": 50,
"guidance_scale": 5.0,
"seed": 42,
"frame_rate": 24.0,
"note": "Regression gate only (TRT-LLM vs itself under pinned arithmetic). Cross-stack correctness vs diffusers is covered by the per-step parity unit test (test_cosmos3_edge.py::TestDiffusersParity).",
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.1,
"measured_lpips_at_creation": 0.0447,
"threshold_rationale": "0.0447 measured cross-stack (TRT-LLM VANILLA attention vs diffusers main) on B200 with matched noise and matched CFG texts, plus headroom for the ~0.04 cross-host kernel drift documented in _preserve_lpips_candidate_on_failure."
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "0ec80b5c906ae576deedf8fb48c55edd0c78203138608f12d0c439da11ab6f10"
}
Original file line number Diff line number Diff line change
@@ -1,27 +1,39 @@
{
"image": "cosmos3_nano_fp8_blockwise_lpips_golden.png",
"model": "Cosmos3-Nano",
"source": "TensorRT-LLM VisualGen",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A serene mountain landscape with snow-capped peaks and a flowing river",
"negative_prompt": "",
"height": 720,
"width": 1280,
"num_frames": 1,
"num_inference_steps": 35,
"guidance_scale": 6.0,
"frame_rate": 24.0,
"seed": 42,
"frame_rate": 24.0,
"feature_config": {
"quantization": "FP8_BLOCK_SCALES",
"cuda_graph": false
},
"quantization_ignore": [
"language_model.*",
"vae2llm",
"llm2vae",
"time_embedder.*"
],
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": true,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.05,
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0a0+5aff3928d8.nv26.05",
"tensorrt_llm_version": "1.3.0rc21",
"tensorrt_llm_commit": "b2131b181f5be6717cd302a0b53c22c6a70c65b3",
"container_image": "urm.nvidia.com/sw-tensorrt-docker/tensorrt-llm@sha256:475999862b896593159f10f486e16a748e7b7abb5cee558932a59ea6fc690d6b",
"sha256": "dbdfc83e3a6a038138f4c8e039fa09be8ab11cb308f1534405624523afed73a5"
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "32c080983eb8d94d1da5d21378ea87912dadf018f00f15123a33f000640341ad"
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
{
"image": "cosmos3_nano_t2i_lpips_golden.png",
"model": "Cosmos3-Nano",
"source": "TensorRT-LLM VisualGen",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A serene mountain landscape with snow-capped peaks and a flowing river",
"negative_prompt": "",
"height": 720,
"width": 1280,
"num_frames": 1,
"num_inference_steps": 35,
"guidance_scale": 6.0,
"seed": 42,
"frame_rate": 24.0,
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": true,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.05,
"diffusers_version": "0.38.0",
"tensorrt_llm_version": "1.3.0rc20",
"tensorrt_llm_commit": "85665f5fd331d0154a78172954846d843085e83f",
"container_image": "urm.nvidia.com/sw-tensorrt-docker/tensorrt-llm-staging/release@sha256:3308a2dc0192a8329ea02eca7b5c44f290f5e894cd8c5921099308d84c3e5691"
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "035f3e764e6a36159071178a2d7be6ec3cabc60899736099ff89a59c037e15e1"
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{
"video": "cosmos3_nano_t2v_lpips_golden_video.mp4",
"model": "Cosmos3-Nano",
"source": "TensorRT-LLM VisualGen",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A serene mountain landscape with snow-capped peaks and a flowing river",
"negative_prompt": "",
"height": 720,
"width": 1280,
"num_frames": 189,
Expand All @@ -12,11 +13,17 @@
"frame_rate": 24.0,
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": true,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.05,
"diffusers_version": "0.38.0",
"tensorrt_llm_version": "1.3.0rc20",
"tensorrt_llm_commit": "85665f5fd331d0154a78172954846d843085e83f",
"container_image": "urm.nvidia.com/sw-tensorrt-docker/tensorrt-llm-staging/release@sha256:3308a2dc0192a8329ea02eca7b5c44f290f5e894cd8c5921099308d84c3e5691"
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "980849ba2f1ff1101c0dce2ac8897172212a614f23c3fb0cc6acbd970dd42976"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"image": "cosmos3_nano_v2v_lpips_golden_frame.png",
"model": "Cosmos3-Nano",
"source": "TensorRT-LLM VisualGen (self-golden)",
"prompt": "A serene mountain landscape with snow-capped peaks and a flowing river",
"negative_prompt": "",
"height": 720,
"width": 1280,
"num_frames": 9,
"num_inference_steps": 35,
"guidance_scale": 6.0,
"seed": 42,
"frame_rate": 24.0,
"free_frame_index": 8,
"conditioning_video": "tests/integration/defs/examples/visual_gen/test_data/cosmos3_v2v_lpips_reference.mp4 (in-repo fixture; H.264 decode is bit-exact by spec, NVDEC output deterministic)",
"note": "First provenance record for this golden; the original (#16155, 2026-08-03) shipped without one.",
"attention_backend": "VANILLA",
"torch_compile": false,
"deterministic_algorithms": false,
"fp32_matmul_precision": "highest",
"cudnn_allow_tf32": true,
"lpips_net": "alex",
"lpips_threshold": 0.05,
"measured_lpips_at_creation": 0.0,
"threshold_rationale": "self-regeneration distance on the cutting host; threshold kept at the pre-existing gate for this test",
"diffusers_version": "0.39.0",
"torch_version": "2.12.0+cu130",
"tensorrt_llm_version": "1.3.0rc25",
"tensorrt_llm_commit": "a4ed9a9c13a69b3c024debd0d83e12c8c734bf95",
"environment": "Native build, no container; NVIDIA B300 (sm103). Portable by construction: generation pins float32_matmul_precision('highest') (see _lpips_pinned_fp32_matmul_precision), under which the trajectory measured bit-stable across torch 2.11/2.12 and B200/B300.",
"sha256": "728c9bed1c25bf7de2b727949cc8c985f0f5bf03fd78e19847f4bcc7edeb450b"
}
Git LFS file not shown
Loading
Loading