Judge: add seed (reproducible output) + interrupt support
New 'seed' input seeds sampling (torch.manual_seed before generation) so a fixed seed reproduces the same output — no reroll when re-queueing while tweaking downstream nodes; bump it to reroll (named 'seed' so the frontend adds control_after_generate). Generation now honors ComfyUI cancel: a StoppingCriteria halts model.generate() promptly and _check_interrupt() raises between passes. Workflows updated with the seed widget. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+109
-26
@@ -1,8 +1,12 @@
|
||||
{
|
||||
"4": {
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"inputs": { "ckpt_name": "waiIllustriousSDXL_v160.safetensors" },
|
||||
"_meta": { "title": "Load Checkpoint (swap for your T2I)" }
|
||||
"inputs": {
|
||||
"ckpt_name": "waiIllustriousSDXL_v160.safetensors"
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Load Checkpoint (swap for your T2I)"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"class_type": "CalibratorPromptReceptor",
|
||||
@@ -12,59 +16,135 @@
|
||||
"seed": 12345,
|
||||
"source_file": ""
|
||||
},
|
||||
"_meta": { "title": "SxCP External Prompt (Receptor)" }
|
||||
"_meta": {
|
||||
"title": "SxCP External Prompt (Receptor)"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": { "text": ["10", 0], "clip": ["4", 1] },
|
||||
"_meta": { "title": "Positive (from receptor)" }
|
||||
"inputs": {
|
||||
"text": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Positive (from receptor)"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": { "text": ["10", 1], "clip": ["4", 1] },
|
||||
"_meta": { "title": "Negative (from receptor)" }
|
||||
"inputs": {
|
||||
"text": [
|
||||
"10",
|
||||
1
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Negative (from receptor)"
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"class_type": "EmptyLatentImage",
|
||||
"inputs": { "width": 1024, "height": 1024, "batch_size": 1 },
|
||||
"_meta": { "title": "Empty Latent" }
|
||||
"inputs": {
|
||||
"width": 1024,
|
||||
"height": 1024,
|
||||
"batch_size": 1
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Empty Latent"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"class_type": "KSampler",
|
||||
"inputs": {
|
||||
"model": ["4", 0],
|
||||
"positive": ["6", 0],
|
||||
"negative": ["7", 0],
|
||||
"latent_image": ["5", 0],
|
||||
"seed": ["10", 2],
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"5",
|
||||
0
|
||||
],
|
||||
"seed": [
|
||||
"10",
|
||||
2
|
||||
],
|
||||
"steps": 28,
|
||||
"cfg": 5.5,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "normal",
|
||||
"denoise": 1.0
|
||||
},
|
||||
"_meta": { "title": "KSampler (seed from receptor)" }
|
||||
"_meta": {
|
||||
"title": "KSampler (seed from receptor)"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"class_type": "VAEDecode",
|
||||
"inputs": { "samples": ["3", 0], "vae": ["4", 2] },
|
||||
"_meta": { "title": "VAE Decode" }
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"class_type": "SaveImage",
|
||||
"inputs": { "images": ["8", 0], "filename_prefix": "calibrator/gen" },
|
||||
"_meta": { "title": "Save Generated" }
|
||||
"inputs": {
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
],
|
||||
"filename_prefix": "calibrator/gen"
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Save Generated"
|
||||
}
|
||||
},
|
||||
"11": {
|
||||
"class_type": "LoadImage",
|
||||
"inputs": { "image": "reference.png" },
|
||||
"_meta": { "title": "Reference Image (put in ComfyUI/input/)" }
|
||||
"inputs": {
|
||||
"image": "reference.png"
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Reference Image (put in ComfyUI/input/)"
|
||||
}
|
||||
},
|
||||
"12": {
|
||||
"class_type": "QwenVLImageJudge",
|
||||
"inputs": {
|
||||
"reference_image": ["11", 0],
|
||||
"generated_image": ["8", 0],
|
||||
"reference_image": [
|
||||
"11",
|
||||
0
|
||||
],
|
||||
"generated_image": [
|
||||
"8",
|
||||
0
|
||||
],
|
||||
"model_path": "/media/p5/qwen3vl_4b_abliterated_comfy_convert/hf_bf16",
|
||||
"precision": "bf16",
|
||||
"profile": "general",
|
||||
@@ -74,8 +154,11 @@
|
||||
"keep_loaded": true,
|
||||
"auto_download": true,
|
||||
"report_dir": "/media/p5/Comfyui/output/calibrator",
|
||||
"run_tag": ""
|
||||
"run_tag": "",
|
||||
"seed": 0
|
||||
},
|
||||
"_meta": { "title": "Qwen3-VL Image Judge (Calibrator)" }
|
||||
"_meta": {
|
||||
"title": "Qwen3-VL Image Judge (Calibrator)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -208,6 +208,8 @@
|
||||
"bf16",
|
||||
3072,
|
||||
0.4,
|
||||
0,
|
||||
"fixed",
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
|
||||
@@ -63,7 +63,8 @@
|
||||
"user_prompt": [
|
||||
"2",
|
||||
1
|
||||
]
|
||||
],
|
||||
"seed": 0
|
||||
},
|
||||
"_meta": {
|
||||
"title": "Judge (chat + json_output) -> LTX beats JSON"
|
||||
|
||||
Reference in New Issue
Block a user