ComfyUI Node

Export Run

Where the workflow stops being a canvas and becomes files on disk

By KillPhantom·Created about a month ago·Updated about a month ago· 0
Export Run
  • product_front
  • model_reference
  • candidate_images
  • selected_image
  • video
  • product_bundle
  • product_specification
  • candidate_set
  • evaluations
  • ranking
  • video_record
  • video_evaluation
  • manifest_path

Every node in the pack funnels toward this one. AFS_ExportRun is the sink - an output node that takes the entire run's assets and metadata and writes them to disk as a versioned folder plus a structured manifest. If the rest of the pack is about generating fashion imagery, this is the node that turns a canvas experiment into a deliverable you could hand to a catalog system, a client, or a downstream service.

Mechanically it's a tidy bit of bookkeeping. It loads your settings from the environment, creates a run directory under AIFS_OUTPUT_ROOT (default output/ai-fashion-studio, relative to the ComfyUI process), and writes the whole story atomically:

output/ai-fashion-studio/<run-id>/
├── inputs/           product-front.png, model-reference.png
├── candidates/       candidate-1.png, candidate-2.png, ...
├── final/            selected-image.png, fashion-video.mp4
└── manifest.json

The manifest.json is the crown jewel: run ID, source image hashes, the product bundle and specification, every candidate's scores, the ranking, video metadata and its QA, output file paths, and hashes of everything written. "Atomic" matters - the manifest is written to a temp file and renamed into place, so you never catch a half-written JSON mid-crash. The node even shows a PreviewText with the manifest path when it finishes, so you don't have to go hunting for it.

The input side is the full graph, all twelve sockets: product_front, model_reference, candidate_images, selected_image, video, plus the five contract objects (product_bundle, product_specification, candidate_set, evaluations, ranking) and the two video ones (video_record, video_evaluation). None are optional. If you've run the mock vertical slice, all of these exist by the time you reach the end - that's the intended graph. The single output is manifest_path (a STRING), and because this is an output node, it always executes.

Why you'd reach for it: reproducibility and handoff. Every run gets its own folder keyed by run_id, inputs are fingerprinted, and the manifest records exactly what was done, by which provider, at what estimated cost. If you're batch-processing product images and need an audit trail, this is the node that provides it.

The gotchas are about completeness. Because every socket is required, you can't shortcut the export - want only images, no video? Too bad, video and video_record and video_evaluation all have to be wired, which means the whole mock chain has to run. And run_id comes from the bundle, so if you want a stable folder name, set it in Load Product Assets, not here. A bad run_id (spaces, symbols) fails validation at the bundle stage, which is where the error surfaces.

Setup is the pack's standard: Manager search "AI Fashion Studio", or clone into custom_nodes, restart. The mock slice needs no key and no models. The one environment knob that matters here is AIFS_OUTPUT_ROOT - change it if you don't want runs buried in the ComfyUI working directory.

Honest last word: with a real try-on provider still missing from this pack, what you export today is orchestration-shaped output - mock candidates, fake motion, hash-derived scores. The export machinery is real, the manifest is real, and when the paid providers land, this node is already waiting to record them properly.

CategoryAI Fashion Studio/Mock MVP

Inputs (12)

NameTypeDefaultDescription
product_frontIMAGE
model_referenceIMAGE
candidate_imagesIMAGE
selected_imageIMAGE
videoVIDEO
product_bundleAFS_PRODUCT_BUNDLE
product_specificationAFS_PRODUCT_SPEC
candidate_setAFS_CANDIDATE_SET
evaluationsAFS_EVALUATION_SET
rankingAFS_RANKING_RESULT
video_recordAFS_VIDEO_RECORD
video_evaluationAFS_VIDEO_EVALUATION

Outputs (1)

NameTypeDescription
manifest_pathSTRING