From bbe43a4e7db283c061d608d53de1b0c4642b8477 Mon Sep 17 00:00:00 2001 From: Norbert Schmidt Date: Sun, 11 Jan 2026 12:10:54 +0100 Subject: [PATCH] add high quality video export and wrapper script - replace diffusers export_to_video with direct imageio writer - add --crf option for quality control (default 18, visually lossless) - use libx264 with slow preset for better compression - add ltx2 wrapper script for easier cli usage Co-Authored-By: Claude Opus 4.5 --- generate.py | 24 ++++++++++++++++++++++-- ltx2 | 6 ++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100755 ltx2 diff --git a/generate.py b/generate.py index b79b00c..96f3887 100644 --- a/generate.py +++ b/generate.py @@ -8,9 +8,10 @@ usage: python generate.py "your prompt" -o output.mp4 import argparse import sys +import imageio +import numpy as np import torch from diffusers import LTX2Pipeline -from diffusers.utils import export_to_video def main(): @@ -25,6 +26,7 @@ def main(): parser.add_argument("--frames", type=int, default=25, help="frame count") parser.add_argument("--fps", type=int, default=24, help="output fps") parser.add_argument("--seed", type=int, default=None, help="random seed") + parser.add_argument("--crf", type=int, default=18, help="video quality (0-51, lower=better, 18=visually lossless)") args = parser.parse_args() @@ -79,7 +81,25 @@ def main(): ) video_frames = result.frames[0] - export_to_video(video_frames, args.output, fps=args.fps) + + # convert to uint8 numpy arrays + frames = [] + for frame in video_frames: + frame = np.array(frame, dtype=np.uint8) + frames.append(frame) + + # export with high quality h264 + writer = imageio.get_writer( + args.output, + fps=args.fps, + codec='libx264', + quality=None, + pixelformat='yuv420p', + output_params=['-crf', str(args.crf), '-preset', 'slow'] + ) + for frame in frames: + writer.append_data(frame) + writer.close() print(f"\nsaved to: {args.output}") print(f"seed: {args.seed}") diff --git a/ltx2 b/ltx2 new file mode 100755 index 0000000..58a1eff --- /dev/null +++ b/ltx2 @@ -0,0 +1,6 @@ +#!/bin/bash +# quick wrapper for ltx-2 generation + +source ~/ltx-venv/bin/activate +cd "$(dirname "$0")" +python generate.py "$@"