ComfyUI Extension: ComfyUI-Fossiel-QoL-Nodes
ComfyUI-Fossiel-QoL-Nodes is (what will hopefully become) a suite of custom nodes for ComfyUI to improve quality of life. These nodes have been developed for personal use but maybe you’ll find them useful as well.
Custom Nodes (0)
README
ComfyUI-Fossiel-QoL-Nodes
ComfyUI-Fossiel-QoL-Nodes is (what will hopefully become) a suite of custom nodes for ComfyUI to improve quality of life. These nodes have been developed for personal use but maybe you’ll find them useful as well.
Nodes
FossielCentralControl_v2

This node is your go-to hub for managing settings in ComfyUI. It simplifies creating video clips in multiple consecutive runs (like extending a sequence) but it's versatile enough to work great for any ComfyUI project, keeping things organized and easy.
Specifications
Inputs:
- Images (optional) – Accepts a single image or a batch of images. It grabs the batch size (how many images) and the resolution (width and height) of the first image. The batch size goes to the
batch_countoutput, and the resolution is used to set the target dimensions for video or image generation, overriding the Resolution Target setting if connected.
Parameters:
- Resolution Settings – Controls the size of your output image or video.
- Manual Resolution: Set your preferred width and height (e.g., 512x512). These go straight to the
Manual Resolutionoutput for use in other nodes. - Resolution Target: Define the ideal width and height for your project (e.g., 512x512). If an image is connected to the Images input, its dimensions take over. The node calculates a final resolution that matches this aspect ratio as closely as possible, stays within a maximum pixel limit (set by Maximum Resolution), and aligns with a tolerance value for better AI compatibility. Lower tolerance values give a more accurate aspect ratio, while higher ones work better with the AI’s internal math.
- Maximum Resolution: Caps the width and height to keep the total pixels manageable. The calculated resolution is sent to the
Calculated Resolutionoutput. - Note: If calculations go wonky (e.g., zero height), it defaults to 64x64 to keep things safe.
- Manual Resolution: Set your preferred width and height (e.g., 512x512). These go straight to the
- Video Settings – Manages video-specific options for smooth generation.
- Video Length: Sets the number of frames (e.g., 81). It snaps to 1 or multiples of 4 + 1 (like 5, 9, 13) for compatibility and goes to the
Vid_Lengthoutput. - Overlap Length: Sets how many frames overlap between video segments (e.g., 8), sent to the
Overlapoutput. - Frame Rate: Defines frames per second (e.g., 16.0), sent to the
Frame_Rateoutput. - Start/End Frames: Based on Video Length and Current Generation (e.g., which clip you’re making, like clip 1 or 2), it calculates the first and last frame numbers, sent to
Start_IndexandEnd_Index. It also computes their timings (in seconds) forStart_TimeandEnd_Time. - First Generation Switch: Outputs a yes/no signal (1 for the first clip, 0 for others) to tweak setups for the first video clip differently, sent to
First_Gen_Batch_Switch.
- Video Length: Sets the number of frames (e.g., 81). It snaps to 1 or multiples of 4 + 1 (like 5, 9, 13) for compatibility and goes to the
- Sampling and Naming Settings – Handles AI generation and file naming.
- Sampling Steps: Sets the number of AI processing steps (snaps to even numbers, e.g., 4). It splits these steps for two samplers in workflows, using a split method (repeat last step or move to next) and a ratio (e.g., 50/50). These go to
steps,KSampler_1_End_Step, andKSampler_2_Start_Step. - CFG Scale: Controls how closely the AI follows your prompt (e.g., 7.0), sent to the
cfgoutput. - Sampler and Scheduler: Chooses the AI’s processing style (e.g., “euler” sampler, “simple” scheduler), sent to
SamplerandScheduler. - File Naming:
- Project Name – Base project identifier (e.g.,
MyProject). - Scene Name – Specific scene or clip name (e.g.,
Intro). - Naming Suffix – Choose
NoneorCurrent Gento appendGen001,Gen002, etc. - Delimiter – Separator between parts (default
_). - The final name combines non-empty parts:
Project_Delimiter_SceneorProject_Delimiter_Gen001, etc. Empty fields are skipped — no double delimiters. Output goes toFile_Name, generation number toGen_Num.
- Project Name – Base project identifier (e.g.,
- Sampling Steps: Sets the number of AI processing steps (snaps to even numbers, e.g., 4). It splits these steps for two samplers in workflows, using a split method (repeat last step or move to next) and a ratio (e.g., 50/50). These go to
Outputs:
- Manual Resolution – The width and height you set in Resolution Settings, passed directly for use in other nodes (e.g., setting canvas size).
- Calculated Resolution – The final width and height calculated to match your target aspect ratio, stay within the pixel limit, and align with AI compatibility rules. Used for actual image or video generation.
- Vid_Length – The snapped number of video frames (e.g., 81).
- Vid_Duration – The video length in seconds (e.g., 81 frames at 16 FPS = 5.0625 seconds).
- Overlap – The number of overlapping frames between video segments.
- Overlap_Duration – The overlap time in seconds.
- Start_Index – The first frame number of the video sequence.
- Start_Time – The start time of the sequence in seconds.
- End_Index – The last frame number of the sequence.
- End_Time – The end time of the sequence in seconds.
- Frame_Rate – The frames per second for the video.
- Gen_Num – The current generation number (e.g., clip 1, 2).
- batch_count – The number of images in the input batch (0 if no image).
- File_Name – The final file name, with or without a generation suffix.
- steps – The total number of sampling steps (even).
- KSampler_1_End_Step – The steps for the first sampler in a dual-sampler setup.
- KSampler_2_Start_Step – The starting step for the second sampler.
- cfg – The guidance scale for the AI.
- Sampler – The chosen sampling algorithm.
- Scheduler – The chosen scheduler algorithm.
- First_Gen_Batch_Switch – A yes/no signal (1 or 0) for first-clip setup adjustments.
Notes:
- This node keeps all your settings in one place — resolution, video timing, sampling, and naming.
- The naming system is flexible:
Project_Scene,Project_Gen001, or justScene— no messy double underscores. - Perfect for organizing multi-clip projects with clean, predictable filenames.
WebP Wrangler

Load and extract frames from animated WebP files with full control over range and output.
Specifications
Inputs:
- WebP Path – Full path to the animated WebP file (e.g.,
C:/animation.webp). - Load Mode – Choose how to extract frames:
All– Load every frameFrom first to Index 1– Frames 0 to value of Index_1From Index 1 to last– Value of Index_1 to final frameIndex 1 to Index 2– Between two indicesFirst frame– Only frame 0Last frame– Final frameIndex 1 frame– Single frame at value of Index_1
(Important: For all batch modes, the range includes the indexed frame(s). E.g. InFrom first to Index 1mode, with an index value of 3, a batch count of 4 will be output.)
- Index 1 – First index for range-based modes (0-based).
- Index 2 – Second index for
Index 1 to Index 2mode. (Ignored for all other modes)
Outputs:
- images – Batch of RGB frames as
IMAGEtensor (float32, 0–1). - Alpha as mask – Alpha channel as grayscale mask (1.0 = opaque). Solid alpha (all 0 or 1) is normalized to 1.0.
- total_batch_count – Total number of frames in the WebP file.
- split_batch_count – Number of frames actually loaded.
- Frame Rate – Approximate FPS (rounded due to limitations of the webp library), or 10.0 if undetected.
Notes:
- Supports animated WebP with alpha transparency.
- Single-frame WebP returns a batch of 1.
- Errors (invalid path, corrupted file) raise clear messages.
- Frame rate is calculated from animation timestamps.
Sensor Switches

This is a set of 8 switches with a very special ability: Besides being able to function like any other switch, these switches will detect which of their 2 input ports is active and send that to the output. This is particularly useful in workflows where group or node bypassing is present. Let's say, for example, you want to send either a generated or a loaded image to another node's input. You would then connect the VAE Decode node's output to the first input of the Sensor Switch Image node and a Load Image node to the second input. Whichever of the two is not bypassed, will be sent to the destination node. If both inputs are active, the True/False toggle becomes active and the switch works like any other switch.
IMPORTANT: The Sensor Switch Latent node does not currently support the latent format for WAN 2.1 & 2.2
Installation Instructions
- Clone or download this repository to your local machine.
- Copy the repository folder to your ComfyUI custom nodes directory:
ComfyUI/custom_nodes/ - Install dependencies by running: pip install -r ComfyUI/custom_nodes/ComfyUI-Fossiel-QoL-Nodes/requirements.txt
- Restart ComfyUI to load the Fossiel Quality of Life nodes.
- Find the nodes in ComfyUI under the category Fossiel/QoL.
History
2025/10/28 - Added WebP Wrangler for animated WebP loading with frame range control.
2025/10/28 - Updated FossielCentralControl_v2: Added Project_Name, renamed Name → Scene_Name, improved naming logic (no double delimiters).
2025/10/27 - Added Sensor Switch Nodes.
2025/10/26 – Launched with Fossiel Central Control node.
Credits
Developed with help from Grok3
All the developers who make tools available to everyone using local AI
Model developers for supplying fantastic open source models, free of charge.