File size: 1,740 Bytes
455406a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import torch
import streamlit as st
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video

st.title("CogVideoX Video Generation on CPU")

# Your prompt
prompt = "A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical atmosphere of this unique musical performance."

if st.button("Generate Video"):
    with st.spinner("Generating video on CPU..."):
        # Load the model and force it to run on CPU
        pipe = CogVideoXPipeline.from_pretrained(
            "THUDM/CogVideoX-2b",
            torch_dtype=torch.float32  # Use float32 for CPU
        )

        # Ensure model uses CPU
        pipe.to("cpu")

        # VAE optimizations
        pipe.vae.enable_slicing()
        pipe.vae.enable_tiling()

        # Generate the video
        video = pipe(
            prompt=prompt,
            num_videos_per_prompt=1,
            num_inference_steps=50,
            num_frames=49,
            guidance_scale=6,
            generator=torch.manual_seed(42),  # Use manual_seed for CPU
        ).frames[0]

        # Export video
        export_to_video(video, "output.mp4", fps=8)
        
        # Show the video in Streamlit
        st.video("output.mp4")

        st.success("Video generated successfully on CPU!")