feat: LTX-2 legal-frame helpers (core/ltx2.py)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""LTX-2 frame-count math. Legal F satisfy F % 8 == 1 (8x temporal + 1)."""
|
||||
|
||||
|
||||
def is_legal_frames(f: int) -> bool:
|
||||
return f >= 9 and f % 8 == 1
|
||||
|
||||
|
||||
def legal_frames(min_f: int = 9, max_f: int = 1000) -> list[int]:
|
||||
start = max(9, min_f + ((1 - min_f) % 8)) # first 8k+1 >= min_f
|
||||
return list(range(start, max_f + 1, 8))
|
||||
|
||||
|
||||
def nearest_legal_frames(f: int) -> int:
|
||||
if f <= 9:
|
||||
return 9
|
||||
low = ((f - 1) // 8) * 8 + 1
|
||||
high = low + 8
|
||||
return low if (f - low) <= (high - f) else high
|
||||
|
||||
|
||||
def duration_for_frames(frames: int, fps: float) -> float:
|
||||
return frames / fps
|
||||
|
||||
|
||||
def frames_for_duration(duration: float, fps: float) -> int:
|
||||
return nearest_legal_frames(round(duration * fps))
|
||||
Reference in New Issue
Block a user