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

詳細

ファイルをダウンロード

モデル説明

ComfyUI の PromptJSON ノード

PromptJSON

説明

PromptJSON は、ComfyUI 用のカスタムノードで、自然言語プロンプトを構造化し、画像生成ワークフローにおける外部 LLM ノード用のプロンプトを生成します。さまざまなスキーマタイプをサポートしながら、一貫性があり、スキーマベースの画像説明を作成するのに役立ちます。

機能

  • 複数のスキーマタイプに従って自然言語プロンプトを構造化
  • 複数の戦略で外部 LLM ノード用のプロンプトを生成
  • ネガティブプロンプトのサポート
  • 出力の詳細度を調整可能
  • プロンプト構造の微調整のためのカスタムスキーマサポート
  • プロンプト生成戦略(One Shot と Few Shot)
  • 多様なスキーマタイプのサポート:JSON、HTML、Key-Value、属性ベース、ビジュアルレイヤーブレイクダウン、構成グリッド、アーティスティックリファレンス
  • 堅牢な動作のためのエラーハンドリング

インストール

  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:"One Shot" または "Few Shot" のいずれかを選択
    • schema_type:JSON、HTML、Key、Attribute-Based、Visual Layer Breakdown、Compositional Grid、または Artistic Reference のいずれかを選択
    • custom_schema(オプション):カスタムスキーマ文字列(形式は選択したスキーマタイプに依存)
  3. 出力を使用します:

    • system_prompt:LLM 用のシステム指示
    • user_prompt:構造化された入力を含む LLM 用のメインプロンプト
    • negative_passthru:そのまま渡されるネガティブプロンプト
    • schema:プロンプトを構造化するために使用されたフォーマット済みスキーマ

LLM プロンプトタイプ

  • One Shot:入力プロンプトに基づく、1つの構造化されたレスポンスの例を提供します。

  • 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: "Few Shot"

  • schema_type: "JSON"

  • custom_schema: (上記の JSON スキーマ)

出力:

  1. システムプロンプト:(LLM 用の指示と例を含む)

  2. ユーザープロンプト:(構造化された入力プロンプトとスキーマを含む)

  3. ネガティブパススルー: "都市、街、群衆"

  4. スキーマ:(フォーマット済みの JSON スキーマ)

注意点

  • システムプロンプトとユーザープロンプトは、外部 LLM が詳細で構造化された画像説明を生成するよう導くために設計されています。

  • 特定の用途に最適な組み合わせを見つけるために、異なる LLM プロンプトタイプとスキーマタイプを試してください。

  • complexity パラメータを調整して、生成されるプロンプトの詳細度を制御できます。

  • カスタムスキーマにより、生成される説明の構造を微調整できます。

サポート

不具合、機能要望、またはコントリビューションがある場合は、GitHub リポジトリでイシューまたはプルリクエストを開いてください。

このモデルで生成された画像

画像が見つかりません。