85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
|
|
# Documentation
|
|
- Class name: SaltCyclicalSchedule
|
|
- Category: SALT/Scheduling/Filter
|
|
- Output node: False
|
|
|
|
SaltCyclicalSchedule节点旨在生成给定调度列表中的周期性模式。它允许重复调度的特定段落,可选择性地纳入乒乓效果以实现镜像重复,从而增强调度的动态范围和可变性。
|
|
|
|
# Input types
|
|
## Required
|
|
- schedule_list
|
|
- 要处理以实现周期性重复的调度项目列表。它作为生成周期模式的基础序列,决定了输出的整体结构和内容。
|
|
- Comfy dtype: LIST
|
|
- Python dtype: List[Any]
|
|
- start_index
|
|
- 指定要重复的调度列表段落的起始索引,标记周期模式的开始。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
- end_index
|
|
- 定义要重复的调度列表段落的结束索引,标记周期模式的结束。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
- repetitions
|
|
- 确定指定段落重复的次数,直接影响周期调度的长度和重复率。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
## Optional
|
|
- ping_pong
|
|
- 启用时,将段落的镜像重复添加到循环中,创建一个来回的模式,增强调度的复杂性。
|
|
- Comfy dtype: BOOLEAN
|
|
- Python dtype: bool
|
|
|
|
# Output types
|
|
- schedule_list
|
|
- 应用周期模式生成后的结果列表,包括重复的段落,以及启用时的镜像重复。
|
|
- Comfy dtype: LIST
|
|
- Python dtype: List[Any]
|
|
|
|
|
|
## Usage tips
|
|
- Infra type: `CPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SaltCyclicalSchedule:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"schedule_list": ("LIST", ),
|
|
"start_index": ("INT", {"min": 0}),
|
|
"end_index": ("INT", {"min": 0}),
|
|
"repetitions": ("INT", {"min": 1}),
|
|
},
|
|
"optional": {
|
|
"ping_pong": ("BOOLEAN", {"default": False}),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("LIST",)
|
|
RETURN_NAMES = ("schedule_list",)
|
|
FUNCTION = "generate_cyclical"
|
|
CATEGORY = "SALT/Scheduling/Filter"
|
|
|
|
def generate_cyclical(self, schedule_list, start_index, end_index, repetitions, ping_pong=False):
|
|
if end_index < start_index:
|
|
raise ValueError("Schedule end_index must be greater than or equal to start_index.")
|
|
|
|
if end_index >= len(schedule_list):
|
|
raise ValueError("Schedule end_index must be within the range of the schedule_list.")
|
|
|
|
loop_segment = schedule_list[start_index:end_index + 1]
|
|
|
|
cyclical_schedule = []
|
|
for _ in range(repetitions):
|
|
cyclical_schedule.extend(loop_segment)
|
|
if ping_pong:
|
|
cyclical_schedule.extend(loop_segment[-2:0:-1])
|
|
|
|
return (cyclical_schedule,)
|
|
|
|
```
|