add some examples (#9)

* add example: LoRA testing: Epochs vs Fixed Seeds

*  add colors to tutorial workflows
This commit is contained in:
Bug, Ltd.
2025-01-27 18:33:27 +01:00
committed by GitHub
parent 1985411cc0
commit 3e3983bbfc
45 changed files with 5171 additions and 1244 deletions
+8
View File
@@ -41,3 +41,11 @@ That being said, have a good read!
- [2 - pimp my grid](./tutorials/XY%20Plot/2%20-%20pimp%20my%20grid/)
- [3 - advanced techniques](./tutorials/XY%20Plot/3%20-%20advanced%20techniques/)
- [Format](./tutorials/Format/)
---
**[Examples](./examples/)**:
- [XY Plot](./examples/XY%20Plot/)
- [LoRA testing](./examples/XY%20Plot/LoRA%20testing/)
- [Epochs vs Seeds](./examples/XY%20Plot/LoRA%20testing/Epochs%20vs%20Seeds/)
+13
View File
@@ -0,0 +1,13 @@
# Examples
Here you will find various examples demonstrating how to use the Comfy Lab nodes.
Here you will find some examples demonstrating how to use the Comfy Lab XY Plot:
- [XY Plot](./XY%20Plot/)
- [LoRA testing](./XY%20Plot/LoRA%20testing/)
- [Epochs vs Seeds](./XY%20Plot/LoRA%20testing/Epochs%20vs%20Seeds/)
For more detailed information / explanations, please check the XY Plot [tutorials](../tutorials/XY%20Plot/) and [node references](../node%20reference/xy%20plot/).
> Of course, we cannot cover each and every use cases, but if you think that one in particular could benefit to the community, feel free to propose it in the [discussions](https://github.com/bugltd/ComfyLab-Pack/discussions) or the [issues](https://github.com/bugltd/ComfyLab-Pack/issues).
Binary file not shown.

After

Width:  |  Height:  |  Size: 543 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

@@ -0,0 +1,77 @@
# Examples / XY Plot / LoRA testing / Epochs vs Seeds
> As always, we use the following convention for node color:
>
> - Green: input node you surely want to customize
> - Blue: the specific nodes we use for processing / customization
>
> Of course, adjust to your env / needs: checkpoint, prompt, CFG, ...
These examples are intended for quick re-use, feel free to check [the tutorials](../../../../tutorials/) for more detailed explanations.
Sections:
- [Overview](#overview)
- [Epochs vs Fixed seeds](#epochs-vs-fixed-seeds)
- [Epochs vs Fixed seeds (with Output Config)](#epochs-vs-fixed-seeds-with-output-config)
> Note: Here we do not customize the grid look, but it can easily be done by plugging the `OutputConfig: Grid` node to `XY Plot: Render`.
## Overview
The following examples demonstrate the ability to test multiple LoRA epochs vs seeds.
This can be done in a "traditional" way, with separate input nodes for the LoRA prefix, epochs and seed list: see example [Epochs vs Fixed seeds](#epochs-vs-fixed-seeds).\
Or we can simplify the inputs (and more), by using the ComfyLab `Output Config` node: [Epochs vs Fixed seeds (with Output Config)](#epochs-vs-fixed-seeds-with-output-config)
## Epochs vs Fixed seeds
Load either `LoRA testing - epochs vs fixed seeds.json` or `LoRA testing - epochs vs fixed seeds.png` into ComfyUI.
### Understanding the workflow
#### Building the LoRA file name
First, we define the LoRA prefix, without the epoch: we build the filename later.\
![LoRA prefix](./images/details%20-%20lora%20prefix.jpg)
We also define the epochs we want to test, separated by commas.\
![epochs](./images/details%20-%20input%20epochs.jpg)
> Notes:
>
> - we can of course use a different separator, simply adjust the `separator` to your needs
> - no need to pad the epochs to 6 characters, we do that later
We build the LoRA model file name thanks to the `Format String` node. Here specifically, we prefix with the LoRA name, followed by the epoch (padded to 6 digits), then finally add the file extension.\
![format file name](./images/details%20-%20format%20lora%20name.jpg)
> Note: check the [node reference](../../../../node%20reference/format.md) for more details, and also visit [this guide](https://pyformat.info/) for different techniques applicable to Python string `format()` method
Finally, we pipe the resulting string to `Load LoRA`, after converting it to type Any (`*`). More explanations in the [XY Plot tutorial: 3 - advanced techniques](../../../../tutorials/XY%20Plot/3%20-%20advanced%20techniques/).
#### Seed list
Some important details to notice about the seed list:\
![seed list](./images/details%20-%20seed%20list.jpg)
- we convert the values to integers, as it is the type expected by the `KSampler` `seed` widget. More explanations in the [XY Plot core concepts](../../../../node%20reference/xy%20plot/0%20-%20core%20concepts.md).
- we could also load the seed list for a simple text file. You can use the example `seed list.txt` file provided in current folder as an example.
## Epochs vs Fixed seeds (with Output Config)
Load either `LoRA testing - epochs vs fixed seeds (with Output Config).json` or `LoRA testing - epochs vs fixed seeds (with Output Config).png` into ComfyUI.
Here we have replaced the 3 input nodes by a single `Output Config` node, and loaded the file `output config.yaml` provided in this folder.
### Understanding the workflow
- the config file is in YAML format, but we could have used a JSON or JSON5 file the same way
- YAML and JSON5 allow comments, which is pretty convenient
- note how we have defined both dim1 / dim2 input lists, but in 2 different ways
- no need to convert the seed values to integers: that is automatically deducted, as the values are not quoted, so the `Output Config` node understands they are integers
- we also added the prompt, we could have defined the CFG, steps, sampler, ... the same way
More details about the `Output Config` node in the [node reference](../../../../node%20reference/output%20config.md) and [tutorials](../../../../tutorials/Output%20Config/).
Feel free to adjust the values, create a different file, ...
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,14 @@
# examples / XY Plot / LoRA testing / Epochs vs Seeds
# more details about the config format in the node reference and tutorials
lora_prefix:
value: mylora
label: 'LoRA prefix'
epochs:
value: [80, 90, 100]
seeds:
value: # YAML allows defining lists this way, too
- 1041687666075194
- 668849508521090
- 1038846581112800
prompt: 'beautiful scenery nature glass bottle landscape, purple galaxy bottle,'
# we could also add the CFG, steps, sampler, ...
@@ -0,0 +1,4 @@
1061781375610804
21244582947186
763371949946658
573691758095815
@@ -0,0 +1,9 @@
# Examples / XY Plot / LoRA testing
Here you will find some examples demonstrating how you can test your LoRAs:
- [Epochs vs Seeds](./Epochs%20vs%20Seeds/)
For more detailed information / explanations, please check the XY Plot [tutorials](../../../tutorials/XY%20Plot/) and [node references](../../../node%20reference/xy%20plot/).
> Of course, we cannot cover each and every use cases, but if you think that one in particular could benefit to the community, feel free to propose it in the [discussions](https://github.com/bugltd/ComfyLab-Pack/discussions) or the [issues](https://github.com/bugltd/ComfyLab-Pack/issues).
+10
View File
@@ -0,0 +1,10 @@
# Examples / XY Plot
Here you will find some examples demonstrating how to use the Comfy Lab XY Plot:
- [LoRA testing](./LoRA%20testing/)
- [Epochs vs Seeds](./LoRA%20testing/Epochs%20vs%20Seeds/)
For more detailed information / explanations, please check the XY Plot [tutorials](../../tutorials/XY%20Plot/) and [node references](../../node%20reference/xy%20plot/).
> Of course, we cannot cover each and every use cases, but if you think that one in particular could benefit to the community, feel free to propose it in the [discussions](https://github.com/bugltd/ComfyLab-Pack/discussions) or the [issues](https://github.com/bugltd/ComfyLab-Pack/issues).
@@ -283,7 +283,9 @@
}
}
}
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 4,
@@ -413,15 +415,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.8264462809917354,
"scale": 1.3310000000000004,
"offset": [
233.8873162735555,
186.57777046155832
145.64283363654857,
166.9130618619239
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "d57874f127bd018bf895ced61fe871107d588483"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

After

Width:  |  Height:  |  Size: 199 KiB

@@ -283,7 +283,9 @@
}
}
}
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 4,
@@ -413,15 +415,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.8264462809917354,
"scale": 1.3310000000000004,
"offset": [
233.8873162735555,
186.57777046155832
215.51511012039535,
166.91306186192423
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "d57874f127bd018bf895ced61fe871107d588483"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

After

Width:  |  Height:  |  Size: 201 KiB

@@ -277,152 +277,6 @@
"beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
12
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
},
{
"id": 11,
"type": "XYPlotRender",
"pos": [
1250,
100
],
"size": [
315,
186
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"link": 11,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "image",
"type": "IMAGE",
"link": 10
},
{
"name": "plot_config_grid",
"type": "PLOT_CONFIG_GRID",
"link": null,
"shape": 7,
"label": "config: grid (opt)"
},
{
"name": "plot_config_header",
"type": "PLOT_CONFIG_HF",
"link": null,
"shape": 7,
"label": "config: header (opt)"
},
{
"name": "plot_config_footer",
"type": "PLOT_CONFIG_HF",
"link": null,
"shape": 7,
"label": "config: footer (opt)"
}
],
"outputs": [
{
"name": "grid",
"type": "IMAGE",
"links": [
14
],
"slot_index": 0
},
{
"name": "image",
"type": "IMAGE",
"links": [
15
],
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "XYPlotRender"
},
"widgets_values": [
"{dim1}",
"{dim2}",
true
]
},
{
"id": 12,
"type": "PreviewImage",
@@ -515,7 +369,9 @@
"5.5, 7, 10.5",
",",
"float"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 14,
@@ -556,7 +412,159 @@
true,
"disabled",
"photography of a dog in a park\nphotography of a man in a restaurant\n#photography of an astronaut on Mars\nphotography of a woman on a balcony"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
12
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 11,
"type": "XYPlotRender",
"pos": [
1250,
100
],
"size": [
315,
186
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"link": 11,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "image",
"type": "IMAGE",
"link": 10
},
{
"name": "plot_config_grid",
"type": "PLOT_CONFIG_GRID",
"link": null,
"shape": 7,
"label": "config: grid (opt)"
},
{
"name": "plot_config_header",
"type": "PLOT_CONFIG_HF",
"link": null,
"shape": 7,
"label": "config: header (opt)"
},
{
"name": "plot_config_footer",
"type": "PLOT_CONFIG_HF",
"link": null,
"shape": 7,
"label": "config: footer (opt)"
}
],
"outputs": [
{
"name": "grid",
"type": "IMAGE",
"links": [
14
],
"slot_index": 0
},
{
"name": "image",
"type": "IMAGE",
"links": [
15
],
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "XYPlotRender"
},
"widgets_values": [
"{dim1}",
"{dim2}",
true
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -693,15 +701,15 @@
"config": {},
"extra": {
"ds": {
"scale": 1,
"scale": 0.8264462809917354,
"offset": [
495,
97
481.5315864539793,
241.38978233854036
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

After

Width:  |  Height:  |  Size: 289 KiB

@@ -369,76 +369,9 @@
"5.5, 7, 10.5",
",",
"float"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
18
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
"color": "#232",
"bgcolor": "#353"
},
{
"id": 16,
@@ -482,48 +415,9 @@
},
"widgets_values": [
"photography of {arg0}"
]
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
220
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a dog in a park\na man in a restaurant\n#an astronaut on Mars\na woman on a balcony"
]
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 11,
@@ -600,7 +494,123 @@
"{dim1}",
"CFG: {dim2}",
true
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
220
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a dog in a park\na man in a restaurant\n#an astronaut on Mars\na woman on a balcony"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
18
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -745,15 +755,15 @@
"config": {},
"extra": {
"ds": {
"scale": 1,
"scale": 0.8264462809917354,
"offset": [
31,
115
481.5315864539793,
241.38978233854036
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 299 KiB

@@ -369,7 +369,9 @@
"5.5, 7, 10.5",
",",
"float"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 16,
@@ -413,117 +415,9 @@
},
"widgets_values": [
"photography of {arg0}"
]
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
220
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a dog in a park\na man in a restaurant\nan astronaut on Mars\na woman on a balcony"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
18
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
2,
0
]
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 11,
@@ -600,7 +494,123 @@
"{dim1}",
"CFG: {dim2}",
false
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
220
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a dog in a park\na man in a restaurant\nan astronaut on Mars\na woman on a balcony"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 17,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
18
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
13
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
2,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -745,15 +755,15 @@
"config": {},
"extra": {
"ds": {
"scale": 1,
"scale": 0.8264462809917354,
"offset": [
18,
67
452.49158645397875,
215.97978233854025
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 300 KiB

@@ -123,75 +123,6 @@
"beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
},
{
"id": 11,
"type": "XYPlotRender",
@@ -267,7 +198,9 @@
"{dim1}",
"{dim2}",
true
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 7,
@@ -393,47 +326,6 @@
},
"widgets_values": []
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
]
},
{
"id": 12,
"type": "PreviewImage",
@@ -509,7 +401,9 @@
},
"widgets_values": [
"a full-body shot photo of {arg0}, {arg1}, hyperrealistic, hyperrealism, 8k, cinematic lighting"
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 4,
@@ -523,7 +417,7 @@
98
],
"flags": {},
"order": 2,
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
@@ -564,7 +458,7 @@
"id": 17,
"type": "ListFromMultiline",
"pos": [
-360,
-370,
360
],
"size": [
@@ -572,7 +466,7 @@
200
],
"flags": {},
"order": 3,
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
@@ -599,7 +493,123 @@
true,
"disabled",
"walking in a street in NYC\neating in a Japanese restaurant"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
290,
210
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 18,
@@ -640,7 +650,9 @@
70,
20,
10
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -793,15 +805,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.8264462809917354,
"scale": 0.9090909090909091,
"offset": [
222.26954547197894,
239.23502174146589
671.9229989258034,
218.65379099198182
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 376 KiB

@@ -123,75 +123,6 @@
"beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
},
{
"id": 11,
"type": "XYPlotRender",
@@ -267,7 +198,9 @@
"{dim1}",
"{dim2}",
true
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 7,
@@ -393,47 +326,6 @@
},
"widgets_values": []
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
]
},
{
"id": 12,
"type": "PreviewImage",
@@ -509,7 +401,9 @@
},
"widgets_values": [
"a full-body shot photo of {arg0}, {arg1}, hyperrealistic, hyperrealism, 8k, cinematic lighting"
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 4,
@@ -523,7 +417,7 @@
98
],
"flags": {},
"order": 2,
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
@@ -572,7 +466,7 @@
200
],
"flags": {},
"order": 3,
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
@@ -599,7 +493,207 @@
true,
"disabled",
"walking in a street in NYC\neating in a Japanese restaurant"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 20,
"type": "PlotConfigHF",
"pos": [
850,
-390
],
"size": [
300,
230
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
26
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"",
"ComfyLab XY Plot tutorials",
"",
"#4d5f74",
"Roboto-Bold.ttf",
60,
"#2993cd",
30
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 21,
"type": "PlotConfigHF",
"pos": [
850,
-110
],
"size": [
300,
230
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
27
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"Made with ComfyLab...",
"",
"...and Love",
"transparent",
"Roboto-Regular.ttf",
45,
"white",
30
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 18,
@@ -613,7 +707,7 @@
250
],
"flags": {},
"order": 4,
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
@@ -640,87 +734,9 @@
70,
20,
10
]
},
{
"id": 20,
"type": "PlotConfigHF",
"pos": [
850,
-390
],
"size": [
300,
230
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
26
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"",
"ComfyLab XY Plot tutorials",
"",
"#4d5f74",
"Roboto-Bold.ttf",
60,
"#2993cd",
30
]
},
{
"id": 21,
"type": "PlotConfigHF",
"pos": [
850,
-110
],
"size": [
300,
230
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
27
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"Made with ComfyLab...",
"",
"...and Love",
"transparent",
"Roboto-Regular.ttf",
45,
"white",
30
]
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -889,15 +905,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.7513148009015777,
"scale": 0.9090909090909091,
"offset": [
358.2503570852133,
476.5740951619572
567.4229989258046,
336.3537909919809
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 KiB

After

Width:  |  Height:  |  Size: 472 KiB

@@ -123,75 +123,6 @@
"beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"
]
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
},
{
"id": 7,
"type": "CLIPTextEncode",
@@ -289,47 +220,6 @@
1
]
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
]
},
{
"id": 12,
"type": "PreviewImage",
@@ -405,7 +295,9 @@
},
"widgets_values": [
"a full-body shot photo of {arg0}, {arg1}, hyperrealistic, hyperrealism, 8k, cinematic lighting"
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 4,
@@ -419,7 +311,7 @@
98
],
"flags": {},
"order": 2,
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
@@ -468,7 +360,7 @@
200
],
"flags": {},
"order": 3,
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
@@ -495,7 +387,9 @@
true,
"disabled",
"walking in a street in NYC\neating in a Japanese restaurant"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 20,
@@ -509,7 +403,7 @@
230
],
"flags": {},
"order": 4,
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
@@ -535,7 +429,9 @@
60,
"#2993cd",
30
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 22,
@@ -581,44 +477,6 @@
},
"widgets_values": []
},
{
"id": 25,
"type": "LoadImage",
"pos": [
1230,
-350
],
"size": [
315,
314
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
33
],
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"background1.jpg",
"image"
]
},
{
"id": 21,
"type": "PlotConfigHF",
@@ -631,7 +489,7 @@
230
],
"flags": {},
"order": 6,
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
@@ -657,7 +515,9 @@
45,
"#2c2c2c",
30
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 11,
@@ -735,7 +595,9 @@
"{dim1}",
"{dim2}",
true
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 13,
@@ -854,7 +716,7 @@
250
],
"flags": {},
"order": 7,
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
@@ -881,6 +743,160 @@
70,
20,
10
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "XYPlotQueue",
"pos": [
30,
100
],
"size": [
315,
146
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 16,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 21,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
11
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
23
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
24
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 25,
"type": "LoadImage",
"pos": [
1230,
-350
],
"size": [
315,
314
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
33
],
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"background1.jpg",
"image"
]
}
],
@@ -1090,15 +1106,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.620921323059155,
"scale": 0.9090909090909091,
"offset": [
406.37060952220656,
586.8742867086913
622.4229989258032,
278.05379099198166
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "e957a7e4d74579f81e3f4457b8d672327c8ac7f7"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 KiB

After

Width:  |  Height:  |  Size: 601 KiB

@@ -220,47 +220,6 @@
1
]
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-370,
100
],
"size": [
300,
210
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
]
},
{
"id": 12,
"type": "PreviewImage",
@@ -336,7 +295,9 @@
},
"widgets_values": [
"a full-body shot photo of {arg0}, {arg1}, hyperrealistic, hyperrealism, 8k, cinematic lighting"
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 4,
@@ -350,7 +311,7 @@
98
],
"flags": {},
"order": 2,
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
@@ -507,7 +468,9 @@
"{dim1}",
"{dim2}",
true
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 13,
@@ -626,7 +589,7 @@
314
],
"flags": {},
"order": 3,
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
@@ -652,87 +615,6 @@
"image"
]
},
{
"id": 18,
"type": "PlotConfigGrid",
"pos": [
70,
-250
],
"size": [
315,
250
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_grid",
"type": "PLOT_CONFIG_GRID",
"links": [
22
],
"slot_index": 0,
"label": "config: grid"
}
],
"properties": {
"Node name for S&R": "PlotConfigGrid"
},
"widgets_values": [
40,
"transparent",
"Roboto-Italic.ttf",
40,
"#666",
50,
70,
20,
10
]
},
{
"id": 20,
"type": "PlotConfigHF",
"pos": [
460,
-460
],
"size": [
300,
230
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
26
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"",
"ComfyLab XY Plot tutorials",
"",
"#4d5f74",
"Roboto-Bold.ttf",
60,
"#2993cd",
30
]
},
{
"id": 29,
"type": "FormatString",
@@ -781,7 +663,9 @@
},
"widgets_values": [
"page {arg0} / {arg1}"
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 28,
@@ -836,7 +720,9 @@
"properties": {
"Node name for S&R": "XYPlotDataSplit"
},
"widgets_values": []
"widgets_values": [],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 21,
@@ -886,7 +772,9 @@
45,
"#2c2c2c",
30
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 17,
@@ -900,7 +788,7 @@
200
],
"flags": {},
"order": 6,
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
@@ -927,7 +815,9 @@
true,
"disabled",
"walking in a street in NYC\neating in a Japanese restaurant\ndancing under the rain\ndoing shopping in Milan"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
@@ -997,7 +887,137 @@
0,
0,
2
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-360,
100
],
"size": [
290,
210
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
16
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"a man wearing a blue coat\na woman wearing a red dress"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 18,
"type": "PlotConfigGrid",
"pos": [
70,
-250
],
"size": [
315,
250
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_grid",
"type": "PLOT_CONFIG_GRID",
"links": [
22
],
"slot_index": 0,
"label": "config: grid"
}
],
"properties": {
"Node name for S&R": "PlotConfigGrid"
},
"widgets_values": [
40,
"transparent",
"Roboto-Italic.ttf",
40,
"#666",
50,
70,
20,
10
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 20,
"type": "PlotConfigHF",
"pos": [
460,
-460
],
"size": [
300,
230
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "plot_config_hf",
"type": "PLOT_CONFIG_HF",
"links": [
26
],
"slot_index": 0,
"label": "config: header / footer"
}
],
"properties": {
"Node name for S&R": "PlotConfigHF"
},
"widgets_values": [
"",
"ComfyLab XY Plot tutorials",
"",
"#4d5f74",
"Roboto-Bold.ttf",
60,
"#2993cd",
30
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -1238,15 +1258,15 @@
"config": {},
"extra": {
"ds": {
"scale": 0.6830134553650705,
"scale": 0.9090909090909091,
"offset": [
611.5360901995684,
523.418101061013
658.722998925803,
460.6537909919812
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "f6a9edc869f6f7180ad6209cc13061522750709d"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 KiB

After

Width:  |  Height:  |  Size: 658 KiB

@@ -12,6 +12,7 @@ Tutorial sections:
- [Part 1 - Various checkpoints (or LoRAs, ...)](#part-1---various-checkpoints-or-loras-)
- [Part 2 - Various resolutions and aspect ratios](#part-2---various-resolutions-and-aspect-ratios)
- [Part 3 - Using the Output Config node](#part-3---using-the-output-config-node)
- [TL;DR / Conclusion](#tldr--conclusion)
> As for all nodes in this extension, you can get useful contextual information, by just **moving the mouse pointer over a node or its inputs / widgets / outputs**. This should help you understand some details, without reading the more detailed wiki pages (yet).
@@ -34,7 +35,7 @@ Execute the workflow.
Here we build a grid with 2 different checkpoints, vs a list of predefined seeds.
What is to be noticed:
What should be noticed:
- checkpoints:
- we have chosen not to include the `.safetensors` extension in the input
@@ -78,6 +79,34 @@ What we did:
While probably not the most useful as such, this example demonstrates **the ability of the ComfyLab XY Plot to handle various resolutions or aspect ratios within the same grid**.
## Part 3 - Using the Output Config node
Here the workflow is similar to [Part1](#part-1---various-checkpoints-or-loras-), except that we use the `Output Config` node, to simplify and standardize our workflow.
**Load either `workflow - part 3.json` or `workflow - part 3.png` into ComfyUI.**\
**Copy one of the `output config - part 3.*` file, adjust the checkpoints to your env, and load it into the `Output Config` node.**
- you should get outputs like this (more than the 4 displayed here):
- ![outputs](./details/detail%20-%20part%203%20-%20output%20config.jpg)
Execute the workflow.
![result - part 3](./details/result%20-%20part%201.jpg)
As expected, we have strictly the same results as in [Part 1](#part-1---various-checkpoints-or-loras-).
What should be noticed:
- the output config file is available in 3 different formats: JSON, JSON5 and YAML
- we replaced the input lists by a single `Output Config` node
- we also added more outputs to the config file: CFG, steps, sampler, ... quite a lot indeed
- of course, we could have used 2 different `Output Config` nodes, one for the XY Plot itself, and another one for the other values: it's up to you to define how you want to standardize your configs
- note how the `Output Config` node auto-detects the type from output values:
- for example, `cfg` is written without quotes, so it's detected as a string
- but for more combo widgets (sampler, scheduler), we have to force type to be Any (`*`)
We won't go into details here about the configuration file itself, but you can find more information in the corresponding [node reference](../../../node%20reference/output%20config.md) and the [dedicated tutorials](../../../tutorials/Output%20Config/).
## TL;DR / Conclusion
In this tutorial, we have:
@@ -85,6 +114,7 @@ In this tutorial, we have:
- seen how to handle various checkpoints (or virtually any sort of model)
- and optimized the grid display at the same time
- demonstrated the ability of the XY Plot to include images or various dimensions / apect ratios within the same grid
- shown how we can use the `Output Config` node, to keep a collection of configs, while standardizing our workflow
This tutorial is still in construction, so I will certainly add most techniques in the future, be sure to check.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

@@ -0,0 +1,24 @@
{
"checkpoints": {
"value": ["sd_xl_base_1.0", "Juggernaut-XI-byRunDiffusion"]
},
"seeds": {
"value": [156680208700286, 715168739510668, 568208062071311]
},
"prompt": "beautiful scenery nature glass bottle landscape, purple galaxy bottle,",
"steps": 20,
"cfg": {
"value": 8,
"label": "CFG"
},
"sampler": {
"value": "euler",
"type": "*"
},
"scheduler": {
"value": "normal",
"type": "*"
},
"width": 1024,
"height": 1024
}
@@ -0,0 +1,21 @@
# Tutorials / XY Plot / 3 - Advanced techniques / Part 3
# more details about the config format in the Output Config node reference and tutorials
checkpoints:
value:
- sd_xl_base_1.0
- Juggernaut-XI-byRunDiffusion
seeds:
value: [156680208700286, 715168739510668, 568208062071311]
prompt: 'beautiful scenery nature glass bottle landscape, purple galaxy bottle,'
steps: 20 # we can define the value directly
cfg:
value: 8.0
label: 'CFG' # custom label
sampler:
value: euler
type: '*' # required as widget is a combo (pre-defined list)
scheduler:
value: normal
type: '*' # required as widget is a combo (pre-defined list)
width: 1024
height: 1024
@@ -0,0 +1,28 @@
/*
Tutorials / XY Plot / 3 - Advanced techniques / Part 3
more details about the config format in the Output Config node reference and tutorials
*/
{
checkpoints: {
value: ['sd_xl_base_1.0', 'Juggernaut-XI-byRunDiffusion'],
},
seeds: {
value: [156680208700286, 715168739510668, 568208062071311],
},
prompt: 'beautiful scenery nature glass bottle landscape, purple galaxy bottle,',
steps: 20, // we can define the value directly
cfg: {
value: 8,
label: 'CFG', // custom label
},
sampler: {
value: 'euler',
type: '*', // required as widget is a combo (pre-defined list)
},
scheduler: {
value: 'normal',
type: '*', // required as widget is a combo (pre-defined list)
},
width: 1024,
height: 1024,
}
@@ -344,7 +344,121 @@
true,
"disabled",
"# here we list seed values\n156680208700286\n715168739510668\n568208062071311"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 10,
"type": "PreviewImage",
"pos": [
1820,
180
],
"size": [
440,
320
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 12
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 20,
"type": "FormatString",
"pos": [
470,
-100
],
"size": [
210,
78
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "arg0",
"type": "STRING,INT,FLOAT,BOOLEAN",
"link": 19,
"label": "arg0"
},
{
"name": "arg1",
"type": "STRING,INT,FLOAT,BOOLEAN",
"link": null
}
],
"outputs": [
{
"name": "formatted",
"type": "STRING",
"links": [
20
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "FormatString"
},
"widgets_values": [
"{arg0}.safetensors"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 19,
"type": "ConvertToAny",
"pos": [
730,
-100
],
"size": [
168,
26
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "value",
"type": "*",
"link": 20
}
],
"outputs": [
{
"name": "value_any",
"type": "*",
"links": [
21
],
"slot_index": 0,
"label": "value (Any)"
}
],
"properties": {
"Node name for S&R": "ConvertToAny"
},
"widgets_values": [],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 14,
@@ -385,7 +499,9 @@
true,
"disabled",
"# here we list the checkpoints\n# do not add the '.safetensors' extension, it will be appended later\nsd_xl_base_1.0\nJuggernaut-XI-byRunDiffusion"
]
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 13,
@@ -454,34 +570,9 @@
0,
0,
0
]
},
{
"id": 10,
"type": "PreviewImage",
"pos": [
1820,
180
],
"size": [
440,
320
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 12
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 12,
@@ -558,88 +649,9 @@
"{dim1}",
"{dim2}",
true
]
},
{
"id": 20,
"type": "FormatString",
"pos": [
470,
-100
],
"size": [
210,
78
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "arg0",
"type": "STRING,INT,FLOAT,BOOLEAN",
"link": 19,
"label": "arg0"
},
{
"name": "arg1",
"type": "STRING,INT,FLOAT,BOOLEAN",
"link": null
}
],
"outputs": [
{
"name": "formatted",
"type": "STRING",
"links": [
20
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "FormatString"
},
"widgets_values": [
"{arg0}.safetensors"
]
},
{
"id": 19,
"type": "ConvertToAny",
"pos": [
730,
-100
],
"size": [
168,
26
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "value",
"type": "*",
"link": 20
}
],
"outputs": [
{
"name": "value_any",
"type": "*",
"links": [
21
],
"slot_index": 0,
"label": "value (Any)"
}
],
"properties": {
"Node name for S&R": "ConvertToAny"
},
"widgets_values": []
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -792,15 +804,15 @@
"config": {},
"extra": {
"ds": {
"scale": 1,
"scale": 1.1000000000000003,
"offset": [
508.67246365224605,
354.231567790153
478.0620672954512,
266.4479981606637
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "61510174fd470093c9f63ec385cdc72f8a2f0894"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

After

Width:  |  Height:  |  Size: 389 KiB

@@ -254,47 +254,6 @@
1
]
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-410,
-110
],
"size": [
220,
210
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
15
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"# image dimensions\n1024 x 1024\n896 x 1152\n1216 x 832"
]
},
{
"id": 15,
"type": "ListFromMultiline",
@@ -307,7 +266,7 @@
220
],
"flags": {},
"order": 2,
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
@@ -334,76 +293,9 @@
true,
"disabled",
"# rotations\nnone\n90 degrees"
]
},
{
"id": 13,
"type": "XYPlotQueue",
"pos": [
-150,
-100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 15,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 18,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
14
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
29
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
28
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
]
"color": "#232",
"bgcolor": "#353"
},
{
"id": 22,
@@ -453,7 +345,9 @@
"widgets_values": [
"1024x1024",
1
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 5,
@@ -579,6 +473,120 @@
},
"widgets_values": []
},
{
"id": 14,
"type": "ListFromMultiline",
"pos": [
-410,
-110
],
"size": [
220,
210
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "list",
"type": "LIST",
"links": [
15
],
"slot_index": 0,
"shape": 6
},
{
"name": "count",
"type": "INT",
"links": null
}
],
"properties": {
"Node name for S&R": "ListFromMultiline"
},
"widgets_values": [
0,
true,
"disabled",
"# image dimensions\n1024 x 1024\n896 x 1152\n1216 x 832"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 13,
"type": "XYPlotQueue",
"pos": [
-150,
-100
],
"size": [
315,
146
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "dim1",
"type": "LIST",
"link": 15,
"shape": 6
},
{
"name": "dim2",
"type": "LIST",
"link": 18,
"shape": 6,
"label": "dim2 (opt)"
}
],
"outputs": [
{
"name": "xy_plot_data",
"type": "XY_PLOT_DATA",
"links": [
14
],
"slot_index": 0,
"label": "XY plot data",
"color_off": "#52395B",
"color_on": "#9521c3"
},
{
"name": "dim1_value",
"type": "*",
"links": [
29
],
"slot_index": 1,
"label": "dim1 value"
},
{
"name": "dim2_value",
"type": "*",
"links": [
28
],
"slot_index": 2,
"label": "dim2 value"
}
],
"properties": {
"Node name for S&R": "XYPlotQueue"
},
"widgets_values": [
0,
0,
0
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 12,
"type": "XYPlotRender",
@@ -654,7 +662,9 @@
"{dim1}",
"{dim2}",
false
]
],
"color": "#2a363b",
"bgcolor": "#3f5159"
}
],
"links": [
@@ -815,15 +825,15 @@
"config": {},
"extra": {
"ds": {
"scale": 1,
"scale": 1.1000000000000003,
"offset": [
520.672463652246,
237.231567790153
458.9711582045418,
260.08436179702727
]
},
"node_versions": {
"comfy-core": "0.3.10",
"ComfyLab-Pack": "3b61f457a25c43f16f76dfa98fafd4a7bbc56c37"
"ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5"
}
},
"version": 0.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 382 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 972 KiB

+1
View File
@@ -48,3 +48,4 @@ Contents:
- various checkpoints (or virtually any model, LoRA, ...)
- integrate various image resolutions / aspect ratios in the grid
- combine the XY Plot with the `Output Config` node