From 9b4b559d199c92cef80a7938a2a22c0926913965 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 08:17:55 +0000 Subject: [PATCH] fix: H3 file probe now shows Shadow negative and Video detail The pre-load probe left out adaln_modalities, so picking an H3 file hid every setting that needs it. Run time still checks the loaded model. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_011av2BXzE4UT5HfXpnhTNJQ --- modules/models/minimax_h3/__init__.py | 11 ++++++----- modules/models/minimax_h3/tests/test_probe_traits.py | 10 ++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/models/minimax_h3/__init__.py b/modules/models/minimax_h3/__init__.py index 2714f915..644b4c1e 100644 --- a/modules/models/minimax_h3/__init__.py +++ b/modules/models/minimax_h3/__init__.py @@ -108,16 +108,17 @@ def probe_traits(keys) -> list: every H3 file. Lets the UI hide LTX-only settings the moment a file is picked in the pipeline window, not only once something is generated. - Deliberately narrower than `traits()`: `adaln_modalities` depends on - which blocks an actual loaded module tree contains (full-form vs. - curve-form checkpoints), which the header alone cannot answer, so it is - left for the real load. + `adaln_modalities` is claimed here although the header cannot prove it + (full-form vs. curve-form checkpoints differ in which blocks exist). Left + out, the UI hid Shadow negative and Video detail for every picked H3 file. + A claim that turns out wrong is caught at run time: the loaded model's own + `traits()` is checked, and the feature is skipped with a note in the Log. """ if not detect(keys): return [] from comfy.latent_formats import MiniMaxH3AV - found = ["audio_stream", "dit_block_hooks"] + found = ["audio_stream", "dit_block_hooks", "adaln_modalities"] rank = _traits.LATENT_RANK.get(MiniMaxH3AV.latent_dimensions) if rank: found.append(rank) diff --git a/modules/models/minimax_h3/tests/test_probe_traits.py b/modules/models/minimax_h3/tests/test_probe_traits.py index fbc09af5..90ad273b 100644 --- a/modules/models/minimax_h3/tests/test_probe_traits.py +++ b/modules/models/minimax_h3/tests/test_probe_traits.py @@ -55,10 +55,8 @@ def test_traits_match_the_real_latent_format_class(): assert "temporal_compression" in found -def test_does_not_claim_adaln_modalities_without_a_real_load(): - """The one trait probe_traits deliberately does not answer -- full-form - vs. curve-form checkpoints only differ in which blocks are actually - present, which the header's key NAMES alone (as read here) do not - distinguish reliably enough to assert either way.""" +def test_claims_adaln_modalities_so_h3_settings_are_not_hidden(): + """Shadow negative and Video detail need it. The header cannot prove it, so the + probe is optimistic and the real load (traits()) has the last word at run time.""" m = _module() - assert "adaln_modalities" not in m.probe_traits(_h3_keys()) + assert "adaln_modalities" in m.probe_traits(_h3_keys())