Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,57 +1,33 @@
|
|
1 |
-
import requests
|
2 |
import gradio as gr
|
3 |
import imageio
|
4 |
-
import os
|
5 |
-
from PIL import Image
|
6 |
import numpy as np
|
7 |
-
import
|
8 |
-
|
9 |
-
# ํ๊ฒฝ ๋ณ์์์ API ํค๋ฅผ ๋ถ๋ฌ์ต๋๋ค. ์์คํ
์ 'API_KEY' ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
|
10 |
-
API_KEY = os.environ.get("18BkVTfHD8DRxtR7uoO5RMu6O2P5PywUMoHTK4eRMz7MAEBQlOI5qRTC")
|
11 |
-
API_URL = 'https://api.pexels.com/v1'
|
12 |
-
|
13 |
-
def download_images(keyword):
|
14 |
-
headers = {'Authorization': API_KEY}
|
15 |
-
params = {'query': keyword, 'per_page': 5} # 5์ฅ์ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํฉ๋๋ค.
|
16 |
-
response = requests.get(f"{API_URL}/search", headers=headers, params=params)
|
17 |
-
images = []
|
18 |
-
|
19 |
-
if response.status_code == 200:
|
20 |
-
photos = response.json()['photos']
|
21 |
-
for photo in photos:
|
22 |
-
image_url = photo['src']['original']
|
23 |
-
img_data = requests.get(image_url).content
|
24 |
-
image_path = f"temp_{photos.index(photo)}.jpg"
|
25 |
-
with open(image_path, 'wb') as handler:
|
26 |
-
handler.write(img_data)
|
27 |
-
images.append(image_path)
|
28 |
-
|
29 |
-
return images
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
39 |
return video_path
|
40 |
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
return "๊ฒ์๋ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค."
|
48 |
|
|
|
49 |
demo = gr.Interface(
|
50 |
-
fn=
|
51 |
-
inputs=gr.Textbox(lines=2, placeholder="๊ฒ์ํ ํค์๋๋ฅผ ์
๋ ฅํ์ธ์"),
|
52 |
outputs=gr.Video(label="๊ฒฐ๊ณผ ์์"),
|
53 |
-
title="
|
54 |
-
description="์
๋ ฅ๋ ํค์๋์ ๋ง๋
|
55 |
)
|
56 |
|
57 |
if __name__ == "__main__":
|
|
|
|
|
1 |
import gradio as gr
|
2 |
import imageio
|
|
|
|
|
3 |
import numpy as np
|
4 |
+
from PIL import Image
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
+
# ์ด๋ฏธ์ง๋ฅผ ์์์ผ๋ก ๋ณํํ๋ ํจ์
|
7 |
+
def create_video(image_paths, video_length=1800, fps=1):
|
8 |
+
video_path = "output_video.mp4"
|
9 |
+
with imageio.get_writer(video_path, fps=fps) as writer:
|
10 |
+
for _ in range(video_length):
|
11 |
+
for image_path in image_paths:
|
12 |
+
image = Image.open(image_path)
|
13 |
+
image = image.resize((640, 480)) # ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋์ผํ ํฌ๊ธฐ๋ก ์กฐ์
|
14 |
+
writer.append_data(np.array(image))
|
15 |
return video_path
|
16 |
|
17 |
+
# Gradio ์ธํฐํ์ด์ค ํจ์
|
18 |
+
def generate_video(keyword):
|
19 |
+
# ์ฌ๊ธฐ์๋ ์ด๋ฏธ์ง ์์ง ๊ณผ์ ์ ์๋ตํ๊ณ , ๊ฐ์์ ์ด๋ฏธ์ง ๊ฒฝ๋ก ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
|
20 |
+
image_paths = ["image1.jpg", "image2.jpg", "image3.jpg"] # ๊ฐ์์ ์ด๋ฏธ์ง ๊ฒฝ๋ก
|
21 |
+
video_path = create_video(image_paths)
|
22 |
+
return video_path
|
|
|
23 |
|
24 |
+
# Gradio ์ธํฐํ์ด์ค ์ค์
|
25 |
demo = gr.Interface(
|
26 |
+
fn=generate_video,
|
27 |
+
inputs=gr.Textbox(lines=2, placeholder="๊ฒ์ํ ํค์๋๋ฅผ ์
๋ ฅํ์ธ์"),
|
28 |
outputs=gr.Video(label="๊ฒฐ๊ณผ ์์"),
|
29 |
+
title="ํค์๋ ๊ธฐ๋ฐ ์์ ์์ฑ",
|
30 |
+
description="์
๋ ฅ๋ ํค์๋์ ๋ง๋ ์์์ ์์ฑํฉ๋๋ค."
|
31 |
)
|
32 |
|
33 |
if __name__ == "__main__":
|