pub struct MiniMaxH3 {
pub hidden: usize,
pub heads: usize,
pub head_dim: usize,
pub ffn: usize,
pub latents_dim: usize,
pub audio_dim: usize,
pub text_dim: usize,
pub shift_video: f64,
pub shift_audio: f64,
pub cond_aug: f64,
pub cond_aug_audio: f64,
/* private fields */
}Fields§
§heads: usize§head_dim: usize§ffn: usize§latents_dim: usize§audio_dim: usize§text_dim: usize§shift_video: f64§shift_audio: f64§cond_aug: f64How much of a keyframe latent survives the noise blend, and
therefore where its rows sit on the schedule. VISUAL_COND_ TIMESTEP is the reference’s default; 1.0 turns the blend off.
cond_aug_audio: f64The same, for a reference soundtrack. The reference’s default is 1.0 — an audio condition is not noised at all.
Implementations§
Source§impl MiniMaxH3
impl MiniMaxH3
pub fn from_cmf(model: &Arc<CmfModel>) -> Result<Self, String>
Sourcepub fn from_cmf_lora(
model: &Arc<CmfModel>,
bank: Option<&LoraBank>,
) -> Result<Self, String>
pub fn from_cmf_lora( model: &Arc<CmfModel>, bank: Option<&LoraBank>, ) -> Result<Self, String>
The same, with an adapter consulted for every projection.
The base weights are q4tp and stay untouched: a rank-32 update
cannot be folded into a four-bit ladder without dequantizing the
whole DiT, so the branch rides beside the base GEMM the way
crate::ltxlora does it for LTX.
Sourcepub fn lora_bound(&self) -> usize
pub fn lora_bound(&self) -> usize
How many of the adapter’s branches found a projection.
Sourcepub fn lora_binds(&self, key: &str) -> bool
pub fn lora_binds(&self, key: &str) -> bool
Whether this adapter key landed on a projection of ours.
Sourcepub fn lora_report(&self) -> Option<String>
pub fn lora_report(&self) -> Option<String>
Under CMF_LORA_PROBE=1: every branch by measured contribution,
loudest first, and which ones the router switched off. This is the
map that says where an adapter actually lives — for the Realism
adapter it is not uniform across the fifty blocks.
Sourcepub fn refine_text(&self, states: &[f32], n: usize) -> Vec<f32>
pub fn refine_text(&self, states: &[f32], n: usize) -> Vec<f32>
Qwen3-VL states [n, text_dim] → refined text embeds
[n, hidden]. Prompt-only, so the caller does this once per
generation rather than once per step.
Sourcepub fn forward(
&self,
layout: &Layout,
text: &[f32],
video: &[f32],
audio: &[f32],
sigma_v: f64,
cond: &[Vec<f32>],
) -> (Vec<f32>, Vec<f32>)
pub fn forward( &self, layout: &Layout, text: &[f32], video: &[f32], audio: &[f32], sigma_v: f64, cond: &[Vec<f32>], ) -> (Vec<f32>, Vec<f32>)
One denoise evaluation.
video is [latents_dim, latent_t, lat_h, lat_w] and audio is
[audio_dim, 2, audio_t], both in the reference’s channel-major
order. text is the refined [n, hidden] stream. Returns the
two velocities, EACH ON ITS OWN SCHEDULE and unscaled.