An open API service indexing awesome lists of open source software.

https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData

Custom node for ComfyUI. Add a node to save images with metadata (PNGInfo) extracted from the input values of each node.
https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData

Last synced: 4 months ago
JSON representation

Custom node for ComfyUI. Add a node to save images with metadata (PNGInfo) extracted from the input values of each node.

Awesome Lists containing this project

README

          

# ComfyUI-SaveImageWithMetaData
![SaveImageWithMetaData Preview](img/save_image_with_metadata.png)
- [ComfyUI](https://github.com/comfyanonymous/ComfyUI)用のカスタムノードです。
- 各ノードの入力値から取得したメタデータ(PNGInfo)つきの画像を保存するノードを追加します。
- 動的に値を取得するため、色々な拡張機能のノードで出力された値をメタデータに追加することができます。

## インストール手順
```
cd /custom_nodes
git clone https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData.git
```

## 追加されるノード
### Save Image With Metadata
- 入力として受け取った `images` をメタデータ(PNGInfo)つきの画像として保存します。
- メタデータは `sampler_selection_method` で見つけたKSamplerノードの入力と以前に実行されたノードの入力から取得します。
- 対象となるKSamplerノードは[py/defs/samplers.py](py/defs/samplers.py)と[py/defs/ext/](py/defs/ext/)配下のファイルの`SAMPLERS`のキーです。

#### filename_prefix
- `filename_prefix` で指定した文字列(Key)は取得した情報に置換されます。

| Key | 置換先の情報 |
| --------------------- | -------------------------- |
| %seed% | シード値 |
| %width% | 画像の幅 |
| %height% | 画像の高さ |
| %pprompt% | Positive Prompt |
| %pprompt:<文字数n>% | Positive Promptの先頭n文字 |
| %nprompt% | Negative Prompt |
| %nprompt:<文字数n>% | Negative Promptの先頭n文字 |
| %model% | Checkpoint名 |
| %model:<文字数n>% | Checkpoint名の先頭n文字 |
| %date% | 生成日時(yyyyMMddhhmmss) |
| %date:<フォーマット>% | 生成日時 |

- `%date:<フォーマット>%` の `<フォーマット>` で指定する識別子は以下の表を参照ください。

| 識別子 | 説明 |
| ------ | ---- |
| yyyy | 年 |
| MM | 月 |
| dd | 日 |
| hh | 時 |
| mm | 分 |
| ss | 秒 |

#### sampler_selection_method
- このノードよりも前に実行されたKSamplerノードを選ぶ方法を指定します。

##### Farthest
- このノードに最も遠いKSamplerノードを選びます。
- 例: [everywhere_prompt_utilities.png](examples/everywhere_prompt_utilities.png) において、上段のKSamplerノード(seed=12345)を選びます。

##### Nearest
- このノードに最も近いKSamplerノードを選びます。
- 例: [everywhere_prompt_utilities.png](examples/everywhere_prompt_utilities.png) において、下段のKSamplerノード(seed=67890)を選びます。

##### By node ID
- ノードIDが `sampler_selection_node_id` であるKSamplerノードを選びます。

### Create Extra MetaData
- 保存する画像に追加するメタデータを指定します。
- 例: [extra_metadata.png](examples/extra_metadata.png)。

## 付与されるメタデータ
- Positive prompt
- Negative prompt
- Steps
- Sampler
- CFG Scale
- Seed
- Clip skip
- Size
- Model
- Model hash
- VAE
- KSamplerノードではなくSaveImageWithMetadataノードの入力から参照されます。
- VAE hash
- KSamplerノードではなくSaveImageWithMetadataノードの入力から参照されます。
- Loras
- Model name
- Model hash
- Strength model
- Strength clip
- Embeddings
- Name
- Hash
- batch size >= 2の場合 :
- Batch index
- Batch size
- Hashes
- Model, Loras, Embeddings
- [Civitai](https://civitai.com/)用

## 対応しているノード・拡張機能
- 対応しているノードは以下のファイルをご確認ください。
- [py/defs/captures.py](py/defs/captures.py)
- [py/defs/samplers.py](py/defs/samplers.py)
- 対応している拡張機能は以下のディレクトリをご確認ください。
- [py/defs/ext/](py/defs/ext/)