ComfyUI Node

RAVEN Streaming Sampler

Runs RAVEN's chunk-major fresh-noise consistency rollout over MiniMax H3 and streams the result into the node while it samples. This is not a stock sampler: a chunk is carried to completion in `steps` NFEs and written into the KV cache before the next one starts, so no sampler or scheduler selector applies and CFG/negative conditioning do not exist here. Frame count and canvas come from the LATENT. Video becomes visible one chunk behind sampling (the decoder needs 2 latents of lookahead) and the audio VAE adds 0.425 s of its own; the clip ends with a 5-frame flush. Memory: the DiT and the two VAEs are never co-resident. Each chunk is sampled with the DiT loaded and decoded with the VAEs loaded, through ordinary comfy.model_management.load_models_gpu calls, so ComfyUI decides what is resident against the memory that is actually free. There is no VRAM cap or residency input here on purpose - it would only be a second guess at a number ComfyUI already measures. The preview is best-effort: if it cannot start, or fails mid-run, sampling and the returned LATENT/IMAGE/AUDIO are unaffected.

By YanzuoLu·Created 6 days ago·Updated 6 days ago· 0
RAVEN Streaming Sampler
  • model
  • positive
  • latent
  • video_vae
  • audio_vae
  • LATENT
  • IMAGE
  • AUDIO
seed0
steps4
video_shift12.00
audio_shift3.00
sink2
window2
kv_cache_storagecpu_pinned
Categorymodel/sampling/raven

Inputs (12)

NameTypeDefaultDescription
modelMODELA MODEL from RAVEN Model Loader (optionally with official LoRAs stacked after it). A stock bidirectional H3 model is rejected: the loop needs the chunk-causal DiT.
positiveCONDITIONINGThe positive CONDITIONING from MiniMax H3 Image to Video used in T2VA form. There is no negative input and no CFG: the chunk-major loop runs one conditioning branch, so a second one would be silently ignored. Keyframe (fl2va) and reference (ref2va) extras are refused with an explicit error: this sampler has not implemented or verified the causal packed layout for condition rows, so refusing beats dropping them silently. That is an implementation limit here, not a statement about the RAVEN LoRA.
latentLATENTThe empty AV latent from the same node (or Empty MiniMax H3 AV Latent). It defines the frame count and canvas; this node deliberately has no width/height/frames inputs. A non-empty latent is refused - every chunk starts from its own fresh noise.
video_vaeVAEThe MiniMax H3 video VAE (24 latent channels).
audio_vaeVAEThe MiniMax H3 audio VAE (32 channels, stereo, 32 kHz).
seedINT00–18446744073709550000Seeds a private generator; the rollout never touches global RNG, so the same seed is the same clip.
stepsINT41–100Consistency NFEs per chunk. RAVEN's published preview trial is 4; more steps is not a free quality win, the schedule was distilled for this budget.
video_shiftFLOAT12.000.01–100Shift of the video stream's trailing sigma grid.
audio_shiftFLOAT3.000.01–100Shift of the audio stream's own trailing sigma grid. The two streams run independent grids, not one remapped grid.
sinkINT21–64Attention-sink cache chunks pinned from the start. Chunk 0 is the text prefill, so 2 means text + the first media chunk.
windowINT20–64Most recent cache chunks kept besides the sinks. 0 keeps only the sinks.
kv_cache_storageCOMBOcpu_pinnedWhere the retained chunk KV cache lives. 'cpu_pinned' (default) keeps it in page-locked host memory and copies one layer's retained rows back per block: about 0.56 GiB of VRAM at 192 frames instead of the ~28 GiB the whole cache costs on the card. 'cpu' is the same without page-locking (slower copies, no pinned-memory pressure). 'gpu' keeps it resident and is only for cards with room to spare. This changes where bytes live, not what is computed.

Outputs (3)

NameTypeDescription
LATENTLATENTThe finished AV latent, same nested (video, audio) structure as the input.
IMAGEIMAGEEvery frame, in order, as written by the incremental video collector while the rollout ran. The clip is not decoded again at the end.
AUDIOAUDIOThe stereo waveform, as written by the incremental (overlap-save) audio collector while the rollout ran, with the official whole-clip loudness normalisation applied once at finalize.