48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
"""DB 잡 레코드의 진행도로 쓰이는 파이프라인 단계 상태
|
|
실행 순서대로 선언됨
|
|
마지막 COMPLETED는 종료 표시
|
|
"""
|
|
from enum import StrEnum
|
|
|
|
|
|
def stage_keys(state_type) -> list[str]:
|
|
"""실행 순서대로 나열된 단계 이름
|
|
COMPLETED는 종료 표시라 빠짐
|
|
"""
|
|
return [member.value for member in state_type if member.name != "COMPLETED"]
|
|
|
|
|
|
def initial_timings(state_type) -> dict:
|
|
"""스테퍼가 그리는 단계별 시각의 초기값
|
|
키 순서가 곧 화면에 찍히는 순서라 생성 시점에 다 채워 둔다
|
|
"""
|
|
return {key: {"status": "idle", "started": None, "ended": None}
|
|
for key in stage_keys(state_type)}
|
|
|
|
|
|
class PosterAliveState(StrEnum):
|
|
DETECT = "detect"
|
|
NARRATION_TEXT = "narration_text"
|
|
MOTION = "motion"
|
|
TTS = "tts"
|
|
BGM = "bgm"
|
|
I2V = "i2v"
|
|
RENDER = "render"
|
|
COMPLETED = "completed"
|
|
|
|
|
|
class PlayreelState(StrEnum):
|
|
FETCH = "fetch"
|
|
SPLIT = "split"
|
|
UPSCALE = "upscale"
|
|
ANALYZE = "analyze"
|
|
MOTION = "motion"
|
|
NARRATION = "narration"
|
|
TTS = "tts"
|
|
BGM = "bgm"
|
|
I2V = "i2v"
|
|
HYBRID = "hybrid"
|
|
COMPOSE = "compose"
|
|
REVIEW = "review"
|
|
COMPLETED = "completed"
|