syui.ai

comfyuiを自動化する

.md

今回は、comfyuiの自動化を紹介します。

comfyuiの自動化手順

以下の機能を使用します。

  1. Apply InstantID: 顔を指定します。
  2. Apply ControlNet: ポーズを指定します。

まずこちらのworkflowを読み込むと早く書けます。workflowは通常、comfyuiで作られた画像に記録されています。

https://docs.comfy.org/tutorials/controlnet/pose-controlnet-2-pass

ここからApply InstantIDを追加します。Apply ControlNetからpositive, negativeInstantIDKSamplerにつなぎます。

[ControlNet] -> [InstantID] -> [KSampler]

自動化には以下のノードを使います。

  1. Batch Image Loop Open: loop処理を作れます。
  2. Load Image Batch From Dir: 画像をディレクトリから読み込みます。
  3. 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 DecodeSave Imageにも繋いでおきます。

[Load Image Batch From Dir] -> [Batch Image Loop Open] -> 

[ControlNet] -> [InstantID] -> [KSampler] -> 

[VAE Decode] -> [Batch Image Loop Close]

comfyuiの便利なノード

filename_prefixGet 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