Civitai + comfyui-mcp
comfyui-mcp has native Civitai search built in (download_model action:"search_civitai")
plus the local half of the loop: download, wire, queue, tag. The full flow
(find, install, generate) needs no other server and no API key, and works on
every backend, including small local models behind the compact router.
The built-in flow (default path)
download_model({ action: "search_civitai", query, types: ["LORA"], base_models: ["Flux.1 D"] })
│ each hit: model_id · model_version_id · trigger words
▼
download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })
│
▼
list_local_models({ action: "list" }) → panel_add_node loader / generate_image # use it
- ALWAYS filter
base_models when the user's checkpoint family is known.
A Flux LoRA will not load on an SDXL checkpoint (see model-compatibility).
CivitAI labels: Flux.1 D, SDXL 1.0, SD 1.5, Pony, Illustrious,
Wan Video.
target_subfolder must match the model type: checkpoints, loras, vae,
controlnet, embeddings, upscale_models, and so on.
- Results are SFW-only by default (
nsfw: true to opt in).
- Each hit carries trigger words. Put them in the prompt after installing.
- Prefer
model_version_id over model_id. A Civitai page can list several
versions and the user usually means a specific one.
Search needs no API key. CIVITAI_API_TOKEN (from
civitai.com/user/account) unlocks gated/early-access downloads and gated
search results. Set it once, in panel Settings under "Set CivitAI token…" or in env.
Recipes
"Find me a good anime LoRA for Flux and install it"
download_model({ action: "search_civitai", query: "anime style", types: ["LORA"], base_models: ["Flux.1 D"] }).
- Present the top 3 to 5 with name, creator, base model, downloads, and the
version id. Let the user pick.
download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" }).
- In the panel,
panel_add_node a LoraLoader, panel_set_widget the
lora_name, wire it between checkpoint and sampler, and use the hit's
trigger words in the prompt. Headless: generate_image(action="image") / build the workflow.
"Download this Civitai page for me" (user pastes a URL)
- Parse the
modelVersionId from the URL if present; otherwise pass the model
id from the URL to action:"download_civitai" (it resolves the latest version).
A raw civitai.com/api/download/... URL also works via action:"download"
with CIVITAI_API_TOKEN set.
Optional: the official Civitai MCP (community surface)
For features beyond search and install (browsing example images and their
generation params, collections, posting, reviews, bounties), pair the official
remote server. It is no longer auto-bundled; add it once:
claude mcp add --transport http civitai https://mcp.civitai.com/mcp \
--header "Authorization: Bearer YOUR_CIVITAI_API_KEY"
Then mcp__civitai__* tools appear alongside comfyui-mcp's. Its discovery
results hand off identically (modelVersions[].id → action:"download_civitai").
That server also exposes write/social tools (post,
comment, review, DM, follow). Those publish on the user's behalf, so show
what you're about to post and get an explicit yes first. This skill covers
discovery, local install, and generation; don't post or message without being
asked.
See also
model-registry for curated direct download URLs (HF + Civitai notes)
model-compatibility for base-model / VAE / CLIP pairing (why a LoRA won't load)
prompt-engineering because Civitai image params are a prompt goldmine
Sources
1---2name: civitai3description: Discover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).4---56# Civitai + comfyui-mcp78comfyui-mcp has native Civitai search built in (`download_model` `action:"search_civitai"`)9plus the local half of the loop: download, wire, queue, tag. The full flow10(find, install, generate) needs no other server and no API key, and works on11every backend, including small local models behind the compact router.1213## The built-in flow (default path)1415```16download_model({ action: "search_civitai", query, types: ["LORA"], base_models: ["Flux.1 D"] })17 │ each hit: model_id · model_version_id · trigger words18 ▼19download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })20 │21 ▼22list_local_models({ action: "list" }) → panel_add_node loader / generate_image # use it23```2425- ALWAYS filter `base_models` when the user's checkpoint family is known.26 A Flux LoRA will not load on an SDXL checkpoint (see `model-compatibility`).27 CivitAI labels: `Flux.1 D`, `SDXL 1.0`, `SD 1.5`, `Pony`, `Illustrious`,28 `Wan Video`.29- `target_subfolder` must match the model type: `checkpoints`, `loras`, `vae`,30 `controlnet`, `embeddings`, `upscale_models`, and so on.31- Results are SFW-only by default (`nsfw: true` to opt in).32- Each hit carries trigger words. Put them in the prompt after installing.33- Prefer `model_version_id` over `model_id`. A Civitai page can list several34 versions and the user usually means a specific one.3536Search needs no API key. `CIVITAI_API_TOKEN` (from37civitai.com/user/account) unlocks gated/early-access downloads and gated38search results. Set it once, in panel Settings under "Set CivitAI token…" or in env.3940## Recipes4142**"Find me a good anime LoRA for Flux and install it"**431. `download_model({ action: "search_civitai", query: "anime style", types: ["LORA"], base_models: ["Flux.1 D"] })`.442. Present the top 3 to 5 with name, creator, base model, downloads, and the45 version id. Let the user pick.463. `download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })`.474. In the panel, `panel_add_node` a `LoraLoader`, `panel_set_widget` the48 `lora_name`, wire it between checkpoint and sampler, and use the hit's49 trigger words in the prompt. Headless: `generate_image(action="image")` / build the workflow.5051**"Download this Civitai page for me"** (user pastes a URL)52- Parse the `modelVersionId` from the URL if present; otherwise pass the model53 id from the URL to `action:"download_civitai"` (it resolves the latest version).54 A raw `civitai.com/api/download/...` URL also works via `action:"download"`55 with `CIVITAI_API_TOKEN` set.5657## Optional: the official Civitai MCP (community surface)5859For features beyond search and install (browsing example images and their60generation params, collections, posting, reviews, bounties), pair the official61remote server. It is no longer auto-bundled; add it once:6263```bash64claude mcp add --transport http civitai https://mcp.civitai.com/mcp \65 --header "Authorization: Bearer YOUR_CIVITAI_API_KEY"66```6768Then `mcp__civitai__*` tools appear alongside comfyui-mcp's. Its discovery69results hand off identically (`modelVersions[].id` → `action:"download_civitai"`).7071That server also exposes write/social tools (post,72comment, review, DM, follow). Those publish on the user's behalf, so show73what you're about to post and get an explicit yes first. This skill covers74discovery, local install, and generation; don't post or message without being75asked.7677## See also7879- `model-registry` for curated direct download URLs (HF + Civitai notes)80- `model-compatibility` for base-model / VAE / CLIP pairing (why a LoRA won't load)81- `prompt-engineering` because Civitai image params are a prompt goldmine8283## Sources8485- **Official:** Civitai REST API https://civitai.com/api/v1 and Civitai MCP https://mcp.civitai.com/mcp86- **Empirical:** find→install→generate wiring is comfyui-mcp product guidance, not Civitai's prompting docs.