samcoding5854 commited on
Commit
d15e784
1 Parent(s): e3c2cfd

Tweaked the video generation code

Browse files
Assets/output/images/download.png ADDED
Pages/createVideo.py CHANGED
@@ -4,31 +4,56 @@ import torch
4
  from diffusers import StableVideoDiffusionPipeline
5
  from diffusers.utils import load_image, export_to_video
6
 
 
 
 
 
7
  # Main function
8
  def CREATEGIF():
9
- st.title("Create photoshoot visual video")
10
-
11
- pipeline = StableVideoDiffusionPipeline.from_pretrained(
12
- "stabilityai/stable-video-diffusion-img2vid-xt", torch_dtype=torch.float16, variant="fp16"
13
- )
14
- pipeline.enable_model_cpu_offload()
15
-
16
- image = load_image("Assets/output/images/overlay_image.png")
17
- image = image.resize((1024, 576))
18
-
19
- generator = torch.manual_seed(42)
20
- frames = pipeline(image, decode_chunk_size=8, generator=generator).frames[0]
21
-
22
- if not os.path.exists("Assets/output/videos"):
23
- os.makedirs("Assets/output/videos")
24
- export_to_video(frames, "Assets/output/videos/generated.mp4", fps=7)
25
- video_file = open('Assets/output/videos/generated.mp4', 'rb')
26
- video_bytes = video_file.read()
27
-
28
- st.video(video_bytes)
29
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  if __name__ == "__main__":
32
  CREATEGIF()
33
-
34
-
 
4
  from diffusers import StableVideoDiffusionPipeline
5
  from diffusers.utils import load_image, export_to_video
6
 
7
+ # Function to get the list of images in a specified folder without extensions
8
+ def get_image_list(folder_path):
9
+ return [os.path.splitext(f)[0] for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f)) and f.lower().endswith(('png', 'jpg', 'jpeg'))]
10
+
11
  # Main function
12
  def CREATEGIF():
13
+ st.title("Create Photoshoot Visual Video")
14
+
15
+ # Folder containing images
16
+ image_folder = "Assets/output/images"
17
+
18
+ # Get the list of images from the folder
19
+ image_list = get_image_list(image_folder)
20
+
21
+ # Selectbox to choose an image
22
+ selected_image_name = st.selectbox("Select an image:", image_list)
23
+
24
+ # Button to start the video generation
25
+ if st.button("Generate Video"):
26
+ # Full path of the selected image (adding back the extensions for loading the image)
27
+ for ext in ['png', 'jpg', 'jpeg']:
28
+ selected_image_path = os.path.join(image_folder, f"{selected_image_name}.{ext}")
29
+ if os.path.exists(selected_image_path):
30
+ break
31
+
32
+ # Load the image and resize it
33
+ image = load_image(selected_image_path)
34
+ image = image.resize((1024, 576))
35
+
36
+ # Spinner during video generation
37
+ with st.spinner("Generating video..."):
38
+ pipeline = StableVideoDiffusionPipeline.from_pretrained(
39
+ "stabilityai/stable-video-diffusion-img2vid-xt", torch_dtype=torch.float16, variant="fp16"
40
+ )
41
+ pipeline.enable_model_cpu_offload()
42
+
43
+ generator = torch.manual_seed(42)
44
+ frames = pipeline(image, decode_chunk_size=8, generator=generator).frames[0]
45
+
46
+ # Create output directory if it doesn't exist
47
+ output_dir = "Assets/output/videos"
48
+ if not os.path.exists(output_dir):
49
+ os.makedirs(output_dir)
50
+ output_path = os.path.join(output_dir, "generated.mp4")
51
+ export_to_video(frames, output_path, fps=7)
52
+
53
+ # Display the generated video
54
+ video_file = open(output_path, 'rb')
55
+ video_bytes = video_file.read()
56
+ st.video(video_bytes)
57
 
58
  if __name__ == "__main__":
59
  CREATEGIF()