{"id":"dc44bf5e-853b-4eb1-80f9-dd4cc21401b9","shortId":"bHrr6m","kind":"skill","title":"comfyui-gateway","tagline":"REST API gateway for ComfyUI servers. Workflow management, job queuing, webhooks, caching, auth, rate limiting, and image delivery (URL + base64).","description":"# ComfyUI Gateway\n\n## Overview\n\nREST API gateway for ComfyUI servers. Workflow management, job queuing, webhooks, caching, auth, rate limiting, and image delivery (URL + base64).\n\n## When to Use This Skill\n\n- When the user mentions \"comfyui\" or related topics\n- When the user mentions \"comfy ui\" or related topics\n- When the user mentions \"stable diffusion api gateway\" or related topics\n- When the user mentions \"gateway comfyui\" or related topics\n- When the user mentions \"api gateway imagens\" or related topics\n- When the user mentions \"queue imagens\" or related topics\n\n## Do Not Use This Skill When\n\n- The task is unrelated to comfyui gateway\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\nA production-grade REST API gateway that transforms any ComfyUI server into a universal,\nsecure, and scalable service. Supports workflow templates with placeholders, job queuing\nwith priorities, webhook callbacks, result caching, and multiple storage backends.\n\n## Architecture Overview\n\n```\n┌─────────────┐     ┌──────────────────────────────────┐     ┌──────────┐\n│   Clients    │────▶│        ComfyUI Gateway           │────▶│ ComfyUI  │\n│ (curl, n8n,  │     │                                  │     │ Server   │\n│  Claude,     │     │  ┌─────────┐  ┌──────────────┐  │     │ (local/  │\n│  Lovable,    │     │  │ Fastify │  │ BullMQ Queue │  │     │  remote) │\n│  Supabase)   │     │  │ API     │──│ (or in-mem)  │  │     └──────────┘\n│              │◀────│  └─────────┘  └──────────────┘  │\n│              │     │  ┌─────────┐  ┌──────────────┐  │     ┌──────────┐\n│              │     │  │ Auth +  │  │ Storage      │  │────▶│ S3/MinIO │\n│              │     │  │ RateL.  │  │ (local/S3)   │  │     │(optional)│\n│              │     │  └─────────┘  └──────────────┘  │     └──────────┘\n└─────────────┘     └──────────────────────────────────┘\n```\n\n## Components\n\n| Component | Purpose | File(s) |\n|-----------|---------|---------|\n| **API Gateway** | REST endpoints, validation, CORS | `src/api/` |\n| **Worker** | Processes jobs, talks to ComfyUI | `src/worker/` |\n| **ComfyUI Client** | HTTP + WebSocket to ComfyUI | `src/comfyui/` |\n| **Workflow Manager** | Template storage, placeholder rendering | `src/workflows/` |\n| **Storage Provider** | Local disk + S3-compatible | `src/storage/` |\n| **Cache** | Hash-based deduplication | `src/cache/` |\n| **Notifier** | Webhook with HMAC signing | `src/notifications/` |\n| **Auth** | API key + JWT + rate limiting | `src/auth/` |\n| **DB** | SQLite (better-sqlite3) or Postgres | `src/db/` |\n| **CLI** | Init, add-workflow, run, worker | `src/cli/` |\n\n## Quick Start\n\n```bash\n\n## 1. Install\n\ncd comfyui-gateway\nnpm install\n\n## 2. Configure\n\ncp .env.example .env\n\n## 3. Initialize\n\nnpx tsx src/cli/index.ts init\n\n## 4. Add A Workflow\n\nnpx tsx src/cli/index.ts add-workflow ./workflows/sdxl_realism_v1.json \\\n  --id sdxl_realism_v1 --schema ./workflows/sdxl_realism_v1.schema.json\n\n## 5. Start (Api + Worker In One Process)\n\nnpm run dev\n\n## Or Separately:\n\nnpm run start:api   # API only\nnpm run start:worker # Worker only\n```\n\n## Environment Variables\n\nAll configuration is via `.env` — nothing is hardcoded:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PORT` | `3000` | API server port |\n| `HOST` | `0.0.0.0` | API bind address |\n| `COMFYUI_URL` | `http://127.0.0.1:8188` | ComfyUI server URL |\n| `COMFYUI_TIMEOUT_MS` | `300000` | Max wait for ComfyUI (5min) |\n| `API_KEYS` | `\"\"` | Comma-separated API keys (`key:role`) |\n| `JWT_SECRET` | `\"\"` | JWT signing secret (empty = JWT disabled) |\n| `REDIS_URL` | `\"\"` | Redis URL (empty = in-memory queue) |\n| `DATABASE_URL` | `./data/gateway.db` | SQLite path or Postgres URL |\n| `STORAGE_PROVIDER` | `local` | `local` or `s3` |\n| `STORAGE_LOCAL_PATH` | `./data/outputs` | Local output directory |\n| `S3_ENDPOINT` | `\"\"` | S3/MinIO endpoint |\n| `S3_BUCKET` | `\"\"` | S3 bucket name |\n| `S3_ACCESS_KEY` | `\"\"` | S3 access key |\n| `S3_SECRET_KEY` | `\"\"` | S3 secret key |\n| `S3_REGION` | `us-east-1` | S3 region |\n| `WEBHOOK_SECRET` | `\"\"` | HMAC signing secret for webhooks |\n| `WEBHOOK_ALLOWED_DOMAINS` | `*` | Comma-separated allowed callback domains |\n| `MAX_CONCURRENCY` | `1` | Parallel jobs per GPU |\n| `MAX_IMAGE_SIZE` | `2048` | Maximum dimension (width or height) |\n| `MAX_BATCH_SIZE` | `4` | Maximum batch size |\n| `CACHE_ENABLED` | `true` | Enable result caching |\n| `CACHE_TTL_SECONDS` | `86400` | Cache TTL (24h) |\n| `RATE_LIMIT_MAX` | `100` | Requests per window |\n| `RATE_LIMIT_WINDOW_MS` | `60000` | Rate limit window (1min) |\n| `LOG_LEVEL` | `info` | Pino log level |\n| `PRIVACY_MODE` | `false` | Redact prompts from logs |\n| `CORS_ORIGINS` | `*` | Allowed CORS origins |\n| `NODE_ENV` | `development` | Environment |\n\n## Health & Capabilities\n\n```\nGET /health\n→ { ok: true, version, comfyui: { reachable, url, models? }, uptime }\n\nGET /capabilities\n→ { workflows: [...], maxSize, maxBatch, formats, storageProvider }\n```\n\n## Workflows (Crud)\n\n```\nGET    /workflows            → list all workflows\nPOST   /workflows            → register new workflow\nGET    /workflows/:id        → workflow details + input schema\nPUT    /workflows/:id        → update workflow\nDELETE /workflows/:id        → remove workflow\n```\n\n## Jobs\n\n```\nPOST   /jobs                 → create job (returns jobId immediately)\nGET    /jobs/:jobId          → status + progress + outputs\nGET    /jobs/:jobId/logs     → sanitized execution logs\nPOST   /jobs/:jobId/cancel   → request cancellation\nGET    /jobs                 → list jobs (filters: status, workflowId, after, before, limit)\n```\n\n## Outputs\n\n```\nGET    /outputs/:jobId       → list output files + metadata\nGET    /outputs/:jobId/:file → download/stream file\n```\n\n## Job Lifecycle\n\n```\nqueued → running → succeeded\n                 → failed\n                 → canceled\n```\n\n1. Client POSTs to `/jobs` with workflowId + inputs\n2. Gateway validates, checks cache, checks idempotency\n3. If cache hit → returns existing outputs immediately (status: `cache_hit`)\n4. Otherwise → enqueues job, returns `jobId` + `pollUrl`\n5. Worker picks up job, renders workflow template, submits to ComfyUI\n6. Worker polls ComfyUI for progress (or listens via WebSocket)\n7. On completion → downloads outputs, stores them, updates DB\n8. If callbackUrl → sends signed webhook POST\n9. Client polls `/jobs/:jobId` or receives webhook\n\n## Workflow Templates\n\nWorkflows are ComfyUI JSON with `{{placeholder}}` tokens. The gateway resolves\nthese at runtime using the job's `inputs` and `params`:\n\n```json\n{\n  \"3\": {\n    \"class_type\": \"KSampler\",\n    \"inputs\": {\n      \"seed\": \"{{seed}}\",\n      \"steps\": \"{{steps}}\",\n      \"cfg\": \"{{cfg}}\",\n      \"sampler_name\": \"{{sampler}}\",\n      \"scheduler\": \"normal\",\n      \"denoise\": 1,\n      \"model\": [\"4\", 0],\n      \"positive\": [\"6\", 0],\n      \"negative\": [\"7\", 0],\n      \"latent_image\": [\"5\", 0]\n    }\n  },\n  \"6\": {\n    \"class_type\": \"CLIPTextEncode\",\n    \"inputs\": {\n      \"text\": \"{{prompt}}\",\n      \"clip\": [\"4\", 1]\n    }\n  }\n}\n```\n\nEach workflow has an `inputSchema` (Zod) that validates what the client sends.\n\n## Security Model\n\n- **API Keys**: `X-API-Key` header; keys configured via `API_KEYS` env var as `key1:admin,key2:user`\n- **JWT**: Optional; when `JWT_SECRET` is set, accepts `Authorization: Bearer <token>`\n- **Roles**: `admin` (full CRUD on workflows + jobs), `user` (create jobs, read own jobs)\n- **Rate Limiting**: Per key + per IP, configurable window and max\n- **Webhook Security**: HMAC-SHA256 signature in `X-Signature` header\n- **Callback Allowlist**: Only approved domains receive webhooks\n- **Privacy Mode**: When enabled, prompts are redacted from logs and DB\n- **Idempotency**: `metadata.requestId` prevents duplicate processing\n- **CORS**: Configurable allowed origins\n- **Input Validation**: Zod schemas on every endpoint; max size/batch enforced\n\n## Comfyui Integration\n\nThe gateway communicates with ComfyUI via its native HTTP API:\n\n| ComfyUI Endpoint | Gateway Usage |\n|------------------|---------------|\n| `POST /prompt` | Submit rendered workflow |\n| `GET /history/{id}` | Poll job completion |\n| `GET /view?filename=...` | Download generated images |\n| `GET /object_info` | Discover available nodes/models |\n| `WS /ws?clientId=...` | Real-time progress (optional) |\n\nThe client auto-detects ComfyUI version and adapts:\n- Tries WebSocket first for progress, falls back to polling\n- Handles both `/history` response formats\n- Detects OOM errors and classifies them with recommendations\n\n## Cache Strategy\n\nCache key = SHA-256 of `workflowId + sorted(inputs) + sorted(params) + checkpoint`.\nOn cache hit, the gateway returns a \"virtual\" job with pre-existing outputs — no GPU\ncomputation needed. Cache is stored alongside job data in the DB with configurable TTL.\n\n## Error Classification\n\n| Error Code | Meaning | Retry? |\n|------------|---------|--------|\n| `COMFYUI_UNREACHABLE` | Cannot connect to ComfyUI | Yes (with backoff) |\n| `COMFYUI_OOM` | Out of memory on GPU | No (reduce dimensions) |\n| `COMFYUI_TIMEOUT` | Execution exceeded timeout | Maybe (increase timeout) |\n| `COMFYUI_NODE_ERROR` | Node execution failed | No (check workflow) |\n| `VALIDATION_ERROR` | Invalid inputs | No (fix request) |\n| `WORKFLOW_NOT_FOUND` | Unknown workflowId | No (register workflow) |\n| `RATE_LIMITED` | Too many requests | Yes (wait) |\n| `AUTH_FAILED` | Invalid/missing credentials | No (fix auth) |\n| `CACHE_HIT` | (Not an error) Served from cache | N/A |\n\n## Bundled Workflows\n\nThree production-ready workflow templates are included:\n\n## 1. `Sdxl_Realism_V1` — Photorealistic Generation\n\n- Checkpoint: SDXL base\n- Optimized for: Portraits, landscapes, product shots\n- Default: 1024x1024, 30 steps, cfg 7.0\n\n## 2. `Sprite_Transparent_Bg` — Game Sprites With Alpha\n\n- Checkpoint: SD 1.5 or SDXL\n- Optimized for: 2D game assets, transparent backgrounds\n- Default: 512x512, 25 steps, cfg 7.5\n\n## 3. `Icon_512` — App Icons With Optional Upscale\n\n- Checkpoint: SDXL base\n- Optimized for: Square icons, clean edges\n- Default: 512x512, 20 steps, cfg 6.0, optional 2x upscale\n\n## Observability\n\n- **Structured Logs**: Pino JSON logs with `correlationId` on every request\n- **Metrics**: Jobs queued/running/succeeded/failed, avg processing time, cache hit rate\n- **Audit Log**: Admin actions (workflow CRUD, key management) logged with timestamp + actor\n\n## Cli Reference\n\n```bash\nnpx tsx src/cli/index.ts init                    # Create dirs, .env.example\nnpx tsx src/cli/index.ts add-workflow <file>      # Register workflow template\n  --id <id> --name <name> --schema <schema.json>\nnpx tsx src/cli/index.ts list-workflows           # Show registered workflows\nnpx tsx src/cli/index.ts run                      # Start API server\nnpx tsx src/cli/index.ts worker                   # Start job worker\nnpx tsx src/cli/index.ts health                   # Check ComfyUI connectivity\n```\n\n## Troubleshooting\n\nRead `references/troubleshooting.md` for detailed guidance on:\n- ComfyUI not reachable (firewall, wrong port, Docker networking)\n- OOM errors (reduce resolution, batch, or steps)\n- Slow generation (GPU utilization, queue depth, model loading)\n- Webhook failures (DNS, SSL, timeout, domain allowlist)\n- Redis connection issues (fallback to in-memory)\n- Storage permission errors (local path, S3 credentials)\n\n## Integration Examples\n\nRead `references/integration.md` for ready-to-use examples with:\n- curl commands for every endpoint\n- n8n webhook workflow\n- Supabase Edge Function caller\n- Claude Code / Claude.ai integration\n- Python requests client\n- JavaScript fetch client\n\n## File Structure\n\n```\ncomfyui-gateway/\n├── SKILL.md\n├── package.json\n├── tsconfig.json\n├── .env.example\n├── src/\n│   ├── api/\n│   │   ├── server.ts          # Fastify setup + plugins\n│   │   ├── routes/\n│   │   │   ├── health.ts      # GET /health, /capabilities\n│   │   │   ├── workflows.ts   # CRUD /workflows\n│   │   │   ├── jobs.ts        # CRUD /jobs\n│   │   │   └── outputs.ts     # GET /outputs\n│   │   ├── middleware/\n│   │   │   └── error-handler.ts\n│   │   └── plugins/\n│   │       ├── auth.ts        # API key + JWT\n│   │       ├── rate-limit.ts\n│   │       └── cors.ts\n│   ├── worker/\n│   │   └── processor.ts       # Job processor\n│   ├── comfyui/\n│   │   └── client.ts          # ComfyUI HTTP + WS client\n│   ├── storage/\n│   │   ├── index.ts           # Provider factory\n│   │   ├── local.ts           # Local filesystem\n│   │   └── s3.ts              # S3-compatible\n│   ├── workflows/\n│   │   └── manager.ts         # Template CRUD + rendering\n│   ├── cache/\n│   │   └── index.ts           # Hash-based cache\n│   ├── notifications/\n│   │   └── webhook.ts         # HMAC-signed callbacks\n│   ├── auth/\n│   │   └── index.ts           # Key/JWT validation + roles\n│   ├── db/\n│   │   ├── index.ts           # DB factory (SQLite/Postgres)\n│   │   └── migrations.ts      # Schema creation\n│   ├── cli/\n│   │   └── index.ts           # CLI commands\n│   ├── utils/\n│   │   ├── config.ts          # Env loading + validation\n│   │   ├── errors.ts          # Error classes\n│   │   ├── logger.ts          # Pino setup\n│   │   └── hash.ts            # SHA-256 hashing\n│   └── index.ts               # Main entrypoint\n├── config/\n│   └── workflows/             # Bundled workflow templates\n│       ├── sdxl_realism_v1.json\n│       ├── sdxl_realism_v1.schema.json\n│       ├── sprite_transparent_bg.json\n│       ├── sprite_transparent_bg.schema.json\n│       ├── icon_512.json\n│       └── icon_512.schema.json\n├── data/\n│   ├── outputs/               # Generated images\n│   ├── workflows/             # User-added wor\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `ai-studio-image` - Complementary skill for enhanced analysis\n- `image-studio` - Complementary skill for enhanced analysis\n- `stability-ai` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["comfyui","gateway","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-comfyui-gateway","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/comfyui-gateway","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34882 github stars · SKILL.md body (14,658 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T12:50:48.771Z","embedding":null,"createdAt":"2026-04-18T21:34:47.990Z","updatedAt":"2026-04-24T12:50:48.771Z","lastSeenAt":"2026-04-24T12:50:48.771Z","tsv":"'-256':993,1469 '/capabilities':564,1382 '/data/gateway.db':413 '/data/outputs':428 '/health':554,1381 '/history':933,977 '/jobs':601,608,614,620,625,659,728,1388 '/object_info':945 '/outputs':636,643,1391 '/prompt':928 '/view':939 '/workflows':573,578,583,590,595,1385 '/workflows/sdxl_realism_v1.json':315 '/workflows/sdxl_realism_v1.schema.json':321 '/ws':950 '0':776,779,782,786 '0.0.0.0':365 '1':286,458,479,655,773,796,1121 '1.5':1152 '100':516 '1024x1024':1137 '127.0.0.1':371 '1min':528 '2':294,663,1142 '20':1187 '2048':487 '24h':512 '25':1164 '2d':1157 '2x':1192 '3':299,670,756,1168 '30':1138 '3000':360 '300000':379 '4':305,496,681,775,795 '5':322,688,785 '512':1170 '512x512':1163,1186 '5min':384 '6':699,778,787 '6.0':1190 '60000':524 '7':709,781 '7.0':1141 '7.5':1167 '8':718 '8188':372 '86400':509 '9':725 'accept':837 'access':442,445 'accur':1546 'action':1217 'actor':1225 'ad':1492 'adapt':965 'add':278,306,313,1240 'add-workflow':277,312,1239 'address':368 'admin':827,841,1216 'ai':1551,1569 'ai-studio-imag':1550 'allow':469,474,544,899 'allowlist':875,1314 'alongsid':1022 'alpha':1149 'analysi':1521,1547,1558,1566,1574 'api':5,28,75,93,148,196,212,261,324,337,338,361,366,385,390,811,815,821,922,1262,1373,1396 'app':1171 'appli':1509,1533 'approv':877 'architectur':179 'ask':1608 'asset':1159 'assist':136 'audit':1214 'auth':16,39,201,260,1095,1101,1439 'auth.ts':1395 'author':838 'auto':960 'auto-detect':959 'avail':947 'avg':1208 'back':972 'backend':178 'background':1161 'backoff':1045 'base':251,1129,1178,1431 'base64':23,46 'bash':285,1228 'batch':494,498,1297 'bearer':839 'best':1494 'better':270 'better-sqlite3':269 'bg':1145 'bind':367 'boundari':1616 'bucket':437,439 'bullmq':192 'bundl':1111,1476 'cach':15,38,174,248,500,505,506,510,667,672,679,988,990,1002,1019,1102,1109,1211,1427,1432 'callback':172,475,874,1438 'callbackurl':720 'caller':1352 'cancel':623,654 'cannot':1039 'capabl':552 'cd':288 'cfg':765,766,1140,1166,1189 'check':666,668,1071,1275 'checkpoint':1000,1127,1150,1176 'clarif':1610 'class':757,788,1463 'classif':1032 'classifi':984 'claud':188,1353 'claude.ai':1355 'clean':1183 'clear':1497,1583 'cli':275,1226,1452,1454 'client':181,227,656,726,807,958,1359,1362,1410 'client.ts':1406 'clientid':951 'clip':794 'cliptextencod':790 'code':1034,1354,1513 'combin':1514 'comfi':64 'comfyui':2,8,24,31,56,85,119,153,182,184,224,226,231,290,369,373,376,383,558,698,702,737,911,917,923,962,1037,1042,1046,1056,1064,1276,1285,1366,1405,1407 'comfyui-gateway':1,289,1365 'comma':388,472 'comma-separ':387,471 'command':1342,1455 'common':1522 'communic':915 'compat':246,1421 'complementari':1517,1554,1562,1570 'complet':711,937 'compon':207,208 'comprehens':1520 'comput':1017 'concurr':478 'config':1474 'config.ts':1457 'configur':295,349,819,859,898,1029 'connect':1040,1277,1316 'context':1499,1539,1544 'cor':217,542,545,897 'correlationid':1201 'cors.ts':1400 'cp':296 'creat':602,848,1233 'creation':1451 'credenti':1098,1329 'criteria':1619 'crud':571,843,1219,1384,1387,1425 'curl':185,1341 'data':1024,1485 'databas':411 'db':267,717,891,1027,1444,1446 'dedupl':252 'default':357,1136,1162,1185 'delet':594 'deliveri':21,44 'denois':772 'depth':1305 'describ':1587 'descript':358 'detail':586,1282 'detect':961,980 'dev':331 'develop':549 'diffus':74 'dimens':489,1055 'dir':1234 'directori':431 'disabl':401 'discov':946 'disk':243 'dns':1310 'docker':1291 'domain':138,470,476,878,1313,1531 'download':712,941 'download/stream':646 'duplic':895 'east':457 'edg':1184,1350 'empti':399,406 'enabl':501,503,884 'endpoint':215,433,435,907,924,1345 'enforc':910 'enhanc':1557,1565,1573 'enough':1542 'enqueu':683 'entrypoint':1473 'env':298,352,548,823,1458 'env.example':297,1235,1371 'environ':346,550,1599 'environment-specif':1598 'error':982,1031,1033,1066,1074,1106,1294,1325,1462 'error-handler.ts':1393 'errors.ts':1461 'everi':906,1203,1344 'exampl':1331,1339 'exceed':1059 'execut':617,1058,1068 'exist':675,1013 'expert':1604 'expertis':139,1532 'factori':1414,1447 'fail':653,1069,1096 'failur':1309 'fall':971 'fallback':1318 'fals':537 'fastifi':191,1375 'fetch':1361 'file':210,640,645,647,1363 'filenam':940 'filesystem':1417 'filter':628 'firewal':1288 'first':968 'fix':1078,1100 'format':568,979 'found':1082 'full':842 'function':1351 'game':1146,1158 'gateway':3,6,25,29,76,84,94,120,149,183,213,291,664,743,914,925,1005,1367 'general':134 'general-purpos':133 'generat':942,1126,1301,1487 'get':553,563,572,582,607,613,624,635,642,932,938,944,1380,1390 'gpu':483,1016,1052,1302 'grade':146 'guidanc':1283 'handl':127,975 'hardcod':355 'hash':250,1430,1470 'hash-bas':249,1429 'hash.ts':1467 'header':817,873 'health':551,1274 'health.ts':1379 'height':492 'hit':673,680,1003,1103,1212 'hmac':257,463,866,1436 'hmac-sha256':865 'hmac-sign':1435 'host':364 'http':228,921,1408 'icon':1169,1172,1182 'icon_512.json':1483 'icon_512.schema.json':1484 'id':316,584,591,596,934,1245 'idempot':669,892 'imag':20,43,485,784,943,1488,1553,1560 'image-studio':1559 'imagen':95,104 'immedi':606,677 'in-mem':198 'in-memori':407,1320 'includ':1120 'increas':1062 'index.ts':1412,1428,1440,1445,1453,1471 'info':531 'init':276,304,1232 'initi':300 'input':587,662,752,760,791,901,997,1076,1613 'inputschema':801 'instal':287,293 'integr':912,1330,1356 'invalid':1075 'invalid/missing':1097 'ip':858 'issu':1317 'javascript':1360 'job':12,35,167,221,481,599,603,627,648,684,692,750,846,849,852,936,1009,1023,1206,1269,1403 'jobid':605,609,637,644,686,729 'jobid/cancel':621 'jobid/logs':615 'jobs.ts':1386 'json':738,755,1198 'jwt':263,394,396,400,830,833,1398 'key':262,386,391,392,443,446,449,452,812,816,818,822,856,991,1220,1397 'key/jwt':1441 'key1':826 'key2':828 'ksampler':759 'landscap':1133 'latent':783 'level':530,534 'lifecycl':649 'limit':18,41,265,514,521,526,633,854,1089,1575 'list':574,626,638,1252 'list-workflow':1251 'listen':706 'load':1307,1459 'local':189,242,421,422,426,429,1326,1416 'local.ts':1415 'local/s3':205 'log':529,533,541,618,889,1196,1199,1215,1222 'logger.ts':1464 'lovabl':190 'main':1472 'manag':11,34,234,1221 'manager.ts':1423 'mani':1091 'match':1584 'max':380,477,484,493,515,862,908 'maxbatch':567 'maximum':488,497 'maxsiz':566 'mayb':1061 'mean':1035 'mem':200 'memori':409,1050,1322 'mention':55,63,72,83,92,102 'metadata':641 'metadata.requestid':893 'metric':1205 'middlewar':1392 'migrations.ts':1449 'miss':1621 'mode':536,882 'model':561,774,810,1306 'ms':378,523 'multipl':176 'n/a':1110 'n8n':186,1346 'name':440,768,1246 'nativ':920 'need':132,1018 'negat':780 'network':1292 'new':580 'node':547,1065,1067 'nodes/models':948 'normal':771 'noth':353 'notif':1433 'notifi':254 'npm':292,329,334,340 'npx':301,309,1229,1236,1248,1257,1264,1271 'observ':1194 'ok':555 'one':327 'oom':981,1047,1293 'optim':1130,1155,1179 'option':206,831,956,1174,1191 'origin':543,546,900 'otherwis':682 'output':430,612,634,639,676,713,1014,1486,1593 'outputs.ts':1389 'outsid':1529 'overview':26,180 'package.json':1369 'parallel':480 'param':754,999 'path':415,427,1327 'per':482,518,855,857 'permiss':1324,1614 'photorealist':1125 'pick':690 'pino':532,1197,1465 'pitfal':1523 'placehold':166,237,740 'plugin':1377,1394 'poll':701,727,935,974 'pollurl':687 'port':359,363,1290 'portrait':1132 'posit':777 'post':577,600,619,657,724,927 'postgr':273,417 'practic':1495 'pre':1012 'pre-exist':1011 'prevent':894 'prioriti':170 'privaci':535,881 'process':220,328,896,1209 'processor':1404 'processor.ts':1402 'product':145,1115,1134,1512 'production-grad':144 'production-readi':1114 'progress':611,704,955,970 'project':1502,1543 'prompt':539,793,885 'provid':241,420,1413,1496,1541 'purpos':135,209 'put':589 'python':1357 'queu':13,36,168,650 'queue':103,193,410,1304 'queued/running/succeeded/failed':1207 'quick':283 'rate':17,40,264,513,520,525,853,1088,1213 'rate-limit.ts':1399 'ratel':204 'reachabl':559,1287 'read':850,1279,1332 'readi':1116,1336 'ready-to-us':1335 'real':953 'real-tim':952 'realism':318,1123 'receiv':731,879 'recommend':987,1534 'redact':538,887 'redi':402,404,1315 'reduc':1054,1295 'refer':1227 'references/integration.md':1333 'references/troubleshooting.md':1280 'region':454,460 'regist':579,1086,1242,1255 'relat':58,67,78,87,97,106,1548 'remot':194 'remov':597 'render':238,693,930,1426 'request':129,517,622,1079,1092,1204,1358 'requir':1504,1612 'resolut':1296 'resolv':744 'respons':978 'rest':4,27,147,214 'result':173,504 'retri':1036 'return':604,674,685,1006 'review':1505,1605 'role':393,840,1443 'rout':1378 'run':280,330,335,341,651,1260 'runtim':747 's3':245,424,432,436,438,441,444,447,450,453,459,1328,1420 's3-compatible':244,1419 's3.ts':1418 's3/minio':203,434 'safeti':1615 'sampler':767,769 'sanit':616 'scalabl':160 'schedul':770 'schema':320,588,904,1247,1450 'scope':1586 'sd':1151 'sdxl':317,1122,1128,1154,1177 'sdxl_realism_v1.json':1479 'sdxl_realism_v1.schema.json':1480 'second':508 'secret':395,398,448,451,462,465,834 'secur':158,809,864 'seed':761,762 'send':721,808 'separ':333,389,473 'serv':1107 'server':9,32,154,187,362,374,1263 'server.ts':1374 'servic':161 'set':836 'setup':1376,1466 'sha':992,1468 'sha256':867 'shot':1135 'show':1254 'sign':258,397,464,722,1437 'signatur':868,872 'simpler':122 'size':486,495,499 'size/batch':909 'skill':51,112,1518,1526,1549,1555,1563,1571,1578 'skill-comfyui-gateway' 'skill.md':1368 'slow':1300 'sort':996,998 'source-sickn33' 'specif':124,1498,1538,1600 'sprite':1143,1147 'sprite_transparent_bg.json':1481 'sprite_transparent_bg.schema.json':1482 'sqlite':268,414 'sqlite/postgres':1448 'sqlite3':271 'squar':1181 'src':1372 'src/api':218 'src/auth':266 'src/cache':253 'src/cli':282 'src/cli/index.ts':303,311,1231,1238,1250,1259,1266,1273 'src/comfyui':232 'src/db':274 'src/notifications':259 'src/storage':247 'src/worker':225 'src/workflows':239 'ssl':1311 'stabil':1568 'stability-ai':1567 'stabl':73 'start':284,323,336,342,1261,1268 'status':610,629,678 'step':763,764,1139,1165,1188,1299 'stop':1606 'storag':177,202,236,240,419,425,1323,1411 'storageprovid':569 'store':714,1021 'strategi':989 'structur':1195,1364 'studio':1552,1561 'submit':696,929 'substitut':1596 'succeed':652 'success':1618 'suggest':1507 'supabas':195,1349 'support':162 'talk':222 'task':115,1528,1582 'templat':164,235,695,734,1118,1244,1424,1478 'test':1602 'text':792 'three':1113 'time':954,1210 'timeout':377,1057,1060,1063,1312 'timestamp':1224 'token':741 'tool':125 'topic':59,68,79,88,98,107 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transform':151 'transpar':1144,1160 'treat':1591 'tri':966 'troubleshoot':1278 'true':502,556 'tsconfig.json':1370 'tsx':302,310,1230,1237,1249,1258,1265,1272 'ttl':507,511,1030 'type':758,789 'ui':65 'understand':1536 'univers':157 'unknown':1083 'unreach':1038 'unrel':117 'updat':592,716 'upscal':1175,1193 'uptim':562 'url':22,45,370,375,403,405,412,418,560 'us':456 'us-east':455 'usag':926 'use':49,110,748,1338,1524,1576 'user':54,62,71,82,91,101,131,829,847,1491 'user-ad':1490 'util':1303,1456 'v1':319,1124 'valid':216,665,804,902,1073,1442,1460,1601 'var':824 'variabl':347,356 'version':557,963 'via':351,707,820,918 'virtual':1008 'wait':381,1094 'webhook':14,37,171,255,461,467,468,723,732,863,880,1308,1347 'webhook.ts':1434 'websocket':229,708,967 'width':490 'window':519,522,527,860 'without':137,1535 'wor':1493 'work':142 'worker':219,281,325,343,344,689,700,1267,1270,1401 'workflow':10,33,163,233,279,308,314,565,570,576,581,585,593,598,694,733,735,798,845,931,1072,1080,1087,1112,1117,1218,1241,1243,1253,1256,1348,1422,1475,1477,1489 'workflowid':630,661,995,1084 'workflows.ts':1383 'wrong':1289 'ws':949,1409 'x':814,871 'x-api-key':813 'x-signatur':870 'yes':1043,1093 'zod':802,903","prices":[{"id":"f0070592-238c-4aef-a350-611faa3e97f2","listingId":"dc44bf5e-853b-4eb1-80f9-dd4cc21401b9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:34:47.990Z"}],"sources":[{"listingId":"dc44bf5e-853b-4eb1-80f9-dd4cc21401b9","source":"github","sourceId":"sickn33/antigravity-awesome-skills/comfyui-gateway","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/comfyui-gateway","isPrimary":false,"firstSeenAt":"2026-04-18T21:34:47.990Z","lastSeenAt":"2026-04-24T12:50:48.771Z"}],"details":{"listingId":"dc44bf5e-853b-4eb1-80f9-dd4cc21401b9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"comfyui-gateway","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34882,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"7040867a66ef28a3c28a77af5fb37397d7d3efc1","skill_md_path":"skills/comfyui-gateway/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/comfyui-gateway"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"comfyui-gateway","description":"REST API gateway for ComfyUI servers. Workflow management, job queuing, webhooks, caching, auth, rate limiting, and image delivery (URL + base64)."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/comfyui-gateway"},"updatedAt":"2026-04-24T12:50:48.771Z"}}