ComfyUI-资源上传下载接口扩展

背景: ComfyUI原生不提供各种文件资源的上传下载
ComfyUI 原生上传通常不是“任意文件上传器”,而是围绕图片等常见输入:
-
前端在节点(如 LoadImage)里选择本地文件 -
浏览器把文件 POST到 ComfyUI 服务端上传接口(不同版本路径可能略有差异) -
服务端把文件写入 input目录(或对应受控目录) -
节点参数里保存的是“文件名/相对路径信息”,而不是任意绝对路径
生成与保存
-
你点击 Queue 后,Prompt 在后端执行
-
SaveImage等节点把结果写到output目录 -
后端在执行结果(history / 执行返回)里记录产物元数据,例如:
filenamesubfoldertype(常见output)
-
方式 A:UI 自带下载按钮 在结果预览图上直接“保存/下载” -
方式 B:到服务器路径下复制 一般是将ComfyUI的 output 输出目录设置为 共享目录。
而大多数生成插件都不会提供下载功能,图片生成工作流中都只给预览节点。而现在,只要你能得到资源路径,就可以直接在前端下载任何类型的生成后资源。
现在更好的下载上传体验
Github :4698to/ComfyUI-Sundaybox: ComfyUI Files Dowload Upload Tools
特别是将ComfyUI工作流转换为API时,需要上传文件获取相当文件路径填入 prompt-json时,该插件提供的接口即可满足。
ComfyUI-Sundaybox 是一个面向 ComfyUI 的实用插件,当前提供两个节点:
NDBox_UploadFiles
:在节点面板内上传本地文件到 ComfyUI 目录。 NDBox_DownloadFile
:通过安全下载令牌下载服务端文件(不直接暴露真实路径)。
上传

可以选择 input / output 两个根路径上传,自动刷新 upload_subdir 子级目录
下载

传入 文件路径,即可下载。
功能特性
-
节点内嵌前端 UI(iframe)完成上传/下载操作。 -
上传支持多种扩展名过滤: any、npz、npy、json、txt、csv、bvh、fbx、obj、glb。 -
上传目标支持 output/input。 -
下载使用短期 download_id,前端不暴露服务器绝对路径。 -
历史文件列表支持按类型刷新,上传后可立即更新下拉项。 -
安装插件后,你在开发“生成/处理类节点”时可以专注业务本身:
等于把“文件传输层”抽成基础设施节点(Upload/Download),业务节点只管算法和处理逻辑。
你可以把它当成一个统一约定:
-
输入侧: NDBox_UploadFiles产出规范化路径(如output/3d/xxx.npz) -
业务侧:你的节点按路径处理并输出新路径 -
输出侧: NDBox_DownloadFile负责安全下载 -
前端文件选择 UI -
上传接口与表单解析 -
下载按钮与路由 -
文件类型校验与目录策略 -
只接收一个
file_path(或输出一个file_path) -
只做“按路径读文件/写文件”
-
不再在每个节点里重复写:
安装方式
-
将本仓库放到 ComfyUI 的 custom_nodes目录下: ComfyUI/custom_nodes/ComfyUI-Sundaybox-
重启 ComfyUI。 -
打开前端后搜索节点: NDBox Download FileNDBox Upload NPZ
HTTP 路由一览
以下接口与 ComfyUI Web 服务同源(默认例如 http://127.0.0.1:8188),请将示例中的 BASE_URL 换成你的实际地址。
|
|
|
|
|---|---|---|
POST |
/NDBox/upload_files |
|
GET |
/NDBox/list_uploaded_files |
|
GET |
/NDBox/list_input_subdirs |
|
GET |
/NDBox/resolve_file_path |
|
GET |
/NDBox/download_file/{download_id} |
|
GET |
/NDBox/download_file_by_filepath |
|
更多细节请细看 github.com项目:4698to/ComfyUI-Sundaybox
夜雨聆风