---
name: Civitai
slug: civitai
category: AI Engineering
description: Civitai discovers Civitai models with comfyui-mcp search, downloads them into ComfyUI, and uses trigger words for generation. It is used to find checkpoints, LoRAs, or embeddings and install the right version locally.
github: "https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/civitai"
language: TypeScript
stars: 659
forks: 103
install: "npx degit https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/civitai ~/.claude/skills/civitai"
installs_to: ~/.claude/skills/civitai
source_path: plugin/skills/civitai/SKILL.md
collection_size: 25
category_size: 2451
collection_url: "https://dirskills.com/collections/artokun/comfyui-mcp"
added: 2026-08-24T05:17:27.741Z
last_synced: 2026-08-24T05:17:27.741Z
canonical_url: "https://dirskills.com/skills/civitai"
---

# Civitai

Civitai discovers Civitai models with comfyui-mcp search, downloads them into ComfyUI, and uses trigger words for generation. It is used to find checkpoints, LoRAs, or embeddings and install the right version locally.

**Install:**

```bash
npx degit https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/civitai ~/.claude/skills/civitai
```

## README

# 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, 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`, …
- 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.

**API key (optional).** Search needs none. `CIVITAI_API_TOKEN` (from
civitai.com/user/account) unlocks **gated/early-access downloads** and gated
search results — set it once (panel Settings › "Set CivitAI token…" or env).

## Recipes

**"Find me a good anime LoRA for Flux and install it"**
1. `download_model({ action: "search_civitai", query: "anime style", types: ["LORA"], base_models: ["Flux.1 D"] })`.
2. Present the top 3–5 with name, creator, base model, downloads, and the
   version id. Let the user pick.
3. `download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" })`.
4. 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→install — browsing example **images** and their
generation params, collections, posting, reviews, bounties — pair the official
remote server (no longer auto-bundled; add it once):

```bash
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"`).

**Boundaries:** that server also exposes **write/social** tools (post,
comment, review, DM, follow). Those publish on the user's behalf — surface
what you're about to post and get an explicit yes first. This skill is about
discovery → local install → generation; don't post or message without being
asked.

## See also

- `model-registry` — curated direct download URLs (HF + Civitai notes)
- `model-compatibility` — base-model / VAE / CLIP pairing (why a LoRA won't load)
- `prompt-engineering` — Civitai image params are a prompt goldmine

## Sources

- **Official:** Civitai REST API https://civitai.com/api/v1 and Civitai MCP https://mcp.civitai.com/mcp
- **Empirical:** find→install→generate wiring is comfyui-mcp product guidance, not Civitai's prompting docs.
