ComfyUI / serverless /client /CALLING-TIPS.md
aleph65's picture
serverless/client: CALLING-TIPS.md for downstream agents
4f50176 verified
|
Raw
History Blame Contribute Delete
2.21 kB

Tips for agents/apps calling these endpoints

Endpoints (H100, FlashBoot, scale 0-2). Auth: RUNPOD_API_KEY bearer token.

task endpoint id scripts warm exec
outfit/general edit, 2-image ref dom5lwr0o5wq6u qwen_edit_{sync,async}.py turbo-4 ~27-42s, turbo-8 ~60s
single-image edit (Rapid-AIO NSFW) tplcz9jtzihoxa qwen_edit_nsfw_{sync,async}.py ~7-8s @ 8 steps
head/face swap (Flux-2-Klein) qkeibkeoefcrk3 faceswap_lissie_{sync,async}.py ~12-13s
  1. Sync scripts for single jobs; async --no-wait + --job-id for batches (2 workers/endpoint, jobs queue).
  2. Warm/FlashBoot = sub-second delay. A brand-new host pays a one-time image pull (10-25 min) — huge delayTime means that; it won't repeat on that host. First job on a fresh worker adds ~20-60s model load. Use >=600s timeouts for a session's first call.
  3. Payloads: ~10 MB /run, ~20 MB /runsync; base64 adds ~33%. Keep inputs under ~7 MB combined — workflows downscale internally anyway (2048px turbo, 1 MP nsfw/lissie), bigger uploads are wasted bytes.
  4. Omitted seed = randomized and returned — save it to reproduce.
  5. Custom graphs: --workflow-json graph.json (API format). Only models/nodes baked in that image; LoadImage values must exactly match uploaded image names; friendly params don't apply (edit nodes in your JSON or use --set).
  6. Small tweaks: --set NODE.INPUT=VALUE patches the baked workflow, e.g. --set 43.cfg=1.5. Param-name -> node maps: ../endpoints/<name>/params/.
  7. Batch health check: GET https://api.runpod.ai/v2/<id>/healthworkers.idle/ready>0 warm-ish, initializing = pull in progress.
  8. Outputs: base64 in output.images[].data (PNG; nsfw returns webp).
  9. output.error = handler message (invalid params list the valid options — trust it). RunPod FAILED status = infra; retry.
  10. Batch related jobs back-to-back: workers idle 60s (billed) then FlashBoot keeps them resumable free — bursts are cheaper and faster than spread-out calls. Prefer these scripts over hand-rolled HTTP: they already handle /runsync's early IN_QUEUE return and polling edge cases.