feat(inspect): port legacy parser rules the new resolver missed (installed nodes)
R6 and R9 for nodes whose sources are installed beside ComfyUI, each entry's input names and output slots read from the node's code (the task report lists file and line): - detailer stages UltimateSDUpscale (image), UltimateSDUpscaleNoUpscale (upscaled_image) and DetailerForEach (image), judged with their upstream samplers like FaceDetailer; - pass-throughs ControlNetInpaintingAliMamaApply and LTXVConditioning (positive 0, negative 1) and FluxKontextMultiReferenceLatentMethod; - encoder Text to Conditioning, strings TextInput and DisplayText; - facts model pass-throughs Lora Loader (LoraManager), Power Lora Loader (rgthree), ModelPatchTorchSettings, CFGNorm, PerturbedAttentionGuidance. Impact Pack encodes a detailer's non-empty wildcard instead of its positive input, so FaceDetailer and DetailerForEach now list it as a prompt override: a literal wildcard is decided at run time and a linked one names its source, instead of resolving to the positive input. The overwritten PromptManager refusal (R1) still holds behind the new pass-throughs. The default profile does not read the table.
This commit is contained in:
@@ -414,6 +414,9 @@
|
||||
SamplerCustom: { facts: "custom" },
|
||||
SamplerCustomAdvanced: { facts: "custom-advanced" },
|
||||
FaceDetailer: { facts: "ksampler", image_stage: "image" },
|
||||
DetailerForEach: { facts: "ksampler", image_stage: "image" },
|
||||
UltimateSDUpscale: { facts: "ksampler", image_stage: "image" },
|
||||
UltimateSDUpscaleNoUpscale: { facts: "ksampler", image_stage: "upscaled_image" },
|
||||
});
|
||||
// Stages merged for one result: the resolver's candidate cap. Together with
|
||||
// MAX_VISITS per candidate walk these are deliberately tighter than the server's
|
||||
@@ -431,7 +434,9 @@
|
||||
"CLIPTextEncode", "CLIPTextEncodeSDXL", "CLIPTextEncodeFlux", "CLIPTextEncodeSD3", "TextEncodeQwenImageEdit",
|
||||
"TextEncodeQwenImageEditPlus", "TextEncodeQwenImage21", "KikoTextEncode", "StringConstant", "StringConstantMultiline",
|
||||
"JoinStringMulti", "PromptSearchList", "PreviewImage", "PreviewAny", "SaveImageWebsocket",
|
||||
"Image Comparer (rgthree)",
|
||||
"Image Comparer (rgthree)", "DetailerForEach", "UltimateSDUpscale", "UltimateSDUpscaleNoUpscale",
|
||||
"ControlNetInpaintingAliMamaApply", "LTXVConditioning", "FluxKontextMultiReferenceLatentMethod", "Text to Conditioning",
|
||||
"TextInput", "DisplayText",
|
||||
]);
|
||||
// The table's `stage_inputs` (the resolver reads the same lists): inputs that make an
|
||||
// unlisted node a possible stage, and those that do so beside a linked `model`.
|
||||
@@ -448,7 +453,10 @@
|
||||
CheckpointLoader: "ckpt_name", CheckpointLoaderSimple: "ckpt_name",
|
||||
unCLIPCheckpointLoader: "ckpt_name", UNETLoader: "unet_name",
|
||||
});
|
||||
const MODEL_PASSTHROUGHS = new Set(["LoraLoader", "LoraLoaderModelOnly", "ModelSamplingFlux", "ModelSamplingAuraFlow", "ModelSamplingSD3"]);
|
||||
const MODEL_PASSTHROUGHS = new Set([
|
||||
"LoraLoader", "LoraLoaderModelOnly", "ModelSamplingFlux", "ModelSamplingAuraFlow", "ModelSamplingSD3",
|
||||
"Lora Loader (LoraManager)", "Power Lora Loader (rgthree)", "ModelPatchTorchSettings", "CFGNorm", "PerturbedAttentionGuidance",
|
||||
]);
|
||||
const CONFIGURATION_OUTPUTS = Object.freeze({
|
||||
RandomNoise: { kind: "noise", fields: ["noise_seed"] },
|
||||
KSamplerSelect: { kind: "sampler", fields: ["sampler_name"] },
|
||||
|
||||
@@ -29,6 +29,26 @@
|
||||
"strategy": "detailer-stage",
|
||||
"conditioning": { "positive": "positive", "negative": "negative" },
|
||||
"image_stage": "image",
|
||||
"facts": "ksampler",
|
||||
"prompt_overrides": ["wildcard"]
|
||||
},
|
||||
"DetailerForEach": {
|
||||
"strategy": "detailer-stage",
|
||||
"conditioning": { "positive": "positive", "negative": "negative" },
|
||||
"image_stage": "image",
|
||||
"facts": "ksampler",
|
||||
"prompt_overrides": ["wildcard"]
|
||||
},
|
||||
"UltimateSDUpscale": {
|
||||
"strategy": "detailer-stage",
|
||||
"conditioning": { "positive": "positive", "negative": "negative" },
|
||||
"image_stage": "image",
|
||||
"facts": "ksampler"
|
||||
},
|
||||
"UltimateSDUpscaleNoUpscale": {
|
||||
"strategy": "detailer-stage",
|
||||
"conditioning": { "positive": "positive", "negative": "negative" },
|
||||
"image_stage": "upscaled_image",
|
||||
"facts": "ksampler"
|
||||
}
|
||||
},
|
||||
@@ -57,6 +77,11 @@
|
||||
{ "class": "InpaintModelConditioning", "slot": 1, "strategy": "passthrough", "input": "negative" },
|
||||
{ "class": "WanImageToVideo", "slot": 0, "strategy": "passthrough", "input": "positive" },
|
||||
{ "class": "WanImageToVideo", "slot": 1, "strategy": "passthrough", "input": "negative" },
|
||||
{ "class": "ControlNetInpaintingAliMamaApply", "slot": 0, "strategy": "passthrough", "input": "positive" },
|
||||
{ "class": "ControlNetInpaintingAliMamaApply", "slot": 1, "strategy": "passthrough", "input": "negative" },
|
||||
{ "class": "LTXVConditioning", "slot": 0, "strategy": "passthrough", "input": "positive" },
|
||||
{ "class": "LTXVConditioning", "slot": 1, "strategy": "passthrough", "input": "negative" },
|
||||
{ "class": "FluxKontextMultiReferenceLatentMethod", "slot": 0, "strategy": "passthrough", "input": "conditioning" },
|
||||
{ "class": "ConditioningZeroOut", "slot": 0, "strategy": "zeroed", "input": "conditioning" }
|
||||
],
|
||||
"selectors": {
|
||||
@@ -80,10 +105,13 @@
|
||||
{ "class": "TextEncodeQwenImageEditPlus", "slot": 0, "strategy": "single", "inputs": ["prompt"] },
|
||||
{ "class": "TextEncodeQwenImage21", "slot": 0, "strategy": "single", "inputs": ["prompt"] },
|
||||
{ "class": "TextEncodeQwenImage21", "slot": 1, "strategy": "single", "inputs": ["negative_prompt"] },
|
||||
{ "class": "KikoTextEncode", "slot": 0, "strategy": "single", "inputs": ["text"] }
|
||||
{ "class": "KikoTextEncode", "slot": 0, "strategy": "single", "inputs": ["text"] },
|
||||
{ "class": "Text to Conditioning", "slot": 0, "strategy": "single", "inputs": ["text"] }
|
||||
],
|
||||
"strings": [
|
||||
{ "class": "StringConstant", "slot": 0, "strategy": "literal", "inputs": ["string"] },
|
||||
{ "class": "TextInput", "slot": 0, "strategy": "literal", "inputs": ["text"] },
|
||||
{ "class": "DisplayText", "slot": 0, "strategy": "literal", "inputs": ["text"] },
|
||||
{
|
||||
"class": "StringConstantMultiline",
|
||||
"slot": 0,
|
||||
@@ -181,7 +209,12 @@
|
||||
"LoraLoaderModelOnly",
|
||||
"ModelSamplingFlux",
|
||||
"ModelSamplingAuraFlow",
|
||||
"ModelSamplingSD3"
|
||||
"ModelSamplingSD3",
|
||||
"Lora Loader (LoraManager)",
|
||||
"Power Lora Loader (rgthree)",
|
||||
"ModelPatchTorchSettings",
|
||||
"CFGNorm",
|
||||
"PerturbedAttentionGuidance"
|
||||
],
|
||||
"scalar_outputs": {
|
||||
"PrimitiveInt": "number",
|
||||
|
||||
Reference in New Issue
Block a user