mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
# ComfyUI LoRA Manager
|
|
|
|
## Project Overview
|
|
|
|
ComfyUI LoRA Manager is a comprehensive extension for ComfyUI that streamlines the organization, downloading, and application of LoRA models. It functions as both a custom node within ComfyUI and a standalone application.
|
|
|
|
**Key Features:**
|
|
* **Model Management:** Browse, organize, and download LoRA models (and Checkpoints/Embeddings) from Civitai and CivArchive.
|
|
* **Visualization:** Preview images, videos, and trigger words.
|
|
* **Workflow Integration:** "One-click" integration into ComfyUI workflows, preserving generation parameters.
|
|
* **Recipe System:** Save and share LoRA combinations as "recipes".
|
|
* **Architecture:** Hybrid Python backend (API, file management) and JavaScript/HTML frontend (Web UI).
|
|
|
|
## Directory Structure
|
|
|
|
* `py/`: Core Python backend source code.
|
|
* `lora_manager.py`: Main entry point for the ComfyUI node.
|
|
* `routes/`: API route definitions (using `aiohttp` in standalone, or ComfyUI's server).
|
|
* `services/`: Business logic (downloading, metadata, scanning).
|
|
* `nodes/`: ComfyUI custom node implementations.
|
|
* `static/`: Frontend static assets (CSS, JS, Images).
|
|
* `templates/`: HTML templates (Jinja2).
|
|
* `locales/`: Internationalization JSON files.
|
|
* `web/comfyui/`: JavaScript extensions specifically for the ComfyUI interface.
|
|
* `standalone.py`: Entry point for running the manager as a standalone web app.
|
|
* `tests/`: Backend tests.
|
|
* `requirements.txt`: Python runtime dependencies.
|
|
* `package.json`: Frontend development dependencies and test scripts.
|
|
|
|
## Building and Running
|
|
|
|
### Prerequisites
|
|
* Python 3.8+
|
|
* Node.js (only for running frontend tests)
|
|
|
|
### Backend Setup
|
|
1. Install Python dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Running in Standalone Mode
|
|
You can run the manager independently of ComfyUI for development or management purposes.
|
|
```bash
|
|
python standalone.py --port 8188
|
|
```
|
|
|
|
### Running in ComfyUI
|
|
Ensure the folder is located in `ComfyUI/custom_nodes/`. ComfyUI will automatically load it upon startup.
|
|
|
|
## Testing
|
|
|
|
### Backend Tests (Pytest)
|
|
1. Install development dependencies:
|
|
```bash
|
|
pip install -r requirements-dev.txt
|
|
```
|
|
2. Run tests:
|
|
```bash
|
|
pytest
|
|
```
|
|
* Coverage reports are generated in `coverage/backend/`.
|
|
|
|
### Frontend Tests (Vitest)
|
|
1. Install Node dependencies:
|
|
```bash
|
|
npm install
|
|
```
|
|
2. Run tests:
|
|
```bash
|
|
npm run test
|
|
```
|
|
3. Run coverage:
|
|
```bash
|
|
npm run test:coverage
|
|
```
|
|
|
|
## Development Conventions
|
|
|
|
* **Python Style:** Follow PEP 8. Use snake_case for files/functions and PascalCase for classes.
|
|
* **Frontend:** Standard ES modules. UI components often end in `_widget.js`.
|
|
* **Configuration:** User settings are stored in `settings.json`. Developers should reference `settings.json.example`.
|
|
* **Localization:** Update `locales/<lang>.json` and run `scripts/sync_translation_keys.py` when changing UI text.
|
|
* **Documentation:** Architecture details are in `docs/architecture/` and `IFLOW.md`.
|