Repository navigation
Conversation
rwagwani
force-pushed
the
fix/transfer-ignored-setting-warnings
branch
from
October 30, 2026 06:55
b8d2948 to
0ab0bea
Compare
Collaborator
|
Thanks for the additional Transfer diagnostics. I reviewed the incremental change on top of #335 and did not find a blocking implementation issue in this pass. This should follow #335 rather than merge ahead of it, since the current diff includes that PR as well. Once #335 is merged, could you please update this branch so the remaining diff is isolated, then satisfy the current-main checks and required approvals? The earlier ValueError for already-invalid weights and the private request-field/equality change are intentional behavior differences, not just message edits; please retain those explicit notes in the description. |
Several transfer settings are accepted without any message in setups where the code never reads them, so users change them and get an unchanged video. Make the code say what the docs already say. The shipped cookbook specs and the Sim-Transfer skill requests build exactly as before, with no new warnings; new L0 tests that run in CI build them all through build_sample. Warnings only (the generated video does not change): - a single-control `weight` (weights are normalised by their sum, and the causal Sim-Transfer path hard-codes 1.0); - on single-view distilled causal Transfer, a table of fields the fixed-step sampler never reads (negative prompt, guidance, sigma_max, shift, normalize_cfg, num_conditional_frames and both guidance windows), a chunk size unlike num_frames, and model_mode other than video2video; and `--sampler` other than unipc on any fixed-step checkpoint; - a reversed guidance_interval / control_guidance_interval (lo >= hi) where that guidance pass would otherwise run; - on single-view Transfer, an explicitly requested fps or num_frames that differs from what the source video gives, checked in generate_transfer_sample (and the streaming path) against the resolved length and frame rate; and prompt_upsampling=True; - both negative_prompt and negative_prompt_file set explicitly. Error: on the bidirectional single-view path, negative or all-zero control weights raise ValueError when the sample is built, instead of a bare assert inside build_transfer_batch. A built OmniSampleArgs now records which fields the request set (a private attribute, not serialized), so generation can tell a request from a default. Pydantic includes private attributes in ==, so test_sample_args compares model_dump() instead. Signed-off-by: rwagwani <rwagwani@nvidia.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rwagwani
force-pushed
the
fix/transfer-ignored-setting-warnings
branch
from
October 31, 2026 17:22
0ab0bea to
4c9830f
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #335 (rejection messages and the cookbook spec fix). This PR's own change is the last commit.
Summary
Several transfer settings are accepted without any message in setups where the code never reads them, so users change them and get an unchanged video. Found while validating every parameter of Cosmos3-Nano-Sim-Transfer (checkpoint 23b77384) and Cosmos3-Nano on AV and Robotics inputs. Most of these limits are already in the docs; this PR makes the code say them at run time. It changes no generated video, and every shipped cookbook spec and Sim-Transfer skill request builds exactly as before, with no new warnings.
Warnings (no output change)
weight: weights are normalised by their sum, and the causal Sim-Transfer path hard-codes 1.0._DISTILLED_TRANSFER_IGNORED_FIELDS) of fields the fixed-step sampler never reads (negative prompt, guidance, sigma_max, shift, normalize_cfg, num_conditional_frames, both guidance windows). It warns only when the sample or CLI sets a non-neutral value, not for values from a defaults file. Also a chunk size unlikenum_frames, andmodel_modeother thanvideo2video.--samplerother than unipc on any fixed-step checkpoint (checked once at model load).guidance_interval/control_guidance_interval(lo >= hi), only where that guidance pass would otherwise run.fpsornum_framesthat differs from what the source video gives. This is checked ingenerate_transfer_sample(and the streaming path), against the length and frame rate generation actually resolves, so there is no second copy of that logic. Alsoprompt_upsampling=True, and bothnegative_promptandnegative_prompt_fileset explicitly.Error
ValueErrorwhen the sample is built, instead of a bareassertinsidebuild_transfer_batch. The causal path and joint camera+LiDAR transfer do not read these weights, so they are left alone.Behaviour changes, stated plainly
ValueErrorabove. Those requests already failed, later, with a bareAssertionErrorafter model load.OmniSampleArgsnow records which fields the request set (a pydantic private attribute,requested_fields, not serialized), so generation can tell a request from a default. Pydantic includes private attributes in==, sotest_sample_argscomparesmodel_dump(). No production code compares samples with==.Not changed here (follow-up)
On normal Nano/Super, the built-in video2video defaults always supply a
negative_prompt, so a request-levelnegative_prompt_fileis never read, and a missing path is accepted. The cookbook specs set../assets/negative_prompt.json, whose caption differs slightly fromdefaults/neg_prompts.json. Fixing this changes cookbook output (precedence, and resolving the path relative to the spec), so it should be its own PR.Verification
transfer_shipped_specs_test.py, plus additions to existing files). They build all six cookbook specs and the six official Sim-Transfer skill requests (written byprepare_hf_sample.py, run with the skill's defaults file and CLI flags) throughfrom_files+build_sample, and assert no errors and no[transfer]warnings. They do not need the Git LFS videos, so they run in CI. A separate spec-vs-video check (fps/num_frames match the asset) runs only where the LFS videos are checked out.-m L0, same command asgpu-tests.yml), replicated on a single GB300: running; I will add the result here.depth.weight=5,sigma_max=200,fps=10on a 30 fps video) prints exactly those three warnings and produces the same video as on main.🤖 Generated with Claude Code