当前位置: 首页 > java >正文

ComfyUI自定义图片导出路径

代码:direct_save_image.py
将direct_save_image.py放到custom_node文件夹下。

import os
import torch
import numpy as np
from PIL import Image
import folder_paths
import json
from PIL.PngImagePlugin import PngInfo
import timeclass DirectSaveImage:def __init__(self):self.output_dir = folder_paths.get_output_directory()self.type = "output"self.prefix_append = ""self.compress_level = 4@classmethoddef INPUT_TYPES(s):return {"required": {"images": ("IMAGE", {"tooltip": "The images to save."}),"filename_prefix": ("STRING", {"default": "ComfyUI", "tooltip": "The prefix for the file to save."}),"output_path": ("STRING", {"default": "", "multiline": False,"tooltip": "Custom output directory path. Examples:\nD:/MyImages\nE:/AI_Output\nC:/Users/YourName/Documents/ComfyUI_Results\n\nLeave empty to use default ComfyUI output folder."}),"use_custom_path": ("BOOLEAN", {"default": False, "tooltip": "Enable custom output path"})},"hidden": {"prompt": "PROMPT", "extra_pnginfo": "EXTRA_PNGINFO"},}RETURN_TYPES = ()FUNCTION = "save_images"OUTPUT_NODE = TrueCATEGORY = "image"DESCRIPTION = "Direct Save Image with custom path support"def save_images(self, images, filename_prefix="ComfyUI", output_path="", use_custom_path=False, prompt=None, extra_pnginfo=None):# 决定保存目录if use_custom_path and output_path and output_path.strip():# 使用自定义路径output_path = output_path.strip().replace('\\', '/').rstrip('/')try:os.makedirs(output_path, exist_ok=True)save_dir = output_pathexcept Exception as e:print(f"Warning: Could not create directory {output_path}, using default: {e}")save_dir = self.output_direlse:# 使用默认路径save_dir = self.output_dirfilename_prefix += self.prefix_append# 生成文件名timestamp = int(time.time())counter = 0results = list()for (batch_number, image) in enumerate(images):i = 255. * image.cpu().numpy()img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8))# 准备元数据metadata = PngInfo()if prompt is not None:metadata.add_text("prompt", json.dumps(prompt))if extra_pnginfo is not None:for x in extra_pnginfo:metadata.add_text(x, json.dumps(extra_pnginfo[x]))# 生成文件名file = f"{filename_prefix}_{timestamp}_{counter:05}_.png"file_path = os.path.join(save_dir, file)# 直接保存到目标位置try:img.save(file_path, compress_level=self.compress_level, pnginfo=metadata)print(f"Saved image to: {file_path}")results.append({"filename": file,"subfolder": "","type": self.type})except Exception as e:print(f"Error saving image to {file_path}: {e}")counter += 1return { "ui": { "images": results } }# 注册节点
NODE_CLASS_MAPPINGS = {"DirectSaveImage": DirectSaveImage
}NODE_DISPLAY_NAME_MAPPINGS = {"DirectSaveImage": "Save Image (Direct)"
} 

使用方法:

在comfyui界面中搜索Save Image(Direct)节点
use_custom_path为true时,使用自定义导出路径

use_custom_path为false时,使用默认导出路径

sou

http://www.xdnf.cn/news/16694.html

相关文章:

  • 【图像处理】直方图均衡化c++实现
  • OpenEuler 安装 apache + php8 不解析php文件的处理
  • 网络编程-(网络计算机和网络通信)
  • Web3:赛道划分与发展趋势解析
  • PYTHON从入门到实践-17通过网络API获取数据与可视化
  • STM32启动流程详解:从复位到main函数的完整路径
  • 鲸签云合同管理系统有什么功能?
  • 李宏毅2025《机器学习》-第九讲:大型语言模型评测的困境与“古德哈特定律”**
  • Newman+Jenkins实施接口自动化测试
  • 【学习过程记录】【czsc】1、安装
  • Tomcat 服务器日志
  • 解决Nginx的HTTPS跨域内容显示问题
  • REST、GraphQL、gRPC、tRPC深度对比
  • Buck的Loadline和DVS区别和联系
  • WebSocket 简介与在 Vue 中的使用指南
  • Ganttable 时间仪表盘
  • 笔记本电脑开机慢系统启动慢怎么办?【图文详解】win7/10/11开机慢
  • PAT 甲级题目讲解:1011《World Cup Betting》
  • 如何修改VM虚拟机中的ip
  • MaxKB+MinerU:通过API实现PDF文档解析并存储至知识库
  • 【WPS】邮件合并教程\Excel批量写入数据进Word模板
  • 阿里云AI代码助手通义灵码开发指导
  • Mysql-索引
  • sql developer 中文显示问号 中文显示乱码 错误消息显示问号
  • 操作系统:总结(part_1,part_2)
  • Linux的应用层协议——http和https
  • 微服务的编程测评系统8-题库管理-竞赛管理
  • 洛谷 P11230:[CSP-J 2024 T4] 接龙 ← 图论+动态规划
  • 【Spark征服之路-4.3-Kafka】
  • ECharts从入门到精通:解锁数据可视化的魔法世界