🦊連続処理
前 / 🦊データ・型
次 /
一度workflowを作ってしまえば、それを使って画像を何百枚と生成・処理できたりするのがComfyUIの一つの強みといえますが、この連続処理にはいくつか種類があり、扱いが異なります
コンピュータ用語とComfyUIでの扱いは必ずしも一致しないのでご注意を
処理をスタートする時に必ず押すQueue Promptボタン、スタートボタンのように使っていますが、厳密には次にして欲しい処理を予約するボタンです 前の処理が終わらないうちにQueue Promptボタンを押すと、どんどん予約が溜まっていきます
https://gyazo.com/1816e7ab176c162135ab23612ec48e08
前の処理が終わったら、次の予約を処理していきます
100枚画像を生成しようと思ったとき、100回Queue Promptをクリックしてもいいですが流石に大変ですね
代わりにBatch countに数値を入れると、その数だけ処理が実行されます
Extra option ✅ → Batch countに数値を入力 → Queue Prompt
https://gyazo.com/05846cded9c8bbf0752de36c0da06d70
ちなみに、ComfyUIでは"全く同じ設定"のworkflowが予約されていたとき、2つめ以降の処理はスキップされます
まぁ、同じ画像が何百枚もできたら困りますからね…
KSamplerのcontrol_after_generateをrandomizeにするなどして、どこかしらパラメーターを変化させる必要があります
リアルタイム処理
ComfyUIはそもそもリアルタイム処理ができません
代わりに前の処理が終わった瞬間に次の処理を始めることでリアルタイムっぽくみせています
Extra option ✅ → Auto Queue ✅
https://gyazo.com/978e669bd10af36cdfac9886559eaf87
リストといっていますが、多分バッチ処理の一種です
リストとしていくつかのパラメータを設定した場合、一つずつ順番にパラメーターを入れ替えて処理していきます
https://gyazo.com/cfa0611ab881a2d78b7f4d1802303852
上のworkflowではimage2imageの入力画像として、リストの形で3枚画像を入力しています
Queue Promptを一回クリックすれば3回image2imageが行われます
Batch countを3にして、入力する画像を順番に変えていけば同じことなので、どちらを使うかは好みです
リストのほうが直感的でわかりやすいかもしれませんね
バッチ (Batch size)
Batch sizeは機械学習特有の概念です(多分)
Batch sizeが10なら画像が10枚生成されるのはBatch countやリストと同じですが、Batch countが一つの処理が完了してから次の処理に取り掛かるのに対し、Batch sizeは10個の処理を並列に処理します
Batch countはいくらでも増やせますが、Batch sizeをどれだけ増やせるかはVRAMの容量次第です ではいつ使うのか?ですが、主に動画生成で使います
動画は1フレーム目からNフレーム目まで同じ時間軸にあるという一貫性(時間的整合性)が必要なのですが、現在の技術では動画の時間分だけ並列に画像生成することでそれを実現しています(他にもいろいろやってますが) AnimateDiff等が16や32フレーム程度しか生成できないのは、24GB程度のVRAMでは、このくらいの枚数しか並列に処理できないことが要因の一つです
ImageBatchノード等で複数の画像をバッチ化した場合、大抵Batch countではなく、並列に処理する、このBatch sizeの動作になります 🚨バッチ (Batch size)とリストと解像度
https://gyazo.com/af9df8ee1943f946fdfe38d521520b7f
同じバッチ内の画像はすべて同じ解像度である必要があります
そうでない場合は自動で最初の画像の解像度にクロップされます