ComfyUIでAutomatic1111的なXY-Plotをしたいのだが、ComfyUIデフォルト機能には用意されていない。
カスタムノードが必要となるのだが、Webには古いとか何故か動かないとかなXY-Plotパッケージの使ってみた系記事か、githubに上げられた野良ノードの作者本人コメントredditしか引っかかってこない。
また、この記事の時点でChatGPTもGeminiも具体的なパッケージ名や動くサンプルのワークフローを出力してくれない。
なので、まだしもComfyUI-managerのパッケージにあるものから(何故かXY-Plot用パッケージが複数ある)適当に ComfyUI-XYZ-Stitch というパッケージを選定し動かしてみた。
結果的に使えるようになるまでそれなりに調査の手間が必要になった。
公式がサンプルのワークフローを用意していればかけずに済んだ手間なのでそうしてほしい。
結論として、ComfyUI-XYZ-Stitch はいろいろ不便で不具合らしき挙動もありドキュメント周りが不親切だが有るだけで100倍は楽になるのでとてもありがたい、といったところ。
* 右クリック>ノードを追加>XYZ Grid>下にパッケージ関連ノードがある
* XYZ Grid Input(Batch)のほうを使う
* Batchでないほうは1枚実行するたびIndexを手動でインクリメントする必要あるやつ
*「実行する」横のバッチ数は1回でよい。自動で画像生成が複数回実行されGridを埋める
* このあたりバッチInバッチみたいな挙動をするというか、正直きちんと使うにはComfyUIのバッチ構造を把握する必要がありそうだが、とりあえず動くし使えるので今回は後回しにした
* 各軸のValueはテキスト出力されCLIPテキストエンコードには直結できる、K-Samplerのステップなど数字にしたい場合XYZ StringNumberノードで変換
* XYZAutoController,XYZGridStitchノードに画像が貯まる(イメージ)
* (罠っぽい仕様として)ラベルは勝手につけてくれない
* ので(xy)z_labelsはBatchノードの(xy)z_valuesに入れた値に対応するものを手入力する必要あり(基本同じもので困らないが、ノード連結して勝手に入れてもらうとかはデフォルト非対応)
* layout_styleは変えても変化なかった。おそらくバグ
* labelサイズ設定は変えても変化なかった。おそらくバグ
* ラベルが上半分しか描画されない場合がある。おそらくバグ
* (罠っぽい仕様として)XYZ Grid Input(Batch)ノードのx_value他インプットは","コンマ区切りの入れ子ができない。コンマ区切りを含むプロンプトを切り替え出力したければ別途工夫が必要
* (罠っぽい仕様として)8x8pxの黒いゴミ画像が出力・保存され「画像を保存」ノードの表示がされない
* XYZ−Stitchが、Gridを埋める最終画像が来るまで、
画像1枚生成されるたびワークフローにダミー結果画像を作って流していることが原因
*ImpactPackのControlBridgeノードで解決
*(XYZAutoControolerのis_completeとControlBridgeのmodeをつなげる。
Grid生成が終わるまで来るダミー画像を捨てる)
* あと出力がおかしかったらXYZAutoCollectorのresetをONにして実行する。バッチが詰まって順番おかしくなっていた場合、クリアされるらしい
* Zを使わずXYだけで出力すると、Grid画像のXY軸が反転する
ラベル側だけXY逆にしておくことで暫定対処はできる
一番不親切なのはバッチ毎にゴミ画像が出力されることで、ドキュメントに案内が見当たらなかったが、ControlBridgeノードなどで工夫して回避する必要がある。
このことだけでも、XYZ−Stitchは動くサンプルのワークフローを用意すべきだと思う。
追記:なのでサンプルのワークフローを用意した。PRしているが取り込まれるかは不明



