Nodes/ComfyUI-Enzino-H3-Studio/④ Render · Enzino H3 WF ✦
ComfyUI Node

④ Render · Enzino H3 WF ✦

The only node in the chain that touches your GPU

By byenzinoai·Created 4 days ago·Updated 4 days ago· 0
④ Render · Enzino H3 WF ✦
  • bus
  • ✦
  • frames
  • audio
◄speedturbo►
◄steps0►
◄seed2026►
◄sampler_nameres_multistep►
◄schedulersimple►
◄step_cacheauto►
◄low_vramauto►
◄attentionauto►
◄sparse_attentionfalse►
◄sparse_tau1.30►
◄prompt_cachetrue►
◄keep_loadedtrue►
◄free_text_encoderfalse►
◄preview_every1►
◄tiled_decodefalse►

This is the one. ④ Render · Enzino H3 WF ✦ takes the ✦ wire with all your settings on it and runs the actual denoising pass: text encode, sample, decode, and out come frames plus an audio track. Everything upstream was configuration; everything downstream is finishing. If a run is slow, out of memory, or produces a clip whose motion is wrong, the conversation starts here.

It deliberately does one job. In the source, before handing off to the engine it forces every finishing and saving flag off - save, upscale, interpolation, Krea 2 polish, signature, social crops, story, variations, control - because ⑤ Enhance and ⑥ Output own those. What comes out is the honest raw render, which is why its frames and audio outputs are useful on their own: preview mid-graph, or wire them into your own nodes and skip the rest of the chain.

Speed: Turbo or Full

speed is the decision that sets everything else. turbo means a distilled model or a Turbo LoRA and few steps; full means the real thing.

steps defaults to 0, which means "auto", and the auto rules are worth knowing because they're filename-driven on the Turbo side. With a Turbo LoRA, 4step in the filename gives 4 steps and anything else gives 8. With no Turbo LoRA selected at all, the pack assumes your diffusion file is already distilled and reads the step count off the model filename the same way. In Full mode it's 13 steps with the step cache on, 20 without. Override it and you own the number.

That's the distillation trade in miniature: fewer steps means less time to refine, and every distil loses something. On H3 the loss is mostly in fine texture and small faces, which is exactly what ⑤ Enhance's Krea 2 pass exists to paper over.

sampler_name and scheduler are ComfyUI's stock lists - 44 samplers, 9 schedulers - defaulting to res_multistep with simple. Resist the urge to go shopping: H3 is a flow-matching model on a fairly straight trajectory, and schedulers that concentrate denoising in the middle (Karras being the usual suspect) tend to distort rather than refine here. seed behaves normally with control-after-generate.

The flags that keep a 33B model on a 16 GB card

Four settings in here are doing serious work, and all four default to auto:

  • step_cache - ComfyUI's native EasyCache. It reuses the previous step's change when the output barely moves, typically dropping ~4 steps out of 13 in Full. light and strong are thresholds of 0.15 and 0.30 applied between 20% and 90% of the run; auto is on for Full, off for Turbo. If a Full render looks soft in motion, turn it off first.
  • low_vram - splits each transformer block's feed-forward into chunks. The 33B MLP intermediate is around 5 GB on a 5-second 720p clip; chunked four ways it fits a 16 GB card, same output. Auto turns it on under 20 GB.
  • attention - auto picks the fastest backend you actually have, in the order SageAttention, SageAttention 3, Flash, else ComfyUI's default. Every backend is wrapped: if one throws (some torch builds blow up on 'torch.Stream' object has no attribute 'cuda_stream'), the run continues on PyTorch attention and that backend is skipped until restart. A log warning, not a crash - which is nice, and also means a silently slow run.
  • sparse_attention with sparse_tau (default 1.3) - H3's native block-sparse path. Real speedup on longer clips, small flicker risk if you push it. Leave tau at 1.3.

The rest are housekeeping: prompt_cache skips re-encoding through the 32B Qwen3-VL when only the seed changed, keep_loaded holds the patched model between runs, free_text_encoder evicts the encoder when RAM is tight, preview_every controls the live preview (0 disables it), tiled_decode decodes in tiles when the full decode won't fit.

Wiring

Three outputs. The ✦ ENZINO_H3 wire into ⑤ Enhance (or straight to ⑥ Output if you don't want finishing). frames is an IMAGE batch. audio is an AUDIO - H3 makes stereo sound in the same pass as the picture, so this is the real soundtrack, not a placeholder.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/byenzinoai/ComfyUI-Enzino-H3-Studio
# restart ComfyUI, Ctrl+F5

No pip dependencies at all, which is unusual for a video pack this size: it rides ComfyUI's own H3 implementation. You need a recent ComfyUI and the weights (~40 GB - open the ◆ Models card). SageAttention is optional, but it's the README's own advice for 16 GB cards and the one pip install this pack is worth.

Where people get burned

  • References mode dies with "pick a References model". The node raises that itself when ① Models has none in the references slot. Most common dead-end in the chain, and the message tells you what to fix.
  • You weren't expecting an OOM on a 16 GB card. Turn low-VRAM on (not auto), switch to W6A8, drop to 640p or 768p, and don't run 15-second clips.
  • Turbo at 4 steps looking mushy. That's the distillation cost, not a bug. Try the 8-step Turbo LoRA, or Turbo to explore and Full for the take you keep.
  • strong step cache. Great for drafts, visible on final motion. If a clip "breathes" oddly, set it to light or off before blaming the sampler.
CategoryEnzino/H3 WF

Inputs (16)

NameTypeDefaultDescription
busENZINO_H3—
speedCOMBOturbo2 options: turbo, full
stepsINT00–60—
seedINT20260–18446744073709550000—
sampler_nameCOMBOres_multistep44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
step_cacheCOMBOautoNative EasyCache: skips steps whose result barely changes (auto = on for Full, off for Turbo)
low_vramCOMBOautoSplits the feed-forward of each block in chunks: much lower VRAM peak (auto = on under 20 GB)
attentionCOMBOauto6 options: auto, default, sage, sage3, flash, int8
sparse_attentionBOOLEANfalse—
sparse_tauFLOAT1.300.5–3—
prompt_cacheBOOLEANtrue—
keep_loadedBOOLEANtrue—
free_text_encoderBOOLEANfalse—
preview_everyINT10–8—
tiled_decodeBOOLEANfalse—

Outputs (3)

NameTypeDescription
✦ENZINO_H3—
framesIMAGE—
audioAUDIO—