Skip to content

v2.5.7: Legacy Node Removal (NunchakuQwenImageLoraStack)

Choose a tag to compare

@ussoewwin ussoewwin released this 16 Aug 16:10
· 10 commits to main since this release
EN 中文

v2.5.7 Technical Documentation: Legacy Node Removal (NunchakuQwenImageLoraStack)

Baseline commit: a3c2ed1 (v2.5.6)
Commits: 88ed1a3 (feature & docs) / 7ae12b7 (version & changelog)


① Purpose

Remove the legacy node NunchakuQwenImageLoraStack ("Nunchaku Qwen Image LoRA Stack (Legacy)") from the node registration mappings (NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS) and documentation.

With the maturity and widespread adoption of modern stacker implementations (NunchakuQwenImageLoraStackV1, V2, and V3), the early legacy implementation has been phased out to streamline the node library, prevent workflow confusion, and eliminate maintenance overhead.

Requirements & Scope

  1. Unregister Legacy Node: NunchakuQwenImageLoraStack is removed from NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS in __init__.py.
  2. Zero Impact on Other Nodes: Single loader (NunchakuQwenImageLoraLoader), modern stackers (NunchakuQwenImageLoraStackV1, V2, V3), Z-Image-Turbo stackers (V1, V4), Krea2 ControlNet loader (Krea2ControlNetLoraLoader), and DiffSynth ControlNet node (NunchakuQI&ZITDiffsynthControlnet) remain completely unaffected.
  3. Documentation Cleanup: Remove legacy node references, preview images, and setup instructions from README.md and zhmd/README.md.
  4. Encoding & Integrity: Ensure 100% UTF-8 preservation with zero Mojibake across all modified files.

② Modified Files

File Type Change
__init__.py modified Removed NunchakuQwenImageLoraStack import, __version__ assignment, NODE_CLASS_MAPPINGS entry, and NODE_DISPLAY_NAME_MAPPINGS entry; bumped __version__ to 2.5.7
README.md modified Removed legacy stack node entry and image, updated basic usage instructions, and cleaned up AMD/ROCm disabled node list
zhmd/README.md modified Removed legacy stack node entry and image, updated Chinese basic usage instructions and AMD/ROCm disabled node list
RELEASE_NOTES/changelog.md modified Added v2.5.7 release entry
zhmd/changelogzh.md modified Added v2.5.7 Chinese release entry

③ Key Code Changes (Diffs)

3.1 __init__.py — Node Registration Cleanup

@@ -72,7 +72,7 @@ except Exception as e:
 if _NUNCHAKU_AVAILABLE:
     try:
-        from .nodes.lora.qwenimage import NunchakuQwenImageLoraLoader, NunchakuQwenImageLoraStack
+        from .nodes.lora.qwenimage import NunchakuQwenImageLoraLoader
         from .nodes.lora.qwenimage_v2 import GENERATED_NODES as QWEN_V2_NODES, GENERATED_DISPLAY_NAMES as QWEN_V2_NAMES
         from .nodes.lora.qwenimage_v3 import GENERATED_NODES as QWEN_V3_NODES, GENERATED_DISPLAY_NAMES as QWEN_V3_NAMES
         from .nodes.lora.qwenimage_v1 import GENERATED_NODES as QWEN_V1_NODES, GENERATED_DISPLAY_NAMES as QWEN_V1_NAMES
@@ -83,7 +83,6 @@ if _NUNCHAKU_AVAILABLE:
 
         NunchakuQwenImageLoraLoader.__version__ = __version__
-        NunchakuQwenImageLoraStack.__version__ = __version__
         for node_class in QWEN_V2_NODES.values():
             node_class.__version__ = __version__
         for node_class in QWEN_V3_NODES.values():
@@ -99,7 +98,6 @@ if _NUNCHAKU_AVAILABLE:
 
         NODE_CLASS_MAPPINGS["NunchakuQwenImageLoraLoader"] = NunchakuQwenImageLoraLoader
-        NODE_CLASS_MAPPINGS["NunchakuQwenImageLoraStack"] = NunchakuQwenImageLoraStack
         NODE_CLASS_MAPPINGS.update(QWEN_V2_NODES)
         NODE_CLASS_MAPPINGS.update(QWEN_V3_NODES)
         NODE_CLASS_MAPPINGS.update(QWEN_V1_NODES)
@@ -132,7 +130,6 @@ except Exception as e:
 NODE_DISPLAY_NAME_MAPPINGS = {
     **({} if not _NUNCHAKU_AVAILABLE else {
         "NunchakuQwenImageLoraLoader": "Nunchaku Qwen Image LoRA Loader",
-        "NunchakuQwenImageLoraStack": "Nunchaku Qwen Image LoRA Stack (Legacy)",
     }),
     **QWEN_V2_NAMES,
     **QWEN_V3_NAMES,

3.2 README.md & zhmd/README.md — Documentation Alignment

  • Removed NunchakuQwenImageLoraStack: Multi LoRA stacker with dynamic UI (Legacy) from Available Nodes list and preview screenshots.
  • Updated Basic Usage:
    **For Nunchaku Qwen Image models:**
    1. Load your Nunchaku Qwen Image model using `Nunchaku Qwen Image DiT Loader`
    2. Add `NunchakuQwenImageLoraLoader` or `NunchakuQwenImageLoraStackV1` / `V2` / `V3` node
    3. Select your LoRA file and set the strength
    4. Connect to your workflow
  • Removed NunchakuQwenImageLoraStack from the AMD/ROCm disabled node list.

④ Detailed Technical Explanation

4.1 Node Registration Architecture (Post v2.5.7)

After this release, the active registered node set is structured as follows:

Category Registered Nodes Target Models UI Type
Single Loader NunchakuQwenImageLoraLoader Nunchaku Qwen Image Standard dropdown
Qwen Image Stackers NunchakuQwenImageLoraStackV1 Nunchaku Qwen Image rgthree-style row layout
NunchakuQwenImageLoraStackV2 Nunchaku Qwen Image Dynamic slot UI (AWQ Mod toggle)
NunchakuQwenImageLoraStackV3 Nunchaku Qwen Image Dynamic slot UI (Auto AWQ Mod)
Z-Image-Turbo Stackers NunchakuZImageTurboLoraStackV1 Nunchaku Z-Image-Turbo rgthree-style row layout
NunchakuZImageTurboLoraStackV4 Nunchaku Z-Image-Turbo Dynamic slot UI (CLIP pass-through)
ControlNet & Adapters Krea2ControlNetLoraLoader Krea2 / SingleStreamDiT Depth / OpenPose auto-detection
NunchakuQI&ZITDiffsynthControlnet Qwen Image, Z-ImageTurbo, Krea2 Unified ControlNet conditioning

4.2 Migration Guide

Workflows that previously referenced NunchakuQwenImageLoraStack (Legacy) should be updated to one of the following alternatives:

  • For standard canvas / rgthree-style compact UI: Use NunchakuQwenImageLoraStackV1.
  • For dynamic slot adjustment & Nodes 2.0 (Beta) compatibility: Use NunchakuQwenImageLoraStackV3 (recommended for automatic AWQ modulation support) or NunchakuQwenImageLoraStackV2.
  • For single LoRA loading: Use NunchakuQwenImageLoraLoader.

⑤ Verification & Testing

  • Syntax & Import Validation: python -m py_compile __init__.py passed with exit code 0.
  • Registration Verification: Confirmed that NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS contain only active nodes without legacy entries.
  • Diff Isolation: Verified that no changes were made to underlying LoRA fusion algorithms, wrapper layers (wrappers/), monkey patches (patches/), or ControlNet routing logic.
  • UTF-8 & Formatting: Preserved full UTF-8 encoding across all documentation and release files.