diff --git a/wiki/README.md b/wiki/README.md index cd2025d..5a8c3ef 100644 --- a/wiki/README.md +++ b/wiki/README.md @@ -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/) diff --git a/wiki/examples/README.md b/wiki/examples/README.md new file mode 100644 index 0000000..9573e1b --- /dev/null +++ b/wiki/examples/README.md @@ -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). diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).json b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).json new file mode 100644 index 0000000..a2f039f --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).json @@ -0,0 +1,1269 @@ +{ + "last_node_id": 31, + "last_link_id": 60, + "nodes": [ + { + "id": 10, + "type": "KSampler", + "pos": [ + 860, + 190 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 30 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 19 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 21 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 13 + }, + { + "name": "seed", + "type": "INT", + "link": 49, + "widget": { + "name": "seed" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 15 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 13, + "type": "CLIPTextEncode", + "pos": [ + 420, + 380 + ], + "size": [ + 400, + 120 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 29 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 21 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ] + }, + { + "id": 5, + "type": "EmptyLatentImage", + "pos": [ + 473, + 609 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 13 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [ + 1216, + 832, + 1 + ] + }, + { + "id": 14, + "type": "CheckpointLoaderSimple", + "pos": [ + 20, + 350 + ], + "size": [ + 320, + 98 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 26 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 27 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 25 + ] + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "sd_xl_base_1.0.safetensors" + ] + }, + { + "id": 15, + "type": "LoraLoader", + "pos": [ + 30, + 500 + ], + "size": [ + 310, + 126 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 26 + }, + { + "name": "clip", + "type": "CLIP", + "link": 27 + }, + { + "name": "lora_name", + "type": "COMBO", + "link": 40, + "widget": { + "name": "lora_name" + } + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 30 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 28, + 29 + ], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": [ + "SDXLHighDetail_v6-000005.safetensors", + 1, + 1 + ] + }, + { + "id": 18, + "type": "PreviewImage", + "pos": [ + 1850, + 170 + ], + "size": [ + 210, + 26 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 32 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 11, + "type": "VAEDecode", + "pos": [ + 1210, + 190 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 15 + }, + { + "name": "vae", + "type": "VAE", + "link": 25 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 31 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 19, + "type": "PreviewImage", + "pos": [ + 1500, + 430 + ], + "size": [ + 210, + 26 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 33 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 23, + "type": "FormatString", + "pos": [ + 180, + 50 + ], + "size": [ + 210, + 98 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 57, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 38, + "label": "arg1" + }, + { + "name": "arg2", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 39 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "{arg0}-{arg1:0>6}.safetensors" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 24, + "type": "ConvertToAny", + "pos": [ + 430, + 50 + ], + "size": [ + 168, + 26 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "*", + "link": 39 + } + ], + "outputs": [ + { + "name": "value_any", + "type": "*", + "links": [ + 40 + ], + "slot_index": 0, + "label": "value (Any)" + } + ], + "properties": { + "Node name for S&R": "ConvertToAny" + }, + "widgets_values": [], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 26, + "type": "XYPlotDataSplit", + "pos": [ + 700, + -140 + ], + "size": [ + 211.60000610351562, + 70 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "link": 42, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + } + ], + "outputs": [ + { + "name": "current_page", + "type": "INT", + "links": [ + 43 + ], + "slot_index": 0, + "label": "current page" + }, + { + "name": "total_pages", + "type": "INT", + "links": [ + 44 + ], + "slot_index": 1, + "label": "total pages" + }, + { + "name": "complete", + "type": "BOOLEAN", + "links": null, + "label": "complete?" + } + ], + "properties": { + "Node name for S&R": "XYPlotDataSplit" + }, + "widgets_values": [], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 27, + "type": "FormatString", + "pos": [ + 1010, + -140 + ], + "size": [ + 210, + 98 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 43, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 44, + "label": "arg1" + }, + { + "name": "arg2", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 46 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "page {arg0} / {arg1}" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 25, + "type": "FormatString", + "pos": [ + 530, + -280 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 56, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 45 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "LoRA testing: {arg0}" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 28, + "type": "PlotConfigHF", + "pos": [ + 1350, + -400 + ], + "size": [ + 295.6000061035156, + 202 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "text_center", + "type": "STRING", + "link": 45, + "widget": { + "name": "text_center" + } + } + ], + "outputs": [ + { + "name": "plot_config_hf", + "type": "PLOT_CONFIG_HF", + "links": [ + 47 + ], + "slot_index": 0, + "label": "config: header / footer" + } + ], + "properties": { + "Node name for S&R": "PlotConfigHF" + }, + "widgets_values": [ + "", + "", + "", + "#aaa", + "Roboto-Bold.ttf", + 60, + "#222", + 30 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 17, + "type": "XYPlotRender", + "pos": [ + 1450, + 170 + ], + "size": [ + 315, + 186 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "link": 36, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + }, + { + "name": "image", + "type": "IMAGE", + "link": 31 + }, + { + "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": 47, + "shape": 7, + "label": "config: header (opt)" + }, + { + "name": "plot_config_footer", + "type": "PLOT_CONFIG_HF", + "link": 48, + "shape": 7, + "label": "config: footer (opt)" + } + ], + "outputs": [ + { + "name": "grid", + "type": "IMAGE", + "links": [ + 32 + ], + "slot_index": 0 + }, + { + "name": "image", + "type": "IMAGE", + "links": [ + 33 + ], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "XYPlotRender" + }, + "widgets_values": [ + "epoch:\\n{dim1}", + "{dim2}", + true + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 29, + "type": "PlotConfigHF", + "pos": [ + 1350, + -140 + ], + "size": [ + 300, + 202 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "text_right", + "type": "STRING", + "link": 46, + "widget": { + "name": "text_right" + } + } + ], + "outputs": [ + { + "name": "plot_config_hf", + "type": "PLOT_CONFIG_HF", + "links": [ + 48 + ], + "slot_index": 0, + "label": "config: header / footer" + } + ], + "properties": { + "Node name for S&R": "PlotConfigHF" + }, + "widgets_values": [ + "made with ComfyLab", + "", + "", + "transparent", + "Roboto-Italic.ttf", + 40, + "#888", + 30 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 16, + "type": "XYPlotQueue", + "pos": [ + 180, + -160 + ], + "size": [ + 315, + 146 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "dim1", + "type": "LIST", + "link": 58, + "shape": 6 + }, + { + "name": "dim2", + "type": "LIST", + "link": 59, + "shape": 6, + "label": "dim2 (opt)" + } + ], + "outputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "links": [ + 36, + 42 + ], + "slot_index": 0, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + }, + { + "name": "dim1_value", + "type": "*", + "links": [ + 38 + ], + "slot_index": 1, + "label": "dim1 value" + }, + { + "name": "dim2_value", + "type": "*", + "links": [ + 49 + ], + "slot_index": 2, + "label": "dim2 value" + } + ], + "properties": { + "Node name for S&R": "XYPlotQueue" + }, + "widgets_values": [ + 0, + 4, + 0 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 12, + "type": "CLIPTextEncode", + "pos": [ + 420, + 190 + ], + "size": [ + 400, + 150 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 28 + }, + { + "name": "text", + "type": "STRING", + "link": 60, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 19 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "beautiful scenery nature glass bottle landscape, , purple galaxy bottle," + ] + }, + { + "id": 31, + "type": "OutputConfigLocal", + "pos": [ + -320, + -130 + ], + "size": [ + 370, + 370 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "lora_prefix", + "type": "STRING", + "links": [ + 56, + 57 + ], + "label": "LoRA prefix" + }, + { + "name": "epochs", + "type": "LIST", + "links": [ + 58 + ], + "shape": 6 + }, + { + "name": "seeds", + "type": "LIST", + "links": [ + 59 + ], + "shape": 6 + }, + { + "name": "prompt", + "type": "STRING", + "links": [ + 60 + ] + } + ], + "properties": { + "Node name for S&R": "OutputConfigLocal" + }, + "widgets_values": [ + { + "lora_prefix": { + "value": "mylora", + "type": "STRING", + "extra_info": { + "label": "LoRA prefix" + } + }, + "epochs": { + "value": [ + 80, + 90, + 100 + ], + "type": "LIST", + "extra_info": { + "shape": 6 + } + }, + "seeds": { + "value": [ + 1041687666075194, + 668849508521090, + 1038846581112800 + ], + "type": "LIST", + "extra_info": { + "shape": 6 + } + }, + "prompt": { + "value": "beautiful scenery nature glass bottle landscape, purple galaxy bottle,", + "type": "STRING", + "extra_info": {} + } + }, + 0, + "in a popup", + true, + "# examples / XY Plot / LoRA testing / Epochs vs Seeds\n# more details about the config format in the node reference and tutorials\nlora_prefix:\n value: mylora\n label: 'LoRA prefix'\nepochs:\n value: [80, 90, 100]\nseeds:\n value: # YAML allows defining lists this way, too\n - 1041687666075194\n - 668849508521090\n - 1038846581112800\nprompt: 'beautiful scenery nature glass bottle landscape, purple galaxy bottle,'\n# we could also add the CFG, steps, sampler, ...\n", + "output config.yaml", + "All outputs generated", + { + "current": true, + "states": { + "true": { + "size": [ + 370, + 370 + ], + "members": { + "config": "customtext" + } + }, + "false": { + "size": [ + 210, + 214 + ], + "members": {} + } + } + } + ], + "color": "#232", + "bgcolor": "#353" + } + ], + "links": [ + [ + 13, + 5, + 0, + 10, + 3, + "LATENT" + ], + [ + 15, + 10, + 0, + 11, + 0, + "LATENT" + ], + [ + 19, + 12, + 0, + 10, + 1, + "CONDITIONING" + ], + [ + 21, + 13, + 0, + 10, + 2, + "CONDITIONING" + ], + [ + 25, + 14, + 2, + 11, + 1, + "VAE" + ], + [ + 26, + 14, + 0, + 15, + 0, + "MODEL" + ], + [ + 27, + 14, + 1, + 15, + 1, + "CLIP" + ], + [ + 28, + 15, + 1, + 12, + 0, + "CLIP" + ], + [ + 29, + 15, + 1, + 13, + 0, + "CLIP" + ], + [ + 30, + 15, + 0, + 10, + 0, + "MODEL" + ], + [ + 31, + 11, + 0, + 17, + 1, + "IMAGE" + ], + [ + 32, + 17, + 0, + 18, + 0, + "IMAGE" + ], + [ + 33, + 17, + 1, + 19, + 0, + "IMAGE" + ], + [ + 36, + 16, + 0, + 17, + 0, + "XY_PLOT_DATA" + ], + [ + 38, + 16, + 1, + 23, + 1, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 39, + 23, + 0, + 24, + 0, + "*" + ], + [ + 40, + 24, + 0, + 15, + 2, + "COMBO" + ], + [ + 42, + 16, + 0, + 26, + 0, + "XY_PLOT_DATA" + ], + [ + 43, + 26, + 0, + 27, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 44, + 26, + 1, + 27, + 1, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 45, + 25, + 0, + 28, + 0, + "STRING" + ], + [ + 46, + 27, + 0, + 29, + 0, + "STRING" + ], + [ + 47, + 28, + 0, + 17, + 3, + "PLOT_CONFIG_HF" + ], + [ + 48, + 29, + 0, + 17, + 4, + "PLOT_CONFIG_HF" + ], + [ + 49, + 16, + 2, + 10, + 4, + "INT" + ], + [ + 56, + 31, + 0, + 25, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 57, + 31, + 0, + 23, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 58, + 31, + 1, + 16, + 0, + "LIST" + ], + [ + 59, + 31, + 2, + 16, + 1, + "LIST" + ], + [ + 60, + 31, + 3, + 12, + 1, + "STRING" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1.3310000000000004, + "offset": [ + 325.95838585292665, + 254.81689356740935 + ] + }, + "node_versions": { + "comfy-core": "0.3.10", + "ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).png b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).png new file mode 100644 index 0000000..f84e368 Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds (with Output Config).png differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.json b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.json new file mode 100644 index 0000000..07aec77 --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.json @@ -0,0 +1,1253 @@ +{ + "last_node_id": 30, + "last_link_id": 49, + "nodes": [ + { + "id": 10, + "type": "KSampler", + "pos": [ + 860, + 190 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 30 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 19 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 21 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 13 + }, + { + "name": "seed", + "type": "INT", + "link": 49, + "widget": { + "name": "seed" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 15 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 12, + "type": "CLIPTextEncode", + "pos": [ + 420, + 190 + ], + "size": [ + 400, + 150 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 28 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 19 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "beautiful scenery nature glass bottle landscape, , purple galaxy bottle," + ] + }, + { + "id": 13, + "type": "CLIPTextEncode", + "pos": [ + 420, + 380 + ], + "size": [ + 400, + 120 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 29 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 21 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ] + }, + { + "id": 5, + "type": "EmptyLatentImage", + "pos": [ + 473, + 609 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 13 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [ + 1216, + 832, + 1 + ] + }, + { + "id": 14, + "type": "CheckpointLoaderSimple", + "pos": [ + 20, + 350 + ], + "size": [ + 320, + 98 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 26 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 27 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 25 + ] + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "sd_xl_base_1.0.safetensors" + ] + }, + { + "id": 15, + "type": "LoraLoader", + "pos": [ + 30, + 500 + ], + "size": [ + 310, + 126 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 26 + }, + { + "name": "clip", + "type": "CLIP", + "link": 27 + }, + { + "name": "lora_name", + "type": "COMBO", + "link": 40, + "widget": { + "name": "lora_name" + } + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 30 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 28, + 29 + ], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": [ + "SDXLHighDetail_v6-000005.safetensors", + 1, + 1 + ] + }, + { + "id": 18, + "type": "PreviewImage", + "pos": [ + 1850, + 170 + ], + "size": [ + 210, + 26 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 32 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 11, + "type": "VAEDecode", + "pos": [ + 1210, + 190 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 15 + }, + { + "name": "vae", + "type": "VAE", + "link": 25 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 31 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 19, + "type": "PreviewImage", + "pos": [ + 1500, + 430 + ], + "size": [ + 210, + 26 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 33 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 21, + "type": "ListFromString", + "pos": [ + -130, + -90 + ], + "size": [ + 230, + 126 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "list", + "type": "LIST", + "links": [ + 34 + ], + "slot_index": 0, + "shape": 6 + }, + { + "name": "count", + "type": "INT", + "links": null + } + ], + "properties": { + "Node name for S&R": "ListFromString" + }, + "widgets_values": [ + "80, 90, 100", + ",", + "disabled" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 22, + "type": "ListFromMultiline", + "pos": [ + -130, + 90 + ], + "size": [ + 230, + 200 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "list", + "type": "LIST", + "links": [ + 35 + ], + "slot_index": 0, + "shape": 6 + }, + { + "name": "count", + "type": "INT", + "links": null + } + ], + "properties": { + "Node name for S&R": "ListFromMultiline" + }, + "widgets_values": [ + 0, + true, + "integer", + "1041687666075194\n668849508521090\n1038846581112800\n" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 23, + "type": "FormatString", + "pos": [ + 180, + 50 + ], + "size": [ + 210, + 98 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 37, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 38, + "label": "arg1" + }, + { + "name": "arg2", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 39 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "{arg0}-{arg1:0>6}.safetensors" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 24, + "type": "ConvertToAny", + "pos": [ + 430, + 50 + ], + "size": [ + 168, + 26 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "*", + "link": 39 + } + ], + "outputs": [ + { + "name": "value_any", + "type": "*", + "links": [ + 40 + ], + "slot_index": 0, + "label": "value (Any)" + } + ], + "properties": { + "Node name for S&R": "ConvertToAny" + }, + "widgets_values": [], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 20, + "type": "InputString", + "pos": [ + -130, + -210 + ], + "size": [ + 230, + 60 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "string", + "type": "STRING", + "links": [ + 37, + 41 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "InputString" + }, + "widgets_values": [ + "mylora" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 26, + "type": "XYPlotDataSplit", + "pos": [ + 700, + -140 + ], + "size": [ + 211.60000610351562, + 70 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "link": 42, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + } + ], + "outputs": [ + { + "name": "current_page", + "type": "INT", + "links": [ + 43 + ], + "slot_index": 0, + "label": "current page" + }, + { + "name": "total_pages", + "type": "INT", + "links": [ + 44 + ], + "slot_index": 1, + "label": "total pages" + }, + { + "name": "complete", + "type": "BOOLEAN", + "links": null, + "label": "complete?" + } + ], + "properties": { + "Node name for S&R": "XYPlotDataSplit" + }, + "widgets_values": [], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 27, + "type": "FormatString", + "pos": [ + 1010, + -140 + ], + "size": [ + 210, + 98 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 43, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 44, + "label": "arg1" + }, + { + "name": "arg2", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 46 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "page {arg0} / {arg1}" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 25, + "type": "FormatString", + "pos": [ + 530, + -280 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "arg0", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": 41, + "label": "arg0" + }, + { + "name": "arg1", + "type": "STRING,INT,FLOAT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "name": "formatted", + "type": "STRING", + "links": [ + 45 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "FormatString" + }, + "widgets_values": [ + "LoRA testing: {arg0}" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 28, + "type": "PlotConfigHF", + "pos": [ + 1350, + -400 + ], + "size": [ + 295.6000061035156, + 202 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "text_center", + "type": "STRING", + "link": 45, + "widget": { + "name": "text_center" + } + } + ], + "outputs": [ + { + "name": "plot_config_hf", + "type": "PLOT_CONFIG_HF", + "links": [ + 47 + ], + "slot_index": 0, + "label": "config: header / footer" + } + ], + "properties": { + "Node name for S&R": "PlotConfigHF" + }, + "widgets_values": [ + "", + "", + "", + "#aaa", + "Roboto-Bold.ttf", + 60, + "#222", + 30 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 16, + "type": "XYPlotQueue", + "pos": [ + 180, + -160 + ], + "size": [ + 315, + 146 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "dim1", + "type": "LIST", + "link": 34, + "shape": 6 + }, + { + "name": "dim2", + "type": "LIST", + "link": 35, + "shape": 6, + "label": "dim2 (opt)" + } + ], + "outputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "links": [ + 36, + 42 + ], + "slot_index": 0, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + }, + { + "name": "dim1_value", + "type": "*", + "links": [ + 38 + ], + "slot_index": 1, + "label": "dim1 value" + }, + { + "name": "dim2_value", + "type": "*", + "links": [ + 49 + ], + "slot_index": 2, + "label": "dim2 value" + } + ], + "properties": { + "Node name for S&R": "XYPlotQueue" + }, + "widgets_values": [ + 0, + 4, + 0 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 17, + "type": "XYPlotRender", + "pos": [ + 1450, + 170 + ], + "size": [ + 315, + 186 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "link": 36, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + }, + { + "name": "image", + "type": "IMAGE", + "link": 31 + }, + { + "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": 47, + "shape": 7, + "label": "config: header (opt)" + }, + { + "name": "plot_config_footer", + "type": "PLOT_CONFIG_HF", + "link": 48, + "shape": 7, + "label": "config: footer (opt)" + } + ], + "outputs": [ + { + "name": "grid", + "type": "IMAGE", + "links": [ + 32 + ], + "slot_index": 0 + }, + { + "name": "image", + "type": "IMAGE", + "links": [ + 33 + ], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "XYPlotRender" + }, + "widgets_values": [ + "epoch:\\n{dim1}", + "{dim2}", + true + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 29, + "type": "PlotConfigHF", + "pos": [ + 1350, + -140 + ], + "size": [ + 300, + 202 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "text_right", + "type": "STRING", + "link": 46, + "widget": { + "name": "text_right" + } + } + ], + "outputs": [ + { + "name": "plot_config_hf", + "type": "PLOT_CONFIG_HF", + "links": [ + 48 + ], + "slot_index": 0, + "label": "config: header / footer" + } + ], + "properties": { + "Node name for S&R": "PlotConfigHF" + }, + "widgets_values": [ + "made with ComfyLab", + "", + "", + "transparent", + "Roboto-Italic.ttf", + 40, + "#888", + 30 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + } + ], + "links": [ + [ + 13, + 5, + 0, + 10, + 3, + "LATENT" + ], + [ + 15, + 10, + 0, + 11, + 0, + "LATENT" + ], + [ + 19, + 12, + 0, + 10, + 1, + "CONDITIONING" + ], + [ + 21, + 13, + 0, + 10, + 2, + "CONDITIONING" + ], + [ + 25, + 14, + 2, + 11, + 1, + "VAE" + ], + [ + 26, + 14, + 0, + 15, + 0, + "MODEL" + ], + [ + 27, + 14, + 1, + 15, + 1, + "CLIP" + ], + [ + 28, + 15, + 1, + 12, + 0, + "CLIP" + ], + [ + 29, + 15, + 1, + 13, + 0, + "CLIP" + ], + [ + 30, + 15, + 0, + 10, + 0, + "MODEL" + ], + [ + 31, + 11, + 0, + 17, + 1, + "IMAGE" + ], + [ + 32, + 17, + 0, + 18, + 0, + "IMAGE" + ], + [ + 33, + 17, + 1, + 19, + 0, + "IMAGE" + ], + [ + 34, + 21, + 0, + 16, + 0, + "LIST" + ], + [ + 35, + 22, + 0, + 16, + 1, + "LIST" + ], + [ + 36, + 16, + 0, + 17, + 0, + "XY_PLOT_DATA" + ], + [ + 37, + 20, + 0, + 23, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 38, + 16, + 1, + 23, + 1, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 39, + 23, + 0, + 24, + 0, + "*" + ], + [ + 40, + 24, + 0, + 15, + 2, + "COMBO" + ], + [ + 41, + 20, + 0, + 25, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 42, + 16, + 0, + 26, + 0, + "XY_PLOT_DATA" + ], + [ + 43, + 26, + 0, + 27, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 44, + 26, + 1, + 27, + 1, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 45, + 25, + 0, + 28, + 0, + "STRING" + ], + [ + 46, + 27, + 0, + 29, + 0, + "STRING" + ], + [ + 47, + 28, + 0, + 17, + 3, + "PLOT_CONFIG_HF" + ], + [ + 48, + 29, + 0, + 17, + 4, + "PLOT_CONFIG_HF" + ], + [ + 49, + 16, + 2, + 10, + 4, + "INT" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1.3310000000000004, + "offset": [ + 208.00196211138075, + 387.0482985260866 + ] + }, + "node_versions": { + "comfy-core": "0.3.10", + "ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.png b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.png new file mode 100644 index 0000000..678e4f7 Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/LoRA testing - epochs vs fixed seeds.png differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/README.md b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/README.md new file mode 100644 index 0000000..5729c74 --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/README.md @@ -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, ... diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - format lora name.jpg b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - format lora name.jpg new file mode 100644 index 0000000..0697df0 Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - format lora name.jpg differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - input epochs.jpg b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - input epochs.jpg new file mode 100644 index 0000000..4dba17c Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - input epochs.jpg differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - lora prefix.jpg b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - lora prefix.jpg new file mode 100644 index 0000000..f30cbe9 Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - lora prefix.jpg differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - seed list.jpg b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - seed list.jpg new file mode 100644 index 0000000..75ec837 Binary files /dev/null and b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/images/details - seed list.jpg differ diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/output config.yaml b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/output config.yaml new file mode 100644 index 0000000..d5aa1c6 --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/output config.yaml @@ -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, ... diff --git a/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/seed list.txt b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/seed list.txt new file mode 100644 index 0000000..cc72239 --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/Epochs vs Seeds/seed list.txt @@ -0,0 +1,4 @@ +1061781375610804 +21244582947186 +763371949946658 +573691758095815 \ No newline at end of file diff --git a/wiki/examples/XY Plot/LoRA testing/README.md b/wiki/examples/XY Plot/LoRA testing/README.md new file mode 100644 index 0000000..b132631 --- /dev/null +++ b/wiki/examples/XY Plot/LoRA testing/README.md @@ -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). diff --git a/wiki/examples/XY Plot/README.md b/wiki/examples/XY Plot/README.md new file mode 100644 index 0000000..191e444 --- /dev/null +++ b/wiki/examples/XY Plot/README.md @@ -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). diff --git a/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.json b/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.json index 0259c7f..a5c0e85 100644 --- a/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.json +++ b/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.json @@ -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 diff --git a/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.png b/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.png index 6f8a3ae..a6e2b0d 100644 Binary files a/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.png and b/wiki/tutorials/Output Config/1 - simple (value and label)/workflow.png differ diff --git a/wiki/tutorials/Output Config/2 - more options/workflow.json b/wiki/tutorials/Output Config/2 - more options/workflow.json index 0259c7f..a093d8b 100644 --- a/wiki/tutorials/Output Config/2 - more options/workflow.json +++ b/wiki/tutorials/Output Config/2 - more options/workflow.json @@ -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 diff --git a/wiki/tutorials/Output Config/2 - more options/workflow.png b/wiki/tutorials/Output Config/2 - more options/workflow.png index 6f8a3ae..972295c 100644 Binary files a/wiki/tutorials/Output Config/2 - more options/workflow.png and b/wiki/tutorials/Output Config/2 - more options/workflow.png differ diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.json b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.json index 45015ee..564aee5 100644 --- a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.json +++ b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.json @@ -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 diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.png b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.png index 1ba4e3e..ce0e15e 100644 Binary files a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.png and b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 1.png differ diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.json b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.json index bf7e6c4..f235136 100644 --- a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.json +++ b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.json @@ -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 diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.png b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.png index 350365f..a5820ab 100644 Binary files a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.png and b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 2.png differ diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.json b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.json index 3ed03e9..4da836e 100644 --- a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.json +++ b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.json @@ -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 diff --git a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.png b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.png index 635450a..a476480 100644 Binary files a/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.png and b/wiki/tutorials/XY Plot/1 - the basics/workflow - part 3.png differ diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.json b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.json index e0b380c..5bae6d8 100644 --- a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.json +++ b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.json @@ -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 diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.png b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.png index 6e3f47e..0189f3b 100644 Binary files a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.png and b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 1.png differ diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.json b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.json index d76ee9b..d144ba9 100644 --- a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.json +++ b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.json @@ -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 diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.png b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.png index 92fbdd1..0292ec5 100644 Binary files a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.png and b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 2.png differ diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.json b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.json index e92fe98..d1cad74 100644 --- a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.json +++ b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.json @@ -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 diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.png b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.png index e643607..3c874a0 100644 Binary files a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.png and b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 3.png differ diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.json b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.json index d776268..21d314e 100644 --- a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.json +++ b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.json @@ -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 diff --git a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.png b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.png index 04854fa..3f425c0 100644 Binary files a/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.png and b/wiki/tutorials/XY Plot/2 - pimp my grid/workflow - part 4.png differ diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/README.md b/wiki/tutorials/XY Plot/3 - advanced techniques/README.md index d50ca3f..f5be11a 100644 --- a/wiki/tutorials/XY Plot/3 - advanced techniques/README.md +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/README.md @@ -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. diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/details/detail - part 3 - output config.jpg b/wiki/tutorials/XY Plot/3 - advanced techniques/details/detail - part 3 - output config.jpg new file mode 100644 index 0000000..95eba2c Binary files /dev/null and b/wiki/tutorials/XY Plot/3 - advanced techniques/details/detail - part 3 - output config.jpg differ diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.json b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.json new file mode 100644 index 0000000..42aac9c --- /dev/null +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.json @@ -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 +} diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.yaml b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.yaml new file mode 100644 index 0000000..8e85a9e --- /dev/null +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part 3.yaml @@ -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 diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part3.json5 b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part3.json5 new file mode 100644 index 0000000..0bcaf87 --- /dev/null +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/output config - part3.json5 @@ -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, +} diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.json b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.json index 0230beb..c402bce 100644 --- a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.json +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.json @@ -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 diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.png b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.png index a0902d7..50d68f5 100644 Binary files a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.png and b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 1.png differ diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.json b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.json index 951269c..fa67c49 100644 --- a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.json +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.json @@ -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 diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.png b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.png index 9b9a4c7..7ca6a62 100644 Binary files a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.png and b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 2.png differ diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.json b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.json new file mode 100644 index 0000000..cb9c9a7 --- /dev/null +++ b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.json @@ -0,0 +1,1048 @@ +{ + "last_node_id": 21, + "last_link_id": 56, + "nodes": [ + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 413, + 389 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 5 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 6 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "text, watermark" + ] + }, + { + "id": 4, + "type": "CheckpointLoaderSimple", + "pos": [ + 26, + 474 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "ckpt_name", + "type": "COMBO", + "link": 21, + "widget": { + "name": "ckpt_name" + } + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 1 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 3, + 5 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 8 + ], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "v1-5-pruned-emaonly.ckpt" + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 1209, + 188 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 8 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 11 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 11, + "type": "PreviewImage", + "pos": [ + 1480, + 420 + ], + "size": [ + 260, + 246 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 415, + 186 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + }, + { + "name": "text", + "type": "STRING", + "link": 50, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 4 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "beautiful scenery nature glass bottle landscape, , purple galaxy bottle," + ] + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 863, + 186 + ], + "size": [ + 315, + 474 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 4 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 2 + }, + { + "name": "seed", + "type": "INT", + "link": 22, + "widget": { + "name": "seed" + } + }, + { + "name": "steps", + "type": "INT", + "link": 51, + "widget": { + "name": "steps" + } + }, + { + "name": "cfg", + "type": "FLOAT", + "link": 52, + "widget": { + "name": "cfg" + } + }, + { + "name": "sampler_name", + "type": "COMBO", + "link": 53, + "widget": { + "name": "sampler_name" + } + }, + { + "name": "scheduler", + "type": "COMBO", + "link": 54, + "widget": { + "name": "scheduler" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 7 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 270749964709061, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 5, + "type": "EmptyLatentImage", + "pos": [ + 473, + 609 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "width", + "type": "INT", + "link": 55, + "widget": { + "name": "width" + } + }, + { + "name": "height", + "type": "INT", + "link": 56, + "widget": { + "name": "height" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 2 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [ + 1024, + 1024, + 1 + ] + }, + { + "id": 10, + "type": "PreviewImage", + "pos": [ + 1820, + 180 + ], + "size": [ + 440, + 320 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 12 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + }, + { + "id": 12, + "type": "XYPlotRender", + "pos": [ + 1450, + 170 + ], + "size": [ + 315, + 186 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "xy_plot_data", + "type": "XY_PLOT_DATA", + "link": 14, + "label": "XY plot data", + "color_off": "#52395B", + "color_on": "#9521c3" + }, + { + "name": "image", + "type": "IMAGE", + "link": 11 + }, + { + "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": [ + 12 + ], + "slot_index": 0 + }, + { + "name": "image", + "type": "IMAGE", + "links": [ + 13 + ], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "XYPlotRender" + }, + "widgets_values": [ + "{dim1}", + "{dim2}", + true + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 20, + "type": "FormatString", + "pos": [ + 470, + -100 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 3, + "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": 4, + "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": 13, + "type": "XYPlotQueue", + "pos": [ + 110, + -120 + ], + "size": [ + 315, + 146 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "dim1", + "type": "LIST", + "link": 48, + "shape": 6 + }, + { + "name": "dim2", + "type": "LIST", + "link": 49, + "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": [ + 19 + ], + "slot_index": 1, + "label": "dim1 value" + }, + { + "name": "dim2_value", + "type": "*", + "links": [ + 22 + ], + "slot_index": 2, + "label": "dim2 value" + } + ], + "properties": { + "Node name for S&R": "XYPlotQueue" + }, + "widgets_values": [ + 0, + 0, + 0 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 21, + "type": "OutputConfigLocal", + "pos": [ + -380, + -120 + ], + "size": [ + 360, + 550 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "checkpoints", + "type": "LIST", + "links": [ + 48 + ], + "shape": 6 + }, + { + "name": "seeds", + "type": "LIST", + "links": [ + 49 + ], + "shape": 6 + }, + { + "name": "prompt", + "type": "STRING", + "links": [ + 50 + ] + }, + { + "name": "steps", + "type": [ + "INT", + "FLOAT" + ], + "links": [ + 51 + ] + }, + { + "name": "cfg", + "type": [ + "INT", + "FLOAT" + ], + "links": [ + 52 + ], + "label": "CFG" + }, + { + "name": "sampler", + "type": "*", + "links": [ + 53 + ] + }, + { + "name": "scheduler", + "type": "*", + "links": [ + 54 + ] + }, + { + "name": "width", + "type": [ + "INT", + "FLOAT" + ], + "links": [ + 55 + ] + }, + { + "name": "height", + "type": [ + "INT", + "FLOAT" + ], + "links": [ + 56 + ] + } + ], + "properties": { + "Node name for S&R": "OutputConfigLocal" + }, + "widgets_values": [ + { + "checkpoints": { + "value": [ + "sd_xl_base_1.0", + "Juggernaut-XI-byRunDiffusion" + ], + "type": "LIST", + "extra_info": { + "shape": 6 + } + }, + "seeds": { + "value": [ + 156680208700286, + 715168739510668, + 568208062071311 + ], + "type": "LIST", + "extra_info": { + "shape": 6 + } + }, + "prompt": { + "value": "beautiful scenery nature glass bottle landscape, purple galaxy bottle,", + "type": "STRING", + "extra_info": {} + }, + "steps": { + "value": 20, + "type": [ + "INT", + "FLOAT" + ], + "extra_info": {} + }, + "cfg": { + "value": 8, + "type": [ + "INT", + "FLOAT" + ], + "extra_info": { + "label": "CFG" + } + }, + "sampler": { + "value": "euler", + "type": "*", + "extra_info": {} + }, + "scheduler": { + "value": "normal", + "type": "*", + "extra_info": {} + }, + "width": { + "value": 1024, + "type": [ + "INT", + "FLOAT" + ], + "extra_info": {} + }, + "height": { + "value": 1024, + "type": [ + "INT", + "FLOAT" + ], + "extra_info": {} + } + }, + 0, + "in a popup", + true, + "# Tutorials / XY Plot / 3 - Advanced techniques / Part 3\n# more details about the config format in the Output Config node reference and tutorials\ncheckpoints:\n value:\n - sd_xl_base_1.0\n - Juggernaut-XI-byRunDiffusion\nseeds:\n value: [156680208700286, 715168739510668, 568208062071311]\nprompt: 'beautiful scenery nature glass bottle landscape, purple galaxy bottle,'\nsteps: 20 # we can define the value directly\ncfg:\n value: 8.0\n label: 'CFG' # custom label\nsampler:\n value: euler\n type: '*' # required as widget is a combo (pre-defined list)\nscheduler:\n value: normal\n type: '*' # required as widget is a combo (pre-defined list)\nwidth: 1024\nheight: 1024\n", + "output config - part 3.yaml", + "All outputs generated", + { + "current": true, + "states": { + "true": { + "size": [ + 360, + 550 + ], + "members": { + "config": "customtext" + } + }, + "false": { + "size": [ + 210, + 314 + ], + "members": {} + } + } + } + ], + "color": "#232", + "bgcolor": "#353" + } + ], + "links": [ + [ + 1, + 4, + 0, + 3, + 0, + "MODEL" + ], + [ + 2, + 5, + 0, + 3, + 3, + "LATENT" + ], + [ + 3, + 4, + 1, + 6, + 0, + "CLIP" + ], + [ + 4, + 6, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 5, + 4, + 1, + 7, + 0, + "CLIP" + ], + [ + 6, + 7, + 0, + 3, + 2, + "CONDITIONING" + ], + [ + 7, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 8, + 4, + 2, + 8, + 1, + "VAE" + ], + [ + 11, + 8, + 0, + 12, + 1, + "IMAGE" + ], + [ + 12, + 12, + 0, + 10, + 0, + "IMAGE" + ], + [ + 13, + 12, + 1, + 11, + 0, + "IMAGE" + ], + [ + 14, + 13, + 0, + 12, + 0, + "XY_PLOT_DATA" + ], + [ + 19, + 13, + 1, + 20, + 0, + "STRING,INT,FLOAT,BOOLEAN" + ], + [ + 20, + 20, + 0, + 19, + 0, + "*" + ], + [ + 21, + 19, + 0, + 4, + 0, + "COMBO" + ], + [ + 22, + 13, + 2, + 3, + 4, + "INT" + ], + [ + 48, + 21, + 0, + 13, + 0, + "LIST" + ], + [ + 49, + 21, + 1, + 13, + 1, + "LIST" + ], + [ + 50, + 21, + 2, + 6, + 1, + "STRING" + ], + [ + 51, + 21, + 3, + 3, + 5, + "INT" + ], + [ + 52, + 21, + 4, + 3, + 6, + "FLOAT" + ], + [ + 53, + 21, + 5, + 3, + 7, + "COMBO" + ], + [ + 54, + 21, + 6, + 3, + 8, + "COMBO" + ], + [ + 55, + 21, + 7, + 5, + 0, + "INT" + ], + [ + 56, + 21, + 8, + 5, + 1, + "INT" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1.2100000000000006, + "offset": [ + 445.623156995248, + 152.2253681914311 + ] + }, + "node_versions": { + "comfy-core": "0.3.10", + "ComfyLab-Pack": "1985411cc05fb8b6faa361d2fc18c3d867e9bdb5" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.png b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.png new file mode 100644 index 0000000..0060bbc Binary files /dev/null and b/wiki/tutorials/XY Plot/3 - advanced techniques/workflow - part 3.png differ diff --git a/wiki/tutorials/XY Plot/README.md b/wiki/tutorials/XY Plot/README.md index 0273247..4899ac6 100644 --- a/wiki/tutorials/XY Plot/README.md +++ b/wiki/tutorials/XY Plot/README.md @@ -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