- Clean up basic_glm_image.py to match other example scripts (remove unnecessary comments, follow LTX2 pattern) - Fix attention_mask handling in LocalAttention to use set_forward_context properly instead of creating SDPAMetadata inline - SDPAMetadata import remains at top of file (no local import)
57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
"""
|
|
GLM-Image inference example using FastVideo.
|
|
|
|
This example demonstrates how to generate images using the GLM-Image model
|
|
through FastVideo's VideoGenerator API.
|
|
|
|
Usage:
|
|
python examples/inference/basic/basic_glm_image.py
|
|
"""
|
|
|
|
import os
|
|
|
|
from PIL import Image
|
|
|
|
from fastvideo import VideoGenerator
|
|
|
|
OUTPUT_PATH = "image_output"
|
|
|
|
PROMPT = (
|
|
"A beautiful landscape photography with rolling hills, "
|
|
"a winding river, and a vibrant sunset in the background. "
|
|
"Warm golden light, photorealistic style."
|
|
)
|
|
|
|
|
|
def main() -> None:
|
|
generator = VideoGenerator.from_pretrained(
|
|
"zai-org/GLM-Image",
|
|
num_gpus=1,
|
|
trust_remote_code=True,
|
|
)
|
|
|
|
os.makedirs(OUTPUT_PATH, exist_ok=True)
|
|
|
|
result = generator.generate_video(
|
|
prompt=PROMPT,
|
|
output_path=OUTPUT_PATH,
|
|
save_video=False,
|
|
return_frames=True,
|
|
height=1024,
|
|
width=1024,
|
|
num_inference_steps=50,
|
|
guidance_scale=7.5,
|
|
)
|
|
|
|
if result and len(result) > 0:
|
|
img = Image.fromarray(result[0])
|
|
img.save(os.path.join(OUTPUT_PATH, "landscape.png"))
|
|
print(f"Saved image to {OUTPUT_PATH}/landscape.png")
|
|
|
|
generator.shutdown()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|