Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Discover Civitai models with the BUILT-IN search_civitai_models tool 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).
.claude/skills/artokun-civitai/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 131% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 33% | 0% |
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.
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 itbase_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, …
nsfw: true to opt in).model_version_id over model_id — a Civitai page can list severalversions 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).
"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"] }).version id. Let the user pick.
download_model({ action: "download_civitai", model_version_id, target_subfolder: "loras" }).panel_add_node a LoraLoader, panel_set_widget thelora_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)
modelVersionId from the URL if present; otherwise pass the modelid 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.
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):
bashclaude 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.
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| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,078 | 6,198 | -56% | 1 | 1 | 0% | 2,443 | 1,364 | -44% | 0 | 0 | — |
case-02 | fail→fail | 9,658 | 8,774 | -9% | 1 | 1 | 0% | 1,718 | 1,990 | +16% | 0 | 0 | — |
case-03 | fail→fail | 13,156 | 2,191 | -83% | 1 | 1 | 0% | 2,117 | 1,452 | -31% | 0 | 0 | — |
case-04 | fail→pass | 4,688 | 4,138 | -12% | 1 | 1 | 0% | 729 | 1,785 | +145% | 0 | 0 | — |
case-05 | fail→pass | 4,501 | 2,287 | -49% | 1 | 1 | 0% | 695 | 1,459 | +110% | 0 | 0 | — |
case-06 | pass→pass | 8,888 | 4,389 | -51% | 1 | 1 | 0% | 1,448 | 1,932 | +33% | 0 | 0 | — |
case-07 | pass→pass | 4,878 | 2,561 | -47% | 1 | 1 | 0% | 746 | 1,494 | +100% | 0 | 0 | — |
case-08 | fail→pass | 3,888 | 2,324 | -40% | 1 | 1 | 0% | 663 | 1,531 | +131% | 0 | 0 | — |
case-09 | fail→pass | 7,252 | 3,227 | -56% | 1 | 1 | 0% | 1,244 | 1,578 | +27% | 0 | 0 | — |
case-10 | fail→pass | 7,243 | 2,835 | -61% | 1 | 1 | 0% | 1,141 | 1,517 | +33% | 0 | 0 | — |
case-11 | pass→pass | 8,676 | 3,255 | -62% | 1 | 1 | 0% | 1,414 | 1,625 | +15% | 0 | 0 | — |
case-12 | pass→pass | 6,112 | 2,058 | -66% | 1 | 1 | 0% | 999 | 1,429 | +43% | 0 | 0 | — |
case-13 | fail→pass | 11,713 | 4,899 | -58% | 1 | 1 | 0% | 2,066 | 1,918 | -7% | 0 | 0 | — |
case-14 | fail→pass | 10,480 | 4,471 | -57% | 1 | 1 | 0% | 1,853 | 1,929 | +4% | 0 | 0 | — |
case-15 | fail→pass | 3,574 | 3,711 | +4% | 1 | 1 | 0% | 536 | 1,645 | +207% | 0 | 0 | — |
case-16 | pass→pass | 9,701 | 8,113 | -16% | 1 | 1 | 0% | 1,573 | 2,121 | +35% | 0 | 0 | — |
case-17 | pass→pass | 6,706 | 4,143 | -38% | 1 | 1 | 0% | 1,055 | 1,777 | +68% | 0 | 0 | — |
case-18 | fail→pass | 7,592 | 3,110 | -59% | 1 | 1 | 0% | 1,179 | 1,586 | +35% | 0 | 0 | — |
case-19 | pass→pass | 5,414 | 2,613 | -52% | 1 | 1 | 0% | 894 | 1,511 | +69% | 0 | 0 | — |
case-20 | pass→pass | 6,557 | 5,408 | -18% | 1 | 1 | 0% | 1,106 | 2,020 | +83% | 0 | 0 | — |
case-21 | pass→pass | 17,705 | 16,314 | -8% | 1 | 1 | 0% | 2,841 | 3,762 | +32% | 0 | 0 | — |
case-22 | pass→pass | 12,120 | 14,597 | +20% | 1 | 1 | 0% | 1,956 | 3,575 | +83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.