Files
kenyonxu-ComfyUI_KaiUtilities/README.md
T
kenyonxu 47193575d6 feat: initial implementation of KaiCivitaiLoRALoader
- Cache manager with JSON read/write, TTL, corruption handling
- Civitai client with SHA256 hash (sync+async) and API fetch
- KaiCivitaiLoRALoader node with trigger words and JSON output
- Node registration, HTTP routes, and secure image serving
- Frontend extension with image preview, pagination, and NSFW blur
- 49 unit tests covering all modules
2026-04-20 23:03:48 +08:00

2.2 KiB

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