Bump package version to 1.0.7. Update web/js/bettercombos.js to rename the extension and setting IDs from "pysssss" to "smlmxd". Rework folder rendering so subfolders are inserted before items (folders appear above files) and root files are appended after folders. Minor comment adjustments to reflect the new insertion order.
Change the UNET loader UI/title from "Smart UNET Loader MXD" to "Smart Model Loader MXD" in nodes.py to better reflect unified model support; update the NODE_CLASS_MAPPINGS block with a comment about keeping the original key for backward compatibility. Also bump package version in pyproject.toml from 1.0.5 to 1.0.6.
Multiple improvements and fixes across GGUF loading and model patching:
- dequant.py: Fix index dtype for IQ4 dequant gathers by casting indices to int64 to avoid dtype issues.
- loader.py:
- Extend TXT_ARCH_LIST with gemma3.
- Fix get_field to extract scalar values via .item().
- Add get_gguf_metadata to collect simple GGUF metadata (string/int/float/bool).
- Change gguf_sd_loader to return (state_dict, extra) where extra includes arch_str and metadata.
- Dequantize 1D BF16 tensors to float32 to avoid incorrect quantization for bias/1D params.
- Add GEMMA3_SD_MAP and gemma3_norm_corrections to reverse a Gemma3-specific norm offset (apply -1.0 correction and dequantize if needed).
- Add gguf_gemma3_tokenizer_loader to reconstruct a SentencePiece tokenizer from GGUF metadata.
- Update gguf_clip_loader to handle gemma3: map keys, apply norm corrections, and produce tokenizer data.
- Ensure gguf_mmproj_loader and other callers unpack the new gguf_sd_loader return value.
- nodes.py:
- Improve GGUFModelPatcher mmap handling: track named modules to unmap, add pin_weight_to_device to safely move modules when releasing mmap, clear tracking after release.
- Pass GGUF metadata into comfy.sd.load_diffusion_model_state_dict when supported, and add error checks when loading fails.
These changes add Gemma3 model/tokenizer support, fix dtype and BF16 edge cases, and improve low-memory mmap/unmap handling for safer weight pinning and loading.
Update pyproject.toml version from 1.0.3 to 1.0.4 and add a missing `import torch` in nodes.py. The change ensures the nodes module can reference torch where needed and records the new package version.
Enhanced the load_clip_models method to directly load non-.gguf CLIP models using comfy.sd.load_clip, and updated the torch file loading to handle metadata and quantization conversion. Incremented the package version to 1.0.2 in pyproject.toml.
Changed relative import paths to reference the correct parent directory level for app.js, widgets.js, ui.js, and api.js. This ensures proper module resolution and prevents import errors.
Renamed 'web/bettercombos.js' to 'web/js/bettercombos.js' for better organization. Updated '__init__.py' to use 'web' as the directory path. Added 'web/index.js' to import the relocated 'betterCombos.js'.
Updated the 'type' field in DualCLIPLoaderUnified, TripleCLIPLoaderUnified, QuadrupleCLIPLoaderUnified, and CLIPLoaderUnified to reference nodes.CLIPLoader.INPUT_TYPES() for consistency and maintainability.