Comfy Prompt Skill
Sister skill to comfyui-cli. This writes the prompt. comfyui-cli runs it.
Language rule: Reply in whatever language the user writes in.
HARD RULES — pre-delivery checklist
Run this checklist BEFORE sending any prompt response. The failure mode it prevents: producing prompts that look correct because of training-data shape rather than verified Comfy model parameters.
Confirm in order:
-
Routing line first. First line names model + path (cloud/local) + workflow. Example:
Routing: cloud → flux-pro (text-to-image, sync, 1024×1024). Missing routing line = response incomplete. -
Model exists and is verified. Cloud model must appear in the cloud-models list in frontmatter, OR be a real file in
/Users/dawizkidmal/ComfyUI/blueprints/. If user names a model not in either list, say so and offer the closest match. NEVER invent model names. NEVER claim Higgsfield/Runway-app/Pika-app names map without checking the table inmodel-guide.md. -
MCSLA structure intact on video prompts. Model · Camera · Subject · Look · Action. Five layers, every video prompt, unless user explicitly opts out.
-
Camera/motion vocabulary verified. Camera preset names come from
vocab.md. If user names one not in the file, say so and ask for clarification. -
Negative constraints appended. Pull from
shared/negative-constraints.md. Do not paraphrase — use file phrasing. -
Aspect ratio uses correct flag per model family. Comfy Cloud models have different parameter conventions for dimensions:
- BFL Flux (
flux-pro,flux-ultra,flux-2):--width INT --height INT - Stability / Ideogram / Reve / Vidu / Grok:
--aspect_ratio STRING - Seedance:
--ratio ENUM --resolution ENUM - Runway:
--ratio ENUM - DALL-E / Recraft:
--size "WxH" - Pika (t2v):
--aspectRatio FLOAT(camelCase!) - kontext / fill / expand / rmbg / nano-banana: no dimension flag (uses source)
Use the translator script to avoid schema errors:
$(python3 ~/.claude/skills/comfy-prompt/scripts/aspect_flags.py <model> <aspect>)Or via
cfwrapper:--platform tiktok|reel|wide|squareauto-translates. Never hand-write--aspect_ratio— it only works for some models. Anamorphic / 2.35:1 / 2.39:1 are style register (Look line), not output ratios. - BFL Flux (
-
Prompt under 200 words. Going over = padding. Tighten.
-
Execution command appended. End with the exact
comfy generate ...orcomfy run --workflow ...command the user can paste.
If items 1–8 incomplete, the response is incomplete. Fix before sending.
Two execution paths
| Path | When | Skill that runs it |
|---|---|---|
Cloud (comfy generate <model>) | Need access to BFL Flux, DALL-E, Seedance, Grok, etc. Fast, no local setup. Requires COMFY_API_KEY. | comfyui-cli § Comfy Cloud |
Local (comfy run --workflow) | Have models downloaded, want full workflow control, no per-call cost. Need comfy launch --background first. | comfyui-cli § Local |
Default: cloud for fast prototyping, local for repeat / batch / privacy.
Workflow
Fast Path — Simple Creative Requests
User gives clear creative intent, no specific constraints ("write me a prompt for a car chase at night"). Generate immediately with premium-first defaults:
| Parameter | Default |
|---|---|
| Aspect ratio | 16:9 |
| Quality tier | S (premium) — pass --budget to downshift to B |
| Image model (S) | nano-banana --model gemini-3-pro-image-preview (Gemini 3 Pro) |
| Image model (B fallback) | flux-pro |
| Image-text (poster, sign) | ideogram (S — strongest text rendering) |
| Image edit (S) | flux-kontext-max |
| Video model (S) | kling --model_name kling-v3 (latest, top quality) |
| Video model (A) | seedance (cinematic motion) |
| Video model (B fallback) | hailuo |
| Image-to-video (S) | kling-i2v --model_name kling-v3 |
| Local image | Text to Image (Flux.2 Dev).json |
| Local video | Text to Video (Wan 2.2).json |
| Style | Cinematic |
| Duration (video) | 5s (cloud sync limits), 10s local |
Resolve via cf auto <task> "<prompt>" — auto-picks tier-correct model.
Do not ask clarifying questions on Fast Path. Deliver ready-to-paste prompt + command.
Full Path — Production Requests
User signals production intent (multi-shot, specific model, budget concern, client work). Confirm in one message:
Required:
- Generation type: Image / Video / Edit / Upscale
- Aspect ratio: 16:9 / 9:16 / 1:1 / 4:5 / 3:4
- Path: Cloud or Local
- Model preference (or ask me to recommend — see
model-guide.md)
Optional (skip if user provided):
- Visual style
- Reference image path (for image-to-image / image-to-video)
- Duration (video)
- Negative constraints
Ask everything in ONE message — do not split rounds.
Route to the right model — tier system
Full mapping → model-guide.md. Premium-first tier table (S default):
| Task | S (premium default) | A | B | C (budget) |
|---|---|---|---|---|
image | nano-banana --model gemini-3-pro-image-preview | flux-ultra | flux-pro | nano-banana (Gemini 2.5 Flash) |
image-edit | flux-kontext-max | flux-kontext | nano-banana | recraft-i2i |
image-text (poster, sign) | ideogram | nano-banana (Gemini 3 Pro) | dalle | nano-banana (Gemini 2.5 Flash) |
illustration | recraft | ideogram | stability-sd3 | recraft |
inpaint | flux-fill | flux-fill | recraft-inpaint | recraft-inpaint |
outpaint | flux-expand | — | — | — |
bg-remove | recraft-rmbg | — | — | — |
bg-replace | recraft-replace-bg | recraft-replace-bg | ideogram-bg | — |
vectorize | recraft-vectorize | — | — | — |
upscale | recraft-upscale-creative | stability-upscale-creative | recraft-upscale | stability-upscale-fast |
video-t2v | kling --model_name kling-v3 | seedance | hailuo | pika |
video-i2v | kling-i2v --model_name kling-v3 | runway-i2v | vidu-i2v | pika-i2v |
Local fallback (for privacy, no-cost iteration, ControlNet):
- T2I:
Text to Image (Flux.2 Dev).json - I2I edit:
Image Edit (Flux.2 Klein 4B).json - T2V:
Text to Video (Wan 2.2).json - Upscale:
Image Upscale(Z-image-Turbo).json - Inpaint:
Image Inpainting (Flux.1 Fill Dev).json
Resolution shortcut: cf auto <task> "<prompt>" [--quality s|a|b|c] [--budget] routes automatically.
Check templates for genre match
Before writing from scratch, check templates/:
| User request matches | Template |
|---|---|
| Chase, pursuit, action, parkour | templates/01-action.md |
| Product, commercial, ad, UGC | templates/02-product.md |
| Portrait, character intro, close-up | templates/03-portrait.md |
| Landscape, nature, establishing shot | templates/04-landscape.md |
| Sci-fi, cyberpunk, VFX, space | templates/05-scifi.md |
| Cinematic still image with shot framing | templates/06-cinematic-still.md |
Adapt the template — don't paste verbatim.
MCSLA Formula
Five layers, every prompt:
| M | C | S | L | A |
|---|---|---|---|---|
| Model | Camera | Subject | Look | Action |
Core rules:
- Name specific camera presets from
vocab.md - Describe VFX concretely (not "magical effects")
- Subject → Action → Camera → Style is the most reliable order
- Keep prompts under 200 words
Output format
Single prompt:
**Model**: <model name> (<cloud/local>)
**Aspect ratio**: <ratio> **Duration**: <Xs> **Style**: <style>
<Prompt body — MCSLA composed>
**Camera**: <camera preset name from vocab.md>
**Negative**: <pulled from shared/negative-constraints.md>
**Run**:
```bash
<exact comfy generate or comfy run command>
**Two versions (when style varies):**