Initial commit: ComfyUI Qwen Image LoRA Loader

- Add NunchakuQwenImageLoraLoader for single LoRA loading
- Add NunchakuQwenImageLoraStack for multiple LoRA stacking
- Add ComfyQwenImageWrapper for LoRA composition
- Add dynamic VRAM management with CPU offloading
- Add JavaScript UI for dynamic LoRA count control
- Add comprehensive LoRA application logic
- Support for Nunchaku Qwen Image models
- Integration with ComfyUI-nunchaku plugin
- Requires modification of official ComfyUI-nunchaku plugin
This commit is contained in:
Your Name
2025-10-24 13:52:30 +09:00
commit e7f07bc737
+94
View File
@@ -0,0 +1,94 @@
# ComfyUI-QwenImageLoraLoader
A ComfyUI custom node for loading and applying LoRA (Low-Rank Adaptation) to Nunchaku Qwen Image models.
## Features
- **NunchakuQwenImageLoraLoader**: Load and apply single LoRA to Qwen Image models
- **NunchakuQwenImageLoraStack**: Apply multiple LoRAs with dynamic UI control
- **Dynamic VRAM Management**: Automatic CPU offloading based on available VRAM
- **LoRA Composition**: Efficient LoRA stacking and composition
- **ComfyUI Integration**: Seamless integration with ComfyUI workflows
## Installation
1. Clone this repository to your ComfyUI custom_nodes directory:
```bash
git clone https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader.git
```
2. Install dependencies:
```bash
pip install nunchaku
```
## Integration with ComfyUI-nunchaku
**IMPORTANT**: This node requires modification of the official ComfyUI-nunchaku plugin to function properly.
### Required Modification
You must modify the `__init__.py` file in your ComfyUI-nunchaku plugin to import this LoRA loader:
```python
try:
# Import from the independent ComfyUI-QwenImageLoraLoader
import sys
import os
qwen_lora_path = os.path.join(os.path.dirname(__file__), "..", "ComfyUI-QwenImageLoraLoader")
if qwen_lora_path not in sys.path:
sys.path.insert(0, qwen_lora_path)
# Import directly from the file path
import importlib.util
spec = importlib.util.spec_from_file_location("qwenimage", os.path.join(qwen_lora_path, "nodes", "lora", "qwenimage.py"))
qwenimage_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(qwenimage_module)
NunchakuQwenImageLoraLoader = qwenimage_module.NunchakuQwenImageLoraLoader
NunchakuQwenImageLoraStack = qwenimage_module.NunchakuQwenImageLoraStack
NODE_CLASS_MAPPINGS["NunchakuQwenImageLoraLoader"] = NunchakuQwenImageLoraLoader
NODE_CLASS_MAPPINGS["NunchakuQwenImageLoraStack"] = NunchakuQwenImageLoraStack
logger.info("Successfully imported Qwen Image LoRA loaders from ComfyUI-QwenImageLoraLoader")
except ImportError:
logger.exception("Nodes `NunchakuQwenImageLoraLoader` and `NunchakuQwenImageLoraStack` import failed:")
```
### Why This Modification is Required
- The independent LoRA loader exists as a separate custom node
- The official ComfyUI-nunchaku plugin needs to reference the independent LoRA loader
- Standard `from ... import ...` fails due to different package structures
- `importlib.util` allows direct module loading from file paths
## Usage
### Single LoRA Loading
Use `NunchakuQwenImageLoraLoader` to load and apply a single LoRA to your Qwen Image model.
### Multiple LoRA Stacking
Use `NunchakuQwenImageLoraStack` to apply multiple LoRAs with dynamic UI control. The number of LoRA slots adjusts automatically based on the `lora_count` parameter.
## Requirements
- ComfyUI
- Nunchaku
- PyTorch
- Python 3.8+
- ComfyUI-nunchaku plugin (with required modification)
## Compatibility
This node is designed to work with:
- ComfyUI-nunchaku plugin (modified)
- Nunchaku Qwen Image models
- Standard ComfyUI workflows
## License
This project is licensed under the MIT License.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.