Files
CavinHuang-comfyui-nodes-docs/docs/SizeSelector.md
2024-07-04 08:39:03 +08:00

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)
```