121 lines
4.9 KiB
Markdown
121 lines
4.9 KiB
Markdown
---
|
|
tags:
|
|
- AnimationScheduling
|
|
- Scheduling
|
|
---
|
|
|
|
# String Schedule 📅🅕🅝
|
|
## Documentation
|
|
- Class name: `StringSchedule`
|
|
- Category: `FizzNodes 📅🅕🅝/ScheduleNodes`
|
|
- Output node: `False`
|
|
|
|
The StringSchedule node is designed to manage and schedule string-based content for dynamic animation or content generation. It leverages scheduling settings to interpolate between different string values over a series of frames, facilitating the creation of animated text or evolving narratives.
|
|
## Input types
|
|
### Required
|
|
- **`text`**
|
|
- This input takes a multiline string that represents the text to be scheduled and animated, serving as the primary content for the scheduling process.
|
|
- Comfy dtype: `STRING`
|
|
- Python dtype: `str`
|
|
- **`max_frames`**
|
|
- Specifies the maximum number of frames for the scheduling, determining the length of the animation or content generation process.
|
|
- Comfy dtype: `INT`
|
|
- Python dtype: `int`
|
|
- **`current_frame`**
|
|
- Indicates the current frame number in the scheduling process, used to calculate the specific string content to be displayed at any given frame.
|
|
- Comfy dtype: `INT`
|
|
- Python dtype: `int`
|
|
- **`print_output`**
|
|
- A boolean flag that, when set to true, enables the printing of the scheduling process's output for debugging or tracking purposes.
|
|
- Comfy dtype: `BOOLEAN`
|
|
- Python dtype: `bool`
|
|
### Optional
|
|
- **`pre_text`**
|
|
- An optional string input that is prepended to the main text before scheduling.
|
|
- Comfy dtype: `STRING`
|
|
- Python dtype: `str`
|
|
- **`app_text`**
|
|
- An optional string input that is appended to the main text after scheduling.
|
|
- Comfy dtype: `STRING`
|
|
- Python dtype: `str`
|
|
- **`pw_a`**
|
|
- A parameter weight used in the scheduling algorithm to adjust the influence of certain aspects of the text.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
- **`pw_b`**
|
|
- A parameter weight similar to pw_a, used for adjusting the scheduling algorithm's influence on the text.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
- **`pw_c`**
|
|
- Another parameter weight for fine-tuning the scheduling algorithm's effect on the text.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
- **`pw_d`**
|
|
- A parameter weight that works alongside pw_a, pw_b, and pw_c to customize the scheduling outcome.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
## Output types
|
|
- **`POS`**
|
|
- Comfy dtype: `STRING`
|
|
- The output is a dynamically scheduled string, representing the positive aspect of the text adjusted according to the current frame and scheduling settings.
|
|
- Python dtype: `str`
|
|
- **`NEG`**
|
|
- Comfy dtype: `STRING`
|
|
- The output is a dynamically scheduled string, representing the negative aspect of the text adjusted according to the current frame and scheduling settings.
|
|
- Python dtype: `str`
|
|
## Usage tips
|
|
- Infra type: `CPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class StringSchedule:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {"required": {"text": ("STRING", {"multiline": True, "default": defaultPrompt}),
|
|
"max_frames": ("INT", {"default": 120.0, "min": 1.0, "max": 999999.0, "step": 1.0}),
|
|
"current_frame": ("INT", {"default": 0.0, "min": 0.0, "max": 999999.0, "step": 1.0, }),
|
|
"print_output":("BOOLEAN", {"default": False}),},
|
|
"optional": {"pre_text": ("STRING", {"multiline": True, "forceInput": True}),
|
|
"app_text": ("STRING", {"multiline": True, "forceInput": True}),
|
|
"pw_a": ("FLOAT", {"default": 0.0, "min": -9999.0, "max": 9999.0, "step": 0.1, "forceInput": True }),
|
|
"pw_b": ("FLOAT", {"default": 0.0, "min": -9999.0, "max": 9999.0, "step": 0.1, "forceInput": True }),
|
|
"pw_c": ("FLOAT", {"default": 0.0, "min": -9999.0, "max": 9999.0, "step": 0.1, "forceInput": True }),
|
|
"pw_d": ("FLOAT", {"default": 0.0, "min": -9999.0, "max": 9999.0, "step": 0.1, "forceInput": True }),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING", "STRING",)
|
|
RETURN_NAMES = ("POS", "NEG",)
|
|
FUNCTION = "animate"
|
|
|
|
CATEGORY = "FizzNodes 📅🅕🅝/ScheduleNodes"
|
|
|
|
def animate(self, text, max_frames, current_frame, pw_a=0, pw_b=0, pw_c=0, pw_d=0, pre_text='', app_text='', print_output = False ):
|
|
settings = ScheduleSettings(
|
|
text_g = text,
|
|
pre_text_G = pre_text,
|
|
app_text_G = app_text,
|
|
text_L = None,
|
|
pre_text_L = None,
|
|
app_text_L = None,
|
|
max_frames = max_frames,
|
|
current_frame = current_frame,
|
|
print_output = print_output,
|
|
pw_a = pw_a,
|
|
pw_b = pw_b,
|
|
pw_c = pw_c,
|
|
pw_d = pw_d,
|
|
start_frame = 0,
|
|
width = None,
|
|
height = None,
|
|
crop_w = None,
|
|
crop_h = None,
|
|
target_width = None,
|
|
target_height = None,
|
|
)
|
|
return string_schedule(settings)
|
|
|
|
```
|