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…
ComfyUI prompt engineering knowledge covering CLIP text encoding syntax, weight modifiers, model-specific prompting strategies, and best practices
Claude Code
$ npx -y skills add artokun/comfyui-mcp --skill prompt-engineering --agent claude-code
Codex
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a codex -y
Cursor
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a cursor -y
Gemini CLI
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a gemini-cli -y
GitHub Copilot
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a github-copilot -y
OpenCode
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a opencode -y
Windsurf
$ npx skills add artokun/comfyui-mcp --skill prompt-engineering -a windsurf -y
name: prompt-engineering description: ComfyUI prompt engineering knowledge covering CLIP text encoding syntax, weight modifiers, model-specific prompting strategies, and best practices globs: - "**/*.json"
ComfyUI uses CLIP (Contrastive Language-Image Pre-training) text encoders to convert text prompts into conditioning tensors. The `CLIPTextEncode` node takes a text string and a CLIP model, producing a `CONDITIONING` output for the KSampler.
CLIP processes text in **77-token chunks**. Each word is typically 1-3 tokens. Prompts exceeding 77 tokens are silently truncated unless you use the BREAK token or a multi-clip encoding node.
Adjust how strongly the model attends to specific words or phrases:
| Syntax | Effect | Equivalent Weight | |--------|--------|-------------------| | `(word:1.3)` | Increase emphasis by 30% | Explicit weight 1.3 | | `(word:0.7)` | Decrease emphasis by 30% | Explicit weight 0.7 | | `(word)` | Slight increase | `(word:1.1)` | | `((word))` | Moderate increase | `(word:1.21)` — 1.1^2 | | `(((word)))` | Strong increase | `(word:1.331)` — 1.1^3 | | `[word]` | Slight decrease | `(word:0.9091)` — 1/1.1 | | `[[word]]` | Moderate decrease | `(word:0.8264)` — 1/1.1^2 |
a (beautiful:1.3) woman with (flowing red hair:1.2), wearing a blue dress, (sharp focus:1.1)
(masterpiece:1.4), (best quality:1.3), a knight in (ornate armor:1.2), standing on a cliff, (dramatic lighting:1.1), cinematic
The `BREAK` keyword forces CLIP to end the current 77-token chunk and start processing subsequent text in a new chunk. This is critical for long prompts.
masterpiece, best quality, a beautiful Japanese garden with cherry blossoms, stone lanterns, koi pond, traditional wooden bridge, morning mist BREAK highly detailed, 8k uhd, photorealistic, volumetric lighting, depth of field, golden hour, award-winning photography
Each chunk is encoded independently and then concatenated as conditioning, so all tokens are processed.
Embeddings (textual inversions) are pre-trained token sets that encode complex concepts into a single trigger word.
embedding:easynegative embedding:badhandv4 embedding:bad-image-v2-39000
| Embedding | Best For | Description | |-----------|----------|-------------| | `easynegative` | SD 1.5 | General quality improvement | | `badhandv4` | SD 1.5 | Fixes hand deformities | | `bad-image-v2-39000` | SD 1.5 | Reduces artifacts | | `negativeXL_D` | SDXL | SDXL-specific negative embedding | | `ac_neg1` | SDXL | Alternative SDXL negative |
Positive: `a portrait of a woman, masterpiece, best quality` Negative: `embedding:easynegative, embedding:badhandv4, worst quality, low quality`
**Negative prompt: IMPORTANT. SD 1.5 is sensitive to negatives.**
Positive prompt structure:
(masterpiece:1.2), (best quality:1.2), subject description, details, style tags
Recommended negative prompt:
worst quality, low quality, normal quality, lowres, watermark, signature, text, jpeg artifacts, blurry, bad anatomy, bad hands, extra fingers, missing fingers, extra limbs, deformed, disfigured, mutation, ugly
Key notes:
**Negative prompt: Moderate importance. SDXL is less sensitive to negatives than SD 1.5.**
Positive prompt structure:
subject description with natural language, detailed description of scene and style
Recommended negative prompt:
blurry, low quality, deformed, ugly, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limbs, watermark, text
Key notes:
**Negative prompt: NOT USED. Flux operates at CFG=1.0 with no negative conditioning.**
Positive prompt structure:
Detailed natural language description. Flux excels with descriptive sentences rather than comma-separated tags. Describe the scene as if writing a paragraph.
Key notes:
<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…