comfyuiを自動化する
今回は、comfyui
の自動化を紹介します。
comfyuiの自動化手順
以下の機能を使用します。
Apply InstantID
: 顔を指定します。Apply ControlNet
: ポーズを指定します。
まずこちらのworkflowを読み込むと早く書けます。workflowは通常、comfyuiで作られた画像に記録されています。
https://docs.comfy.org/tutorials/controlnet/pose-controlnet-2-pass
ここからApply InstantID
を追加します。Apply ControlNet
からpositive
, negative
をInstantID
とKSampler
につなぎます。
[ControlNet] -> [InstantID] -> [KSampler]
自動化には以下のノードを使います。
Batch Image Loop Open
: loop処理を作れます。Load Image Batch From Dir
: 画像をディレクトリから読み込みます。LogicUtil_Uniform Random Choice
: ランダムで区切り文字を選択します。loop中にpromptの中身を変えます。
なお、comfyui
の外部ノードは以下を使用しています。
- comfyui_instantid
- loop-image
- comfyui-inspire-pack
自動化の手順としては、まず、ポーズをディレクトリに保存しておき、Load Image Batch From Dir
で読み込みます。Batch Image Loop Open
につなぎます。それをApply ControlNet
につなぎます。
最終的にKSampler
からVAE Decode
をつなぎ、そこからBatch Image Loop Close
でループを閉じます。
もしここで保存したければ、VAE Decode
をSave Image
にも繋いでおきます。
[Load Image Batch From Dir] -> [Batch Image Loop Open] ->
[ControlNet] -> [InstantID] -> [KSampler] ->
[VAE Decode] -> [Batch Image Loop Close]
comfyuiの便利なノード
filename_prefix
でGet Date Time String(JPS)
を使用しています。これでファイル名が重複しづらくなります。
役立つ外部ノードです。
- comfy-image-saver
- JPS-Nodes
- comfyui-custom-scripts
例えば、loop中にpromptをランダムで変える処理を追加しています。これはLogicUtil_Uniform Random Choice
で実現しており、区切り文字は,
です。
background: city street,
background: cloud sky,
background: galaxy planet,
ポーズの作成手順
例えば、自作ゲーム動画を保存し、ffmepg
で画像化します。
$ ffmpeg -i input.mp4 output%04d.png
その画像を使って、ポーズを作成することができます。
OpenPose Pose
:comfyui_controlnet_aux