3.1 KiB
3.1 KiB
Collect Files
Collect Files bundles everything needed to reproduce or archive a generated asset into a single ZIP: the asset itself, its workflow, the traced prompt text, and every media input referenced by the workflow.
What it does
Right-click an asset → Collect files (or use the Collect files button in the details sidebar). The feature:
- Reads the workflow and prompt graph embedded in the asset (PNG chunks, video metadata, ...).
- Traces the generation text prompts (positive/negative) using the same parser as the sidebar generation info — it follows conditioning chains to text encoders (
CLIPTextEncode,WanVideoTextEncode, API nodes, etc.). - Resolves every media input referenced by the workflow (LoadImage/LoadVideo/LoadAudio widget values,
sub/file.png [input]annotations, ...). - Writes a ZIP next to the asset named
{asset}_collected.zip.
ZIP contents
| Entry | Description |
|---|---|
{asset}.{ext} |
The asset file itself |
workflow.json |
The embedded ComfyUI workflow (UI format), when present |
prompt_graph.json |
The raw API prompt graph, when present |
prompt.json |
The traced generation text: positive, negative (plus all_positive_prompts / all_negative_prompts for multi-prompt workflows), when traceable |
inputs/… |
A copy of every referenced media input that could be resolved |
collected_files.txt |
Manifest: name, path, and status of each input, plus referenced model files with their resolved absolute paths |
Model files (checkpoints, LoRAs, VAEs, ...) are listed in the manifest with their full paths but are not copied into the ZIP (they are typically several gigabytes).
Where the ZIP is written
- By default the ZIP is created in the same folder as the asset, so it appears right next to the image in your file explorer.
- If a name collision exists, a
(2),(3), ... suffix is added — nothing is ever overwritten. - If the asset folder is not writable (permissions, read-only mounts), the ZIP transparently falls back to
output/_mjr_collected/and the toast tells you where it went. The operation is designed to never fail on folder permissions.
Input statuses in the manifest
| Status | Meaning |
|---|---|
copied |
Input found and copied into inputs/ |
MISSING (not found on disk) |
The workflow references a file that no longer exists |
NOT COPIED (outside allowed folders) |
Absolute path outside the ComfyUI output/input/temp/custom roots — listed for reference, never copied (security) |
NOT COPIED (read error) |
The file exists but could not be read |
Security
- The endpoint (
POST /mjr/am/collect-files) requires the standard write-access token, is CSRF-protected, and rate-limited. - The target asset path must live inside the ComfyUI output/input directories or a registered custom root.
- Referenced inputs are only copied when they resolve inside allowed roots; arbitrary absolute paths found in workflow metadata are never read.
- Total copied size is capped (4 GB) to avoid runaway archives.
API
See API_REFERENCE.md for the endpoint payload and response.