ComfyUI Extension: ComfyUI_PromptQueue

Authored by cyan9977

Created

Updated

0 stars

ComfyUI custom node: batch prompt queue from multiline/text file with incremental per-run consumption and {p} templating.

Custom Nodes (0)

    README

    ComfyUI_PromptQueue

    这是一个为 ComfyUI 设计的自定义节点,旨在简化和自动化批量生成图像时的工作流。它允许你通过多行文本、外部文件以及可复用的模板来管理和序列化你的提示词。


    📢 更新日志 (Update Log)

    2025-12-09 重要更新:功能拆分与逻辑重构

    为了提供更清晰的使用体验,本次更新对核心功能进行了重构:

    1. 节点拆分: 将原有的 Style Prompt Queue 拆分为两个独立的节点:
      • PQ (Incremental) / 增量队列: 专注于单次/逐行生成,支持强大的索引控制。
      • PQ (Batch) / 批量队列: 专注于一次性批量输出。
    2. 预设系统优化:
      • 功能增强: 批量版 (PQ Batch) 现已支持完整的预设保存与删除功能。
      • 简易版升级: 简易版 (PQ Simple) 现已增加预设选择功能,可直接调用已有预设。
      • 文件分离: 预设数据现已独立存储于 _prompt_queue_state/presets.json,方便分享与备份;运行状态隔离在 state.json
      • ⚠️ 注意: 保存或删除预设后,必须运行一次工作流以执行操作,然后刷新浏览器页面,新的预设列表才会显示在下拉菜单中。
    3. 节点重命名: 采用更紧凑的中英命名(如 PQ (Incremental) / 增量队列),显著缩短节点宽度,提升 UI 体验。
    4. 移除过时节点: 移除了旧版的 PromptQueueSimplePromptQueue,建议全面迁移到新版节点。
    5. 全新的索引控制: 引入了 索引设置 参数,替代了旧版的队列标识逻辑,支持更灵活的行选择(重置、锁定、列表循环)。
    6. UI 优化: 调整了参数顺序,更符合操作直觉:前缀 -> 主体 -> 后缀。
    7. 汉化: 全面汉化了节点参数和选项。

    🧩 节点介绍

    1. PQ (Incremental) / 增量队列 🆕

    这是您日常创作的主力节点。它专为逐行调试稳定生成设计。

    • 核心逻辑: 每次运行只输出一行提示词。
    • 容错机制: 如果您的 KSampler 设置 Batch Size > 1 (例如 4),该节点会输出 4 份完全相同的 conditioning。这意味着您将得到 4 张基于同一提示词的图片,方便优选,提高出图容错率。
    • 参数详解:
      • 画师风格提示词 (前缀): 输入风格、艺术家等前缀。
      • 多行文本: 核心主体提示词列表,每行一个。
      • 提示词后缀: 画面质量、细节描述等通用后缀。
      • 索引设置 (核心功能): 控制本次运行使用哪一行提示词。
        • -1 (或留空): 记忆模式。接着上次的进度继续跑(适合长序列生成)。
        • 0: 顺序模式。重置计数器,从第 1 行开始,并在每次生成后自动递增(适合想从头完整跑一遍队列)。
        • 5 (数字 > 0): 指定模式。强制只跑第 N 行 (如输入 5 则跑第 5 行),不会自动递增(适合反复调试特定提示词)。
        • 2,8,35: 列表模式。只在第 2、8、35 行之间循环生成(适合精选生成)。
      • 文本输出: 提供 prompt_text 输出端口,可连接 ShowText 节点查看当前使用的完整提示词。

    2. PQ (Batch) / 批量队列 🆕

    专为一次性大批量生成设计。

    • 核心逻辑: 一次性输出多行提示词的 conditioning。
    • Batch 对应: 如果 KSampler 设置 Batch Size = 4,该节点会分别输出列表中的第 1, 2, 3, 4 行提示词。生成的 4 张图将分别对应这 4 个不同的提示词。
    • 预设支持: 现已支持保存和加载预设模板。
    • ⚠️ 注意: 保存或删除预设后,请刷新浏览器以更新预设列表。
    • 文本输出: 提供 prompt_text_list 输出端口,输出当前批次的所有提示词文本。

    3. PQ Simple / 简易版系列 🆕

    包含 增量简易 (PQ Simple (Incr.)) 和 批量简易 (PQ Simple (Batch)) 两个节点。

    • 特点: 移除了保存和删除预设的复杂参数,界面极简。
    • 预设调用: 保留了 预设模板 下拉菜单,可以读取和使用在完整版中保存的预设。
    • 适用场景: 当您不需要修改预设,只需要专注于生成时使用。

    4. Negative PQ / 负面队列

    专门用于管理和应用负面提示词的节点。

    • 核心功能:
      • 多行文本: 输入所有负面提示词。
      • 预设系统: 支持保存和加载常用的负面提示词组合。
      • 模板支持: 可以定义模板结构。

    🛠️ 安装

    1. 打开命令行工具。
    2. 进入 ComfyUI 的 custom_nodes 目录:
      cd <你的ComfyUI根目录>/custom_nodes
      
    3. 克隆本仓库:
      git clone https://github.com/cyan9977/ComfyUI_PromptQueue.git
      
    4. 重启 ComfyUI

    🚀 快速上手 (PQ Incremental)

    1. 添加节点: 在 ComfyUI 中添加 PQ (Incremental) / 增量队列 节点。
    2. 连接 CLIP: 将上游的 CLIP 输出连接到此节点的 clip 输入。
    3. 配置提示词:
      • 画师风格: masterpiece, best quality, by Makoto Shinkai
      • 多行文本:
        a girl on the beach
        a boy in the park
        a robot on a tree
        
      • 后缀: 8k, cinematic lighting
    4. 调试: 将 索引设置 设为 0,确保每次点击生成都从第一行 "a girl..." 开始。
    5. 批量容错: 将 KSampler 的 batch_size 设为 4。点击生成,你将获得 4 张不同随机种子的 "a girl on the beach"。
    6. 自动化: 将 索引设置 改回 -1,再次点击生成,它将自动跳到 "a boy..."。

    ❓ 常见问题 (FAQ)

    • 为什么删除了旧的 PromptQueue?

      • 旧节点功能较为基础,且“运行模式”参数容易混淆。新的 Style 系列节点通过分离“增量”和“批量”逻辑,并引入强大的“索引设置”,完全覆盖并增强了旧节点的功能。
    • 预设保存在哪里?

      • 预设数据现在独立存储在 ComfyUI/custom_nodes/ComfyUI_PromptQueue/_prompt_queue_state/presets.json 文件中。您可以直接复制该文件来备份或分享您的预设。
      • (旧版的 state.json 现仅用于存储运行计数器)。
    • 保存或删除预设后,为什么下拉菜单没变化?

      • ComfyUI 的节点菜单是在页面加载时初始化的。保存/删除操作是在后端执行的,因此您需要运行一次工作流(让后端执行保存动作),然后刷新浏览器页面(重新加载前端菜单),才能看到更新后的预设列表。