🧩大炮Skill加载器@炮老师的小课堂
Skills for your local LLM chat, without the API
- 🤖本地模型
- 🧩Skill配置
"Skill" here means what it means in the agent world: a folder with instructions that turns your chat model into a specialist. The pack ships a real catalog - 3D动画短片生成器, 品牌宣传短片, H3视频提示词生成, gpt-image-2, kb-retriever, music-caption-rewriter and more, all under skills/<skill-id>/SKILL.md (or the repo-style skills/<repo>/skills/<skill-id>/SKILL.md). DapaoSkillLoader ("大炮Skill加载器") picks one, prepares it, and hands the chat workbench a DAPAO_SKILL_CONFIG that makes the model follow that skill's rules instead of generic chat.
The key thing to know before you install anything: this is the local version of the same idea as the pack author's API-based dapaoAPI suite, but every skill runs on your own GGUF model. No API key anywhere. The local model does the routing, the skill selection, and the reasoning - and "自动选择" even makes one extra local-model inference to pick the right skill for your message.
The inputs that matter
🧩Skill选择- the dropdown. "自动选择" runs that extra routing inference; a manual pick skips it. If you know what you want, pick manually and save a model call.🧭管理动作+🎯管理Skill+🆔管理请求- the management surface. This is where you upload a ZIP or folder as a new skill, list what's installed, and rename. Renames write todata/skill_display_names.jsonand never touch the skill's ID, trigger conditions, or body - manual names always win over model-generated ones, and any rename is reversible.🤖本地模型- optionalDAPAO_LOCAL_MODELinput, used only for the "optimize skill display names" action. Manual rename and upload don't need it.- Output:
🧩Skill配置(DAPAO_SKILL_CONFIG) → wire intoDapaoMultiTurnChatV2's🧩Skill配置input.
The upload safety net
Because uploading arbitrary ZIPs into a custom node is exactly the attack surface the ecosystem keeps warning about, the pack added real checks: path-traversal rejection, symlink rejection, duplicate-path rejection, file-count and decompressed-size limits (upload cap 512MB). Same-name skill directories don't silently overwrite. That's more than most local-LLM nodes bother with, and given the KB's security essay about LLM-adjacent nodes being the shape of past malware (the LLMVISION incident), it's worth crediting the author for not being sloppy here.
Where people get burned
The "自动选择" mode is the one that surprises people: it runs an inference on every message, so a chat session burns tokens just deciding which skill to use. If your model is slow or you're on a small card, set the selection manually. Also remember the skill's system rules take precedence - the README says when a Skill is connected, it owns the system prompt, so don't fight it from DapaoChatSettings.
Installing it
One pack install covers it:
cd ComfyUI/custom_nodes
git clone https://github.com/paolaoshi/ComfyUI-llama_Dapao
then install requirements and restart. Pack-wide dependency gotcha: llama-cpp-python is pinned to the JamePeng fork at 0.3.47+ (stock PyPI 0.3.35 fails on Qwen3.8 GGUFs), NVIDIA users overlay a matching GPU wheel, and GGUF + mmproj models live in ComfyUI/models/LLM/. You don't need a model to upload or rename skills - only the rename-optimization button does - but the loader is pointless until a DapaoLocalModelLoader is wired in.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| 🧩Skill选择 | COMBO | 自动选择 | 自动选择会额外进行一次本地模型路由;手动选择可避免这次推理。 |
| 🧭管理动作 | STRING | idle | — |
| 🎯管理Skill | STRING | — | |
| 🆔管理请求 | STRING | — | |
| 🤖本地模型opt | DAPAO_LOCAL_MODEL | 仅供“优化Skill显示名”按钮使用;手动改名和上传不需要连接。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 🧩Skill配置 | DAPAO_SKILL_CONFIG | — |