- Remove optimize_for_video (auto-detects 5D video latents)
- Remove precision_mode (was a no-op)
- compatibility_mode moved to advanced=True toggle
- Node now matches stock interface exactly (5 inputs) with only
an advanced debug toggle added
- Video workflow auto-detected from latent shape (5D, T > 1)
- Architecture logging explicitly shows GPU family on ROCm
- Benchmark node also cleaned up (no extra params)
- Create previewer ONCE outside callback (was creating every 5 steps)
- Console timing at 10% milestones only instead of every step
- Prevent blocking sampling loop with excessive I/O
- ROCMSamplerCustomAdvanced: V3 ComfyNode drop-in for stock SamplerCustomAdvanced
with architecture detection, ROCm backend tuning, memory defrag for high-memory
models (LTX 128ch), enhanced per-step callback with ETA
- ROCMSamplerCustomAdvancedBenchmark: A/B comparison node for stock vs ROCm
- docs/SAMPLER_CUSTOM_ADVANCED.md: full documentation for agents and users
- Category: ROCm Ninodes/Sampling
- Bump version to 2.2.0 across all files
- LTX Video VAE detection (128 channels, 32x spatial compression, 8x temporal)
- z-image / z-image-turbo pixel-space VAE passthrough (no decode needed)
- fp16 default on all AMD GPUs (Strix Halo, RDNA 2/3, CDNA)
- Per-architecture tuning with automatic detection (gfx1151/gfx1100/gfx1030/CDNA)
- Temporal tiling for long videos: overlapping chunks with linear blend,
zero frame loss, progress bar in UI (disabled by default)
- Chunked IO bypass for LTX — fixes OOM with max_split_size_mb caps
- Fixed memory estimation: correct for all dims (including 5D temporal) and dtypes
- APU-aware memory management (psutil for unified memory on Strix Halo)
- Tile size floor for high-compression VAEs (min 64 latent pixels)
- 25 unit tests covering all new features
- Updated version to 2.0.11 in pyproject.toml and comfyui_manager.json for consistency.
- Removed video chunking from ROCMOptimizedVAEDecode to ensure full video decoding for temporal/causal VAEs, preventing artifacts.
- Added new ROCm Text Generate LTX2 Prompt node, enhancing generative AI capabilities.
- Updated README to reflect new features and improvements in v2.0.11.
- Enhanced changelog with details on changes and fixes in this release.
- Updated version number to 2.0.10 in the README header.
- Added new section detailing features in v2.0.10, including checkpoint caching and FP8/quantized checkpoint reuse.
- Enhanced clarity on the ROCm Checkpoint Loader's caching mechanism and its benefits for performance.
- Added optional in-memory cache to ROCmOptimizedCheckpointLoader to avoid redundant disk loads during repeated API runs.
- Implemented cache eviction strategy to manage memory efficiently on gfx1151 architecture.
- Updated INPUT_TYPES to include parameters for cache usage and forced reload.
- Added integration and unit tests to verify cache behavior and functionality.
- Documented caching mechanism in CHECKPOINT_CACHE_API.md and updated LOADER_NODES_GUIDE.md for clarity.
- Updated version to 2.0.9 in uv.lock
- Enhanced GGUF loader to include architecture detection and compatibility checks
- Added detailed logging for tensor shapes and loading processes
- Improved integration with ComfyUI's native functions for LoRA loading
- Ensured consistency with City96's implementation for better performance and compatibility
- Added full on-the-fly dequantization for GGUF models (Q8_0, Q4_0, Q4_1, Q5_0, Q5_1, BF16)
- Implemented get_weight() and cast_bias_weight() methods for proper tensor handling
- Fixed 'Multiple dispatch failed for torch.nn.linear' error by converting all ROCmGGMLTensor objects to regular tensors
- Added forward_comfy_cast_weights() routing for all ROCmGGMLTensor objects (quantized and non-quantized)
- Based on City96's ComfyUI-GGUF implementation, optimized for ROCm/gfx1151
- Added LoRA patch support and VRAM estimation
- All GGUF models now work correctly for loading and sampling
- Fixed file listing issue: now checks multiple folder names (diffusion_models, unet, unet_gguf)
- Fixed PyTorch 2.0+ GGUF loading: patches torch.load to set weights_only=False for GGUF files
- Removed all Unicode emojis: replaced with ASCII prefixes [INFO], [WARNING], [ERROR], etc.
- Improved cross-platform compatibility for Windows console
Issues reported by u/x5nder on Reddit - thank you for the bug reports!
Version bump: 2.0.5 -> 2.0.6
- Fixed UnicodeEncodeError when printing emoji characters on Windows
- Windows console (cp1252) cannot display emoji characters like ✅, ❌, ⚠️
- Added safe_print() function with automatic ASCII fallbacks for Windows
- Emojis are replaced with [OK], [ERROR], [WARNING] on incompatible encodings
- All print statements in install.py now use safe_print() for cross-platform compatibility
Issue reported by u/x5nder on Reddit - thank you for finding this bug!
Version bump: 2.0.4 -> 2.0.5
- Fixed ROCm Diffusion Model loader to accept .gguf, .ckpt, .pt, .pth, .bin, and .onnx files
- Previously only accepted .safetensors files due to ComfyUI's default filter
- Added custom file scanner that supports all common model formats
- Falls back to ComfyUI's default if custom scanning fails
Issue reported by u/x5nder on Reddit - thank you for finding this bug!
Version bump: 2.0.3 -> 2.0.4
- Added reliable WAN VAE detection using isinstance() with imported classes
- Added fallback detection using latent_channels (16 for WAN 2.1, 48 for WAN 2.2)
- Disabled chunking for WAN VAEs to preserve causal decoding chain with feature caching
- Matched native ComfyUI behavior exactly for WAN VAE video processing
- Fixed detection logic to use correct file (rocm_nodes/core/vae.py)
- Applied ROCm backend optimizations to video processing
- Added async memory cleanup for WAN VAE videos
- Added gfx1151 architecture detection and logging
- Updated version to 2.0.1 across all files
- Optimized for mature ROCm drivers and libraries
- Added TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 for better performance
- Replaced aggressive memory management with gentle cleanup
- Updated memory allocation settings (256MB chunks, 0.8 threshold)
- Removed performance-penalizing functions and complex memory management
- Cleaned up development files and test workflows
- Enhanced README with clear explanation of what we do and how we do it
- Maintained 9 optimized nodes with gentle memory management
- Created custom LoRA loader node to handle memory fragmentation during LoRA operations
- Implements aggressive_memory_cleanup() before, during, and after LoRA loading
- Added detailed memory state logging for monitoring fragmentation
- Registered node in NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS
- Addresses OOM errors that occur during LoRA weight patching in comfy.float.stochastic_rounding
- Version 1.0.26 with enhanced memory management for ROCm gfx1151
- Fixed free memory calculation to use reserved_memory instead of allocated_memory
- Added accurate memory monitoring with both allocated and reserved memory display
- Implemented dynamic memory fraction calculation based on actual available memory
- Added helper functions for consistent memory management across all samplers
- Improved OOM prevention with more accurate memory thresholds
- Enhanced memory cleanup with aggressive cache clearing and garbage collection
- Fixed memory calculation consistency between regular and advanced KSamplers
- Added detailed progress indicators to reduce perceived idle time
- Optimized memory management for video processing workflows
- Added video-specific progress feedback and status messages
- Improved fallback handling with better error reporting
- Enhanced completion feedback for better user experience
- Fixed idle time issues in video_wan2_2_14B_s2v workflow
- Iterate version to 1.0.19 for node publication
- Document repository cleanup and merge conflict resolution
- Repository now in clean, publishable state
- Fixed version consistency between package.json and comfyui version
- Incremented from v1.0.17 base to v1.0.18 with VAE decode fix
- Both main version and comfyui version now properly set to 1.0.18
- Fixed out_channels parameter from vae.latent_channels (16) to 3 (RGB) in tiled decoding
- Resolves 'The size of tensor a (16) must match the size of tensor b (3)' error
- Fixes VAE decode failures when processing images with tiled decoding
- Applied fix to current codebase structure
- Add progress indicators for Windows users experiencing 6-minute hang
- Add conservative memory allocation for Windows stability
- Add completion messages for better user feedback
- Maintain all ROCm optimizations for AMD GPU performance
- Fix WAN VAE frame duplication issue
- Ready for publication
- Add better progress indicators for model loading
- Add conservative memory allocation (0.85 instead of 0.9)
- Add timeout warnings for large model loading
- These optimizations should help with the 6-minute hang on Windows
- Progress indicators help users understand what's happening during long loads
- Add progress indicators for video processing (chunked/non-chunked)
- Add progress indicators for image processing (tiled/direct)
- Add progress indicators for KSampler operations
- Add progress indicators for checkpoint loading
- Add gentle memory management to prevent Windows hanging
- Add completion messages for better user feedback
- These optimizations help Windows users understand what's happening during the 6-minute hang
- Remove debug prints now that issue is resolved
- WAN VAE now uses non-chunked processing to prevent frame duplication
- Frame count is now consistent and stable
- Dark frame issue resolved
- Force non-chunked processing for WAN VAE to prevent frame duplication
- WAN VAE was producing double the frames when chunked (29->58 frames)
- This should resolve the visual artifacts and frame count issues
- Add frame-by-frame value analysis to identify dark frames
- Debug both chunked and non-chunked video processing paths
- This will help identify exactly where the dark frames are coming from
- Remove complex frame count normalization logic that was causing issues
- Keep the KSampler optimizations (hipBLAS, uncached memory, FlashInfer-style)
- Restore clean, simple video processing that was working well
- This should fix the performance regression while maintaining optimizations
- Fixed 'Input type (float) and bias type (c10::BFloat16) should be the same' error
- Added smart precision detection to match VAE model dtype
- Added explicit BFloat16 to Float32 conversion when needed
- Enhanced model conversion logic with proper logging
- Updated version to 1.0.16
This fix ensures VAE model and input tensors always have matching dtypes,
preventing PyTorch type mismatch errors while maintaining ROCm optimizations.
- Root cause: WAN VAE chunking causes inconsistent frame counts and brightness variations
- Solution: Prefer non-chunked processing for WAN VAE (only chunk for videos > 32 frames)
- Result: Consistent frame counts and brightness across entire video
- Tested: 9-frame video now processes consistently without darker frames
🔧 Critical Fix for Darker/Colorless Frames:
- Removed .float() conversions that were corrupting VAE output values
- Preserved original tensor dtype and value ranges from VAE decode
- Added comprehensive tensor value validation and debugging
📊 Tensor Value Validation:
- Added min/max/mean logging for each chunk and final output
- Validates tensor value ranges are within expected bounds [0, 1] or [-1, 1]
- Warns about unexpected value ranges that could cause visual artifacts
- Final validation ensures output quality before returning to ComfyUI
🎯 Technical Improvements:
- Chunked video processing: Preserve original dtype, validate value ranges
- Non-chunked video processing: Same tensor value preservation
- Main decode method: Only convert dtype when absolutely necessary
- Comprehensive logging for debugging tensor value issues
This should resolve the darker/colorless frame issue in WAN video workflows
by preserving the original VAE output values correctly.
🧹 Codebase Cleanup:
- Removed legacy nodes.py file (ComfyUI uses rocm_nodes.py)
- Eliminated confusion between active and backup files
- Streamlined codebase structure
✅ WAN Video Decoder Fix Testing:
- Successfully tested WAN workflow with video decoder optimizations
- Generated new video files: WanVideo2_1_multitalk_00011.*
- No darker/colorless frame issues observed
- Batch processing improvements working correctly
🔧 Technical Improvements Applied:
- Robust chunk size alignment with ceiling division
- Enhanced tensor format validation and normalization
- Comprehensive error handling for concatenation failures
- Debug logging for batch processing analysis
- Memory management optimization per chunk
The WAN video decoder batch processing issue appears to be resolved.
🐛 Critical Fix: Resolve darker/colorless frames in video batches
- Fixed tensor format inconsistency between chunks
- Added robust chunk size alignment to prevent last chunk issues
- Enhanced concatenation validation with fallback handling
- Added comprehensive debugging logs for batch processing
- Ensured consistent dtype and contiguous memory layout
🔧 Technical Improvements:
- Proper chunk size calculation with ceiling division
- Tensor shape validation and normalization
- Error handling for concatenation failures
- Memory management optimization per chunk
- Debug logging for min/max/mean values per chunk
This should resolve the issue where the last frame of every batch
appears darker and colorless in WAN video workflows.