Migrated remained nodes in "TenserTensor/Workflow" category to API V3 w/docs

This commit is contained in:
TenserTensor
2026-03-13 01:21:58 +03:00
parent dc6d5e2082
commit fc98ab6d86
10 changed files with 439 additions and 64 deletions
+8
View File
@@ -246,6 +246,10 @@ NODE_CLASS_MAPPINGS = {
"TT_Flux2WorkflowSettings": TT_Flux2WorkflowSettings,
"TT_Flux2WorkflowSettingsAdvanced": TT_Flux2WorkflowSettingsAdvanced,
# Workflow V3 Nodes
"TT_SdxlWorkflowSettingsNode": TT_Flux2WorkflowSettingsNode,
"TT_SdxlWorkflowSettingsAdvancedNode": TT_Flux2WorkflowSettingsNode,
"TT_FluxWorkflowSettingsNode": TT_Flux2WorkflowSettingsNode,
"TT_FluxWorkflowSettingsAdvancedNode": TT_Flux2WorkflowSettingsNode,
"TT_Flux2WorkflowSettingsNode": TT_Flux2WorkflowSettingsNode,
"TT_Flux2WorkflowSettingsAdvancedNode": TT_Flux2WorkflowSettingsAdvancedNode,
"TT_Sd35WorkflowSettingsNode": TT_Sd35WorkflowSettingsNode,
@@ -374,6 +378,10 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"TT_Flux2WorkflowSettings": "TT FLUX2 Workflow Settings (Deprecated)",
"TT_Flux2WorkflowSettingsAdvanced": "TT FLUX2 Workflow Settings (Deprecated/Advanced)",
# Workflow V3 Nodes
"TT_SdxlWorkflowSettingsNode": "TT SDXL Workflow Settings",
"TT_SdxlWorkflowSettingsAdvancedNode": "TT SDXL Workflow Settings (Advanced)",
"TT_FluxWorkflowSettingsNode": "TT FLUX Workflow Settings",
"TT_FluxWorkflowSettingsAdvancedNode": "TT FLUX Workflow Settings (Advanced)",
"TT_Flux2WorkflowSettingsNode": "TT FLUX2 Workflow Settings",
"TT_Flux2WorkflowSettingsAdvancedNode": "TT FLUX2 Workflow Settings (Advanced)",
"TT_Sd35WorkflowSettingsNode": "TT SD3.5 Workflow Settings",
+1 -1
View File
@@ -36,7 +36,7 @@ class TT_FluxWorkflowSettings:
"GUIDANCE"
)
FUNCTION = "get_settings"
CATEGORY = "TenserTensor/Workflow/FLUX"
CATEGORY = "TenserTensor/Deprecated/Workflow/FLUX"
def get_settings(self, seed, steps, cfg, sampler_name, scheduler, guidance, ):
workflow_config = {
@@ -48,7 +48,7 @@ class TT_FluxWorkflowSettingsAdvanced:
"GUIDANCE",
)
FUNCTION = "get_settings"
CATEGORY = "TenserTensor/Workflow/FLUX"
CATEGORY = "TenserTensor/Deprecated/Workflow/FLUX"
def get_settings(self, seed, steps, cfg, sampler_name, scheduler, guidance, clip_l_positive, t5xxl_positive, clip_l_negative, t5xxl_negative):
workflow_config = {
+1 -1
View File
@@ -35,7 +35,7 @@ class TT_SdxlWorkflowSettings:
)
FUNCTION = "get_settings"
CATEGORY = "TenserTensor/Workflow/SDXL"
CATEGORY = "TenserTensor/Deprecated/Workflow/SDXL"
def get_settings(self, seed, steps, cfg, sampler_name, scheduler):
workflow_config = {
@@ -65,7 +65,7 @@ class TT_SdxlWorkflowSettingsAdvanced:
"TARGET_HEIGHT",
)
FUNCTION = "get_settings"
CATEGORY = "TenserTensor/Workflow/SDXL"
CATEGORY = "TenserTensor/Deprecated/Workflow/SDXL"
def get_settings(self, seed, steps, cfg, sampler_name, scheduler, clip_l_positive, clip_g_positive, clip_l_negative,
clip_g_negative, ascore_positive, ascore_negative, width, height, target_width, target_height):
+235 -60
View File
@@ -80,6 +80,186 @@ class WorkflowSettings:
super().__init__(**kwargs)
class TT_SdxlWorkflowSettingsNode(io.ComfyNode):
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
node_id="TT_SdxlWorkflowSettingsNode",
display_name="TT SDXL Workflow Settings",
category=CATEGORY,
description="",
inputs=[
io.Int.Input("seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", default=30, min=1, max=10_000),
io.Float.Input("cfg", default=5.0, min=0.0, max=100.0, step=0.1),
io.Combo.Input("sampler_name", options=KSampler.SAMPLERS),
io.Combo.Input("scheduler", options=KSampler.SCHEDULERS),
io.Float.Input("ascore_positive", default=9.0, min=0.0, max=100.0, step=0.1),
io.Float.Input("ascore_negative", default=6.0, min=0.0, max=100.0, step=0.1),
io.Int.Input("width", default=1024, min=16, max=MAX_RESOLUTION, step=8),
io.Int.Input("height", default=1024, min=16, max=MAX_RESOLUTION, step=8),
io.Int.Input("target_width", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
io.Int.Input("target_height", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
],
outputs=[
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.String.Output("SAMPLER_NAME"),
io.String.Output("SCHEDULER"),
io.Float.Output("ASCORE_POSITIVE"),
io.Float.Output("ASCORE_NEGATIVE"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
io.Int.Output("TARGET_WIDTH"),
io.Int.Output("TARGET_HEIGHT"),
]
)
@classmethod
def execute(cls, **kwargs) -> io.NodeOutput:
workflow_config = TTWorkflowSettings.create(**kwargs)
args = {"workflow_config": workflow_config, **kwargs}
return io.NodeOutput(*args.values())
class TT_SdxlWorkflowSettingsAdvancedNode(io.ComfyNode):
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
node_id="TT_SdxlWorkflowSettingsAdvancedNode",
display_name="TT SDXL Workflow Settings (Advanced)",
category=CATEGORY,
description="",
inputs=[
io.Int.Input("seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", default=30, min=1, max=10_000),
io.Float.Input("cfg", default=5.0, min=0.0, max=100.0, step=0.1),
io.Combo.Input("sampler_name", options=KSampler.SAMPLERS),
io.Combo.Input("scheduler", options=KSampler.SCHEDULERS),
io.Float.Input("ascore_positive", default=9.0, min=0.0, max=100.0, step=0.1),
io.Float.Input("ascore_negative", default=6.0, min=0.0, max=100.0, step=0.1),
io.String.Input("clip_l_positive", multiline=True, dynamic_prompts=True),
io.String.Input("clip_g_positive", multiline=True, dynamic_prompts=True),
io.String.Input("clip_l_negative", multiline=True, dynamic_prompts=True),
io.String.Input("clip_g_negative", multiline=True, dynamic_prompts=True),
io.String.Input("lora_triggers", multiline=True, dynamic_prompts=True, advanced=True),
io.Int.Input("width", default=1024, min=16, max=MAX_RESOLUTION, step=8),
io.Int.Input("height", default=1024, min=16, max=MAX_RESOLUTION, step=8),
io.Int.Input("target_width", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
io.Int.Input("target_height", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
],
outputs=[
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.String.Output("SAMPLER_NAME"),
io.String.Output("SCHEDULER"),
io.Float.Output("ASCORE_POSITIVE"),
io.Float.Output("ASCORE_NEGATIVE"),
io.String.Output("CLIP_L_POSITIVE"),
io.String.Output("CLIP_G_POSITIVE"),
io.String.Output("CLIP_L_NEGATIVE"),
io.String.Output("CLIP_G_NEGATIVE"),
io.String.Output("LORA_TRIGGERS"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
io.Int.Output("TARGET_WIDTH"),
io.Int.Output("TARGET_HEIGHT"),
]
)
@classmethod
def execute(cls, **kwargs) -> io.NodeOutput:
workflow_config = TTWorkflowSettings.create(**kwargs)
args = {"workflow_config": workflow_config, **kwargs}
return io.NodeOutput(*args.values())
class TT_FluxWorkflowSettingsNode(io.ComfyNode):
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
node_id="TT_FluxWorkflowSettingsNode",
display_name="TT FLUX Workflow Settings",
category=CATEGORY,
description="",
inputs=[
io.Int.Input("seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", default=30, min=1, max=10_000),
io.Float.Input("cfg", default=5.0, min=0.0, max=100.0, step=0.1),
io.Combo.Input("sampler_name", options=KSampler.SAMPLERS),
io.Combo.Input("scheduler", options=KSampler.SCHEDULERS),
io.Float.Input("guidance", default=3.0, min=1.0, max=10.0, step=0.1),
],
outputs=[
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.String.Output("SAMPLER_NAME"),
io.String.Output("SCHEDULER"),
io.Float.Output("GUIDANCE"),
]
)
@classmethod
def execute(cls, **kwargs) -> io.NodeOutput:
workflow_config = TTWorkflowSettings.create(**kwargs)
args = {"workflow_config": workflow_config, **kwargs}
return io.NodeOutput(*args.values())
class TT_FluxWorkflowSettingsAdvancedNode(io.ComfyNode):
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
node_id="TT_FluxWorkflowSettingsAdvancedNode",
display_name="TT FLUX Workflow Settings (Advanced)",
category=CATEGORY,
description="",
inputs=[
io.Int.Input("seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", default=30, min=1, max=10_000),
io.Float.Input("cfg", default=5.0, min=0.0, max=100.0, step=0.1),
io.Combo.Input("sampler_name", options=KSampler.SAMPLERS),
io.Combo.Input("scheduler", options=KSampler.SCHEDULERS),
io.String.Input("clip_l_positive", multiline=True, dynamic_prompts=True),
io.String.Input("t5xxl_positive", multiline=True, dynamic_prompts=True),
io.String.Input("clip_l_negative", multiline=True, dynamic_prompts=True),
io.String.Input("t5xxl_negative", multiline=True, dynamic_prompts=True),
io.String.Input("lora_triggers", multiline=True, dynamic_prompts=True, advanced=True),
io.Float.Input("guidance", default=3.0, min=1.0, max=10.0, step=0.1),
],
outputs=[
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.String.Output("SAMPLER_NAME"),
io.String.Output("SCHEDULER"),
io.String.Output("CLIP_L_POSITIVE"),
io.String.Output("T5XXL_POSITIVE"),
io.String.Output("CLIP_L_NEGATIVE"),
io.String.Output("T5XXL_NEGATIVE"),
io.String.Output("LORA_TRIGGERS"),
io.Float.Output("GUIDANCE"),
]
)
@classmethod
def execute(cls, **kwargs) -> io.NodeOutput:
workflow_config = TTWorkflowSettings.create(**kwargs)
args = {"workflow_config": workflow_config, **kwargs}
return io.NodeOutput(*args.values())
def compute_empirical_mu(image_seq_len, num_steps):
slope_high_res, intercept_high_res = 8.73809524e-05, 1.89833333
slope_low_res, intercept_low_res = 0.00016927, 0.45666666
@@ -119,12 +299,6 @@ def build_sampler_sigmas(sampler_name, steps, width, height):
class TT_Flux2WorkflowSettingsNode(io.ComfyNode):
"""
Use this node as the single source of truth for FLUX2 workflow parameters. The sampler and sigma schedule
are computed automatically from the selected sampler, step count, and resolution. Connect `WORKFLOW_CONFIG`
to context nodes, or use individual outputs to connect to standard ComfyUI nodes.
"""
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
@@ -142,15 +316,15 @@ class TT_Flux2WorkflowSettingsNode(io.ComfyNode):
io.Combo.Input("sampler_name", options=KSampler.SAMPLERS)
],
outputs=[
WorkflowSettings.Output(display_name="WORKFLOW_CONFIG"),
io.Sampler.Output(display_name="SAMPLER"),
io.Sigmas.Output(display_name="SIGMAS"),
io.Int.Output(display_name="SEED"),
io.Int.Output(display_name="STEPS"),
io.Float.Output(display_name="CFG"),
io.Float.Output(display_name="GUIDANCE"),
io.Int.Output(display_name="WIDTH"),
io.Int.Output(display_name="HEIGHT"),
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Sampler.Output("SAMPLER"),
io.Sigmas.Output("SIGMAS"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.Float.Output("GUIDANCE"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
]
)
@@ -180,13 +354,6 @@ class TT_Flux2WorkflowSettingsNode(io.ComfyNode):
class TT_Flux2WorkflowSettingsAdvancedNode(io.ComfyNode):
"""
Advanced version of TT FLUX2 Workflow Settings with `prompt` and `lora_triggers` fields included directly in the
node. Both are stored in the `WORKFLOW_CONFIG` output alongside all other sampling parameters, making this node
sufficient as the sole configuration source for full context-driven FLUX2 pipelines. Individual outputs remain
available for connecting to standard ComfyUI nodes.
"""
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
@@ -206,17 +373,17 @@ class TT_Flux2WorkflowSettingsAdvancedNode(io.ComfyNode):
io.Float.Input("guidance", default=3.0, min=1.0, max=10.0, step=0.1),
],
outputs=[
WorkflowSettings.Output(display_name="WORKFLOW_CONFIG"),
io.Sampler.Output(display_name="SAMPLER"),
io.Sigmas.Output(display_name="SIGMAS"),
io.Int.Output(display_name="SEED"),
io.Int.Output(display_name="STEPS"),
io.Float.Output(display_name="CFG"),
io.Int.Output(display_name="WIDTH"),
io.Int.Output(display_name="HEIGHT"),
io.String.Output(display_name="PROMPT"),
io.String.Output(display_name="LORA_TRIGGERS"),
io.Float.Output(display_name="GUIDANCE"),
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Sampler.Output("SAMPLER"),
io.Sigmas.Output("SIGMAS"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
io.String.Output("PROMPT"),
io.String.Output("LORA_TRIGGERS"),
io.Float.Output("GUIDANCE"),
]
)
@@ -276,16 +443,16 @@ class TT_Sd35WorkflowSettingsNode(io.ComfyNode):
io.Int.Input("target_height", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
],
outputs=[
WorkflowSettings.Output(display_name="WORKFLOW_CONFIG"),
io.Sampler.Output(display_name="SAMPLER"),
io.Sigmas.Output(display_name="SIGMAS"),
io.Int.Output(display_name="SEED"),
io.Int.Output(display_name="STEPS"),
io.Float.Output(display_name="CFG"),
io.Int.Output(display_name="WIDTH"),
io.Int.Output(display_name="HEIGHT"),
io.Int.Output(display_name="TARGET_WIDTH"),
io.Int.Output(display_name="TARGET_HEIGHT"),
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Sampler.Output("SAMPLER"),
io.Sigmas.Output("SIGMAS"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
io.Int.Output("TARGET_WIDTH"),
io.Int.Output("TARGET_HEIGHT"),
]
)
@@ -339,23 +506,23 @@ class TT_Sd35WorkflowSettingsAdvancedNode(io.ComfyNode):
io.Int.Input("target_height", default=1024, min=16, max=MAX_RESOLUTION, step=8, advanced=True),
],
outputs=[
WorkflowSettings.Output(display_name="WORKFLOW_CONFIG"),
io.Sampler.Output(display_name="SAMPLER"),
io.Sigmas.Output(display_name="SIGMAS"),
io.Int.Output(display_name="SEED"),
io.Int.Output(display_name="STEPS"),
io.Float.Output(display_name="CFG"),
io.Int.Output(display_name="WIDTH"),
io.Int.Output(display_name="HEIGHT"),
io.Int.Output(display_name="TARGET_WIDTH"),
io.Int.Output(display_name="TARGET_HEIGHT"),
io.String.Output(display_name="CLIP_L_POSITIVE"),
io.String.Output(display_name="CLIP_G_POSITIVE"),
io.String.Output(display_name="T5XXL_POSITIVE"),
io.String.Output(display_name="CLIP_L_NEGATIVE"),
io.String.Output(display_name="CLIP_G_NEGATIVE"),
io.String.Output(display_name="T5XXL_NEGATIVE"),
io.String.Output(display_name="LORA_TRIGGERS"),
WorkflowSettings.Output("WORKFLOW_CONFIG"),
io.Sampler.Output("SAMPLER"),
io.Sigmas.Output("SIGMAS"),
io.Int.Output("SEED"),
io.Int.Output("STEPS"),
io.Float.Output("CFG"),
io.Int.Output("WIDTH"),
io.Int.Output("HEIGHT"),
io.Int.Output("TARGET_WIDTH"),
io.Int.Output("TARGET_HEIGHT"),
io.String.Output("CLIP_L_POSITIVE"),
io.String.Output("CLIP_G_POSITIVE"),
io.String.Output("T5XXL_POSITIVE"),
io.String.Output("CLIP_L_NEGATIVE"),
io.String.Output("CLIP_G_NEGATIVE"),
io.String.Output("T5XXL_NEGATIVE"),
io.String.Output("LORA_TRIGGERS"),
]
)
@@ -397,6 +564,10 @@ class WorkflowNodesExtension(ComfyExtension):
@override
async def get_node_list(self) -> list[type[io.ComfyNode]]:
return [
TT_SdxlWorkflowSettingsNode,
TT_SdxlWorkflowSettingsAdvancedNode,
TT_FluxWorkflowSettingsNode,
TT_FluxWorkflowSettingsAdvancedNode,
TT_Flux2WorkflowSettingsNode,
TT_Flux2WorkflowSettingsAdvancedNode,
TT_Sd35WorkflowSettingsNode,
@@ -413,6 +584,10 @@ async def comfy_entrypoint() -> WorkflowNodesExtension:
# ==============================================================================
__all__ = [
"TT_SdxlWorkflowSettingsNode",
"TT_SdxlWorkflowSettingsAdvancedNode",
"TT_FluxWorkflowSettingsNode",
"TT_FluxWorkflowSettingsAdvancedNode",
"TT_Flux2WorkflowSettingsNode",
"TT_Flux2WorkflowSettingsAdvancedNode",
"TT_Sd35WorkflowSettingsNode",
@@ -0,0 +1,48 @@
## TT FLUX Workflow Settings (Advanced) *TT_FluxWorkflowSettingsAdvancedNode*
*This description was generated with AI assistance. If you spot any errors, please create an issue on GitHub.*
Extended FLUX workflow settings node with built-in prompt inputs for CLIP-L and T5-XXL encoders. Combines sampler configuration and text prompts in a
single node.
### Inputs
| Parameter | Type | Required | Description |
|-------------------|--------|----------|--------------------------------------|
| `seed` | INT | Yes | Generation seed |
| `steps` | INT | Yes | Number of sampling steps, default 30 |
| `cfg` | FLOAT | Yes | Guidance scale, default 5.0 |
| `sampler_name` | COMBO | Yes | Sampler algorithm |
| `scheduler` | COMBO | Yes | Noise schedule |
| `clip_l_positive` | STRING | Yes | CLIP-L positive prompt |
| `t5xxl_positive` | STRING | Yes | T5-XXL positive prompt |
| `clip_l_negative` | STRING | Yes | CLIP-L negative prompt |
| `t5xxl_negative` | STRING | Yes | T5-XXL negative prompt |
| `lora_triggers` | STRING | No | LoRA trigger words (advanced) |
| `guidance` | FLOAT | Yes | FLUX guidance scale, default 3.0 |
### Outputs
| Parameter | Type | Description |
|-------------------|-----------------|------------------------------------------|
| `WORKFLOW_CONFIG` | WORKFLOW_CONFIG | Workflow config object for context nodes |
| `SEED` | INT | Generation seed |
| `STEPS` | INT | Number of sampling steps |
| `CFG` | FLOAT | Guidance scale |
| `SAMPLER_NAME` | STRING | Sampler algorithm name |
| `SCHEDULER` | STRING | Noise schedule name |
| `CLIP_L_POSITIVE` | STRING | CLIP-L positive prompt |
| `T5XXL_POSITIVE` | STRING | T5-XXL positive prompt |
| `CLIP_L_NEGATIVE` | STRING | CLIP-L negative prompt |
| `T5XXL_NEGATIVE` | STRING | T5-XXL negative prompt |
| `LORA_TRIGGERS` | STRING | LoRA trigger words |
| `GUIDANCE` | FLOAT | FLUX guidance scale |
### Usage
Use when you want prompts and sampler settings in one place. Connect `WORKFLOW_CONFIG` to context nodes, or use individual outputs for direct
connections. LoRA trigger words are appended to the positive prompt automatically in the text encoder node.
---
[View on GitHub](https://github.com/tenser-tensor/ComfyUI-TenserTensor)
+38
View File
@@ -0,0 +1,38 @@
## TT FLUX Workflow Settings *TT_FluxWorkflowSettingsNode*
*This description was generated with AI assistance. If you spot any errors, please create an issue on GitHub.*
Configures global workflow parameters for FLUX pipelines. Outputs a workflow config object alongside individual parameters for direct node
connections.
### Inputs
| Parameter | Type | Required | Description |
|----------------|-------|----------|--------------------------------------|
| `seed` | INT | Yes | Generation seed |
| `steps` | INT | Yes | Number of sampling steps, default 30 |
| `cfg` | FLOAT | Yes | Guidance scale, default 5.0 |
| `sampler_name` | COMBO | Yes | Sampler algorithm |
| `scheduler` | COMBO | Yes | Noise schedule |
| `guidance` | FLOAT | Yes | FLUX guidance scale, default 3.0 |
### Outputs
| Parameter | Type | Description |
|-------------------|-----------------|------------------------------------------|
| `WORKFLOW_CONFIG` | WORKFLOW_CONFIG | Workflow config object for context nodes |
| `SEED` | INT | Generation seed |
| `STEPS` | INT | Number of sampling steps |
| `CFG` | FLOAT | Guidance scale |
| `SAMPLER_NAME` | STRING | Sampler algorithm name |
| `SCHEDULER` | STRING | Noise schedule name |
| `GUIDANCE` | FLOAT | FLUX guidance scale |
### Usage
Connect `WORKFLOW_CONFIG` to context-based nodes. Use individual outputs for direct connections to sampler and encoder nodes. `guidance` controls the
FLUX-specific distilled guidance — recommended range is 1.0–5.0.
---
[View on GitHub](https://github.com/tenser-tensor/ComfyUI-TenserTensor)
@@ -0,0 +1,58 @@
## TT SDXL Workflow Settings (Advanced) *TT_SdxlWorkflowSettingsAdvancedNode*
*This description was generated with AI assistance. If you spot any errors, please create an issue on GitHub.*
Extended SDXL workflow settings node with built-in prompt inputs for CLIP-L and CLIP-G encoders. Combines sampler configuration and text prompts in a
single node.
### Inputs
| Parameter | Type | Required | Description |
|-------------------|--------|----------|--------------------------------------------------------|
| `seed` | INT | Yes | Generation seed |
| `steps` | INT | Yes | Number of sampling steps, default 30 |
| `cfg` | FLOAT | Yes | Guidance scale, default 5.0 |
| `sampler_name` | COMBO | Yes | Sampler algorithm |
| `scheduler` | COMBO | Yes | Noise schedule |
| `ascore_positive` | FLOAT | Yes | Aesthetic score for positive conditioning, default 9.0 |
| `ascore_negative` | FLOAT | Yes | Aesthetic score for negative conditioning, default 6.0 |
| `clip_l_positive` | STRING | Yes | CLIP-L positive prompt |
| `clip_g_positive` | STRING | Yes | CLIP-G positive prompt |
| `clip_l_negative` | STRING | Yes | CLIP-L negative prompt |
| `clip_g_negative` | STRING | Yes | CLIP-G negative prompt |
| `lora_triggers` | STRING | No | LoRA trigger words (advanced) |
| `width` | INT | Yes | Image width in pixels |
| `height` | INT | Yes | Image height in pixels |
| `target_width` | INT | No | CLIP target width (advanced) |
| `target_height` | INT | No | CLIP target height (advanced) |
### Outputs
| Parameter | Type | Description |
|-------------------|-----------------|-------------------------------------------|
| `WORKFLOW_CONFIG` | WORKFLOW_CONFIG | Workflow config object for context nodes |
| `SEED` | INT | Generation seed |
| `STEPS` | INT | Number of sampling steps |
| `CFG` | FLOAT | Guidance scale |
| `SAMPLER_NAME` | STRING | Sampler algorithm name |
| `SCHEDULER` | STRING | Noise schedule name |
| `ASCORE_POSITIVE` | FLOAT | Aesthetic score for positive conditioning |
| `ASCORE_NEGATIVE` | FLOAT | Aesthetic score for negative conditioning |
| `CLIP_L_POSITIVE` | STRING | CLIP-L positive prompt |
| `CLIP_G_POSITIVE` | STRING | CLIP-G positive prompt |
| `CLIP_L_NEGATIVE` | STRING | CLIP-L negative prompt |
| `CLIP_G_NEGATIVE` | STRING | CLIP-G negative prompt |
| `LORA_TRIGGERS` | STRING | LoRA trigger words |
| `WIDTH` | INT | Image width |
| `HEIGHT` | INT | Image height |
| `TARGET_WIDTH` | INT | CLIP target width |
| `TARGET_HEIGHT` | INT | CLIP target height |
### Usage
Use when you want prompts and sampler settings in one place. Connect `WORKFLOW_CONFIG` to context nodes, or use individual outputs for direct
connections. LoRA trigger words are appended to the positive prompt automatically in the text encoder node.
---
[View on GitHub](https://github.com/tenser-tensor/ComfyUI-TenserTensor)
+48
View File
@@ -0,0 +1,48 @@
## TT SDXL Workflow Settings *TT_SdxlWorkflowSettingsNode*
*This description was generated with AI assistance. If you spot any errors, please create an issue on GitHub.*
Configures global workflow parameters for SDXL pipelines. Outputs a workflow config object alongside individual parameters for direct node
connections.
### Inputs
| Parameter | Type | Required | Description |
|-------------------|-------|----------|--------------------------------------------------------|
| `seed` | INT | Yes | Generation seed |
| `steps` | INT | Yes | Number of sampling steps, default 30 |
| `cfg` | FLOAT | Yes | Guidance scale, default 5.0 |
| `sampler_name` | COMBO | Yes | Sampler algorithm |
| `scheduler` | COMBO | Yes | Noise schedule |
| `ascore_positive` | FLOAT | Yes | Aesthetic score for positive conditioning, default 9.0 |
| `ascore_negative` | FLOAT | Yes | Aesthetic score for negative conditioning, default 6.0 |
| `width` | INT | Yes | Image width in pixels |
| `height` | INT | Yes | Image height in pixels |
| `target_width` | INT | No | CLIP target width (advanced) |
| `target_height` | INT | No | CLIP target height (advanced) |
### Outputs
| Parameter | Type | Description |
|-------------------|-----------------|-------------------------------------------|
| `WORKFLOW_CONFIG` | WORKFLOW_CONFIG | Workflow config object for context nodes |
| `SEED` | INT | Generation seed |
| `STEPS` | INT | Number of sampling steps |
| `CFG` | FLOAT | Guidance scale |
| `SAMPLER_NAME` | STRING | Sampler algorithm name |
| `SCHEDULER` | STRING | Noise schedule name |
| `ASCORE_POSITIVE` | FLOAT | Aesthetic score for positive conditioning |
| `ASCORE_NEGATIVE` | FLOAT | Aesthetic score for negative conditioning |
| `WIDTH` | INT | Image width |
| `HEIGHT` | INT | Image height |
| `TARGET_WIDTH` | INT | CLIP target width |
| `TARGET_HEIGHT` | INT | CLIP target height |
### Usage
Connect `WORKFLOW_CONFIG` to context-based nodes. Use individual outputs for direct connections to sampler and encoder nodes. Set `target_width` and
`target_height` to match the original training resolution for best results — defaults to image dimensions if not set.
---
[View on GitHub](https://github.com/tenser-tensor/ComfyUI-TenserTensor)