74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
|
|
# Documentation
|
|
- Class name: SizeSelector
|
|
- Category: Size
|
|
- Output node: True
|
|
- Repo Ref: https://github.com/klinter-com/ComfyUI
|
|
|
|
SizeSelector节点提供了一种根据预定义的尺寸列表选择特定尺寸配置(宽度和高度)的机制。它通过允许用户从人类可读的尺寸选项列表中进行选择,然后将其转换为相应的数值宽度和高度值,从而抽象了处理不同分辨率需求的复杂性。
|
|
|
|
# Input types
|
|
## Required
|
|
- size_selected
|
|
- 该参数允许用户从预定义的尺寸选项列表中选择一个尺寸。每个选项对应一个特定的分辨率,所选择的选项决定了节点的输出宽度和高度。
|
|
- Comfy dtype: COMBO[STRING]
|
|
- Python dtype: str
|
|
|
|
# Output types
|
|
- width
|
|
- 所选尺寸配置的宽度分量,以整数表示。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
- height
|
|
- 所选尺寸配置的高度分量,以整数表示。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
|
|
|
|
## Usage tips
|
|
- Infra type: `CPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SizeSelector:
|
|
def __init__(self):
|
|
pass
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
cls.size_sizes, cls.size_dict = cls.read_sizes()
|
|
return {
|
|
'required': {
|
|
'size_selected': (cls.size_sizes,),
|
|
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ( "INT", "INT")
|
|
RETURN_NAMES = ( "width", "height")
|
|
FUNCTION = "return_res"
|
|
OUTPUT_NODE = True
|
|
CATEGORY = "Size"
|
|
|
|
@classmethod
|
|
def read_sizes(cls):
|
|
p = os.path.dirname(os.path.realpath(__file__))
|
|
file_path = os.path.join(p, 'sizes.json')
|
|
with open(file_path, 'r') as file:
|
|
data = json.load(file)
|
|
size_sizes = [f"{key} - {value['name']}" for key, value in data['sizes'].items()]
|
|
size_dict = {f"{key} - {value['name']}": value for key, value in data['sizes'].items()}
|
|
return size_sizes, size_dict
|
|
|
|
def return_res(self, size_selected):
|
|
# Extract resolution name and dimensions using the key
|
|
selected_info = self.size_dict[size_selected]
|
|
width = int(selected_info["width"])
|
|
height = int(selected_info["height"])
|
|
name = selected_info["name"]
|
|
return (width, height, name)
|
|
|
|
```
|