Kai Xu 894bb723ed feat: add TextLineCount and SaveAudioSilent nodes, fix Civitai fetch button in Vue frontend
- Add TextLineCount node: counts lines in multiline text input
- Add SaveAudioSilent node: saves audio without being a terminal output node (for for-loops)
- Fix fetch button: use addDOMWidget() API for Vue frontend compatibility
- Fix Civitai API: add Accept-Encoding header to avoid Brotli decode errors
- Add button hover highlight styling
- Replace canvas-based preview with DOM-based rendering
2026-06-05 19:48:08 +08:00

ComfyUI KaiUtilities - KaiCivitaiLoRALoader

A ComfyUI custom node that extends the built-in LoRA Loader to fetch and display Civitai metadata, including trigger words and preview images.

Features

  • Trigger Words Output: Automatically outputs comma-separated trigger words from Civitai metadata
  • Full JSON Output: Exports complete Civitai metadata as JSON string for downstream nodes
  • Preview Images: Displays preview images directly on the node with pagination support
  • NSFW Blur: Automatically blurs NSFW preview images (click to toggle)
  • Local Caching: Caches Civitai metadata and preview images locally with 7-day TTL
  • Concurrent Deduplication: Multiple requests for the same LoRA are deduplicated automatically

Installation

  1. Clone this repository into your ComfyUI custom_nodes/ directory:
cd ComfyUI/custom_nodes
git clone https://github.com/your-username/ComfyUI_KaiUtilities.git
  1. Install dependencies:
cd ComfyUI_KaiUtilities
pip install aiohttp
  1. Restart ComfyUI.

Usage

  1. In ComfyUI, add the node: KaiUtilities/loaders → Kai Civitai LoRA Loader
  2. Select your LoRA file from the dropdown
  3. Click "Fetch Civitai Info" to fetch metadata
  4. The button changes to "Refresh" after fetching (click to force re-fetch)
  5. Trigger words appear in the text widget
  6. Preview images render below the widgets — click left/right arrows to paginate
  7. Connect trigger_words or civitai_json outputs to downstream nodes

File Structure

ComfyUI_KaiUtilities/
├── __init__.py          # Node registration + HTTP routes
├── cache_manager.py     # Local JSON/image cache manager
├── civitai_client.py    # SHA256 hashing + Civitai API client
├── nodes.py             # KaiCivitaiLoRALoader node class
├── frontend/            # Frontend JavaScript extension
│   └── kai_civitai_lora.js
└── tests/               # Unit tests
    ├── test_cache_manager.py
    ├── test_civitai_client.py
    ├── test_init.py
    └── test_nodes.py

Development

Run tests:

cd ComfyUI/custom_nodes/ComfyUI_KaiUtilities
PYTHONPATH=/path/to/ComfyUI:$PYTHONPATH python -m pytest tests/ -v

License

MIT

S
Description
No description provided
Readme
70 KiB
Languages
Python 80.9%
JavaScript 19.1%