add readme
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# ComfyUI-MultiCutAndDrag
|
||||
|
||||
A ComfyUI extension that allows cutting and dragging multiple parts of an image along specified paths, with advanced masking capabilities.
|
||||
|
||||
## Features
|
||||
|
||||
### MultiCutAndDragOnPath
|
||||
|
||||
This node allows you to cut out parts of an image based on masks and then animate them along specified coordinate paths.
|
||||
|
||||
**Features:**
|
||||
- Cut multiple regions from an image using masks
|
||||
- Drag these regions along coordinate paths
|
||||
- Optionally rotate the cut regions during animation
|
||||
- Background inpainting for removed regions
|
||||
- Supports custom background images
|
||||
- Creates a batch of frames showing the animation
|
||||
|
||||
**Input Format:**
|
||||
Coordinate paths should be provided as a JSON array of arrays containing coordinate objects:
|
||||
|
||||
```json
|
||||
[
|
||||
[{"x": 100, "y": 100}, {"x": 200, "y": 200}, {"x": 300, "y": 100}],
|
||||
[{"x": 50, "y": 150}, {"x": 40, "y": 200}, {"x": 30, "y": 250}],
|
||||
]
|
||||
```
|
||||
|
||||
### BatchImageToMask
|
||||
|
||||
This node converts RGB images to binary masks using grayscale conversion and thresholding.
|
||||
|
||||
**Features:**
|
||||
- Batch processing of multiple images
|
||||
- Automatic handling of different tensor formats and dimensions
|
||||
- Adjustable threshold for mask creation
|
||||
- Optional morphological dilation to expand mask areas
|
||||
|
||||
### MapTrajectoriesToSegmentedMasks
|
||||
|
||||
This node aligns trajectory paths with mask centroids, allowing for more intuitive animation of segmented objects.
|
||||
|
||||
**Features:**
|
||||
- Automatically calculates the centroid of each mask
|
||||
- Translates trajectory paths to align with mask centroids
|
||||
- Maintains the shape and relative positions within each path
|
||||
- Handles multi-channel and single-channel masks
|
||||
- Returns both transformed masks and the translated trajectory JSON
|
||||
|
||||
## Installation
|
||||
|
||||
### Method 1: Via ComfyUI Manager
|
||||
|
||||
1. Open ComfyUI Manager
|
||||
2. Search for "MultiCutAndDrag"
|
||||
3. Click Install
|
||||
|
||||
### Method 2: Manual Installation
|
||||
|
||||
```
|
||||
WORKDIR /comfyui/custom_nodes
|
||||
RUN git clone https://github.com/pablerdo/ComfyUI-MultiCutAndDrag.git --recursive
|
||||
WORKDIR /comfyui/custom_nodes/ComfyUI-MultiCutAndDrag
|
||||
RUN git reset --hard (latestcommit hash)
|
||||
RUN if [ -f requirements.txt ]; then python -m pip install -r requirements.txt; fi
|
||||
RUN if [ -f install.py ]; then python install.py || echo "install script failed"; fi
|
||||
```
|
||||
3. Restart ComfyUI
|
||||
|
||||
## Example Workflow
|
||||
|
||||
1. Load an image and create masks for the areas you want to animate
|
||||
2. Use BatchImageToMask to convert segmentation images to proper masks if needed
|
||||
3. Define coordinate paths for each mask
|
||||
4. Connect them to MultiCutAndDragOnPath to create an animation sequence
|
||||
5. Alternatively, use MapTrajectoriesToSegmentedMasks to automatically align trajectories with mask centroids
|
||||
|
||||
## Requirements
|
||||
|
||||
- torch >= 2.0.0
|
||||
- torchvision >= 0.15.0
|
||||
- numpy >= 1.20.0
|
||||
- Pillow >= 9.0.0
|
||||
- scipy >= 1.8.0
|
||||
- opencv-python
|
||||
- Other dependencies as listed in requirements.txt
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the GNU General Public License v3.0
|
||||
Reference in New Issue
Block a user