Files
IxMxAMAR-ComfyUI-Utility-Me…/workflows/19_models_sampling_buckets.json
T
IxMxAMAR e8264f5abb templates: rebuild with corrected widget mapping
Investigation (Workflow trace of bundled ComfyUI frontend source) found three
real bugs in the previous regen:

1. widgets_values must be POSITIONAL — keep slots for widgets that have been
   converted to input sockets. In frontend >=1.16 widgets and sockets coexist
   (convertToInput is deprecated), so the widget object always stays in
   node.widgets and its slot in widgets_values is never removed. Skipping
   converted slots was the root cause of every shifted-value display
   (prompt text appearing in model field, NaN in numeric fields, etc).

2. ShowText was registered as 'ShowText' but pythongosssss's pack actually
   registers the class as 'ShowText|pysssss'. The bare name renders as a red
   missing-node box. Generator now emits the correct registered name.

3. Node height formula re-derived from the bundled litegraph computeSize():
   rows*20 + per-widget(20+4) + 8 trailing + 30 title + 6 footer, with
   multiline STRING widgets reserving ~100px each.

Bonus fix: validator now checks every COMBO widget value is in its choices
list (caught 100+ recipe-author typos), and the generator auto-substitutes
invalid values with the best match (case-insensitive, prefix, substring,
numeric coercion) instead of shipping invalid values.
2026-05-30 21:10:15 +05:30

202 lines
3.5 KiB
JSON

{
"last_node_id": 2,
"last_link_id": 1,
"nodes": [
{
"id": 1,
"type": "UtilMegaPack_ModelsSampling",
"pos": [
60,
60
],
"size": [
320,
800
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "model",
"type": "MODEL",
"links": [],
"slot_index": 0
},
{
"name": "clip",
"type": "CLIP",
"links": [],
"slot_index": 1
},
{
"name": "vae",
"type": "VAE",
"links": [],
"slot_index": 2
},
{
"name": "name",
"type": "STRING",
"links": [
1
],
"slot_index": 3
},
{
"name": "sampler",
"type": "STRING",
"links": [],
"slot_index": 4
},
{
"name": "seed",
"type": "INT",
"links": [],
"slot_index": 5
},
{
"name": "dim",
"type": "INT",
"links": [],
"slot_index": 6
},
{
"name": "cfg",
"type": "FLOAT",
"links": [],
"slot_index": 7
},
{
"name": "params",
"type": "DICT",
"links": [],
"slot_index": 8
}
],
"properties": {
"recipe_id": "op",
"Node name for S&R": "UtilMegaPack_ModelsSampling"
},
"widgets_values": [
"sdxl_bucket_pick",
"(use pack default)",
"",
"",
".safetensors,.ckpt",
"16:9",
1024,
0,
1024,
64,
1.0,
16,
9,
8,
0,
"randomize",
"fixed",
"",
0,
4,
"euler",
"normal",
20,
7.0,
1.0
]
},
{
"id": 2,
"type": "ShowText|pysssss",
"pos": [
460,
60
],
"size": [
320,
88
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "text",
"type": "STRING",
"link": 1,
"widget": {
"name": "text"
}
}
],
"outputs": [
{
"name": "text",
"type": "STRING",
"links": [],
"slot_index": 0
}
],
"properties": {
"recipe_id": "out",
"Node name for S&R": "ShowText|pysssss"
},
"widgets_values": [
""
]
}
],
"links": [
[
1,
1,
3,
2,
0,
"STRING"
]
],
"groups": [
{
"title": "Action",
"bounding": [
35,
-1,
370,
886
],
"color": "#3F789E",
"font_size": 24,
"locked": false
},
{
"title": "Output",
"bounding": [
435,
-1,
370,
174
],
"color": "#3F789E",
"font_size": 24,
"locked": false
}
],
"config": {},
"extra": {
"ds": {
"scale": 1.0,
"offset": [
0,
0
]
},
"description": "Pick an SDXL-optimal resolution bucket for a given aspect ratio using ModelsSampling's sdxl_bucket_pick mode.",
"title": "MegaPack \u2014 ModelsSampling: SDXL Bucket Picker",
"tier": 1,
"pack": "ComfyUI-Utility-MegaPack"
},
"version": 0.4
}