54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
from fastvideo import VideoGenerator
|
|
|
|
PROMPT = (
|
|
"A warm sunny backyard. The camera starts in a tight cinematic close-up "
|
|
"of a woman and a man in their 30s, facing each other with serious "
|
|
"expressions. The woman, emotional and dramatic, says softly, \"That's "
|
|
"it... Dad's lost it. And we've lost Dad.\" The man exhales, slightly "
|
|
"annoyed: \"Stop being so dramatic, Jess.\" A beat. He glances aside, "
|
|
"then mutters defensively, \"He's just having fun.\" The camera slowly "
|
|
"pans right, revealing the grandfather in the garden wearing enormous "
|
|
"butterfly wings, waving his arms in the air like he's trying to take "
|
|
"off. He shouts, \"Wheeeew!\" as he flaps his wings with full commitment. "
|
|
"The woman covers her face, on the verge of tears. The tone is deadpan, "
|
|
"absurd, and quietly tragic."
|
|
)
|
|
|
|
# FastVideo-converted weights (align settings to the official distilled pipeline).
|
|
MODEL_PATH = "converted/ltx2_diffusers"
|
|
UPSAMPLER_PATH = "converted/ltx2_spatial_upscaler"
|
|
|
|
OUTPUT_PATH = "outputs_video/ltx2_upscale/ltx2_official_two_stage2222.mp4"
|
|
|
|
|
|
def main() -> None:
|
|
generator = VideoGenerator.from_pretrained(
|
|
MODEL_PATH,
|
|
num_gpus=1,
|
|
ltx2_refine_enabled=True,
|
|
ltx2_refine_upsampler_path=UPSAMPLER_PATH,
|
|
ltx2_refine_num_inference_steps=3,
|
|
ltx2_refine_guidance_scale=1.0,
|
|
ltx2_refine_add_noise=True,
|
|
)
|
|
|
|
generator.generate_video(
|
|
prompt=PROMPT,
|
|
output_path=OUTPUT_PATH,
|
|
height=960,
|
|
width=1664,
|
|
num_frames=81,
|
|
fps=24,
|
|
seed=10,
|
|
# Distilled schedule in LTX-2 uses 8 steps; setting this keeps parity.
|
|
num_inference_steps=8,
|
|
guidance_scale=1.0,
|
|
save_video=True,
|
|
)
|
|
generator.shutdown()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|