Nodes/saya-comfy-couple-plus/AUTO PASS 1 · STOP / UNLOAD
ComfyUI Node

AUTO PASS 1 · STOP / UNLOAD

Seal the base image, then hand the queue to pass 2

By alphaziod·Created 3 months ago·Updated about 15 hours ago· 3
AUTO PASS 1 · STOP / UNLOAD
  • image
  • image
  • validated_path
  • manifest_json
seed0
positive_prompt
negative_prompt
models_json[]
vaes_json[]
samplers_json{}
source_path
save_receipt

In this pack's automated pipeline, "STOP" doesn't mean "halt" - it means seal and hand off. SayaImagePhase1Stop sits at the end of pass 1 (base generation). When it runs, it saves your finished image and its manifest to disk as the phase-1 checkpoint, promotes that candidate to the validated status, tells the frontend the pass is done, and the frontend then unloads VRAM and auto-queues pass 2 a couple of seconds later. The node name says "STOP / UNLOAD" because each pass is meant to be fully isolated: one checkpoint in memory at a time, freed between passes so a six-stage pipeline doesn't need to hold six models.

This is the fixed-phase variant of the pack's checkpoint Stop - no phase selector, because it is phase 1, forever. Its siblings (SayaImagePhase2Stop through SayaImagePhase6Stop) do the identical job for their passes.

Inputs

The required inputs are mostly about recording what happened, not controlling execution:

  • image - the finished phase-1 output to save.
  • seed - recorded in the manifest.
  • positive_prompt / negative_prompt - recorded in the manifest.
  • models_json / vaes_json / samplers_json - JSON notes on which checkpoint, VAEs, and sampler settings were used. Pure metadata; a mismatch never aborts the save (the code explicitly refuses to crash an expensive render over a widget shape).
  • Optional source_path - records where this pass's input came from.
  • Optional save_receipt - accepted for compatibility with a save-node receipt, but the node ignores its value.

Outputs: image (passed through), validated_path (where the approved PNG now lives), and manifest_json (the full record, which is also what gets sent to the frontend).

Where the files go

Checkpoints land under ComfyUI/output/image/checkpoints/ (the default checkpoint_root is image/checkpoints, relative to the output folder; absolute paths and .. are rejected). Phase 1 writes phase_1_base.candidate.png + .candidate.json first, then promotes them to phase_1_base.png + phase_1_base.json via an atomic swap with rollback - so a crash mid-save can't leave you with a half-written checkpoint that poisons the next pass.

The deferral detail worth knowing

The node does not unload your model itself. It signals completion, and the actual VRAM unload happens in the browser after ComfyUI reports execution_success - the author's comments note that model-management extensions may still have model pages pinned while the prompt is alive. If the frontend isn't running (headless, API-only), the checkpoint still saves fine; you just won't get the automatic next-pass queue, and you can resume by running pass 2's graph manually. It's also the source of a classic confusion: run a later phase's LOAD before this node has validated phase 1 and you'll get "previous phase not validated." Order matters.

Install: ComfyUI Manager search saya-comfy-couple-plus, or git clone https://github.com/alphaziod/saya-comfy-couple-plus into custom_nodes and restart. Only numpy/Pillow as dependencies - nothing heavy to download. WIP pack; keep backups before updating.

CategorySaya/Image Phases

Inputs (9)

NameTypeDefaultDescription
imageIMAGE
seedINT00–18446744073709550000
positive_promptSTRING
negative_promptSTRING
models_jsonSTRING[]
vaes_jsonSTRING[]
samplers_jsonSTRING{}
source_pathoptSTRING
save_receiptoptSTRING

Outputs (3)

NameTypeDescription
imageIMAGE
validated_pathSTRING
manifest_jsonSTRING