2024-01-07

【ComfyUI基礎シリーズ#8】画像(動画)を保存する方法

意外に知らない!?画像を保存するノードの組み方を紹介するシンプルな記事

Article Image

画像の保存

ComfyUIのデフォルトノードにも画像の保存ノードは入っているが...

SaveImage外観

どこに保存するのか、唯一のオプションfilename_prefixとは何かわかりにくい。

いくつか方法を紹介

この記事ではこのノードだけに限らず思いつく限りの保存方法を紹介する。

Save Imageノードでの保存先

まずは上のノード、一体どこに画像が保存されるのか。

デフォルトでは次のフォルダに保存されている。

ComfyUI_windows_portable\ComfyUI\output\

出力先変更は起動用バッチファイルで--output-directoryオプションを使用するとのこと。

filename_prefixは何?

これはファイル名の接頭辞。つまり先頭にくる固定のファイル名で、このあとに数字が入る。

良いと思った画像だけ保存したい

Save Imageノードを使っていると常にファイルが保存されてしまいディスクを圧迫する。

そこでPreview Image良いなと思った画像だけ保存する方法。

この場合は単純にノードの右クリックメニューに保存ボタンがある。

Preview Imageから保存

この時ブラウザのダウンロードディレクトリと同じ場所に保存されるので必要に応じて移動しよう。

ディレクトリをComfyUI内で指定して保存したい

この場合はカスタムノードWAS Node Suiteを利用すると良い。

ComfyUI Managerでインストールする場合はそのままの名前

ComfyUI manageの検索結果

GitHub:WASasquatch/was-node-suite-comfyui: An extensive node suite for ComfyUI with over 190 new nodes

Image Saveノード

Image Save外観

  • WAS Suite > IO > Image Save
  • 検索名:Image Save(空白が入るので注意)

細かいところは省略するがoutput_pathにディレクトリの絶対パスを記入すればそこに保存される。

デフォルトの[time(%Y-%m-%d)]は日付のフォルダを自動で生成してくれるコードが入っている。ここの細かい表記法などは詳しくないので公式ページにて。

バッチ処理や動画データを1枚ずつpng化して保存する場合に私がよく使用しているノード。

WAS Node Suiteはこれ以外にも有名なノードが多数含まれている。

多くのユーザーが使っているのでぜひ入れておきたい。

mp4やgifなどに変換して保存したい

主にAnimateDiffを使う時など1度に複数の画像を生成し、それをつなげて動画化したい場合。

ConfyUI-VideoHelperSuiteのカスタムノードを使うと良い。こちらも定番カスタムノード。

ComfyUI Managerでも同じ名前で検索してインストールできる。

ConfyUI-VideoHelperSuite

GitHub:Kosinkadink/ComfyUI-VideoHelperSuite: Nodes related to video workflows

このなかのVideo Combineノードを使用する

Video Combine

  • Video Helper Suite > Video Combine
  • 検索名:VHS_VideoCombine

こちらはファイル書き出し機能は自動ではないのでPreview Imageと同じように右クリックからSave Previewして保存する。

ワークフローを画像化して保存したい

次のようにノードの組み方のスクリーンショットを保存したい場合。

ワークフローの画像

さらにこの方法で保存されたPNG画像を直接ドラッグ&ドロップするだけでワークフローが復元される(jsonと同じ扱い)

これはComfyUI-Custom-Scriptsの機能。こちらも定番スクリプトだがComfyUI Managerで検索できないので次のGitHubのURLをインストールする。

GitHub:pythongosssss/ComfyUI-Custom-Scripts: Enhancements & experiments for ComfyUI, mostly focusing on UI features

ComfyUI ManagerもGitのURLを入れれば次のボタン(Install via Git URL)からインストールできる。

Install via Git URL

ワークフローpngの保存方法

画面のなにもないところを右クリックしてWorkflow Image > Export > png

Workflow Imageのエクスポート

画像にワークフローのデータが埋め込まれるのがメリットだが、埋め込みたくない場合はno embedding workflowを選択しても良い。

おまけ

こんなのもあるよ的な紹介(読み飛ばしてもOK)

プロンプトなどのデータを画像に埋め込みたい

comfy-image-saverを使用するとプロンプトなどを埋め込んだ画像データを保存できそう。

私はインストールはしているが使ったことはないので紹介まで。ちょっと設定が面倒かもしれない。

giriss/comfy-image-saver: All the tools you need to save images with their generation metadata on ComfyUI. Compatible with Civitai & Prompthero geninfo auto-detection. Works with png, jpeg and webp.

画像以外の保存

SaveLatentノードを使うと画像に変換する前のLatentデータの状態で保存できる。

保存場所などはSave Imageと同じ。LoadLatentで読み込み。

Save Latent

他にもCLIPSave, VAESaveもあるようだが使ったことはない。

テキストデータの保存

ComfyUI_Comfyroll_CustomNodes

テキスト保存ノード

Suzie1/ComfyUI_Comfyroll_CustomNodes: Custom nodes for SDXL and SD1.5 including Multi-ControlNet, LoRA, Aspect Ratio, Process Switches, and many more nodes.

こちらを使うと普通のテキストデータをファイルとして保存できる。

プロンプトを保存したり、保存先のパスデータを保存したり...いろいろ役に立ちそう。

さいごに

一通り思いつくノードを紹介した。

基本的には「1枚保存」「バッチで複数保存」「ビデオなどのデータにして保存」3種類覚えてしまえばほとんど困ることは無いと思う。



この記事をシェア


謎の技術研究部 (謎技研)