Nodes/Lyonir Studio/๐Ÿบ Lyonir Sampler
ComfyUI Node

๐Ÿบ Lyonir Sampler

Sampling, Video Decode and the Crop in One Node

By LyonirยทCreated 24 days agoยทUpdated 8 days agoยท 3
๐Ÿบ Lyonir Sampler
  • model
  • conditioning
  • latent
  • video_vae
  • negative
  • audio_vae
  • images
  • audio
  • latent
  • info
โ—„target_width1080โ–บ
โ—„target_height1080โ–บ
โ—„model_familyautoโ–บ
โ—„seed43โ–บ
โ—„noiseenabledโ–บ
โ—„steps20โ–บ
โ—„sampler_nameres_multistepโ–บ
โ—„schedulersimpleโ–บ
โ—„denoise1.00โ–บ
โ—„crop_anchorcenterโ–บ
โ—„cfg1.0โ–บ

SamplerCustomAdvanced gets you a latent. Then you need a VAE Decode, then something to slice the video latent into frames, then a crop because the model generated an off-grid canvas, then a second decode if the family carries audio. ๐Ÿบ Lyonir Sampler does all of that in one box, for four model families, and reports what it did in a string you can actually read.

What it is

A unified sampler for MiniMax H3, LTX, Bernini-R and Wan. Same shape as SamplerCustomAdvanced - model, conditioning, latent, seed, steps, sampler, scheduler, denoise - plus a few Lyonir-specific fields, plus built-in video and audio decoding, plus the hard crop back to your requested resolution.

The author's own framing is worth repeating because it saves you a design mistake: "If you want a second stage or another model, chain a second Lyonir Sampler in the workflow instead of using a secondary model inside the node." There is a dual-model path - the bernini and wan families accept a high-noise model and split_step - but the pack's guidance is to compose two samplers rather than nest a refiner inside one node. Composition keeps the graph legible; nesting is how you end up guessing which cfg applied to which pass.

Family handling is where the node earns its keep:

  • minimax runs the frozen v2.8 MiniMax H3 path with a BasicGuider, one pass. It is deliberately frozen - the README notes it so you're not surprised when MiniMax sampler behavior doesn't change with pack updates.
  • ltx is the generic custom-sampling path, and it does one thing nothing else does: when the conditioning carries LTX IC-LoRA guide keyframes, it strips those temporary guide latent slices after sampling and before VAE decode, while keeping the audio stream in a joint AV latent intact. That's a fiddly detail you'd otherwise handle with latent surgery.
  • bernini and wan get optional dual-model sampling split at split_step.
  • auto sniffs the family from model and latent metadata. Useful, but explicit is better - see ๐Ÿบ Lyonir Model Family.

Inputs that matter

model, conditioning, latent, video_vae are the four wires that matter, and video_vae is required rather than optional because this node always decodes. Then target_width and target_height (default 1080ร—1080) - the final size. Wire ๐Ÿบ Lyonir Resolution's two outputs into these and the node knows the difference between the canvas to generate and the size to crop to.

model_family, seed, steps, sampler_name, scheduler (short lists put res_multistep and simple at the top deliberately), denoise, and crop_anchor round out the required set. crop_anchor only matters when the native canvas is bigger than your target - nine positions, default center.

Optional: negative (connect it and the node switches to a native CFGGuider outside the frozen MiniMax path), audio_vae for joint audio/video decode on MiniMax and LTX, and cfg, which only bites when negative is connected. noise is an on/off toggle; enabled is what you want for text-to-video.

Outputs

images - decoded, hard-cropped final frames. audio - decoded audio when a joint AV latent and an audio VAE are present, otherwise nothing. latent - the final sampled latent, preserved on purpose so you can feed a latent upscaler or a second stage. info - a diagnostics string reporting family, requested size, input_native_hint, decoded_final, frame count, LTX guides cropped, guider name, cfg, steps, sampler, denoise, and ending with crop=hard | resize=no | upscale=no. When something looks wrong, read that string before you touch anything else.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Lyonir/ComfyUI-Lyonir-Studio.git
python -m pip install -r ComfyUI-Lyonir-Studio/requirements.txt

Via Manager, search ComfyUI-Lyonir-Studio. Restart afterwards. Models aren't bundled - the README's example workflows name specific quantized MiniMax H3, LTX 2.5 and Z-Image files, and you supply your own equivalents. All four families are heavy; memory depends on your quantization.

Where people trip

"Lyonir Sampler never upscales silently." That's the node's own error text, and it's the most common failure: you asked for 1080ร—1920, the model generated something smaller, and the node refuses to resize it - raising Decoded frame is WxH, smaller than requested and pointing you at Resolution. Fix it upstream by generating at least as large as the target. This is a feature; the alternative is a blurry upscale you didn't ask for.

LTX canvas errors. LTX is validated against the decoded latent before sampling. If the latent is too small, the error tells you to connect both Resolution outputs to the latent creation node and the Sampler - not just one of them. The other LTX error fires when the latent is the wrong native size, which usually means Resolution went to the Sampler only.

Progress looks stuck. A long video render spends a lot of its time outside the sampler loop - VAE decode, crop, audio decode. v3.5.16 added one forward-only total progress bar covering all four stages precisely because the old per-stage bar made decode look like a hang.

Wrong family in auto. Detection reads model and latent metadata; unusual combinations can be misread. If info says the wrong family, set it explicitly.

CategoryLyonir Studio/Sampling

Inputs (17)

NameTypeDefaultDescription
modelMODELโ€”
conditioningCONDITIONINGโ€”
latentLATENTโ€”
video_vaeVAEโ€”
target_widthINT108032โ€“16384โ€”
target_heightINT108032โ€“16384โ€”
model_familyCOMBOauto5 options: auto, minimax, ltx, bernini, wan
seedINT430โ€“18446744073709550000โ€”
noiseCOMBOenabled2 options: enabled, disabled
stepsINT201โ€“10000โ€”
sampler_nameCOMBOres_multistep44 options: res_multistep, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000โ€“1โ€”
crop_anchorCOMBOcenter9 options: center, top, bottom, left, right, top_left, +3
negativeoptCONDITIONINGโ€”
audio_vaeoptVAEโ€”
cfgoptFLOAT1.00โ€“100โ€”

Outputs (4)

NameTypeDescription
imagesIMAGEโ€”
audioAUDIOโ€”
latentLATENTโ€”
infoSTRINGโ€”