noEmbryo nodes
PromptTermList (1-6): are some nodes that help with the creation of Prompts inside ComfyUI. Resolution Scale outputs image dimensions using a scale factor. Regex Text Chopper outputs the chopped parts of a text using RegEx.
Nodes (13)
Your workflow is one bad save away from gone — Auto Save Workflow fixes that
The one-wire adapter that makes saved MiniMax H3 clips re-runnable
Don't Hand-Stitch Your H3 Clips — Let This Node Do It
Your prompt library as a JSON file, editable from inside the graph
The Load Image that doesn't care where your file lives
Your reusable prompt terms, one dropdown away
A second, independent dropdown for your prompt terms
Another term library slot, same dropdown magic
A fourth dropdown for the prompt terms you keep retyping
The fifth slot in the pack's six term-library dropdowns
The last of the six — and the one that proves the pattern
Slice a prompt into parts without a dozen string nodes
The math node for latent upscaling that stays a multiple of 4
noEmbryo Nodes
A diverse set of nodes for ComfyUI.
You can access them through "Add node > noEmbryo" submenu.
Json Prompt Loader

A node that can load a .json file with item:prompt pairs and outputs the selected item's prompt, while combining it with a custom prompt.
It can load .json files from any directory, not just the node's directory.
For the custom text integration, there is a variable (can be specified by the user), that can be used in the item's prompt text to insert the custom text anywhere in the body of the prompt.
-
UI controls
- json_path is the path to the
.jsonfile.
It can be an absolute path of your hard drive, or a relative path to the ComfyUI's installation directory. - selected_item selects one of the
.jsonfile's items (prompts). - variable is the variable that will be used to insert the custom text into the item's prompt text.
- custom_text is the custom text that will be inserted into the item's prompt text.
- json_path is the path to the
-
Advanced Usage

- Adding new items
To add a new item, we have to write it in thecustom_textinput, using the following format:item=The prompt's title/keyword value=The prompt's text, including our variable - Updating items
To update an item, we use the same method, just write the specific item we want to update.item=An existing title/keyword value=The new prompt's text, including our variable - Deleting items
To delete an item, we use the same format, but we just leave thevalueempty.
All of these methods will update theitem=An existing title/keyword value=.jsonfile, and the node will output a message about the success or failure of the operation.
We can also load an empty.jsonfile and use this method to populate it.
- Adding new items
<u>After changing the .json file, we must reload the ComfyUI page, so the node can reload the updated file.</u>
Load Image (from path)

Load an image from any path on your computer or a URL. Paste an absolute path or a link to an image, use an annotated path (input/file.png), or click the Browse dialog to pick a file from your drives.
The file is read from its original location; it is not copied into ComfyUI’s input folder.
Use a selection rectangle at the preview to crop it.
Limit (downscale) the output's size in megapixels or pixels.
Click the ↻ button (top-right, mouse over the preview), to rotate the image 90° clockwise.
Interactive crop
The node shows a live preview. You can crop directly on it:
- Drag on the image to draw a crop rectangle
- Drag inside the selection to move the crop rectangle
- Drag a corner to resize it
- Click (without dragging) outside the rectangle to clear it
With no crop drawn, the full image is output. The crop is stored in the workflow as normalized coordinates, so it survives save/reload. Changing the path clears the crop.
The output (cropped or full) will be downscaled only (not upscaled), by the value in the max_megapixels field.
Outputs match the stock Load Image node: IMAGE, MASK (from the alpha channel when present), plus the original path string.
-
Controls
- image: Paste an absolute path, (or a relative one with a prefix input/), or a URL to an image file.
- max_megapixels: Cap the output (crop, or full image if uncropped) to this many megapixels, downscaling only if it's bigger. Smaller images are left untouched. 1.0 = 1024x1024 px. 0 disables the cap.
- Browse...: to open an image file from your drives.
-
Inputs/Outputs
- Width/Height inputs: Force the output width in px (upscale or downscale), center-cropping first if the aspect ratio differs.
Leave disconnected (None) to keep natural width.
Only applies if BOTH width and height are connected, and when set (not 0). It overrides the
max_megapixelsvalue. - IMAGE/MASK: The final, processed image/mask.
- path: A string with the image's path.
- Width/Height inputs: Force the output width in px (upscale or downscale), center-cropping first if the aspect ratio differs.
Leave disconnected (None) to keep natural width.
Only applies if BOTH width and height are connected, and when set (not 0). It overrides the
Credits:
Built as a much more enhanced version of Load Image From Path (Enhanced) from ComfyUI_Ib_CustomNodes, with parts of the interactive crop UI inspired from Load Image & Crop in comfyui-obvpm.
Resolution Scale
A simple node that outputs the resolution of an image using the dimensions of an input image or some custom user-defined dimensions, using a Scale Factor.
If there is an input image connected, setting either width or height to 0 will use the other dimension to scale the image (but always multiple of 4).
Regex Text Chopper
A node that "chops" a text using a regular expression and outputs the chopped parts of the text.
H3 Motion Context Clip Stitcher

Final assembly for NikoDemon80's H3 Motion Context AV clip archives.
It loads numbered h3_motion_context_av_v1 files (clip_xx.safetensors), decodes one clip at a time to avoid memory peaks, dissolves the overlap between adjacent clips (video + synchronized audio), and concatenates them to a final video and audio stream. No quality loss, like when trying to concatenate encoded videos.
-
Inputs
- Video VAE
- Audio VAE
- (Optional), the current generated AV latent to be added as the last part of the stitching
-
Controls
- folder is the folder containing clip_00001.safetensors, clip_00002.safetensors, etc. Absolute paths and paths relative to ComfyUI/output are accepted.
- pattern is the filename glob. The final five-digit number is treated as the clip index.
- first_clipis the first approved clip to include.
- last_clip is the last clip to include. 0 = every clip from first_clip onward.
- context_length is the number of decoded frames to crossfade at each clip boundary. Keep the same number here as in the H3 Motion Context nodes. The normal setting is 22 frames. This is the overlap length that is dissolved between adjacent clips. 5, 22, 39 or 56 are the lengths that are a whole number of latent steps, which is why other numbers aren't offered.
- fps is the H3 native output rate. Keep this at 24 unless your workflow deliberately changes it.
-
Outputs
- images: The final stitched image stream to be saved
- audio: The final audio stream to be saved
- frame_count: The total number of frames
- report: Logging of some of the node's actions
Auto Save Workflow

This node can save the current workflow to a .json file, every time a generation job is run.
- UI controls
- save_directory is the directory where the
.jsonfile will be saved.
It can be a relative path inside the ComfyUI's output directory, or an absolute path of your hard drive. - filename is the name of the
.jsonfile.
It can contain the{timestamp}placeholder, which will be replaced with the current timestamp (for unique filenames). - trigger switch will enable (or not) the saving of the workflow.
- save_directory is the directory where the
- Outputs
- status outputs a text with the status of the saving process (the path of the saved file, or an error message).
- ✳️trigger is a dummy output that's used to trigger the saving process, even if nothing is connected to the node.
PromptTermList 1-6
<u>The PromptTermList nodes are now obsolete, and can mostly be replaced by the Json Prompt Loader node.
I won't remove them for compatibility reasons, but I would recommend using the JsonPromptLoader node instead.</u>
These are some nodes that help with the creation of Prompts inside ComfyUI.
Usage
Every one of these 6 nodes have a different json file that stores its Prompt Terms in "label"/"value" pairs.
The "label" part is what we see at the node's dropdown menu, and the "value" part is what it produces at its Term output when we run a generation job.
These json files are located inside the TermLists directory, in the node's folder.
There are two ways to add a new term.
-
From within ComfyUI:
- Connect a text box to the node's
textinput. - Write the "label"/"value" part in the box using the following format:
label=Descriptive text value=masterpiece, artful and cozy- Enable the
store_inputswitch. - Run a generation job.
- Refresh the page.
- Connect a text box to the node's
-
Manually:
- Just open the
jsonfile and add/remove/change entries.
Ofcourse we must be very careful with this, to keep the
jsonformat of labels/values (with the appropriate commas), otherwise the file will not be parsed. - Just open the
This text input is also useful if we want to manually add something after our term, or as the only term if we select the None label of the dropdown.
The strength value is changing the impact of the term by using the parenthesis format like this: (a great term:1.3)
We can delete a term by sending an empty value to the text input like this:
label=The label to be deleted
value=
Installation
- Use the ComfyUI Manager
- Or manually
- cd to
ComfyUI\custom_nodes - git clone https://github.com/noembryo/ComfyUI-noEmbryo.git
- Restart ComfyUI
- cd to