Files
ketle-manandClaude Sonnet 5.5 5d3b4d0a21 docs/ui: call the judge a decision model everywhere user-facing
Only display strings change: the "VLA" row label becomes "Decision", the tooltip,
node DESCRIPTION, locales descriptions and README wording follow. Identifiers,
the saved-settings key and the /models response keys are unchanged, so saved
selections and behavior are unaffected. pyproject.toml is left as is on purpose
(pushing it triggers the Registry publish workflow).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 15:59:33 +09:00

5.9 KiB

English | 日本語 | 中文

ComfyUI-LiveChatStream

LiveChatStream

LLM / VLM とチャットし、ストリーミング応答を画像にする ComfyUI カスタムノードです。 モデルがプロンプトを書き終えた時点で、返信の続きをストリーミングしている途中でも画像生成を始めます。

バックエンドは現在 Ollama です(将来ほかのバックエンドを追加できるよう、ノード名はバックエンドに依存しません)。

前提

  • ローカルで動作している Ollama(既定は http://127.0.0.1:11434。別のホストは注意を参照)
  • チャット用のモデルが1つ以上。画像を添付する(VLM)には vision 対応モデルが必要です。
  • 任意: 画像入力に対応した意思決定モデル(例: clef、Ollama 0.35.1 以上)。生成画像の判定に使います。意思決定モデルは文章を書かず、型付きの質問(yes/no・選択・スコア)に確率で答えます。
  • 同じグラフ内の text-to-image ワークフロー(サンプルは SDXL + LCM LoRA)

インストール

このリポジトリを ComfyUI/custom_nodes/ に置いて ComfyUI を再起動してください。追加の Python 依存はありません。

機能

  • ノード内でチャット(トークンのストリーミング、停止ボタン付き)
  • 2系統のプロンプト
    • A(positive / negative): 返信の <prompt> ブロックから取り出した整った画像プロンプト
    • B(chat_p / chat_n): モデル自身の思考・返信・内面独白(<mind> ブロック)をそのまま2つ目のプロンプトに使い、キャラクターの気持ちや考えを画像として見られます
  • ストリーミング中に生成: </prompt> が閉じたら(既定)/ ストリーミング中に連続生成 / 手動
  • プリセット / キャラクターをモーダルで管理(サーバーに保存): 通常のシステムプロンプト、または構造化したキャラクター(性格・固定の外見タグ・感情表現ルール)。キャラの一貫性を保ち、感情を絵に出せます
  • 画像の入力 / 出力(I2I): image 入力に画像をつなぐ(ドロップした画像より優先)か、ドロップ・貼り付け・選択。image 出力を VAE Encode につなぐと img2img になります
  • VLM: チャットに画像を添付(ドロップ・クリック・貼り付け)
  • 意思決定モデルによる判定(任意): 生成画像が「依頼と合っているか」と品質を採点
  • VRAM 管理: 手動の Unload ボタンと、画像生成の前に Ollama のモデルをアンロードするオプション(auto-free はドライバから実測した空きが目標に届くまで、必要な台数だけアンロード)
  • 画像 ON/OFF チェックボックス: 画像を作らない通常のチャットとして使えます
  • 設定 / プロンプト を折りたたみ可能(チャットが主役)
  • 英語 / 日本語 / 簡体字中国語に対応(ComfyUI の言語設定に従います。変更後はページを再読み込みしてください)

ノード

Live Chat Stream(LiveChatStream)

出力 型 説明
positive / negative STRING 系統A のプロンプト(CLIP Text Encode へ)
response STRING 返信全文(ストリーミング中も更新)
chat_p / chat_n STRING 系統B のプロンプト(思考 / 返信 / <mind>)とそのネガティブ
thinking STRING モデルの思考テキスト
image IMAGE 入力画像(socket またはドロップした画像)。画像が無いときは下流の実行を止めます

入力: image(任意)。プロンプト欄はノードの プロンプト セクションで編集できます。

使い方

  1. workflows/live_chat_stream.json(text-to-image)または workflows/live_chat_stream_i2i.json(img2img)を開きます。
  2. 設定 を展開し、Ollama の URL を確認して LLM / VLM(判定したい場合は意思決定モデル=Decision の行も)を選びます。
  3. メッセージを入力して Ctrl+Enter。<prompt> ブロックが完成した時点で画像が生成されます。

ヒント

  • キャラクターは プリセット… の + キャラクター で作成し、保存して使用 します。
  • chat_p = <mind> ブロック にするとキャラが内面独白を書きます。mind 英語 にチェックすると英語で書かせます(画像モデルは英語のほうが解釈しやすい)。
  • GPU が小さい場合は VRAM: 自動解放 と目標(例: 8 GB)を設定すると、画像生成の前に Ollama のモデルをアンロードします。そのとき返信を生成中のモデルはアンロードしません。

注意

  • 空き VRAM は nvidia-smi(NVIDIA GPU)で取得します。それ以外の GPU では ComfyUI の値にフォールバックします。
  • プリセットは <ComfyUI の user フォルダ>/live_chat_stream/presets.json に保存されます。
  • I2I 用にドロップした画像は input/live_chat_stream/ にアップロードされます。
  • Ollama のアドレスはサーバー側で設定し、ブラウザやリクエストからは受け取りません。 サーバーは環境変数 LIVE_CHAT_STREAM_OLLAMA_URL、または <ComfyUI の user フォルダ>/live_chat_stream/config.json({"ollama_url": "http://192.168.1.20:11434"}。再起動なしで反映)から読み、未設定なら http://127.0.0.1:11434 を使います。リダイレクトは辿りません。ComfyUI を --listen で起動すると、ComfyUI に到達できる人はあなたの Ollama に対してチャットのルートを使えます(接続先は変えられません)。信頼できるネットワークでのみ使ってください。