AtzePengg
commited on
Commit
·
d0a6bac
1
Parent(s):
37617ef
Remove external URL dependencies and simplify app
Browse files- .gitattributes +1 -35
- app.py +6 -21
.gitattributes
CHANGED
@@ -1,35 +1 @@
|
|
1 |
-
*.
|
2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
1 |
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.py
CHANGED
@@ -34,9 +34,6 @@ load_dotenv()
|
|
34 |
# Get default API key from environment (will be '' if not set)
|
35 |
DEFAULT_API_KEY = os.getenv("OPENAI_API_KEY", "")
|
36 |
|
37 |
-
# Embed the Bear.mp4 video directly from a guaranteed source
|
38 |
-
BEAR_VIDEO_URL = "https://huggingface.co/spaces/gradio/video_component/resolve/main/files/Bear.mp4"
|
39 |
-
|
40 |
def process_frame(frame_path, style_prompt, api_key):
|
41 |
"""Process a single frame with GPT-4o analysis and DALL-E 3 generation"""
|
42 |
try:
|
@@ -207,9 +204,10 @@ def stylize_video(video_path, style_prompt, api_key):
|
|
207 |
print(f"Error: {str(e)}\n{traceback_str}")
|
208 |
return None, f"Error: {str(e)}"
|
209 |
|
210 |
-
|
211 |
-
|
212 |
-
|
|
|
213 |
|
214 |
with gr.Blocks(title="Video-to-Ghibli Style Converter") as iface:
|
215 |
gr.Markdown("# Video-to-Ghibli Style Converter")
|
@@ -219,9 +217,6 @@ with gr.Blocks(title="Video-to-Ghibli Style Converter") as iface:
|
|
219 |
with gr.Column(scale=2):
|
220 |
# Main input column
|
221 |
video_input = gr.Video(label="Upload Video (up to 15 seconds)")
|
222 |
-
with gr.Row():
|
223 |
-
# Add example button in its own row
|
224 |
-
example_btn = gr.Button("Use Bear Video Example", variant="secondary")
|
225 |
|
226 |
api_key = gr.Textbox(
|
227 |
label="OpenAI API Key (requires GPT-4o and DALL-E 3 access)",
|
@@ -238,7 +233,7 @@ with gr.Blocks(title="Video-to-Ghibli Style Converter") as iface:
|
|
238 |
with gr.Column(scale=2):
|
239 |
# Output column
|
240 |
video_output = gr.Video(label="Stylized Video")
|
241 |
-
status_output = gr.Textbox(label="Status", value="Ready. Upload a video
|
242 |
|
243 |
submit_btn.click(
|
244 |
fn=stylize_video,
|
@@ -246,19 +241,9 @@ with gr.Blocks(title="Video-to-Ghibli Style Converter") as iface:
|
|
246 |
outputs=[video_output, status_output]
|
247 |
)
|
248 |
|
249 |
-
def load_bear_and_update_status():
|
250 |
-
video, prompt = use_bear_video()
|
251 |
-
return video, prompt, "Bear video loaded. Enter your OpenAI API key and click 'Stylize Video'."
|
252 |
-
|
253 |
-
example_btn.click(
|
254 |
-
fn=load_bear_and_update_status,
|
255 |
-
inputs=None,
|
256 |
-
outputs=[video_input, style_prompt, status_output]
|
257 |
-
)
|
258 |
-
|
259 |
gr.Markdown("""
|
260 |
## Instructions
|
261 |
-
1. Upload a video up to 15 seconds long
|
262 |
2. Enter your OpenAI API key with GPT-4o and DALL-E 3 access
|
263 |
3. Customize the style prompt if desired
|
264 |
4. Click "Stylize Video" and wait for processing
|
|
|
34 |
# Get default API key from environment (will be '' if not set)
|
35 |
DEFAULT_API_KEY = os.getenv("OPENAI_API_KEY", "")
|
36 |
|
|
|
|
|
|
|
37 |
def process_frame(frame_path, style_prompt, api_key):
|
38 |
"""Process a single frame with GPT-4o analysis and DALL-E 3 generation"""
|
39 |
try:
|
|
|
204 |
print(f"Error: {str(e)}\n{traceback_str}")
|
205 |
return None, f"Error: {str(e)}"
|
206 |
|
207 |
+
# Use Gradio examples feature with local files instead
|
208 |
+
example_videos = [
|
209 |
+
["sample_video.mp4", "Studio Ghibli animation with Hayao Miyazaki's distinctive hand-drawn art style"]
|
210 |
+
]
|
211 |
|
212 |
with gr.Blocks(title="Video-to-Ghibli Style Converter") as iface:
|
213 |
gr.Markdown("# Video-to-Ghibli Style Converter")
|
|
|
217 |
with gr.Column(scale=2):
|
218 |
# Main input column
|
219 |
video_input = gr.Video(label="Upload Video (up to 15 seconds)")
|
|
|
|
|
|
|
220 |
|
221 |
api_key = gr.Textbox(
|
222 |
label="OpenAI API Key (requires GPT-4o and DALL-E 3 access)",
|
|
|
233 |
with gr.Column(scale=2):
|
234 |
# Output column
|
235 |
video_output = gr.Video(label="Stylized Video")
|
236 |
+
status_output = gr.Textbox(label="Status", value="Ready. Upload a video to start.")
|
237 |
|
238 |
submit_btn.click(
|
239 |
fn=stylize_video,
|
|
|
241 |
outputs=[video_output, status_output]
|
242 |
)
|
243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
gr.Markdown("""
|
245 |
## Instructions
|
246 |
+
1. Upload a video up to 15 seconds long
|
247 |
2. Enter your OpenAI API key with GPT-4o and DALL-E 3 access
|
248 |
3. Customize the style prompt if desired
|
249 |
4. Click "Stylize Video" and wait for processing
|