openfree commited on
Commit
ab18dac
Β·
verified Β·
1 Parent(s): 7a73858

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -11
app.py CHANGED
@@ -31,16 +31,32 @@ from einops import rearrange
31
  from scipy.io import wavfile
32
  from transformers import pipeline
33
 
34
- # λΉ„λ””μ˜€ 배경제거λ₯Ό μœ„ν•œ μΆ”κ°€ import
35
  from transformers import AutoModelForImageSegmentation
36
  from torchvision import transforms
37
- from moviepy import VideoFileClip, vfx, concatenate_videoclips, ImageSequenceClip, concatenate_audioclips, AudioFileClip, CompositeAudioClip
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
39
  from moviepy.video.VideoClip import ColorClip
 
 
40
  import time
41
  from concurrent.futures import ThreadPoolExecutor
42
 
43
- from moviepy.editor import VideoFileClip, concatenate_videoclips
44
 
45
  # ν™˜κ²½ λ³€μˆ˜ μ„€μ •μœΌλ‘œ torch.load 체크 우회 (μž„μ‹œ ν•΄κ²°μ±…)
46
  os.environ["TRANSFORMERS_ALLOW_UNSAFE_DESERIALIZATION"] = "1"
@@ -657,20 +673,20 @@ def merge_videos_with_audio(video_files, audio_file, audio_volume, output_fps):
657
  logging.warning(f"λΉ„λ””μ˜€ 크기가 μ„œλ‘œ λ‹€λ¦…λ‹ˆλ‹€. 첫 번째 λΉ„λ””μ˜€ 크기({target_width}x{target_height})둜 μ‘°μ •ν•©λ‹ˆλ‹€.")
658
 
659
  # 크기가 λ‹€λ₯Έ λΉ„λ””μ˜€λ“€μ„ μ‘°μ •
660
-
661
  adjusted_clips = []
662
- for i, clip in enumerate(video_clips):
663
- if clip_sizes[i] != (target_width, target_height):
664
- # VideoClip 자체의 resize() λ©”μ„œλ“œ μ‚¬μš©
665
- adjusted_clip = clip.resize((target_width, target_height))
 
 
 
666
  adjusted_clips.append(adjusted_clip)
667
  else:
668
  adjusted_clips.append(clip)
669
 
670
  video_clips = adjusted_clips
671
-
672
-
673
-
674
  # 첫 번째 λΉ„λ””μ˜€μ˜ FPSλ₯Ό κΈ°λ³Έκ°’μœΌλ‘œ μ‚¬μš©
675
  if output_fps == 0:
676
  output_fps = video_clips[0].fps
 
31
  from scipy.io import wavfile
32
  from transformers import pipeline
33
 
34
+ # λΉ„λ””μ˜€ 배경제거 κ΄€λ ¨ import
35
  from transformers import AutoModelForImageSegmentation
36
  from torchvision import transforms
37
+
38
+ # ── moviepy import ──────────────────────────────────────────
39
+ # editor μ„œλΈŒλͺ¨λ“ˆμ΄ μžˆλŠ” 경우 μš°μ„  μ‚¬μš©, μ—†μœΌλ©΄ μ΅œμƒμœ„ moviepy μ‚¬μš©
40
+ try:
41
+ from moviepy.editor import VideoFileClip, concatenate_videoclips
42
+ except ImportError:
43
+ from moviepy import VideoFileClip, concatenate_videoclips
44
+
45
+ from moviepy import (
46
+ vfx, # 효과 ν•¨μˆ˜ (resize λ“±)
47
+ ImageSequenceClip, # 이미지 μ‹œν€€μŠ€ β†’ λΉ„λ””μ˜€
48
+ concatenate_audioclips, # μ˜€λ””μ˜€ 클립 ν•©μΉ˜κΈ°
49
+ AudioFileClip, # μ˜€λ””μ˜€ 클립
50
+ CompositeAudioClip # μ˜€λ””μ˜€ ν•©μ„±
51
+ )
52
  from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
53
  from moviepy.video.VideoClip import ColorClip
54
+ # ────────────────────────────────────────────────────────────
55
+
56
  import time
57
  from concurrent.futures import ThreadPoolExecutor
58
 
59
+
60
 
61
  # ν™˜κ²½ λ³€μˆ˜ μ„€μ •μœΌλ‘œ torch.load 체크 우회 (μž„μ‹œ ν•΄κ²°μ±…)
62
  os.environ["TRANSFORMERS_ALLOW_UNSAFE_DESERIALIZATION"] = "1"
 
673
  logging.warning(f"λΉ„λ””μ˜€ 크기가 μ„œλ‘œ λ‹€λ¦…λ‹ˆλ‹€. 첫 번째 λΉ„λ””μ˜€ 크기({target_width}x{target_height})둜 μ‘°μ •ν•©λ‹ˆλ‹€.")
674
 
675
  # 크기가 λ‹€λ₯Έ λΉ„λ””μ˜€λ“€μ„ μ‘°μ •
 
676
  adjusted_clips = []
677
+ for clip, size in zip(video_clips, clip_sizes):
678
+ if size != (target_width, target_height):
679
+ # β–ΆοΈŽ μ—¬κΈ°λ§Œ μˆ˜μ •
680
+ adjusted_clip = clip.fx(
681
+ vfx.resize, # 효과 ν•¨μˆ˜
682
+ newsize=(target_width, target_height) # λͺ©ν‘œ 크기
683
+ )
684
  adjusted_clips.append(adjusted_clip)
685
  else:
686
  adjusted_clips.append(clip)
687
 
688
  video_clips = adjusted_clips
689
+
 
 
690
  # 첫 번째 λΉ„λ””μ˜€μ˜ FPSλ₯Ό κΈ°λ³Έκ°’μœΌλ‘œ μ‚¬μš©
691
  if output_fps == 0:
692
  output_fps = video_clips[0].fps