dtype float64 fix

This commit is contained in:
FizzleDorf
2024-06-02 18:37:20 -04:00
parent 51a29ce041
commit ae7317d089
2 changed files with 19 additions and 7 deletions
+6 -4
View File
@@ -121,14 +121,15 @@ def interpolate_prompt_seriesA(animation_prompts, settings:ScheduleSettings):
sorted_prompts.append((str(settings.max_frames), sorted_prompts[-1][1]))
# Setup containers for interpolated prompts
cur_prompt_series = pd.Series([np.nan for a in range(settings.max_frames)])
nxt_prompt_series = pd.Series([np.nan for a in range(settings.max_frames)])
nan_list = [np.nan for a in range(settings.max_frames)]
cur_prompt_series = pd.Series(nan_list,dtype=object)
nxt_prompt_series = pd.Series(nan_list,dtype=object)
# simple array for strength values
weight_series = [np.nan] * settings.max_frames
# in case there is only one keyed prompt, set all prompts to that prompt
if len(sorted_prompts) == 1:
if settings.max_frames == 1:
for i in range(0, len(cur_prompt_series) - 1):
current_prompt = sorted_prompts[0][1]
cur_prompt_series[i] = str(current_prompt)
@@ -140,6 +141,7 @@ def interpolate_prompt_seriesA(animation_prompts, settings:ScheduleSettings):
# Initialized outside of loop for nan check
current_key = 0
next_key = 0
# For every keyframe prompt except the last
for i in range(0, len(sorted_prompts) - 1):
# Get current and next keyframe
@@ -178,7 +180,7 @@ def interpolate_prompt_seriesA(animation_prompts, settings:ScheduleSettings):
index_offset = 0
# Evaluate the current and next prompt's expressions
for i in range(0, len(cur_prompt_series)):
for i in range(settings.start_frame, min(settings.end_frame,len(cur_prompt_series))):
cur_prompt_series[i] = prepare_batch_promptA(cur_prompt_series[i], settings, i)
nxt_prompt_series[i] = prepare_batch_promptA(nxt_prompt_series[i], settings, i)
if settings.print_output == True:
+13 -3
View File
@@ -55,12 +55,22 @@ def parse_key_frames(string, max_frames):
for match_object in string.split(","):
frameParam = match_object.split(":")
max_f = max_frames - 1 # needed for numexpr even though it doesn't look like it's in use.
frame = int(sanitize_value(frameParam[0])) if check_is_number(
sanitize_value(frameParam[0].strip())) else int(numexpr.evaluate(
frameParam[0].strip().replace("'", "", 1).replace('"', "", 1)[::-1].replace("'", "", 1).replace('"', "", 1)[::-1]))
frame_str = sanitize_value(frameParam[0].strip())
try:
if check_is_number(frame_str):
frame = int(frame_str)
else:
# Simplified expression evaluation
frame = int(numexpr.evaluate(frame_str))
except Exception as e:
raise RuntimeError(f"Error evaluating frame expression '{frame_str}': {e}")
frames[frame] = frameParam[1].strip()
if frames == {} and len(string) != 0:
raise RuntimeError('Key Frame string not correctly formatted')
return frames
def batch_get_inbetweens(key_frames, max_frames, integer=False, interp_method='Linear', is_single_string=False):