Nodes/ComfyUI-Get-Random-File/Save Image to PC ⚡
ComfyUI Node

Save Image to PC ⚡

\"Save Image to PC\" is a trap — this node uploads to a receiver server instead

By ChrisColeTech·Created 2 years ago·Updated about 16 hours ago· 3
Save Image to PC ⚡
  • images
  • saved_paths
receiver_profile
save_keydefault
filename_prefix
model_name
workflow_name
prompt
negative_prompt
seed0
format
jpeg_quality92
webp_quality92
subfolder
job_id
generation_id
width0
height0
steps0
cfg0.00
sampler
scheduler
extra_metadata

Here's the trap in the name. If you google "save image to PC" you're picturing a node that writes a PNG somewhere on your own machine - same box, a folder you pick. Save Image to PC from ChrisColeTech/ComfyUI-Get-Random-File is not that. It's the network half of this pack: it encodes each image in memory and POSTs it over HTTP to a receiver profile - a separate little server the author calls a "comfy-media-receiver" - which writes the file on its side and decides the folder and filename from a save_key. Nothing lands in ComfyUI's output folder, and nothing touches local disk at all. If you run it cold, nothing you own receives a thing.

The real question is whether you run the receiver. Nothing else in this repository ships it. On first import the node writes a receiver_config.json beside the module, seeded with one template profile named "Home PC" pointing at http://100.81.23.51:8790 - an address in Tailscale's private 100.64/10 range, i.e. the author's own network. Out of the box that URL reaches nobody you control. To use this node you must (1) run a matching receiver HTTP API somewhere, and (2) edit that config file to point at it. And there's no README section for any of it - the README only documents the random-file and save-to-folder nodes. This is an author's personal multi-machine workflow that shipped inside a public pack. Consider yourself warned.

If you do have a receiver up, it works cleanly. Wire images in, and every frame of the batch gets encoded in memory (png, jpeg, or webp) and sent to the receiver's /api/v1/upload endpoint. The response confirms the write, and the node returns the saved path(s). Success means the receiver confirmed; failure is a loud RuntimeError naming the profile and URL.

The inputs you actually touch:

  • receiver_profile - a dropdown of enabled receivers from the config (the "Home PC" sample you see is just that template).
  • save_key - which receiver-side save profile (destination folder + naming pattern) to use. The receiver owns routing; you don't type a path here.
  • filename_prefix - base name for the uploaded files.
  • format (png/jpeg/webp) plus the jpeg_quality / webp_quality sliders.

The long tail of optional inputs - model_name, workflow_name, prompt, negative_prompt, seed, job_id, generation_id, sampler fields, width/height/steps/cfg - are identity metadata sent along so the receiver can name and file the output the way it wants. extra_metadata is a free-form JSON blob, and it must actually be JSON or the node errors out rather than sending garbage.

Output: saved_paths, a STRING with one saved path per file.

Install is the pack standard - ComfyUI Manager, search ComfyUI-Get-Random-File, restart, or git clone https://github.com/ChrisColeTech/ComfyUI-Get-Random-File into custom_nodes. requirements.txt only adds requests (the HTTP side) and imageio-ffmpeg; no model files to fetch. The setup pain isn't the install, it's the missing receiver.

Verdict: if this node shows up in a shared workflow you're trying to run, the pragmatic move is usually to swap it for the pack's own SaveImageToFolder - same family, writes locally to any absolute path, no network, no config. Keep Save Image to PC only if the workflow genuinely expects the receiver (which means someone else is running that server for you, or you are). The loud failure is at least honest: you'll know in one run whether the receiver exists.

Category🤖 CCTech/Files

Inputs (22)

NameTypeDefaultDescription
imagesIMAGE
receiver_profileCOMBO1 options: Home PC
save_keySTRINGdefault
filename_prefixSTRING
model_nameSTRING
workflow_nameSTRING
promptSTRING
negative_promptSTRING
seedINT00–9223372036854776000
formatoptCOMBO3 options: png, jpeg, webp
jpeg_qualityoptINT921–100
webp_qualityoptINT921–100
subfolderoptSTRING
job_idoptSTRING
generation_idoptSTRING
widthoptINT0
heightoptINT0
stepsoptINT0
cfgoptFLOAT0.00
sampleroptSTRING
scheduleroptSTRING
extra_metadataoptSTRING

Outputs (1)

NameTypeDescription
saved_pathsSTRING