92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
---
|
|
tags:
|
|
- Crop
|
|
- Image
|
|
- ImageTransformation
|
|
---
|
|
|
|
# Extract Crop Data from Batch
|
|
## Documentation
|
|
- Class name: `SaltBatchCropDataExtractor`
|
|
- Category: `SALT/Masking/Process`
|
|
- Output node: `False`
|
|
|
|
The SaltBatchCropDataExtractor node is designed to process a batch of crop data, extracting specific crop information and dimensions for a given index within the batch. It aims to facilitate the manipulation and analysis of crop data by providing detailed metrics such as width, height, and boundary coordinates.
|
|
## Input types
|
|
### Required
|
|
- **`crop_data_batch`**
|
|
- The batch of crop data to be processed. It is essential for determining the specific crop information and dimensions to be extracted.
|
|
- Comfy dtype: `CROP_DATA_BATCH`
|
|
- Python dtype: `List[Tuple[Tuple[int, int], Tuple[int, int, int, int]]]`
|
|
- **`index`**
|
|
- The index within the crop data batch from which to extract crop information. It dictates the specific crop data to be processed.
|
|
- Comfy dtype: `INT`
|
|
- Python dtype: `int`
|
|
## Output types
|
|
- **`crop_data_batch`**
|
|
- Comfy dtype: `CROP_DATA_BATCH`
|
|
- The extracted crop data for the specified index, including size and boundary coordinates.
|
|
- Python dtype: `List[Tuple[Tuple[int, int], Tuple[int, int, int, int]]]`
|
|
- **`width`**
|
|
- Comfy dtype: `INT`
|
|
- The width of the crop area.
|
|
- Python dtype: `int`
|
|
- **`height`**
|
|
- Comfy dtype: `INT`
|
|
- The height of the crop area.
|
|
- Python dtype: `int`
|
|
- **`top`**
|
|
- Comfy dtype: `INT`
|
|
- The top boundary coordinate of the crop area.
|
|
- Python dtype: `int`
|
|
- **`left`**
|
|
- Comfy dtype: `INT`
|
|
- The left boundary coordinate of the crop area.
|
|
- Python dtype: `int`
|
|
- **`right`**
|
|
- Comfy dtype: `INT`
|
|
- The right boundary coordinate of the crop area.
|
|
- Python dtype: `int`
|
|
- **`bottom`**
|
|
- Comfy dtype: `INT`
|
|
- The bottom boundary coordinate of the crop area.
|
|
- Python dtype: `int`
|
|
## Usage tips
|
|
- Infra type: `CPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SaltBatchCropDataExtractor:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"crop_data_batch": ("CROP_DATA_BATCH",),
|
|
"index": ("INT", {"min": 0}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("CROP_DATA_BATCH", "INT", "INT", "INT", "INT", "INT", "INT")
|
|
RETURN_NAMES = ("crop_data_batch", "width", "height", "top", "left", "right", "bottom")
|
|
|
|
FUNCTION = "extract"
|
|
CATEGORY = f"{NAME}/Masking/Process"
|
|
|
|
def extract(self, crop_data_batch, index):
|
|
if index < 0 or index >= len(crop_data_batch):
|
|
raise ValueError("Index out of range")
|
|
|
|
try:
|
|
crop_size, (crop_left, crop_top, crop_right, crop_bottom) = crop_data_batch[index]
|
|
width = crop_right - crop_left
|
|
height = crop_bottom - crop_top
|
|
single_crop_data = [(crop_size, (crop_left, crop_top, crop_right, crop_bottom))]
|
|
return single_crop_data, width, height, crop_top, crop_left, crop_right, crop_bottom
|
|
except Exception as e:
|
|
print(e)
|
|
return [((0, 0), (0, 0, 0, 0))], 0, 0, 0, 0, 0, 0
|
|
|
|
```
|