Files
2026-09-12 18:40:02 +02:00

18 lines
12 KiB
JSON

{
"String OutputList": "Creates an OutputList by splitting the string in the textfield with a separator.\n`value` and `index` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"Number OutputList": "Creates an OutputList with a range of numeric values.\nUses [numpy.linspace](https://numpy.org/doc/stable/reference/generated/numpy.linspace.html) internally, because it works more reliably with floating-point values.\nIf you want to define number lists with arbitrary steps instead check out the JSON OutputList and define an array, e.g. `[1, 42, 123]`.\n`int`, `float`, `string` and `index` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"JSON OutputList": "Creates an OutputList by extracting arrays or dictionaries from JSON objects.\nUses JSONPath syntax to extract the values, see [JSONPath on Wikipedia](https://en.wikipedia.org/wiki/JSONPath) .\nAll matched values are flatten into one long list.\nYou can also use this node to create objects from literal strings like `[1, 2, 3]`.\n`key`, `value`, `int` and `float` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"Spreadsheet OutputList": "Creates multiple OutputLists from a spreadsheet (`.csv .tsv .md .ods .xlsx .xls`).\nYou can use the `Load any File` node to load a file in base64-encoding.\nInternally uses *pandas* [read_excel](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html) and [read_csv](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html) to load spreadsheet files.\nAll lists use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n\nComments that start with `#` character in textfiles are ignored.\n",
"OutputLists Combinations": "Takes up to 4 OutputLists and generates every combination of them.\n\nExample: `[1, 2, 3] x [\"A\", \"B\"] = [(1, \"A\"), (1, \"B\"), (2, \"A\"), (2, \"B\"), (3, \"A\"), (3, \"B\")]`\n\n`unzip_a` .. `unzip_d` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n\nAll lists are optional and empty lists will be ignored.\n\nTechnically it computes *the Cartesian product* and outputs each combination splitted up into their elements (`unzip`), whereas empty lists will be replaced with units of `None` and they will emit `None` on the respective output.\n\nExample: `[1, 2] x [] x [\"A\", \"B\"] x [] = [(1, None, \"A\", None), (1, None, \"B\", None), (2, None, \"A\", None), (2, None, \"B\", None)]`\n\nAlternative usage: If you connect one list to a unit value it essentially works as a on-signal node (a.k.a execution order enforcer).\n",
"Convert To Int Float Str": "Converts anything number-like to `INT` `FLOAT` `STRING`.\nUses `nums_from_string.get_nums` internally which is very permissive in the numbers it accepts. Anything from actual ints, actual floats, ints or floats as strings, strings that contains multiple numbers with thousand-separators.\nUse a string `123;234;345` to quickly generate a list of numbers. Don't use commas as separators as they may be interpreted as thousand-separators.\n`int`, `float` and `string` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"XYZ-GridPlot": "Generates a XYZ-Gridplot from a list of images.\nIt takes a list of images (including batches) and flattens them into a long list first (thus `batch_size=1`).\n\n**Grid shape**\n\nDetermines the shape of the grid by:\n1. the number of row labels\n2. the number of column labels\n3. the remaining sub-images.\nYou can use `order=inside_out` to reverse the image selection (useful if `batch_size>1` and you want to label the batches).\n\n**Alignment**\n\n* If a label gets wrapped into the next line the whole axis is considered \"multiline\" and aligns them at top with justified-spacing.\n* If all the labels are numbers or all end in numbers (e.g. `strength: 1.`) the whole axis is considered \"numeric\" and aligns them right.\n* All other texts are considered \"singleline\" and aligns them centered.\n* Aligns singleline and numeric labels for columns at bottom, and for rows aligns them vertically in the middle.\n\n**Font-size**\n\n* The height of the column label area is determined by `font_size` or `half of largest sub-images packing height in any row` (whichever is greater).\n* The width of the row label area is determined by the widest width of the sub-images packing (with a minimum of 256px).\n* The text is shrunk down until it fits (down to `font_size_min=6`) and uses the same font size for the whole axis (row labels or column labels).\nIf the font size is already at the minimum, clips any remaining text.\n\n**Sub-images packing**\n\nShapes the sub-images (usually from batches) into the most square area (the \"sub-images packing\"), unless `output_is_list=True`, in which case uses only one image for each cell and create a list of whole image grids instead.\nYou can use this list of image grids to connect another XyzGridPlot node to create super-grids.\nIf the sub-images consist of batches of different sizes, fills up the missing cells with empty images.\nThe number of images per cells (including batched images) have to be a multiple of `rows * columns`.\n",
"Load Any File": "Loads any text or binary file and provides the file content as string or base64 string. Additionally tries to load it as a `IMAGE`. And also tries to load any metadata.\n\n`filepath` supports ComfyUI's annotated filepaths `[input]` `[output]` or `[temp]`.\n`filepath` also support glob-pattern expansions `subdir/**/*.png`.\nInternally uses python's [glob.iglob](https://docs.python.org/3/library/glob.html#glob.iglob).\n\n`metadata` calls `exiftool`, if it's installed and available at `PATH`, otherwise uses `PIL.Image.info` as a fallback.\n\nIf you need more control over the paths use it together with `Path OutputList`.\n\nFor security reason only the following directories are supported: `[input] [output] [temp]`.\nFor performance reasons the number of files are limited to: 1024.\n",
"Load Any Video": "This node is a duplicate of nodes_video.py LoadVideo except with the fix included from [issue#11017](https://github.com/comfyanonymous/ComfyUI/issues/11017)\nIt is required to load videos based on annotated filepaths which are restricted to user directories: `[input] [output] [temp]`..\n",
"Path OutputList": "List directory content via glob patterns and split each filepath into it's parts.\n\n`filepath` supports ComfyUI's annotated filepaths `[input]` `[output]` or `[temp]`.\n`filepath` also support glob-pattern expansions `subdir/**/*.png`.\nInternally uses python's [glob.iglob](https://docs.python.org/3/library/glob.html#glob.iglob).\n\n`bare_strings` is intended for different styles of path recombinations, e.g. \"{fulldir}/{basename}.{ext}\" vs \"{fulldir}{basename}{ext}\"\n\nAs a design choice the ComfyUI user directory annotation is used in the glob pattern (to allow more flexible patterns) insted of providing a separate variable (in a combo box).\n",
"Iterate Begin": "Iterate a sub-workflow by executing it from a data list sequentially in item-major order (as opposed to node-major).\"\nYou need to connect the `flow_control` from a `IterateBegin` to a `IterateEnd` node.\nOnly use this if a sub-workflow takes a long time to process without any visible progress (see [execution stalling problem](https://github.com/geroldmeisinger/ComfyUI-outputlists-combiner#the-execution-stalling-problem)).\nMake sure to use the passthrough output slots on output nodes (`Preview Image`, `Save Image` etc.) so the intermediate results are visible.\nInternally uses the node expansion mechanism which duplicates the sub-workflow multiple times for each list item.\n\n`lists` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"Iterate End": "Iterate a sub-workflow by executing it from a data list sequentially in item-major order (as opposed to node-major).\"\nYou need to connect the `flow_control` from a `IterateBegin` to a `IterateEnd` node.\nOnly use this if a sub-workflow takes a long time to process without any visible progress (see [execution stalling problem](https://github.com/geroldmeisinger/ComfyUI-outputlists-combiner#the-execution-stalling-problem)).\nMake sure to use the passthrough output slots on output nodes (`Preview Image`, `Save Image` etc.) so the intermediate results are visible.\nInternally uses the node expansion mechanism which duplicates the sub-workflow multiple times for each list item.\n\n`lists` use(s) `is_output_list=True` (indicated by the symbol `𝌠`) and will be processed sequentially by corresponding nodes.\n",
"Bake String": "Works as a simple string passthrough first but 'bakes' the string into the `override` field of the workflow JSON and then uses this value instead.\n\nThis node may seem strange but it allows to add additional infos on how a specific image was created in a multi-asset workflow.\n\n* Use-case 1 \"per-image parameters\": If multiple images are created from an output list, the same workflow is stored for ALL images. This node allows to bake the specific string into the workflow JSON for the very string that was used in a individual image.\n* Use-case 2 \"include image\": img2img and controlnet workflows require an input image. Used together with a base64 string the full image can be baked into the workflow JSON.\n",
"Workflow Discriminator": "Compares workflows and discriminates them to extract the different values as individual OutputLists.\nYou can use this node to restore how each individual image was created from a list of images with the same workflow.\nNote that ComfyUI's `IMAGE` doesn't contain the workflow metadata and you need to load the images with specialized image+metadata loaders and connect the metadata to this node.\nCustom nodes with metadata loaders include:\n* `Load Any File.metadata` -> `JSON OutputList(jsonpath=$.[\"PNG:Prompt\"]).value`\n* [Crystool](https://github.com/crystian/ComfyUI-Crystools) `🪛 Load image with metadata.Metadata RAW` -> `🪛 Metadata extractor.prompt`\n* [Simple_Readable_Metadata](https://github.com/ShammiG/ComfyUI-Simple_Readable_Metadata-SG) `Simple Readable Metadata-SG.metadata_raw`\n",
"Formatted String": "Creates a string that contains placeholder variables and replaces them with their respective values.\n**[DEPRECATED]** Use Comfy Core's `Format Text` instead. You can still use this one if you want to use the S&R replacements.\n\nUses python `str.format()` internally, see [Python - Format String Syntax](https://docs.python.org/3/library/string.html#format-string-syntax) .\n* You can use `{a:.2f}` to round off a float to 2 decimals.\n* You can use `{a:05d}` to pad up to 5 leading zeros to fit with comfys filename suffix `ComfyUI_00001_.png`.\n* If you want to write `{ }` within your strings (e.g. for JSONs) you have to double them: `{{ }}`.\n\nAlso applies *search & replace (S&R) syntax* such as `%date:yyyy-MM-dd hh:mm:ss%` and `%KSampler.seed%`.\nThus you can also use it as a `GET-node`.\nNote that \"search & replace\" takes place in Javascript context and runs before node execution.\n",
"KSampler Immediate Save": "Node expansion of default `CheckpointLoader`, `KSampler`, `VAE Decode` and `Save Image` to process as one.\n**[DEPRECATED]** Use `Iterate Begin -> workflow -> Iterate End` pattern instead.\n\nThis is useful if you want to save the intermediate images for grids immediately.\n"
}