AI活用

Comfy RouterとローカルComfyUIをつなぐ|外部生成から画像加工への受け渡し

Comfy Routerの出力を保存し、ローカルComfyUIへ画像入力として渡す構成。二つの実行ID、形式確認、後処理だけの再実行を設計する方法を解説します。

この記事の目次
  1. 一件の仕事を三つの段階に分ける
  2. 受け取った結果を、画像として確認する
  3. ローカルへは、保存した素材を入力する
  4. 再実行は、失敗した段階だけにする
  5. 納品前には、最後のファイルを確認する

Comfy Routerで作った画像を、ローカルComfyUIで合成・サイズ調整するなら、二つの処理の間に保存工程を置きます。外部の結果URLをそのまま長期の入力として扱わず、取得した画像を自分の管理下へ置いてから渡す構成です。後処理が失敗しても、外部生成を最初からやり直さずに済みます。

一件の仕事を三つの段階に分ける

業務ID:banner-0042
  外部生成 → 原画像を保存 → ローカル加工 → 完成品を保存
  Router ID              ComfyUI prompt ID

RouterのリクエストIDと、ローカルServer APIのprompt IDは別です。アプリ側に業務IDを持たせ、二つのIDと保存先を結び付けます。画面には一件に見えても、どこまで進んだかを記録しておくと、途中停止から復帰しやすくなります。

保存する項目 使う場面
外部モデルIDと実行ID 外部生成の結果を再照会する
原画像の保存先とハッシュ 同じ素材で後処理をやり直す
ローカルworkflowの版とprompt ID 加工の条件と実行結果を追う
完成品の保存先 納品・表示へ渡す
スポンサーリンク

受け取った結果を、画像として確認する

Routerの出力はモデルごとに形式が異なります。URLの文字列を受け取っただけで後段へ進めず、対象ファイルを取得し、期待する画像形式かを確認します。拡張子だけで判断せず、画像として開けること、幅と高さが用途に合うことを検査してください。

透明部分を利用する合成では、アルファチャンネルがあるかも確認します。背景付き画像を透過画像のつもりで渡しても、後段のマスク処理が自動的に意図を補ってくれるわけではありません。前処理の条件を、外部モデルへの指示だけに依存させないようにします。

ローカルへは、保存した素材を入力する

ローカルServer APIへ画像を渡す手順は、画像アップロードの記事で扱っています。返されたファイル名やサブフォルダを、使用するworkflowの画像入力へ渡します。外部URLと、ローカルComfyUIの入力ファイル名を同じ値として扱わないでください。

最初は手動で一枚を保存し、ローカルのLoad Imageから読み込んで加工が完走することを確かめます。その後に受け渡しを自動化すると、画像自体の問題とAPI連携の問題を分けられます。

再実行は、失敗した段階だけにする

外部生成は成功し、ローカルの合成だけが失敗したなら、保存済み原画像から後段をやり直します。再試行の処理を一つの大きな関数へまとめると、合成の失敗でも外部生成まで繰り返してしまいます。

  1. 外部結果が保存済みかを確認する。
  2. 保存済みなら、その画像とworkflowの版を取り出す。
  3. ローカル側の失敗原因を直す。
  4. 後処理を新しい試行として記録し、完成品を保存する。

素材を変えたい再制作は、この再試行とは別です。業務IDの中で原画像の版を増やし、どの完成品がどの素材から作られたかを残します。

納品前には、最後のファイルを確認する

元の生成画像が良くても、切抜きや縮小で被写体が欠けることがあります。完成品の寸法、縦横比、保存形式と、実際の表示先での見え方を確認します。文字やロゴを正確に置く場合は、生成後の合成工程で管理する設計も選べます。

Routerの結果形式は公式スキーマガイドを参照してください。この構成は工程の設計例です。最初の一件で、外部生成から完成品の保存までIDをたどれる状態を作ります。

スポンサーリンク