Files
SamSeenX-ComfyUI_SSBeforeAf…/README.md
T
2025-05-24 09:59:12 +05:30

138 lines
5.3 KiB
Markdown

[![SamSeen Logo](https://img.shields.io/badge/ComfyUI_SS_Before_After_Transition-by_SamSeen_Solutions-orange?style=for-the-badge)](https://github.com/MrSamSeen)
![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)
# ComfyUI SS Before After Node
This repository provides two powerful custom nodes for ComfyUI to create stunning before-and-after transition videos. These nodes are designed for visual comparisons, transformations, and creative effects, supporting both standard and depth map-based transitions.
## Features
- **SSBeforeAndAfterVideo**: Create videos with fade and wipe transitions between two images.
- **SSBeforeAndAfterVideoWithDepthMap**: Create depth-aware transitions using a depth map for more immersive effects.
- High-quality output with customizable resolution, frame rate, feathering, and looping.
- Automatic handling of output directories and filenames.
- Progress bar for frame generation.
- Robust ffmpeg integration for video encoding.
---
## Node 1: SSBeforeAndAfterVideo
### Description
Creates before-and-after transition videos using classic fade and wipe effects. Ideal for showcasing transformations, comparisons, or visual storytelling.
### Supported Transitions
- **Fade**: Smoothly blends from the before image to the after image.
- **Wipe**: Animated reveal from left, right, top, or bottom, with optional feathered (blurred) edge.
### Parameters
- **before_image**: The starting image (tensor).
- **after_image**: The ending image (tensor).
- **transition_type**: Choose from `fade`, `wipe_from_left`, `wipe_from_top`, `wipe_from_right`, `wipe_from_bottom`.
- **fps**: Frames per second (1-120).
- **width/height**: Output video resolution (64-4096 px).
- **output_path**: Output directory (default `/output/`).
- **filename_prefix**: Prefix for output video files.
- **transition_duration**: Duration of the transition (0.5-10.0 seconds).
- **hold_duration**: Time to hold before and after images (0.0-5.0 seconds).
- **feather**: Feathering amount for wipe transitions (0.0-1.0).
- **loop_transition**: If enabled, the video will loop back to the start.
### How It Works
1. **Resizes** both images to the specified resolution.
2. **Generates frames** for the hold, transition, and (optionally) loop-back phases.
3. **Applies the selected transition** (fade or wipe) with feathering.
4. **Saves frames** to a temporary directory.
5. **Encodes video** using ffmpeg.
6. **Cleans up** temporary files and returns the video path and a preview frame.
---
## Node 2: SSBeforeAndAfterVideoWithDepthMap
### Description
Creates before-and-after transition videos using a depth map to control the transition. This enables advanced effects like revealing the after image from back-to-front, front-to-back, or from the middle outwards, based on scene depth.
### Supported Transitions
- **back_to_front**: Reveals the after image starting from the farthest (background) regions.
- **front_to_back**: Reveals the after image starting from the closest (foreground) regions.
- **middle_out**: Reveals the after image from the center depth outward.
### Parameters
- **before_image**: The starting image (tensor).
- **after_image**: The ending image (tensor).
- **depth_map**: Depth map image (tensor, same size as input images).
- **transition_type**: Choose from `back_to_front`, `front_to_back`, `middle_out`.
- **fps**: Frames per second (1-120).
- **width/height**: Output video resolution (64-4096 px).
- **output_path**: Output directory (default `/output/`).
- **filename_prefix**: Prefix for output video files.
- **transition_duration**: Duration of the transition (0.5-10.0 seconds).
- **hold_duration**: Time to hold before and after images (0.0-5.0 seconds).
- **feather**: Feathering amount for the depth mask (0.0-1.0).
- **loop_transition**: If enabled, the video will loop back to the start.
- **easing_method**: Transition easing ("none", "ease-in", "ease-out", "both").
### How It Works
1. **Resizes** all images to the specified resolution.
2. **Normalizes the depth map** and creates a mask based on the selected transition type and progress.
3. **Applies feathering** to the mask for smooth transitions.
4. **Blends images** according to the mask for each frame.
5. **Handles looping** and hold frames as configured.
6. **Encodes video** using ffmpeg and cleans up temporary files.
---
## Installation
1. Place this folder in your `ComfyUI/custom_nodes` directory.
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Ensure ffmpeg is installed and available in your system PATH.
---
## Usage
1. Restart ComfyUI after installing the node.
2. Add the desired node (`SSBeforeAndAfterVideo` or `SSBeforeAndAfterVideoWithDepthMap`) to your workflow.
3. Configure the parameters as needed.
4. Run the workflow to generate your before-and-after transition video.
5. The output video and a preview frame will be saved to your specified output directory.
---
## Troubleshooting
- **ffmpeg not found**: Make sure ffmpeg is installed and accessible from your system PATH.
- **Missing dependencies**: Install all required Python packages listed in `requirements.txt`.
- **Output not appearing**: Check the output directory path and permissions.
---
## License
MIT License
---
## Credits
Developed by SamSeen. Inspired by creative visual storytelling needs in ComfyUI.
---
## Contribution
Pull requests and suggestions are welcome!