feat: Concat Conditionings
This commit is contained in:
@@ -188,6 +188,7 @@ This takes latent as input and outputs latent as the result.
|
||||
|
||||
* String Selector - It selects and returns a portion of the string. When `multiline` mode is disabled, it simply returns the string of the line pointed to by the selector. When `multiline` mode is enabled, it divides the string based on lines that start with `#` and returns them. If the `select` value is larger than the number of items, it will start counting from the first line again and return accordingly.
|
||||
* Combine Conditionings - It takes multiple conditionings as input and combines them into a single conditioning.
|
||||
* Concat Conditionings - It takes multiple conditionings as input and concat them into a single conditioning.
|
||||
|
||||
* Logics (experimental) - These nodes are experimental nodes designed to implement the logic for loops and dynamic switching.
|
||||
* ImpactCompare, ImpactConditionalBranch, ImpactInt, ImpactValueSender, ImpactValueReceiver, ImpactImageInfo, ImpactMinMax, ImpactNeg, ImpactConditionalStopIteration
|
||||
|
||||
@@ -264,6 +264,7 @@ NODE_CLASS_MAPPINGS = {
|
||||
"RegionalPrompt": RegionalPrompt,
|
||||
|
||||
"ImpactCombineConditionings": CombineConditionings,
|
||||
"ImpactConcatConditionings": ConcatConditionings,
|
||||
|
||||
"ImpactSEGSLabelFilter": SEGSLabelFilter,
|
||||
"ImpactSEGSRangeFilter": SEGSRangeFilter,
|
||||
@@ -390,6 +391,7 @@ NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"RemoveNoiseMask": "Remove Noise Mask",
|
||||
|
||||
"ImpactCombineConditionings": "Combine Conditionings",
|
||||
"ImpactConcatConditionings": "Concat Conditionings",
|
||||
|
||||
"ImpactQueueTrigger": "Queue Trigger",
|
||||
"ImpactQueueTriggerCountdown": "Queue Trigger (Countdown)",
|
||||
|
||||
+3
-1
@@ -370,7 +370,8 @@ app.registerExtension({
|
||||
}
|
||||
|
||||
if (nodeData.name === 'ImpactMakeImageList' || nodeData.name === 'ImpactMakeImageBatch' ||
|
||||
nodeData.name === 'CombineRegionalPrompts' || nodeData.name === 'ImpactCombineConditionings' ||
|
||||
nodeData.name === 'CombineRegionalPrompts' ||
|
||||
nodeData.name === 'ImpactCombineConditionings' || nodeData.name === 'ImpactConcatConditionings' ||
|
||||
nodeData.name === 'ImpactSEGSConcat' ||
|
||||
nodeData.name === 'ImpactSwitch' || nodeData.name === 'LatentSwitch' || nodeData.name == 'SEGSSwitch') {
|
||||
var input_name = "input";
|
||||
@@ -390,6 +391,7 @@ app.registerExtension({
|
||||
break;
|
||||
|
||||
case 'ImpactCombineConditionings':
|
||||
case 'ImpactConcatConditionings':
|
||||
input_name = "conditioning";
|
||||
break;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import configparser
|
||||
import os
|
||||
|
||||
|
||||
version = "V4.44.7"
|
||||
version = "V4.45"
|
||||
|
||||
dependency_version = 19
|
||||
|
||||
|
||||
@@ -236,8 +236,42 @@ class CombineConditionings:
|
||||
res += v
|
||||
|
||||
return (res, )
|
||||
|
||||
|
||||
class ConcatConditionings:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {"required": {
|
||||
"conditioning1": ("CONDITIONING", ),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("CONDITIONING", )
|
||||
FUNCTION = "doit"
|
||||
|
||||
CATEGORY = "ImpactPack/__for_testing"
|
||||
|
||||
def doit(self, **kwargs):
|
||||
conditioning_to = kwargs[0].values()[0]
|
||||
|
||||
for k, conditioning_from in kwargs.items()[1:]:
|
||||
out = []
|
||||
if len(conditioning_from) > 1:
|
||||
print("Warning: ConcatConditionings {k} contains more than 1 cond, only the first one will actually be applied to conditioning1.")
|
||||
|
||||
cond_from = conditioning_from[0][0]
|
||||
|
||||
for i in range(len(conditioning_to)):
|
||||
t1 = conditioning_to[i][0]
|
||||
tw = torch.cat((t1, cond_from),1)
|
||||
n = [tw, conditioning_to[i][1].copy()]
|
||||
out.append(n)
|
||||
|
||||
conditioning_to = out
|
||||
|
||||
return (out, )
|
||||
|
||||
|
||||
class RegionalSampler:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
|
||||
Reference in New Issue
Block a user