ai-toolkit-trainer
Train custom LoRAs with ostris AI-Toolkit. Covers WAN 2.2/2.1 (people, styles, video motion) and Z-Image (Turbo & Base, low-VRAM…
Author ComfyUI-LoRA-Manager nodes from the panel. Use when adding a LoRA Manager loader, stacker, prompt, or text node, or when panel_add_node refuses AUTOCOMPLETE_TEXT_LORAS / AUTOCOMPLETE_TEXT_PROMPT after waiting for a widget.
Claude Code
$ npx -y skills add artokun/comfyui-mcp --skill lora-manager --agent claude-code
Codex
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a codex -y
Cursor
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a cursor -y
Gemini CLI
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a gemini-cli -y
GitHub Copilot
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a github-copilot -y
OpenCode
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a opencode -y
Windsurf
$ npx skills add artokun/comfyui-mcp --skill lora-manager -a windsurf -y
name: lora-manager description: Author ComfyUI-LoRA-Manager nodes from the panel. Use when adding a LoRA Manager loader, stacker, prompt, or text node, or when panel_add_node refuses AUTOCOMPLETE_TEXT_LORAS / AUTOCOMPLETE_TEXT_PROMPT after waiting for a widget.
[ComfyUI-LoRA-Manager](https://github.com/willmiao/ComfyUI-Lora-Manager) (willmiao) registers Vue autocomplete widgets via `getCustomWidgets()`. Those widgets are healthy in the ComfyUI menu, and drag-from-palette works, but **`panel_add_node` cannot add the nodes that require them**.
The add-node guard polls `app.widgets` for a constructor. ComfyUI 1.49+ stores `getCustomWidgets()` results in the frontend widget store, not on `app.widgets`. The wait always expires after 5s. Reload, `panel_refresh_nodes`, and retry **cannot** clear it. That refusal is not a missing pack.
| Works | Refuses (AUTOCOMPLETE_TEXT_*) | |---|---| | `LoRA Text Loader (LoraManager)` | `Lora Loader (LoraManager)` | | core `LoraLoader` | `Lora Stacker (LoraManager)` | | core `LoraLoaderModelOnly` | `WanVideo Lora Select (LoraManager)` | | | `Text (LoraManager)` | | | `Prompt (LoraManager)` |
`LoRA Text Loader (LoraManager)` is the same backend as `Lora Loader (LoraManager)` (MODEL / CLIP / `trigger_words` / `loaded_loras`). The difference is the LoRA input: `lora_syntax` is a **STRING socket** (`forceInput`), so a wired string node such as `PrimitiveStringMultiline` drives it. It has no widget of its own for `panel_set_widget` to write.
Syntax (spaces or punctuation between entries):
<lora:lora_name:strength> <lora:lora_name:model_strength:clip_strength>
1. `panel_add_node(class_type="LoRA Text Loader (LoraManager)")`. Do **not** add `Lora Loader (LoraManager)`; it will wait 5s and refuse. 2. Wire `MODEL` (and `CLIP` if you have one) through it. 3. Add a `PrimitiveStringMultiline`, `panel_set_widget` its `value` to the LoRA syntax (e.g. `<lora:style/foo.safetensors:0.8>`), and `panel_connect` its STRING output to `lora_syntax`. 4. Put the node's `trigger_words` output into the prompt if the sidecar has any.
If LoRA Manager is not installed, use core `LoraLoader` and set `lora_name` / `strength_model` / `strength_clip` as usual.
never appear on `app.widgets`.
was created. The working widget name is `lora_syntax`.
string loads no LoRA.
that is already in a loaded workflow cannot be edited with `panel_set_widget`: `text` and `loras` writes are refused. The backend ignores `text` and applies only the DOM-owned `loras` list, so a written `text` would read back as set and still load nothing. Swap in `LoRA Text Loader (LoraManager)` (or `WanVideo Lora Select From Text (LoraManager)`), or edit the rows in the node UI.
<img src="docs/images/demo-poster.jpg" width="760" alt="The Agent panel driving ComfyUI end to end. Click to watch the demo"> The Agent panel driving ComfyUI end to end. It reads what is installed locally, wires the graph, frees VRAM, and runs the render.
Train custom LoRAs with ostris AI-Toolkit. Covers WAN 2.2/2.1 (people, styles, video motion) and Z-Image (Turbo & Base, low-VRAM…
Anime/illustration text-to-image (ANIMA 1.0, ~2B Cosmos DiT). Use for anime, manga, illustrated characters; accepts Danbooru tags…
Train a custom anime LoRA on the ANIMA base model with Citron's local Gradio trainer (kohya sd-scripts), <6GB VRAM,…
Discover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally. Find a…
Diagnose and fix video/image color OBJECTIVELY with the get_image (action:"analyze_color") tool (scopes/stats such as black/white…
Core ComfyUI knowledge covering workflow format, node types, pipeline patterns, and MCP tool usage
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…