mirror of
https://github.com/modelscope/DiffSynth-Studio.git
synced 2026-03-24 10:18:12 +00:00
make it more efficient to locate where to sample the frame
This commit is contained in:
@@ -283,11 +283,16 @@ class VideoDataset(torch.utils.data.Dataset):
|
|||||||
# make a ((start,end),frameid) struct
|
# make a ((start,end),frameid) struct
|
||||||
start_end_idx_map = [((sum(delays[:i]), sum(delays[:i+1])), i) for i in range(len(delays))]
|
start_end_idx_map = [((sum(delays[:i]), sum(delays[:i+1])), i) for i in range(len(delays))]
|
||||||
_frames = []
|
_frames = []
|
||||||
|
# according gemini-code-assist, make it more efficient to locate
|
||||||
|
# where to sample the frame
|
||||||
|
last_match = 0
|
||||||
for i in range(sum(delays) // minimal_interval):
|
for i in range(sum(delays) // minimal_interval):
|
||||||
current_time = minimal_interval * i
|
current_time = minimal_interval * i
|
||||||
for ((start, end), frame_idx) in start_end_idx_map:
|
for idx, ((start, end), frame_idx) in enumerate(start_end_idx_map[last_match:]):
|
||||||
if start <= current_time < end:
|
if start <= current_time < end:
|
||||||
_frames.append(frames[frame_idx])
|
_frames.append(frames[frame_idx])
|
||||||
|
last_match = idx + last_match
|
||||||
|
break
|
||||||
frames = _frames
|
frames = _frames
|
||||||
return frames
|
return frames
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user