Fix: flatten comfyui and ltx-video-pipeline to Gitea convention (flat skill dirs). comfyui v5.1.0, ltx-video-pipeline v2.0.0.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Scan LTX Director output videos and map them to scenes.
|
||||
|
||||
Usage: python3 scan_videos.py [output_dir]
|
||||
|
||||
Extracts from each LTX_Director_*.mp4:
|
||||
- Scene number (from start_frame in prompt metadata)
|
||||
- Model type (fp8+LoRAs, Q4, or unknown)
|
||||
- Resolution and duration
|
||||
- Whether Transition LoRA is wired (LoraLoaderModelOnly in prompt)
|
||||
- Whether zhuanchang trigger is present
|
||||
- File size
|
||||
"""
|
||||
|
||||
import subprocess, os, re, sys
|
||||
|
||||
outdir = sys.argv[1] if len(sys.argv) > 1 else os.path.expanduser("~/comfy-ui/output/video")
|
||||
files = sorted([f for f in os.listdir(outdir) if f.startswith("LTX_Director_") and f.endswith(".mp4")])
|
||||
|
||||
print(f"{'File':40s} | {'Resolution':20s} | {'Scene':10s} | {'Model':12s} | {'Trans':6s} | {'zhuanchang':10s} | {'Size':>8s}")
|
||||
print("-" * 120)
|
||||
|
||||
for f in files:
|
||||
path = os.path.join(outdir, f)
|
||||
|
||||
# Resolution and duration
|
||||
r = subprocess.run(["ffprobe", "-v", "quiet", "-select_streams", "v:0",
|
||||
"-show_entries", "stream=width,height,duration",
|
||||
"-of", "csv=p=0", path], capture_output=True, text=True)
|
||||
res = r.stdout.strip()
|
||||
|
||||
# Prompt metadata
|
||||
r2 = subprocess.run(["ffprobe", "-v", "quiet", "-show_entries", "format_tags=prompt",
|
||||
"-of", "csv=p=0", path], capture_output=True, text=True)
|
||||
prompt_raw = r2.stdout.strip()
|
||||
|
||||
# Scene from imageFile
|
||||
img_match = re.search(r"imageFile.*?ltx_start_frame_(\d+)", prompt_raw)
|
||||
scene = f"Scene_{img_match.group(1)}" if img_match else "?"
|
||||
|
||||
# Model type
|
||||
if "UNETLoader" in prompt_raw and "LTX2LoraLoaderAdvanced" in prompt_raw:
|
||||
model = "fp8+LoRAs"
|
||||
elif "UnetLoaderGGUF" in prompt_raw:
|
||||
model = "Q4"
|
||||
else:
|
||||
model = "?"
|
||||
|
||||
# Transition LoRA
|
||||
has_trans = "LoraLoaderModelOnly" in prompt_raw
|
||||
has_zhuanchang = "zhuanchang" in prompt_raw
|
||||
|
||||
# File size
|
||||
size = os.path.getsize(path)
|
||||
size_str = f"{size/1024:.0f}KB"
|
||||
|
||||
print(f"{f:40s} | {res:20s} | {scene:10s} | {model:12s} | {str(has_trans):6s} | {str(has_zhuanchang):10s} | {size_str:>8s}")
|
||||
Reference in New Issue
Block a user