Skip to content

MiniMax H3 video VAE decode: access violation with pinned memory / async offload on RTX 5070 Ti (Blackwell, WDDM, cu130) #15337

Description

@WindSingElegy

MiniMax H3 video VAE decode: access violation crash with pinned memory / async offload on RTX 5070 Ti (Blackwell, WDDM, cu130)

Bug summary

Running the official MiniMax H3 I2V template workflow crashes the whole ComfyUI process during video VAE decode when pinned memory / async weight offload are enabled (the defaults on NVIDIA). The crash is a native Windows fatal exception: access violation, not a Python exception. With --disable-async-offload --disable-pinned-memory the same workflow completes successfully.

Environment

  • OS: Windows 11 Pro 24H2 (10.0.26100)
  • GPU: NVIDIA GeForce RTX 5070 Ti 16 GB (Blackwell, sm_120, WDDM), driver 581.80
  • RAM: 48 GB
  • ComfyUI: 0.30.0 (commit 6f7cd7f)
  • PyTorch: 2.13.0+cu130
  • comfy-aimdo 0.4.13, comfy-kitchen 0.2.26
  • Python 3.12.7
  • Security software: Huorong (HipsDaemon.sys) active — may be relevant for overlapped I/O

Reproduction

  1. Download the MiniMax H3 models (Comfy-Org/MiniMax-H3): minimax_h3_fl2va_pruned_int8_convrot.safetensors, qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors, minimax_h3_video_vae_fp16.safetensors, minimax_h3_audio_vae_fp32.safetensors
  2. Run the official video_minimax_h3_i2v template workflow (defaults: 0.4 MP, 5 s, 20 steps) with default launch flags.

Observed behavior (three consecutive runs)

Run 1 (default flags): diffusion sampling succeeds, then audio VAE loads fine, then video VAE weight loading fails with:

aimdo: src-win/xfer-file-plat.c:43:ERROR:xfer_file_read_at: GetOverlappedResult failed error=1450 handle=... offset=3651042176 size=2097152
aimdo: src/hostbuf.c:275:ERROR:hostbuf_read_file_slice: file read failed ...
RuntimeError: HostBuffer.read_file_slice failed   (at VAEDecode, comfy/memory_management.py:70)

Run 2 (default flags, immediate retry): same read failure path, then:

aimdo: src/model-vbar.c:74:WARNING:VBAR ...: Page 134 pin_count=1
Windows fatal exception: access violation
  File "D:\ComfyUI\comfy\sd.py", line 1181 in decode

→ whole process dies.

Run 3 (--disable-async-offload): sampling succeeds (~6.8 s/it, so the cu130 optimized kernels work fine), audio VAE loads, video VAE "prepared for dynamic VRAM loading", then immediately:

Windows fatal exception: access violation
  File "D:\ComfyUI\comfy\sd.py", line 1183 in decode

→ process dies again. So the crash is not limited to the async file-read path.

Run 4 (--disable-async-offload --disable-pinned-memory): full success, prompt executed in 155 s.

Expected behavior

Video VAE decode should not crash the process with default flags.

Additional notes

  • With torch 2.11.0+cu128 (comfy-kitchen CUDA backend auto-disabled, eager fallback) the identical workflow completed end-to-end with default flags (~15.7 s/it sampling). The crash only appeared after upgrading to torch 2.13.0+cu130 which enables the comfy-kitchen CUDA backend — but note run 3 crashed even with async offload disabled, pointing at the pinned-memory/VBAR host-buffer path rather than the sampling kernels.
  • error=1450 is ERROR_NO_SYSTEM_RESOURCES from overlapped file I/O in xfer-file-plat.c, possibly aggravated by antivirus filter drivers.
  • Workaround confirmed: launch with --disable-async-offload --disable-pinned-memory.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions