Add five useful FLUX workflows
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Flux Union ControlNet
|
||||
|
||||
## Summary
|
||||
|
||||
Control-guided FLUX workflow using Union ControlNet, aimed at steering generation from structural inputs rather than relying only on prompting.
|
||||
|
||||
## Model Family
|
||||
|
||||
- `flux`
|
||||
|
||||
## Status
|
||||
|
||||
- `imported-only`
|
||||
|
||||
## Source
|
||||
|
||||
- Original repo page: <https://huggingface.co/StableDiffusionVN/Flux>
|
||||
- Workflow file: <https://huggingface.co/StableDiffusionVN/Flux/resolve/main/ComfyUI_workflow/Flux_Union_Controlnet.json>
|
||||
- Original publisher: `StableDiffusionVN`
|
||||
- Date imported: `2026-08-08`
|
||||
|
||||
## Developer notes
|
||||
|
||||
- The publisher lists this as one of the included FLUX example workflows in the same repo as their other ComfyUI examples.
|
||||
- Their README specifically points to `ComfyUI-eesahesNodes` for InstantX / Union ControlNet support.
|
||||
- The workflow uses an `AIO_Preprocessor`, so the source expects an installed preprocessor stack as well, not just the loader node.
|
||||
|
||||
## Our notes
|
||||
|
||||
- This is one of the more practically valuable FLUX workflows because structural control tends to matter more than raw prompting once you actually want repeatability.
|
||||
- Good candidate if you care about pose, edges, or scene layout staying closer to plan.
|
||||
- In practice this is the workflow I would keep around when "make it obey the source shape" matters more than style exploration.
|
||||
|
||||
## Required custom nodes
|
||||
|
||||
- `ComfyUI-eesahesNodes` for `InstantX Flux Union ControlNet Loader`
|
||||
- a ControlNet preprocessor pack that provides `AIO_Preprocessor`, commonly `comfyui_controlnet_aux`
|
||||
|
||||
## Built-in / core nodes used
|
||||
|
||||
- `CheckpointLoaderSimple`
|
||||
- `ControlNetApplySD3`
|
||||
- `CLIPTextEncode`
|
||||
- `KSampler`
|
||||
- `LoadImage`
|
||||
- `VAEDecode`
|
||||
|
||||
## Notes
|
||||
|
||||
- Best use: structure-aware FLUX generation, especially when you have edge/depth/pose style guidance.
|
||||
- This is more useful than plain text-to-image because it pushes FLUX into controlled generation rather than prompt-only luck.
|
||||
@@ -0,0 +1,601 @@
|
||||
{
|
||||
"last_node_id": 62,
|
||||
"last_link_id": 158,
|
||||
"nodes": [
|
||||
{
|
||||
"id": 6,
|
||||
"type": "CLIPTextEncode",
|
||||
"pos": [
|
||||
403,
|
||||
148
|
||||
],
|
||||
"size": {
|
||||
"0": 422.84503173828125,
|
||||
"1": 164.31304931640625
|
||||
},
|
||||
"flags": {},
|
||||
"order": 5,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "clip",
|
||||
"type": "CLIP",
|
||||
"link": 156
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "CONDITIONING",
|
||||
"type": "CONDITIONING",
|
||||
"links": [
|
||||
119,
|
||||
145
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"title": "CLIP Text Encode (Positive Prompt)",
|
||||
"properties": {
|
||||
"Node name for S&R": "CLIPTextEncode"
|
||||
},
|
||||
"widgets_values": [
|
||||
"The image features a young woman standing on a sandy beach, with the ocean stretching out into the horizon behind her. She is dressed in a delicate, white spaghetti-strap top adorned with subtle floral patterns, which exudes an aura of simplicity and elegance. Her dark hair is styled in a low bun, accented by two white flowers, which add a touch of natural beauty to her serene appearance. The soft sunlight highlights her refined features, casting gentle shadows and enhancing the luminous quality of her skin. The gentle breeze catching stray strands of her hair contributes to the portrait's overall sense of tranquility and quiet reflection amidst the expansive, unspoiled beachfront. This composition effectively juxtaposes the calm presence of the woman against the vast, dynamic backdrop of the sea and sand."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"type": "VAEDecode",
|
||||
"pos": [
|
||||
1508,
|
||||
163
|
||||
],
|
||||
"size": {
|
||||
"0": 210,
|
||||
"1": 46
|
||||
},
|
||||
"flags": {},
|
||||
"order": 9,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "samples",
|
||||
"type": "LATENT",
|
||||
"link": 143
|
||||
},
|
||||
{
|
||||
"name": "vae",
|
||||
"type": "VAE",
|
||||
"link": 158
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
9
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "VAEDecode"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 51,
|
||||
"type": "KSampler",
|
||||
"pos": [
|
||||
1178,
|
||||
159
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 474
|
||||
},
|
||||
"flags": {},
|
||||
"order": 8,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "model",
|
||||
"type": "MODEL",
|
||||
"link": 155
|
||||
},
|
||||
{
|
||||
"name": "positive",
|
||||
"type": "CONDITIONING",
|
||||
"link": 144
|
||||
},
|
||||
{
|
||||
"name": "negative",
|
||||
"type": "CONDITIONING",
|
||||
"link": 146
|
||||
},
|
||||
{
|
||||
"name": "latent_image",
|
||||
"type": "LATENT",
|
||||
"link": 140
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
143
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "KSampler"
|
||||
},
|
||||
"widgets_values": [
|
||||
723469965151993,
|
||||
"randomize",
|
||||
20,
|
||||
1,
|
||||
"euler",
|
||||
"simple",
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 50,
|
||||
"type": "AIO_Preprocessor",
|
||||
"pos": [
|
||||
495,
|
||||
365
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 82
|
||||
},
|
||||
"flags": {},
|
||||
"order": 4,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "image",
|
||||
"type": "IMAGE",
|
||||
"link": 151
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
136,
|
||||
152
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "AIO_Preprocessor"
|
||||
},
|
||||
"widgets_values": [
|
||||
"DepthAnythingV2Preprocessor",
|
||||
1024
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 59,
|
||||
"type": "PreviewImage",
|
||||
"pos": [
|
||||
849,
|
||||
419
|
||||
],
|
||||
"size": {
|
||||
"0": 295.18359375,
|
||||
"1": 299.61328125
|
||||
},
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "images",
|
||||
"type": "IMAGE",
|
||||
"link": 152
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "PreviewImage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"type": "SaveImage",
|
||||
"pos": [
|
||||
1731,
|
||||
160
|
||||
],
|
||||
"size": {
|
||||
"0": 472.26861572265625,
|
||||
"1": 537.8684692382812
|
||||
},
|
||||
"flags": {},
|
||||
"order": 10,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "images",
|
||||
"type": "IMAGE",
|
||||
"link": 9
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "SaveImage"
|
||||
},
|
||||
"widgets_values": [
|
||||
"ComfyUI"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 52,
|
||||
"type": "EmptyLatentImage",
|
||||
"pos": [
|
||||
493,
|
||||
625
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 106
|
||||
},
|
||||
"flags": {},
|
||||
"order": 0,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [
|
||||
140
|
||||
],
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "EmptyLatentImage"
|
||||
},
|
||||
"widgets_values": [
|
||||
768,
|
||||
1152,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 38,
|
||||
"type": "ControlNetApplySD3",
|
||||
"pos": [
|
||||
841,
|
||||
156
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 186
|
||||
},
|
||||
"flags": {},
|
||||
"order": 7,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "positive",
|
||||
"type": "CONDITIONING",
|
||||
"link": 119
|
||||
},
|
||||
{
|
||||
"name": "negative",
|
||||
"type": "CONDITIONING",
|
||||
"link": 145
|
||||
},
|
||||
{
|
||||
"name": "control_net",
|
||||
"type": "CONTROL_NET",
|
||||
"link": 154
|
||||
},
|
||||
{
|
||||
"name": "vae",
|
||||
"type": "VAE",
|
||||
"link": 157
|
||||
},
|
||||
{
|
||||
"name": "image",
|
||||
"type": "IMAGE",
|
||||
"link": 136
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "positive",
|
||||
"type": "CONDITIONING",
|
||||
"links": [
|
||||
144
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "negative",
|
||||
"type": "CONDITIONING",
|
||||
"links": [
|
||||
146
|
||||
],
|
||||
"slot_index": 1,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "ControlNetApplySD3"
|
||||
},
|
||||
"widgets_values": [
|
||||
0.5,
|
||||
0,
|
||||
0.6
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 58,
|
||||
"type": "LoadImage",
|
||||
"pos": [
|
||||
156,
|
||||
366
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 314
|
||||
},
|
||||
"flags": {},
|
||||
"order": 1,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
151
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "MASK",
|
||||
"type": "MASK",
|
||||
"links": null,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "LoadImage"
|
||||
},
|
||||
"widgets_values": [
|
||||
"Hangkao_10.jpg",
|
||||
"image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 43,
|
||||
"type": "InstantX Flux Union ControlNet Loader",
|
||||
"pos": [
|
||||
497,
|
||||
490
|
||||
],
|
||||
"size": {
|
||||
"0": 310.79998779296875,
|
||||
"1": 87.62651824951172
|
||||
},
|
||||
"flags": {},
|
||||
"order": 2,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "CONTROL_NET",
|
||||
"type": "CONTROL_NET",
|
||||
"links": [
|
||||
154
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "InstantX Flux Union ControlNet Loader"
|
||||
},
|
||||
"widgets_values": [
|
||||
"ControlnetModel/Flux/Instant_flux-union.safetensors",
|
||||
"depth"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 61,
|
||||
"type": "CheckpointLoaderSimple",
|
||||
"pos": [
|
||||
69,
|
||||
152
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 98
|
||||
},
|
||||
"flags": {},
|
||||
"order": 3,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [
|
||||
155
|
||||
],
|
||||
"slot_index": 0,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "CLIP",
|
||||
"type": "CLIP",
|
||||
"links": [
|
||||
156
|
||||
],
|
||||
"slot_index": 1,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "VAE",
|
||||
"type": "VAE",
|
||||
"links": [
|
||||
157,
|
||||
158
|
||||
],
|
||||
"slot_index": 2,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CheckpointLoaderSimple"
|
||||
},
|
||||
"widgets_values": [
|
||||
"Flux_dev_v1-fp8.safetensors"
|
||||
]
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
[
|
||||
9,
|
||||
8,
|
||||
0,
|
||||
9,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
119,
|
||||
6,
|
||||
0,
|
||||
38,
|
||||
0,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
136,
|
||||
50,
|
||||
0,
|
||||
38,
|
||||
4,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
140,
|
||||
52,
|
||||
0,
|
||||
51,
|
||||
3,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
143,
|
||||
51,
|
||||
0,
|
||||
8,
|
||||
0,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
144,
|
||||
38,
|
||||
0,
|
||||
51,
|
||||
1,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
145,
|
||||
6,
|
||||
0,
|
||||
38,
|
||||
1,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
146,
|
||||
38,
|
||||
1,
|
||||
51,
|
||||
2,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
151,
|
||||
58,
|
||||
0,
|
||||
50,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
152,
|
||||
50,
|
||||
0,
|
||||
59,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
154,
|
||||
43,
|
||||
0,
|
||||
38,
|
||||
2,
|
||||
"CONTROL_NET"
|
||||
],
|
||||
[
|
||||
155,
|
||||
61,
|
||||
0,
|
||||
51,
|
||||
0,
|
||||
"MODEL"
|
||||
],
|
||||
[
|
||||
156,
|
||||
61,
|
||||
1,
|
||||
6,
|
||||
0,
|
||||
"CLIP"
|
||||
],
|
||||
[
|
||||
157,
|
||||
61,
|
||||
2,
|
||||
38,
|
||||
3,
|
||||
"VAE"
|
||||
],
|
||||
[
|
||||
158,
|
||||
61,
|
||||
2,
|
||||
8,
|
||||
1,
|
||||
"VAE"
|
||||
]
|
||||
],
|
||||
"groups": [],
|
||||
"config": {},
|
||||
"extra": {
|
||||
"ds": {
|
||||
"scale": 0.8954302432552409,
|
||||
"offset": [
|
||||
-386.840499085687,
|
||||
-20.60113004411095
|
||||
]
|
||||
},
|
||||
"groupNodes": {}
|
||||
},
|
||||
"version": 0.4
|
||||
}
|
||||
Reference in New Issue
Block a user