ComfyUI/comfy/ldm/lightricks/vae
Emiliooooo e860732dba fix(directml): correct VRAM detection and make torchaudio imports optional
## VRAM Detection (model_management.py)

The DirectML code path had two hardcoded `1024 * 1024 * 1024 #TODO` values
in `get_total_memory()` and `get_free_memory()`, causing ComfyUI to report
only 1 GB of VRAM on any AMD/Intel GPU using the DirectML backend — regardless
of actual hardware. This forced NORMAL_VRAM or LOW_VRAM calculations to be
wildly wrong.

Fix for `get_total_memory`:
- On Windows, reads `HardwareInformation.qwMemorySize` from the GPU driver
  registry key via `winreg`. This is the 64-bit accurate value (unlike
  `Win32_VideoController.AdapterRAM` which overflows at 4 GB).
- Allows override via `COMFYUI_DIRECTML_VRAM_MB` env var.
- Falls back to 6 GB if registry query fails (safe default for modern dGPUs).

Fix for `get_free_memory`:
- Uses `torch_directml.gpu_memory(0)` to get per-tile usage fractions and
  derives free memory as `total * (1 - max_usage_fraction)`.

## torchaudio: optional import on AMD/DirectML

torchaudio has a DLL incompatibility with torch-directml (which ships its own
torch runtime). The following files had bare `import torchaudio` at module
level, crashing ComfyUI startup entirely when torchaudio was absent:

- comfy/ldm/lightricks/vae/audio_vae.py
- comfy/audio_encoders/whisper.py
- comfy/audio_encoders/audio_encoders.py
- comfy_extras/nodes_audio.py
- comfy_extras/nodes_lt.py
- comfy_extras/nodes_wandancer.py

Each import is wrapped in `try/except (ImportError, OSError): torchaudio = None`,
matching the pattern already used in comfy/ldm/mmaudio/vae/autoencoder.py and
comfy/ldm/ace/vae/music_dcae_pipeline.py. Audio nodes will degrade gracefully
rather than preventing ComfyUI from starting.

Tested on: AMD Radeon RX 5600 XT (6 GB VRAM, gfx1010, Windows 10)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 12:10:31 -04:00
..
audio_vae.py fix(directml): correct VRAM detection and make torchaudio imports optional 2026-05-14 12:10:31 -04:00
causal_audio_autoencoder.py Support the LTXAV 2.3 model. (#12773) 2026-03-04 20:06:20 -05:00
causal_conv3d.py ltx: vae: implement chunked encoder + CPU IO chunking (Big VRAM reductions) (#13062) 2026-03-19 09:58:47 -07:00
causal_video_autoencoder.py ltx: vae: Fix missing init variable (#13074) 2026-03-19 22:34:58 -04:00
conv_nd_factory.py Support LTXV 0.9.5. 2025-03-05 00:13:49 -05:00
dual_conv3d.py Support LTXV 0.9.5. 2025-03-05 00:13:49 -05:00
pixel_norm.py Support Lightricks LTX-Video model. 2024-11-22 08:46:39 -05:00