Enable a single selector to be connected to a switch
This commit is contained in:
@@ -8,7 +8,9 @@ Check ComfyUI here: https://github.com/comfyanonymous/ComfyUI
|
||||
|
||||
These nodes allow setting up interactive workflows.
|
||||
|
||||
Several "Interactive Selector" nodes may be plugged to an "Interactive Switch". Selector nodes contain a button that the user can press to select that path of execution and continue execution.
|
||||
Several "Interactive Selector" nodes may be plugged into an "Interactive Switch". Selector nodes contain a button that the user can press to select that path of execution and continue execution.
|
||||
|
||||
When a single "Interactive Selector" node is plugged into an "Interactive Switch" node, it can be used to disable or enable paths of the workflow.
|
||||
|
||||
The simple versions of the nodes show and pass an image. The "with parameters" versions of the nodes show and pass the image (optional), but also passes a latent, mask, string, int, and float.
|
||||
|
||||
@@ -54,6 +56,14 @@ Download the example workflow from [here](interactive_example_workflow_full.json
|
||||
|
||||

|
||||
|
||||
## Example (Low-step preview before continuing sampling)
|
||||
|
||||
This example samples to 5 steps, then uses a single interactive selector to show a preview and block further sampling. If the results are satisfactory, the selector can be triggered to continue the sampling.
|
||||
|
||||
Download the example workflow from [here](interactive_example_workflow_preview.json) or drag and drop the screenshot into ComfyUI.
|
||||
|
||||

|
||||
|
||||
# Installation Instructions
|
||||
|
||||
Install via ComfyUI-Manager or go to the custom_nodes/ directory and run ```$ git clone https://github.com/lquesada/ComfyUI-Interactive.git```
|
||||
@@ -66,6 +76,8 @@ Be aware that some nodes may not interact well with these interactive nodes. For
|
||||
- Custom-Scripts "String Function" node: this node seems to have an issue when showing the concatenated text that makes it necessary to retrigger execution of some nodes. This slows down interactive workflows. Instead, use the "String Append" node included in this repository.
|
||||
|
||||
# Changelog
|
||||
## 2024-11-15
|
||||
- Enabled a single selector to be connected to a switch to block paths in the workflow, and corresponding example.
|
||||
## 2024-11-14
|
||||
- Initial commit.
|
||||
|
||||
|
||||
@@ -0,0 +1,956 @@
|
||||
{
|
||||
"last_node_id": 27,
|
||||
"last_link_id": 46,
|
||||
"nodes": [
|
||||
{
|
||||
"id": 4,
|
||||
"type": "CheckpointLoaderSimple",
|
||||
"pos": {
|
||||
"0": 40,
|
||||
"1": 100
|
||||
},
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 98
|
||||
},
|
||||
"flags": {},
|
||||
"order": 0,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [
|
||||
1,
|
||||
20
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "CLIP",
|
||||
"type": "CLIP",
|
||||
"links": [
|
||||
2,
|
||||
9
|
||||
],
|
||||
"slot_index": 1
|
||||
},
|
||||
{
|
||||
"name": "VAE",
|
||||
"type": "VAE",
|
||||
"links": [
|
||||
12,
|
||||
24
|
||||
],
|
||||
"slot_index": 2
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CheckpointLoaderSimple"
|
||||
},
|
||||
"widgets_values": [
|
||||
"sd1.5/dreamshaper_8.safetensors"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"type": "CLIPTextEncode",
|
||||
"pos": {
|
||||
"0": 150,
|
||||
"1": 680
|
||||
},
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 200
|
||||
},
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "clip",
|
||||
"type": "CLIP",
|
||||
"link": 9
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "CONDITIONING",
|
||||
"type": "CONDITIONING",
|
||||
"links": [
|
||||
10,
|
||||
22
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CLIPTextEncode"
|
||||
},
|
||||
"widgets_values": [
|
||||
"ugly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"type": "EmptyLatentImage",
|
||||
"pos": {
|
||||
"0": 160,
|
||||
"1": 1310
|
||||
},
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 106
|
||||
},
|
||||
"flags": {},
|
||||
"order": 1,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
30
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "EmptyLatentImage"
|
||||
},
|
||||
"widgets_values": [
|
||||
512,
|
||||
512,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"type": "CLIPTextEncode",
|
||||
"pos": {
|
||||
"0": 160,
|
||||
"1": 400
|
||||
},
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 200
|
||||
},
|
||||
"flags": {},
|
||||
"order": 5,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "clip",
|
||||
"type": "CLIP",
|
||||
"link": 2
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "CONDITIONING",
|
||||
"type": "CONDITIONING",
|
||||
"links": [
|
||||
11,
|
||||
21
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CLIPTextEncode"
|
||||
},
|
||||
"widgets_values": [
|
||||
"dog eating chocolate ice cream"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"type": "VAEDecode",
|
||||
"pos": {
|
||||
"0": 1790,
|
||||
"1": 1160
|
||||
},
|
||||
"size": {
|
||||
"0": 210,
|
||||
"1": 46
|
||||
},
|
||||
"flags": {},
|
||||
"order": 12,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "samples",
|
||||
"type": "LATENT",
|
||||
"link": 23
|
||||
},
|
||||
{
|
||||
"name": "vae",
|
||||
"type": "VAE",
|
||||
"link": 24
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
25
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "VAEDecode"
|
||||
},
|
||||
"widgets_values": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"type": "KSamplerAdvanced",
|
||||
"pos": {
|
||||
"0": 640,
|
||||
"1": 570
|
||||
},
|
||||
"size": {
|
||||
"0": 320,
|
||||
"1": 540
|
||||
},
|
||||
"flags": {},
|
||||
"order": 7,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "model",
|
||||
"type": "MODEL",
|
||||
"link": 1
|
||||
},
|
||||
{
|
||||
"name": "positive",
|
||||
"type": "CONDITIONING",
|
||||
"link": 11
|
||||
},
|
||||
{
|
||||
"name": "negative",
|
||||
"type": "CONDITIONING",
|
||||
"link": 10
|
||||
},
|
||||
{
|
||||
"name": "latent_image",
|
||||
"type": "LATENT",
|
||||
"link": 30
|
||||
},
|
||||
{
|
||||
"name": "end_at_step",
|
||||
"type": "INT",
|
||||
"link": 6,
|
||||
"widget": {
|
||||
"name": "end_at_step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "steps",
|
||||
"type": "INT",
|
||||
"link": 3,
|
||||
"widget": {
|
||||
"name": "steps"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noise_seed",
|
||||
"type": "INT",
|
||||
"link": 31,
|
||||
"widget": {
|
||||
"name": "noise_seed"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
16,
|
||||
37
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "KSamplerAdvanced"
|
||||
},
|
||||
"widgets_values": [
|
||||
"enable",
|
||||
1005990193697545,
|
||||
"randomize",
|
||||
20,
|
||||
8,
|
||||
"euler",
|
||||
"normal",
|
||||
0,
|
||||
10000,
|
||||
"disable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"type": "VAEDecode",
|
||||
"pos": {
|
||||
"0": 680,
|
||||
"1": 1200
|
||||
},
|
||||
"size": {
|
||||
"0": 210,
|
||||
"1": 46
|
||||
},
|
||||
"flags": {},
|
||||
"order": 8,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "samples",
|
||||
"type": "LATENT",
|
||||
"link": 16
|
||||
},
|
||||
{
|
||||
"name": "vae",
|
||||
"type": "VAE",
|
||||
"link": 12
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
36
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "VAEDecode"
|
||||
},
|
||||
"widgets_values": []
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"type": "KSamplerAdvanced",
|
||||
"pos": {
|
||||
"0": 1740,
|
||||
"1": 600
|
||||
},
|
||||
"size": {
|
||||
"0": 320,
|
||||
"1": 510
|
||||
},
|
||||
"flags": {},
|
||||
"order": 11,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "model",
|
||||
"type": "MODEL",
|
||||
"link": 20
|
||||
},
|
||||
{
|
||||
"name": "positive",
|
||||
"type": "CONDITIONING",
|
||||
"link": 21
|
||||
},
|
||||
{
|
||||
"name": "negative",
|
||||
"type": "CONDITIONING",
|
||||
"link": 22
|
||||
},
|
||||
{
|
||||
"name": "latent_image",
|
||||
"type": "LATENT",
|
||||
"link": 39
|
||||
},
|
||||
{
|
||||
"name": "start_at_step",
|
||||
"type": "INT",
|
||||
"link": 29,
|
||||
"widget": {
|
||||
"name": "start_at_step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "steps",
|
||||
"type": "INT",
|
||||
"link": 4,
|
||||
"widget": {
|
||||
"name": "steps"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noise_seed",
|
||||
"type": "INT",
|
||||
"link": 32,
|
||||
"widget": {
|
||||
"name": "noise_seed"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
23
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "KSamplerAdvanced"
|
||||
},
|
||||
"widgets_values": [
|
||||
"enable",
|
||||
755308653863847,
|
||||
"randomize",
|
||||
20,
|
||||
8,
|
||||
"euler",
|
||||
"normal",
|
||||
0,
|
||||
10000,
|
||||
"disable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"type": "InteractiveSwitchWithParameters",
|
||||
"pos": {
|
||||
"0": 1360,
|
||||
"1": 760
|
||||
},
|
||||
"size": {
|
||||
"0": 302.3999938964844,
|
||||
"1": 170
|
||||
},
|
||||
"flags": {},
|
||||
"order": 10,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "selector1",
|
||||
"type": "interactive_images",
|
||||
"link": 38,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector2",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector3",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector4",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector5",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector6",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector7",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "selector8",
|
||||
"type": "interactive_images",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "images",
|
||||
"type": "IMAGE",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "parameter_latent",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
39
|
||||
],
|
||||
"slot_index": 1
|
||||
},
|
||||
{
|
||||
"name": "parameter_mask",
|
||||
"type": "MASK",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "parameter_string",
|
||||
"type": "STRING",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "parameter_int",
|
||||
"type": "INT",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "parameter_float",
|
||||
"type": "FLOAT",
|
||||
"links": null
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveSwitchWithParameters"
|
||||
},
|
||||
"widgets_values": []
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"type": "InteractiveSeed",
|
||||
"pos": {
|
||||
"0": 980,
|
||||
"1": 400
|
||||
},
|
||||
"size": {
|
||||
"0": 210,
|
||||
"1": 82
|
||||
},
|
||||
"flags": {},
|
||||
"order": 2,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "seed_value",
|
||||
"type": "INT",
|
||||
"links": [
|
||||
31,
|
||||
32
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveSeed"
|
||||
},
|
||||
"widgets_values": [
|
||||
203209234455398,
|
||||
""
|
||||
],
|
||||
"color": "#444444",
|
||||
"bgcolor": "#444444"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"type": "InteractiveInteger",
|
||||
"pos": {
|
||||
"0": 160,
|
||||
"1": 1150
|
||||
},
|
||||
"size": {
|
||||
"0": 344.3999938964844,
|
||||
"1": 58
|
||||
},
|
||||
"flags": {},
|
||||
"order": 3,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "integer",
|
||||
"type": "INT",
|
||||
"links": [
|
||||
6,
|
||||
29
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"title": "Integer (for Interactive) - preview_steps",
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveInteger"
|
||||
},
|
||||
"widgets_values": [
|
||||
5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"type": "InteractiveInteger",
|
||||
"pos": {
|
||||
"0": 160,
|
||||
"1": 1030
|
||||
},
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 58
|
||||
},
|
||||
"flags": {},
|
||||
"order": 4,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "integer",
|
||||
"type": "INT",
|
||||
"links": [
|
||||
3,
|
||||
4
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"title": "Integer (for Interactive) - max_steps",
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveInteger"
|
||||
},
|
||||
"widgets_values": [
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"type": "InteractiveSave",
|
||||
"pos": {
|
||||
"0": 2160,
|
||||
"1": 640
|
||||
},
|
||||
"size": {
|
||||
"0": 430,
|
||||
"1": 510
|
||||
},
|
||||
"flags": {},
|
||||
"order": 13,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "images",
|
||||
"type": "IMAGE",
|
||||
"link": 25
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveSave"
|
||||
},
|
||||
"widgets_values": [
|
||||
"ComfyUI",
|
||||
0,
|
||||
""
|
||||
],
|
||||
"color": "#444444",
|
||||
"bgcolor": "#444444"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"type": "InteractiveSelectorWithParameters",
|
||||
"pos": {
|
||||
"0": 1000,
|
||||
"1": 760
|
||||
},
|
||||
"size": [
|
||||
320,
|
||||
390
|
||||
],
|
||||
"flags": {},
|
||||
"order": 9,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "images",
|
||||
"type": "IMAGE",
|
||||
"link": 36,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "parameter_latent",
|
||||
"type": "LATENT",
|
||||
"link": 37,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "parameter_mask",
|
||||
"type": "MASK",
|
||||
"link": null,
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "parameter_string",
|
||||
"type": "STRING",
|
||||
"link": null,
|
||||
"widget": {
|
||||
"name": "parameter_string"
|
||||
},
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "parameter_int",
|
||||
"type": "INT",
|
||||
"link": null,
|
||||
"widget": {
|
||||
"name": "parameter_int"
|
||||
},
|
||||
"shape": 7
|
||||
},
|
||||
{
|
||||
"name": "parameter_float",
|
||||
"type": "FLOAT",
|
||||
"link": null,
|
||||
"widget": {
|
||||
"name": "parameter_float"
|
||||
},
|
||||
"shape": 7
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "selector",
|
||||
"type": "interactive_images",
|
||||
"links": [
|
||||
38
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "InteractiveSelectorWithParameters"
|
||||
},
|
||||
"widgets_values": [
|
||||
true,
|
||||
false,
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
""
|
||||
],
|
||||
"color": "#555533",
|
||||
"bgcolor": "#555533"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
[
|
||||
1,
|
||||
4,
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
"MODEL"
|
||||
],
|
||||
[
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
5,
|
||||
0,
|
||||
"CLIP"
|
||||
],
|
||||
[
|
||||
3,
|
||||
7,
|
||||
0,
|
||||
3,
|
||||
5,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
4,
|
||||
7,
|
||||
0,
|
||||
1,
|
||||
5,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
6,
|
||||
8,
|
||||
0,
|
||||
3,
|
||||
4,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
9,
|
||||
4,
|
||||
1,
|
||||
9,
|
||||
0,
|
||||
"CLIP"
|
||||
],
|
||||
[
|
||||
10,
|
||||
9,
|
||||
0,
|
||||
3,
|
||||
2,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
11,
|
||||
5,
|
||||
0,
|
||||
3,
|
||||
1,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
12,
|
||||
4,
|
||||
2,
|
||||
10,
|
||||
1,
|
||||
"VAE"
|
||||
],
|
||||
[
|
||||
16,
|
||||
3,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
20,
|
||||
4,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
"MODEL"
|
||||
],
|
||||
[
|
||||
21,
|
||||
5,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
22,
|
||||
9,
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
23,
|
||||
1,
|
||||
0,
|
||||
13,
|
||||
0,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
24,
|
||||
4,
|
||||
2,
|
||||
13,
|
||||
1,
|
||||
"VAE"
|
||||
],
|
||||
[
|
||||
25,
|
||||
13,
|
||||
0,
|
||||
14,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
29,
|
||||
8,
|
||||
0,
|
||||
1,
|
||||
4,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
30,
|
||||
17,
|
||||
0,
|
||||
3,
|
||||
3,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
31,
|
||||
18,
|
||||
0,
|
||||
3,
|
||||
6,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
32,
|
||||
18,
|
||||
0,
|
||||
1,
|
||||
6,
|
||||
"INT"
|
||||
],
|
||||
[
|
||||
36,
|
||||
10,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
37,
|
||||
3,
|
||||
0,
|
||||
20,
|
||||
1,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
38,
|
||||
20,
|
||||
0,
|
||||
21,
|
||||
0,
|
||||
"interactive_images"
|
||||
],
|
||||
[
|
||||
39,
|
||||
21,
|
||||
1,
|
||||
1,
|
||||
3,
|
||||
"LATENT"
|
||||
]
|
||||
],
|
||||
"groups": [],
|
||||
"config": {},
|
||||
"extra": {
|
||||
"ds": {
|
||||
"scale": 0.7627768444385521,
|
||||
"offset": [
|
||||
87.01878630861555,
|
||||
34.75964141584322
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": 0.4
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
@@ -144,6 +144,13 @@ function updateInteractive() {
|
||||
selector.color = isSelected ? activeColor : inactiveColor;
|
||||
findButtonWidget(selector).name = isSelected ? textDeselect : textSelect;
|
||||
});
|
||||
} else if (selectorInputs.length === 1) {
|
||||
// Only one selector connected, acts as trigger/gate, always mark as selectable now
|
||||
selectorInputs.forEach(selector => {
|
||||
selector.bgcolor = selectColor;
|
||||
selector.color = selectColor;
|
||||
findButtonWidget(selector).name = textSelect;
|
||||
});
|
||||
} else if (!hasBlockedSwitchesBefore(node)) {
|
||||
// No selectors are selected in this switch, and no blocking switches before
|
||||
selectorInputs.forEach(selector => {
|
||||
|
||||
Reference in New Issue
Block a user