PromptJSON: custom node for ComfyUI that reformats prompts in various Schema using an LLM

详情

模型描述

ComfyUI 的 PromptJSON 节点

PromptJSON

描述

PromptJSON 是 ComfyUI 的一个自定义节点,用于结构化自然语言提示,并在图像生成工作流中为外部 LLM 节点生成提示。它有助于创建一致且基于模式的图像描述,支持多种模式类型。

功能

  • 根据多种模式类型结构化自然语言提示

  • 通过多种策略为外部 LLM 节点生成提示

  • 支持负面提示

  • 可调节输出细节的复杂度

  • 支持自定义模式以微调提示结构

  • 多种提示生成策略(一次性提示和少样本提示)

  • 支持多种模式类型:JSON、HTML、键值对、基于属性、视觉分层分解、组合网格和艺术参考

  • 强健的错误处理机制

安装

  1. 导航到您的 ComfyUI 自定义节点目录。

  2. 克隆此仓库,或将 PromptJSON.pyprompt_templates.py__init__.py 文件复制到名为 ComfyUI-PromptJSON 的新目录中。

  3. 重启 ComfyUI 或刷新您的工作流。

使用方法

  1. 在 ComfyUI 的 "prompt_converters" 类别中找到 "Prompt JSON" 节点。

  2. 连接以下输入:

    • prompt:您的主提示文本

    • negative_prompt:图像中需要避免的元素

    • complexity:介于 0.1 和 1.0 之间的浮点值,用于调整输出细节

    • llm_prompt_type:选择 "一次性提示" 或 "少样本提示"

    • schema_type:从 JSON、HTML、键值对、基于属性、视觉分层分解、组合网格或艺术参考中选择

    • custom_schema(可选):自定义模式字符串(格式取决于所选模式类型)

  3. 使用输出:

    • system_prompt:LLM 的系统指令

    • user_prompt:LLM 的主提示,包含结构化输入

    • negative_passthru:原样传递的负面提示

    • schema:用于结构化提示的格式化模式

LLM 提示类型

  • 一次性提示(One Shot):根据输入提示提供一个结构化响应的示例。

  • 少样本提示(Few Shot):提供多个不同复杂度级别的结构化响应示例。

模式类型

  1. JSON:用于详细图像描述的传统 JSON 结构。

  2. HTML:类似 HTML 的标签结构,用于组织图像元素。

  3. 键值对(Key):用于简洁描述的键值对结构。

  4. 基于属性(Attribute-Based):专注于图像特定方面的属性列表。

  5. 视觉分层分解(Visual Layer Breakdown):结构化描述背景、中景、前景和焦点元素。

  6. 组合网格(Compositional Grid):基于 3x3 网格的图像元素描述。

  7. 艺术参考(Artistic Reference):对艺术元素(如主体、构图、色彩方案等)的详细分解。

工作流程

  1. PromptJSON 节点接收用户输入,并根据所选模式类型进行结构化。

  2. 根据所选的 LLM 提示类型和模式,生成系统提示和用户提示。

  3. 输出可发送至外部 LLM 节点进行进一步处理。

  4. 外部 LLM 节点基于这些提示生成最终的详细图像描述。

自定义模式

自定义模式功能允许您定义输出的结构。格式取决于所选模式类型。例如,对于 JSON:

{
  "scene": {
    "time_of_day": "string",
    "weather": "string",
    "location": "string"
  },
  "subjects": [
    {
      "type": "string",
      "description": "string",
      "position": "string"
    }
  ],
  "style": {
    "artistic_movement": "string",
    "color_palette": ["string"],
    "mood": "string"
  },
  "camera": {
    "angle": "string",
    "shot_type": "string"
  }
}

示例输出

输入:

  • prompt: "日落时分宁静的湖泊,一艘小船上有一位独自垂钓的渔夫"

  • negative_prompt: "城市,都市,人群"

  • complexity: 0.7

  • llm_prompt_type: "少样本提示"

  • schema_type: "JSON"

  • custom_schema: (上述 JSON 模式)

输出:

  1. 系统提示:(包含 LLM 的指令和示例)

  2. 用户提示:(包含结构化输入提示和模式)

  3. 负面提示透传: "城市,都市,人群"

  4. 模式:(格式化的 JSON 模式)

注意事项

  • 系统提示和用户提示旨在引导外部 LLM 生成详细且结构化的图像描述。

  • 尝试不同的 LLM 提示类型和模式类型,以找到最适合您特定用途的最佳组合。

  • 调整复杂度参数以控制生成提示的细节水平。

  • 自定义模式允许对生成描述的结构进行精细控制。

支持

如遇问题、功能请求或希望贡献代码,请在 GitHub 仓库中提交 Issue 或 Pull Request。

此模型生成的图像

未找到图像。