Nior18867 commited on
Commit
2eef799
·
verified ·
1 Parent(s): 59960dc

Preventive fix: python:3.10 + gradio 6.x pinned deps

Browse files
Files changed (4) hide show
  1. Dockerfile +14 -17
  2. README.md +10 -10
  3. app.py +3 -6
  4. requirements.txt +9 -0
Dockerfile CHANGED
@@ -1,17 +1,14 @@
1
- FROM python:3.10-slim
2
-
3
- WORKDIR /app
4
-
5
- # Install ffmpeg for audio processing
6
- RUN apt-get update && apt-get install -y ffmpeg && rm -rf /var/lib/apt/lists/*
7
-
8
- RUN pip install --no-cache-dir gradio==3.50.2 requests>=2.28.0
9
-
10
- COPY app.py .
11
-
12
-
13
- EXPOSE 7860
14
- ENV GRADIO_SERVER_NAME="0.0.0.0"
15
- ENV GRADIO_SERVER_PORT="7860"
16
-
17
- CMD ["python", "app.py"]
 
1
+ FROM python:3.10-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY requirements.txt .
6
+ RUN pip install --no-cache-dir -r requirements.txt
7
+
8
+ COPY app.py .
9
+
10
+ EXPOSE 7860
11
+ ENV GRADIO_SERVER_NAME="0.0.0.0"
12
+ ENV GRADIO_SERVER_PORT="7860"
13
+
14
+ CMD ["python", "app.py"]
 
 
 
README.md CHANGED
@@ -1,10 +1,10 @@
1
- ---
2
- title: InfiniteTalk
3
- emoji: 🎬
4
- colorFrom: blue
5
- colorTo: purple
6
- sdk: docker
7
- pinned: false
8
- license: mit
9
- short_description: Generate talking videos from image and audio.
10
- ---
 
1
+ ---
2
+ title: InfiniteTalk
3
+ emoji: 🎬
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ license: mit
9
+ short_description: Generate talking videos from image and audio.
10
+ ---
app.py CHANGED
@@ -17,8 +17,6 @@ POLL_MAX_SECONDS = 300
17
 
18
 
19
 
20
-
21
-
22
  # ============ CSS ============
23
  CUSTOM_CSS = """
24
  /* ===== Base Styles ===== */
@@ -413,7 +411,7 @@ with gr.Blocks(css=CUSTOM_CSS, title="InfiniteTalk - WaveSpeed") as demo:
413
  <div class="hero-container">
414
  <div class="hero-badge">WAVESPEED AI</div>
415
  <h1 class="hero-title">InfiniteTalk</h1>
416
- <p class="hero-desc">Generate talking videos from image and audio. Try on <a href="https://wavespeed.ai/models?utm_source=huggingface_space_infinitetalk" target="_blank" style="color: #8b5cf6; text-decoration: none; font-weight: 600;">wavespeed</a></p>
417
  <div class="hero-badges">
418
  <span>
419
  <svg width="18" height="18" fill="#10b981" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"/></svg>
@@ -441,7 +439,7 @@ with gr.Blocks(css=CUSTOM_CSS, title="InfiniteTalk - WaveSpeed") as demo:
441
  <svg width="20" height="20" fill="#8b5cf6" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z" clip-rule="evenodd"/></svg>
442
  API Key
443
  </span>
444
- <a href="https://wavespeed.ai/models?utm_source=huggingface_space_infinitetalk" target="_blank" class="get-key-btn">Get API Key</a>
445
  </div>
446
  """)
447
  api_key_input = gr.Textbox(
@@ -464,7 +462,6 @@ with gr.Blocks(css=CUSTOM_CSS, title="InfiniteTalk - WaveSpeed") as demo:
464
  image_input = gr.Image(
465
  label="Upload Image",
466
  type="filepath",
467
- source="upload",
468
  elem_classes=["upload-area"]
469
  )
470
  audio_input = gr.Audio(
@@ -491,7 +488,7 @@ with gr.Blocks(css=CUSTOM_CSS, title="InfiniteTalk - WaveSpeed") as demo:
491
  <div class="cta-container">
492
  <h3 class="cta-title">Want More Features?</h3>
493
  <p class="cta-desc">Higher resolutions, batch processing, and 700+ AI models</p>
494
- <a href="https://wavespeed.ai/models?utm_source=huggingface_space_infinitetalk" target="_blank" class="cta-btn">
495
  Explore WaveSpeed.ai
496
  </a>
497
  </div>
 
17
 
18
 
19
 
 
 
20
  # ============ CSS ============
21
  CUSTOM_CSS = """
22
  /* ===== Base Styles ===== */
 
411
  <div class="hero-container">
412
  <div class="hero-badge">WAVESPEED AI</div>
413
  <h1 class="hero-title">InfiniteTalk</h1>
414
+ <p class="hero-desc">Generate talking videos from image and audio.</p>
415
  <div class="hero-badges">
416
  <span>
417
  <svg width="18" height="18" fill="#10b981" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"/></svg>
 
439
  <svg width="20" height="20" fill="#8b5cf6" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z" clip-rule="evenodd"/></svg>
440
  API Key
441
  </span>
442
+ <a href="https://wavespeed.ai/accesskey" target="_blank" class="get-key-btn">Get API Key</a>
443
  </div>
444
  """)
445
  api_key_input = gr.Textbox(
 
462
  image_input = gr.Image(
463
  label="Upload Image",
464
  type="filepath",
 
465
  elem_classes=["upload-area"]
466
  )
467
  audio_input = gr.Audio(
 
488
  <div class="cta-container">
489
  <h3 class="cta-title">Want More Features?</h3>
490
  <p class="cta-desc">Higher resolutions, batch processing, and 700+ AI models</p>
491
+ <a href="https://wavespeed.ai/models" target="_blank" class="cta-btn">
492
  Explore WaveSpeed.ai
493
  </a>
494
  </div>
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ gradio>=6.0,<7.0
2
+ gradio_client>=2.0,<3.0
3
+ huggingface_hub>=1.0,<2.0
4
+ jinja2>=3.1,<4.0
5
+ starlette>=1.0,<2.0
6
+ fastapi>=0.115,<1.0
7
+ pydub>=0.25
8
+ requests>=2.28.0
9
+ uvicorn>=0.30