MCPcopy Index your code
hub / github.com/7BEII/Comfyui_PDuse

github.com/7BEII/Comfyui_PDuse @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
504 symbols 1,079 edges 96 files 240 documented · 48%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ComfyUI PDuse

工作流合集|视频介绍|节点介绍文档

🚀 特色和节点介绍:

- Comfyui PDuse 制作是方便处理一些 常用的图像 json 和txt 各种繁琐python操作集成到comfyui节点里面,后续有空会持续维护。

⚡ 安装方法

方法一:Git克隆

cd ComfyUI/custom_nodes
git clone https://github.com/your-username/Comfyui_PDuse.git
cd Comfyui_PDuse
pip install -r requirements.txt

方法二:手动下载

  1. 从releases下载ZIP文件 or 网盘 PD源代码备份:https://pan.quark.cn/s/ac4cf8544857#/list/share
  2. 解压到ComfyUI/custom_nodes/
  3. 安装依赖:pip install -r requirements.txt

📖 节点说明

Logic/条件判断

PD:if

alt text

条件判断节点,将输入的 ifcond_1cond_2 做逻辑判断,输出布尔结果,同时输出执行计数。

输入: - if(BOOLEAN):条件开关 - cond_1(any):任意类型输入(会进行 bool(cond_1) 判断) - cond_2(any):任意类型输入(会进行 bool(cond_2) 判断)

输出: - output(BOOLEAN):bool(if) and bool(cond_1) and bool(cond_2) - count(INT):执行成功输出 1,异常输出 0

说明: - ✅ 输入端口顺序:if → cond_1 → cond_2 - ✅ 输出端口顺序:output → count

文本处理

PD Show Text

alt text

文本显示节点,用于在ComfyUI界面中显示文本信息,通常用于显示处理结果、状态报告或调试信息。 - text:要显示的文本内容(支持来自其他节点的文本输出)

PD:Image_and_Text

PD_Image_and_Text

字体文件可以放入文件夹fonts 。 将两张图片左右合并,并在底部添加文字标注的ComfyUI节点。

  • image1+ ​​​​image2 :尽量要求同样尺寸,如果不同,会自动等比例缩放对齐
  • text1 + text2 :支持中文,需字体文件包含中文编码,可输入如"效果图":"原图"之类
  • font_size​:小于20可能看不清,大于90可能超出画布
  • ​​padding_up​:文字​​上方​​的留白高度,10-30
  • ​​padding_down:文字​​下方​​的留白高度 10- 1000 ,可以往下扩多一些方便排版
  • font_file​ 选择字体样式, 需将.ttf/.otf文件放入插件目录的fonts文件夹
  • longer_size : 单张图的最长边尺寸限制

PD_Text Overlay Node

PD_Text Overlay Node

给图片添加文字,并且指定位置贴上去。

  • image:要处理的输入图片
  • text:需要叠加的文字内容
  • font_size:字体大小
  • font_color:文字颜色,使用HEX格式,如#000000
  • position_x:文字水平位置(0到1,0是左,1是右)
  • position_y:文字垂直位置(0到1,0是上,1是下)
  • letter_gap:字符间距(可为负数,负数使字母靠近)
  • font_name:使用的字体文件名(从fonts目录中选择)
PD_Add Label

在图像四边添加标签文字,支持百分比定位和多方向添加。

  • 位置控制: text_x(1-100) 和 text_y(1-100) 百分比定位
  • 标签尺寸: height(1-1000) 控制标签区域大小
  • 文字样式: font_size(8-200) 和 font 选择
  • 颜色模式:
  • light = 白底黑字
  • dark = 黑底白字
  • 添加方向: up/down/left/right 四个方向
PD加载文本文件夹(输出列表)

PD 读文件夹txt

批量读取文件夹内的文本文件(.txt, .json等),输出内容列表。

  • directory_path:文件夹路径
  • limit_count:读取数量限制
PD加载文本ZIP(输出列表)

PD加载文本ZIP

上传ZIP压缩包,自动解压并批量读取其中的文本文件。

  • zip_file_upload:ZIP文件上传
  • 输出:文本内容列表、拼接文本
PD保存文本(路径+文件名)

批量保存文本文件节点,接收文本内容列表和文件名列表,按对应关系将文本保存到指定目录。与 PD加载文本文件夹 节点配套使用。

  • output_directory:输出文件夹路径(必填)
  • text_list:文本内容列表(列表输入)
  • filename_text:文件名列表(多行文本,每行一个文件名)

功能特点: - ✅ 支持批量文本文件保存 - ✅ 自动创建输出目录(如果不存在) - ✅ 按输入顺序一一对应保存(filename[0] → text_list[0]) - ✅ 自动添加 .txt 扩展名(如果文件名没有扩展名) - ✅ UTF-8 编码保存,完美支持中文 - ✅ 详细的保存报告和错误处理 - ✅ 数量不匹配时自动取最小值保存

使用场景: - 批量保存图像标注文本 - 批量保存提示词文件 - 文本内容的批量导出 - 配合加载文本节点进行文本处理流程

对应关系示例:

text_list = ["内容1", "内容2", "内容3"]
filename_text = "10_R.txt\n11_R.txt\n12_R.txt"

保存结果:
- 10_R.txt → 保存"内容1"
- 11_R.txt → 保存"内容2"  
- 12_R.txt → 保存"内容3"

PDTool系列(主要解决的是一些算法上问题,以及功能复刻)

抠图专用:

PDtools Filter 抠图节点

PDtools_Filter_WPNG_v1

用于黑白图、黑底白字、黑白 logo 的阈值二值化处理,思路接近 Photoshop 的“阈值”。

  • 输入:image
  • 参数:threshold,范围 0.0 - 1.0
  • 输出:黑白二值 image 和同款 mask
  • 规则:像素亮度 >= threshold 变白,进入 mask;像素亮度 < threshold 变黑,不进入 mask。
  • 调低 threshold:保留更多灰色笔触和细节,也可能带入噪点。
  • 调高 threshold:结果更干净,只保留更亮的白色区域,但灰色笔触可能丢失。
PDtools_Filter_WPNG_v2
  • 用于黑底发光、虚化边缘、带光晕的素材。它按亮度生成软 alpha,并尽量恢复被黑底预乘过的发光颜色。
  • black_threshold:黑场过滤阈值。数值越低,保留更多暗部发光;数值越高,黑底去得更狠,但弱光边缘可能丢失。
  • 适合白色发光字、彩色发光字、黑底光效素材。
PDtools_Filter_GodenPNG_v1

用于灰底、棋盘格、马赛克底上的金色文字、红色印章类素材。 - 阈值:越大就是可行度高,抠的越多内容。 - remove_white=true:那种灰底马赛克图,会把白色块删干净,内部的白色也会跟着删除。 - remove_white=false:会更保留金色文字里的白色高光,内部白色保留,可能会抠不干净。

PD text_list_string_add word

批量为字符串添加词语,支持前缀、后缀、替换、插入等多种操作,适用于文本批处理。

PD文本列表打包

将多个文本内容和对应的文件名打包成列表格式,可与文本加载、排序等节点配合使用。

  • text_1~5:文本内容输入(最多5个,可选)
  • filename_1~5:对应的文件名(可选)
  • input_text_list:直接输入文本列表(可选)
  • input_filename_text:与列表配套的文件名(可选)

输出: - text_list:文本列表 - filename_text:文件名列表(多行文本) - count:文本数量

PD文本列表解包

从文本列表中提取单个文本项,与文本列表打包节点配套使用。

PD文本列表排序

对文本列表和对应的文件名进行排序整理。

PD:imageconcante_V1

PDimageconcante_V1

两张图片按指定方向拼接合并。

  • image1:输入图片1(必填)
  • image2:输入图片2(可选,不填时只输出image1)
  • direction:合并方向(right/down/left/up)
  • match_size:尺寸对齐方式(longest/crop by image1)
  • image2_crop:裁切位置(center/top/bottom/left/right)

image处理

PD_save path

自定义路径保存图片节点。支持自定义输出目录、文件名前缀、文件名数字位置等,并可输出保存结果(成功/数量)。

输入: - images(IMAGE):待保存图片 - filename_prefix(STRING):文件名前缀 - custom_output_dir(STRING):自定义输出目录(可空) - format(png/jpg):保存格式 - numberfront(BOOLEAN):数字在前/在后 - separator(STRING):分隔符 - show_preview(BOOLEAN):是否显示保存预览 - refresh_each_run(BOOLEAN):每次运行强制刷新(避免缓存,确保每次都重新保存)

输出: - success(BOOLEAN):本次保存成功(保存数量 > 0) - saved_count(INT):本次保存数量

说明: - ✅ 当 show_preview=True 时,节点会返回预览UI,同时仍然输出 success/saved_count - ✅ 当 refresh_each_run=True 时,会强制节点每次运行都重新执行保存逻辑

PDIMAGE:Load_Images

PD_Load_Images

批量图片加载节点,从指定目录中加载多张图片,支持多种加载选项和缓存控制。

  • directory:图片文件夹路径(必填)
  • image_load_cap:加载数量限制(0为无限制)
  • start_index:起始索引(从第几张开始加载)
  • load_always:强制重新加载(True时忽略缓存)
PDIMAGE_SAVE_PATH

PDIMAGE_SAVE_PATH

图片保存路径管理节点,设置和管理图片的保存路径,支持自定义文件名格式。

  • save_path:保存路径设置
  • filename_format:文件名格式(支持前缀、后缀)
  • create_subdirs:是否创建子目录
PDIMAGE_SAVE_PATHV2

PDIMAGE_SAVE_PATHV2

增强版图片保存路径管理节点,支持多种图片格式、时间令牌和智能文件命名。

  • filename_prefix:文件名前缀(支持时间令牌)
  • custom_output_dir:自定义输出目录路径
  • filename_delimiter:文件名分隔符
  • filename_number_padding:数字填充位数
  • extension:文件格式选择
  • quality:图像质量控制(1-100)
  • embed_metadata:元数据嵌入控制
  • overwrite_mode:覆盖模式选择
PD:Image Blend V1

PDImage_Blend V1

将两张图片进行混合,支持多种混合模式、透明度控制和位置调整。 - background_image:背景图像(必填) - layer_image:图层图像(必填) - blend_mode:混合模式(normal/multiply/screen/overlay等) - opacity:透明度(0-100) - x_percent/y_percent:位置百分比(50为居中) - scale:缩放比例(0.01到10) - align_mode:对齐模式 - layer_mask:可选图层遮罩 - invert_mask:是否反转遮罩

PD:Image Ratio Crop

Image Ratio Crop

根据指定比例和最长边长度进行中心裁切,支持自定义比例和输出尺寸。

  • image:输入图像张量
  • ratio_a:比例A(1-100)
  • ratio_b:比例B(1-100)
  • max_size:输出图像的最长边长度
PD:longgersize

longgersize

将图像的长边缩放到指定尺寸,同时保持宽高比,短边按比例缩放。

  • image:输入图像
  • size:目标长边尺寸
  • interpolation:插值方式
PD:image_resize_v1

image_resize_v1

图片缩放节点,支持通过最长边或最短边缩放图片,输出缩放后的图片和mask。

  • pixels:输入图片张量
  • resize_mode:缩放模式(longest/shortest)
  • target_size:目标尺寸(64-8192)
  • mask_optional:可选的mask输入
PD:imagesize_v2

alt text

图片缩放裁切节点V2,支持三种处理模式:纯缩放、比例裁切、强制拉伸。

  • pixels:输入图片张量
  • resize_mode:缩放模式(longest/shortest)
  • target_size:目标尺寸(64-8192)
  • crop_mode:裁切模式(none/crop/stretch)
  • ratio_a/ratio_b:目标比例(1-100)
  • horizontal_align:水平对齐方式
  • vertical_align:垂直对齐方式
  • mask_optional:可选的mask输入
PD:ratio selector

alt text

很简单的逻辑,主要是处理输出尺寸,比例 方便后续出图控制比例的流程。 RETURN_TYPES = ("STRING", "INT", "INT") any thing输入 都可以怼进去,适合调整尺寸。 - max_size:最长边尺寸(256-4096,默认1024) - aspect_ratio:宽高比选择 只输出需要的 ratio (字符串), width (整数), height (整数)

本次新增/调整节点

PD:ratio selector

PD:ratio selector

按比例和 max_size 计算画布尺寸。

  • 输入:aspect_ratiomax_size
  • 输出:ratio / width / height / filename_prefix / max_size
  • filename_prefix 示例:image=2x3-680x1024
  • 本次新增:max_size 也作为 string 输出

PDimage_resize_V2

PDimage_resize_V2

图片按比例缩放、裁切或补边。

  • scale_to_side 只保留:longest / shortest / width / height
  • 正常有内容的图片和 mask 保持原来的处理逻辑
  • 透明 PNG 必须把 Load Image.MASK 接到 mask_optional
  • 如果 mask_optional 全 1,说明整张图完全透明,节点会直接原样输出,避免后续合成出现白边/黑边

PDselector-string

原节点名:PD:string-selector

按比例选择字符串/整数值。

  • 输入:aspect_ratio2:31:13:2
  • 默认值:2:3=7681:1=6803:2=1024
  • 输出:string / int

PDselector-image

原节点名:PD:ratio-image-selector

按比例选择图片。

  • 输入:2:3 必填,1:1 / 3:2 可选,aspect_ratio 控制选择
  • 输出:image / ratio / width / height
  • 未接入对应比例图片时,回退输出 2:3

PD-selector-sum-T3

按比例选择一整组素材。

  • 映射:2:3 第 1 组,1:1 第 2 组,3:2 第 3 组
  • 第 1 组必填:front1 / mask1 / back1
  • 第 2、3 组可选:front2 / mask2 / back2front3 / mask3 / back3
  • 参数:int1 / int2 / int3 / X1 / Y1 / X2 / Y2 / X3 / Y3
  • 输出:front / mask / back / int / ratio / width / height / X / Y
  • 选中组未接完整时,回退第 1 组
  • 参数区顺序:
aspect_ratio -> int1 -> int2 -> int3 -> X1 -> Y1 -> X2 -> Y2 -> X3 -> Y3

PD:string-to-ratio-combo

把普通比例字符串转成 combo 输出。

  • 输入:string / fallback
  • 输出:combo
  • 支持:1:1 / 3:4 / 4:3 / 2:3 / 3:2 / 9:16 / 16:9

透明图合成提示

PD:Image Blend V1

透明 PNG 进 PDimage_resize_V2 时,image 和 mask 要一起接:

Load Image.IMAGE -> PDimage_resize_V2.pixels
Load Image.MASK  -> PDimage_resize_V2.mask_optional

PDimage_resize_V2.图像 -> PD:Image Blend V1.layer_image
PDimage_resize_V2.遮罩 -> PD:Image Blend V1.layer_mask
PD_CropBorder

智能图像边框裁切节点,自动检测并移除图片边缘的黑色或白色边框。

  • image:输入图像张量
  • border_color:要移除的边框颜色(black/white)
  • threshold:颜色检测阈值(0-255)
  • padding:裁切后保留的边距像素(0-100)

  • output_path:输出路径(可选,不填则覆盖原图)

PD_BatchCropBlackBorder

PD_BatchCropBlackBorder

批量图像边框裁切节点,批量处理文件夹中的所有图片,自动检测并移除边框。

  • input_path:输入图片文件夹路径(必填)
  • border_color:要移除的边框颜色(black/white)
  • threshold:颜色检测阈值(0-255)
  • padding:裁切后保留的边距像素(0-100)
  • output_path:输出路径(可选,不填则覆盖原图)
PDcrop: Image Grid

将图片按行列分割成网格,并输出为图像批量(Batch)。适用于处理表情包或九宫格图片。

PDcrop: Image Grid

  • image:输入待分割图片(IMAGE)
  • columns:列数(INT,默认3)
  • rows:行数(INT,默认3)

功能特点: - ✅ 支持自定义行列分割 - ✅ 自动计算切片大小 - ✅ 输出为图像 Batch,可并发执行后续处理 - ✅ 适用于 3x3 表情包、九宫格等场景

PD:Mask Fenkai

按 mask 的黑色前景区域定位物体外接矩形,并将一张图里的多个表情包/物体按顺序拆分成多个 imagesmasks。适合你这种 2x3 表情包拼图,输出顺序保持“从上到下、从左到右”。![[Pasted image 20260410193322.png]]

输入: - image:输入图像张量 - mask:输入遮罩张量,当前版本按“黑色 = 前景、白色 = 背景”处理 - min_area:最小连通域面积,小于这个值的区域会被忽略 - row_tolerance:同一行判定阈值,用来把 2x3 这类多行贴图按行分组排序 - split_iterations:分割前的腐蚀次数。0 表示不做预处理;如果贴纸之间有轻微粘连,可以适当调大 - bbox_padding:bbox 外扩像素数。数值越大,裁图留白越多,越不容易切掉头顶、耳朵等边缘

输出: - images:按顺序输出的多个裁剪图像列表 - masks:与 images 一一对应的多个裁剪 mask 列表

使用建议: - 你的这种表情包 sheet,通常可以先用 split_iterations=0bbox_padding=8~16min_area=10 - 如果表情之间有细小连边,再把 split_iterations 调到 1~3 - 如果一行里被分错组,调 row_tolerance;如果裁图太紧,调大 bbox_padding

PD:remove_background

智能背景移除节点,去除图像中的黑色背景,输出原图和透明度掩码,支持阈值调节和边缘平滑。

  • image:输入图像张量(必填)
  • threshold:黑色检测阈值(0.0-1.0,默认0.9)
  • smooth_edges:是否平滑边缘(可选,默认True)
  • invert_mask:是否反转掩码(可选,默认True)

输出: - image:原始图像(保持输入尺寸不变) - mask:透明度掩码(白色=保留区域,黑色=透明区域)

PDJSON_Group

PDJSON_Group

JSON文件输出路径和格式设置节点。

  • directory_path:JSON文件输出目录路径
  • color_choice:颜色选择
  • modify_size:尺寸修改选项
  • font_size:字体大小
  • target_title:目标标题
  • output_folder:输出文件夹
  • new_filename:新文件名
PD加载图片ZIP(输出列表)

PD加载图片ZIP

上传ZIP压缩包,自动解压并批量读取其中的图片文件。

  • zip_file_upload:ZIP文件上传
  • 输出:图片列表、文件名列表
PD双图批处理(列表输入)

PD双图批处理

基于文件名的图片列表智能匹配节点,支持前后缀匹配。

  • image1_list/image2_list:两组输入图片
  • name1_list/name2_list:两组对应的文件名
  • 匹配模式:支持后缀(_T/_R)或前缀匹配,自动对齐两组图片

文件处理

PD aitookit training redux

AI训练数据分类整理节点,将配对的图片和文本文件与未配对的文件自动分类到不同文件夹,方便整理训练数据集。

  • source_folder:源文件夹路径(必需)
  • paired_folder_name:配对文件的子文件夹名称(默认"paired_files")
  • unpaired_folder_name:未配对文件的子文件夹名称(默认"unpaired_files")
  • image_extensions:图片扩展名(默认".png,.jpg,.jpeg,.webp")
  • text_extension:文本扩展名(默认".txt")

功能特点: - ✅ 智能识别图片和文本的配对关系 - ✅ 按文件名自动分类(如1_R.png + 1_R.txt为配对) - ✅ 源文件保持不动,仅复制到子文件夹 - ✅ 自动创建分类子文件夹 - ✅ 详细的处理报告和统计信息 - ✅ 支持多种图片格式

工作原理: - 配对文件(有图有文本)→ 复制到 paired_files/ - 未配对文件(只有图或只有文本)→ 复制到 unpaired_files/

使用场景: - 整理AI训练数据集 - 分离已标注和未标注的数据 - 检查数据集完整性 - 准备训练数据

示例:

源文件夹/
  ├── 1_R.png + 1_R.txt  → paired_files/
  ├── 1_T.png           → unpaired_files/
  └── 2_R.png + 2_R.txt  → paired_files/
PD:number_start

文件排序重命名节点,将"T_1", "T_2", "T_3"格式的文件名重命名为"1_T", "2_T", "3_T",T参数可以自定义为其他单词,直接执行重命名操作。

  • folder_path:目标文件夹路径(必填)
  • target_prefix:目标前缀词(默认为"T",可自定义为其他单词)

功能特点: - ✅ 智能识别 前缀_数字 格式的文件名 - ✅ 按数字顺序重命名,保持正确排序
- ✅ 支持任意文件扩展名 (.jpg, .png, .txt 等) - ✅ 详细的操作报告,包含成功/失败/跳过的文件统计 - ✅ 错误处理,避免覆盖已存在的文件

使用示例: - 输入文件:T_1.jpg, T_2.png, T_10.txt - 输出文件:1_T.jpg, 2_T.png, 10_T.txt

PD:replace_word

文件名关键词替换/删除节点,在文件夹中查找包含指定关键词的文件,将关键词替换为新的关键词或删除关键词。支持格式筛选,严格匹配(区分大小写)。

  • folder_path:目标文件夹路径(必填)
  • old_keyword:要替换/删除的关键词(默认为"R")
  • new_keyword:新的关键词(默认为"start",留空则删除关键词)
  • file_format:文件格式筛选(默认为"full"不限制,可选:jpg/png/txt/jpeg/bmp/gif/webp)

功能特点: - ✅ 智能检索包含指定关键词的文件 - ✅ 严格匹配模式,只替换完全一致的关键词(区分大小写) - ✅ 支持关键词替换和删除两种操作模式 - ✅ 支持格式筛选,可指定只处理特定格式的文件 - ✅ 详细的操作报告,包含成功/失败/跳过的文件统计 - ✅ 错误处理,避免覆盖已存在的文件 - ✅ 自动跳过无需更改的文件

使用示例: - 原文件:1_R.jpg, 2_R.png, test_R.txt - 设置:old_keyword="R", new_keyword="start", file_format="full" - 结果文件:1_start.jpg, 2_start.png, test_start.txt

格式筛选示例: - 原文件:1_R.jpg, 2_R.png, test_R.txt - 设置:old_keyword="R", new_keyword="start", file_format="jpg" - 结果文件:1_start.jpg(只处理jpg文件), 2_R.png, test_R.txt(png和txt文件被跳过)

关键词删除示例: - 原文件:1_temp.jpg, 2_temp.png, test_temp.txt - 设置:old_keyword="temp", new_keyword=""(留空), file_format="full" - 结果文件:1_.jpg, 2_.png, test_.txt(删除temp关键词)

PD-Excel

PD-Excel

Excel数据处理节点,用于在ComfyUI中处理Excel文件数据,支持读取、写入和数据转换操作。

  • excel_file:Excel文件路径(必填)
  • sheet_name:工作表名称(可选,默认为第一个工作表)
  • operation:操作类型(read/write/convert)

功能特点: - ✅ 支持Excel文件的读取和写入操作 - ✅ 支持多种数据格式转换 - ✅ 支持工作表选择和数据筛选 - ✅ 提供详细的数据处理报告 - ✅ 支持批量数据处理

使用场景: - 处理图像标注数据 - 批量文件信息整理 - 数据统计和报表生成 - 工作流参数配置管理



🎯 应用工作流:workflow

在img目录下有json格式的工作流示例文件,示范了如何在ComfyUI中使用这些节点。

批量打标:

[批量反推工

Core symbols most depended-on inside this repo

convert
called by 44
py/image_list_sort.py
run_command
called by 38
gittools.py
is_git_repo
called by 7
gittools.py
log
called by 7
py/imageblend_v1.py
get_current_branch
called by 6
gittools.py
get_remote_url
called by 5
gittools.py
config_remote
called by 4
gittools.py
tensor2pil
called by 4
py/imageblend_v1.py

Shape

Method 363
Class 106
Function 35

Languages

Python98%
TypeScript2%

Modules by API surface

py/pd_image.py19 symbols
gittools.py18 symbols
py/image_list_sort.py13 symbols
py/zip_page.py11 symbols
py/image_resize_v3.py11 symbols
py/PD_ZIP_Archive.py11 symbols
py/imageblend_v1.py10 symbols
py/crop_border.py10 symbols
py/image_resize_by_ratio.py9 symbols
py/PD_SAVE_PATH.py9 symbols
py/text_JoinStringMultiLine.py8 symbols
py/load_image_V1.py8 symbols

For agents

$ claude mcp add Comfyui_PDuse \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact