Skip to content

v1.22.0

Choose a tag to compare

@james00012 james00012 released this 30 Sep 00:59
1ae8f40

15 commits since v1.21.0 (3 features, 7 fixes). Four changes can break a script, all marked Breaking under Changed: one to which credential comfy build and comfy deploy use, three to error and exit codes.

The headline is that comfy build and comfy deploy run with only a workspace
API key, so a CI job can build and deploy with no sign-in.

New

  • comfy build and comfy deploy run with only a workspace API key. Set
    COMFY_CLOUD_API_KEY and each command sends the key in X-API-Key;
    comfy deploy run also sends it to the deployment and, unless
    COMFY_API_KEY names a partner key, to its partner nodes. A key saved with
    comfy cloud set-key is used only when nobody is signed in. A refused key
    ends with build_not_signed_in or deploy_not_signed_in and a hint to
    replace the key, since signing in cannot help. (#953)
  • comfy deploy status prints a deployment's workers as ready, busy and
    starting
    , the same words on every GPU provider, in place of RunPod's own
    six states, so an idle scale-to-zero deployment no longer reads as
    throttled. --json adds serving.capacity; serving.workers stays while
    the deploy service still sends it and is deprecated. (#946)
  • Workflow edits can propose a set_node_field op for a node's title, mode
    and flags. (#910)

Changed

  • Breaking: COMFY_CLOUD_API_KEY wins over a stored sign-in for
    comfy build and comfy deploy, so a signed-in shell that exports it builds
    and deploys in the key's workspace. comfy cloud commands still prefer the
    sign-in, and a Cloud JWT in COMFY_BUILDER_TOKEN still comes first for
    comfy build. (#953)
  • Breaking: a definition the builder refuses arrives as
    build_definition_invalid
    , its reasons one per line and in
    details.invalid, instead of build_builder_error with the code as the
    message. A file the definition names that never reached the builder gets a
    hint to delete that blobId and push again, and a --target the cut refuses
    says the builder refused the release, not the definition. (#948)
  • Breaking: a 429 from Cloud to comfy run, comfy jobs, comfy workflow or
    comfy assets library is cloud_rate_limited
    instead of cloud_http_error,
    and the CLI no longer retries a request that is not a read, such as a job
    submit, on a 429, so it fails at once. (#937)
  • Breaking: a deploy watch that loses the deploy API ends with
    deploy_watch_lost and exit code 75
    instead of deploy_server_error and
    exit 1, since the deployment may still be coming up; the hint names the
    command that re-attaches. (#954)
  • comfy build validate and comfy build push refuse model entries the
    builder's release would refuse
    : a type that is not a model folder, an
    unsafe filename, a link with no file extension and no filename, a
    malformed sha256. Every such entry is named at once under
    build_spec_invalid, and push refuses before uploading anything. (#948)

Fixes worth calling out

  • comfy deploy up and comfy deploy status --watch keep following a
    deployment through a brief 503
    or dropped connection from the deploy API,
    as happened each time it rolled out a new version. The watch retries a 5xx or
    a failed connection for about a minute; a 4xx still ends it at once. (#954)
  • comfy deploy run refuses a workflow over the 10 MB a deployment accepts
    before sending the job, with deploy_workflow_too_large, instead of losing
    the connection and reporting that the job may exist. A 413 from the
    deployment maps to the same code. (#947)
  • deploy_job_submit_unknown no longer says the API has no job list. It
    says the CLI cannot look the job up, and details.idempotency_key carries
    the key the submission used. (#947)
  • comfy assets library ensure accepts a hash written as a file name,
    <hex>.<ext>, by sending it as blake3:<hex>, and a mangled hash it cannot
    find names up to three stored hashes it may be a copy of. (#937)
  • comfy generate names the model to retry with when it refuses a
    workflow's model (emit_workflow_unsupported_model). (#938)
  • comfy workflow add-node Note and a widget edit on a Note point at
    comfy workflow insert-workflow
    instead of ending with no next step. (#939)
  • Converting a workflow to an API prompt reserves a seed's companion slot only
    where the ComfyUI frontend adds one
    , so widget values line up with the
    frontend's. (#935)

What's Changed

  • docs(changelog): roll Unreleased into 1.17.0 through 1.21.0 (DPLAT-1733) by @vqt123 in #942
  • feat(workflow): propose set_node_field op for node title/mode/flags edits by @claude[bot] in #910
  • ci(gpu): run uv-compile e2e with ComfyUI-Manager 4.3 to restore conflict attribution by @skishore23 in #940
  • fix(workflow): note edits point at the insert-workflow route instead of dead ends by @skishore23 in #939
  • fix(generate): emit_workflow_unsupported_model names the model to retry with by @skishore23 in #938
  • feat(comfy-cli): deploy status prints ready, busy and starting workers on every provider (DPLAT-1790) by @james00012 in #946
  • fix(cql): reserve a seed companion slot only where the frontend adds one by @skishore23 in #935
  • test: pin that print_workflow drops canvas groups by @claude[bot] in #896
  • test: pin that add_node can't set a node title at creation by @claude[bot] in #897
  • fix(deploy): run refuses a workflow over the 10 MB limit instead of saying the job may exist (DPLAT-1709) by @vqt123 in #947
  • fix(build): name every model entry the builder would refuse, before the upload and at the cut (DPLAT-1704) by @vqt123 in #948
  • fix(cloud): 429 → cloud_rate_limited; assets ensure recovers mangled hashes by @skishore23 in #937
  • docs: reword internal notes in comments and docstrings by @skishore23 in #949
  • feat(comfy-cli): build and deploy with only a workspace API key (DPLAT-2055) by @james00012 in #953
  • fix(deploy): deploy up keeps following a deployment through a brief 503 from the deploy API (BE-17158) by @vqt123 in #954

Full Changelog: v1.21.0...v1.22.0