File size: 2,459 Bytes
58dbfa2
 
 
9bb0e80
 
a6525d6
58dbfa2
9bb0e80
 
58dbfa2
 
 
 
 
 
9bb0e80
58dbfa2
 
9bb0e80
58dbfa2
9bb0e80
 
 
 
 
 
58dbfa2
 
9bb0e80
 
 
58dbfa2
9bb0e80
58dbfa2
 
9bb0e80
 
58dbfa2
 
9bb0e80
 
 
 
 
 
58dbfa2
a6525d6
 
 
 
 
 
9bb0e80
 
 
a6525d6
 
 
 
 
 
1ae0e63
 
 
a6525d6
9bb0e80
 
a6525d6
 
43e677e
 
ed46d76
 
 
58dbfa2
1ae0e63
 
 
58dbfa2
 
9bb0e80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04

ENV DEBIAN_FRONTEND=noninteractive
ENV HF_HUB_ENABLE_HF_TRANSFER=0
ENV HUGGINGFACE_HUB_CACHE=/data/huggingface
ENV BUILD_DATE="2024-12-04-01"

# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    git \
    python3-pip \
    python3-dev \
    ffmpeg \
    libsm6 \
    libxext6 \
    wget \
    && rm -rf /var/lib/apt/lists/*

# Set up a new user
RUN useradd -m -u 1000 user

# Create directories and set permissions
RUN mkdir -p /data/huggingface /data/models && \
    chown -R user:user /data

# Switch to user
USER user

# Set environment variables
ENV HOME=/home/user
ENV PATH=/home/user/.local/bin:$PATH

# Set up workspace
WORKDIR $HOME/app

# Install Python packages
COPY --chown=user:user requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Install additional dependencies
RUN pip install --no-cache-dir openmim && \
    mim install mmengine && \
    mim install "mmcv>=2.0.1" && \
    mim install "mmdet>=3.1.0" && \
    mim install "mmpose>=1.1.0"

# Copy application code first
COPY --chown=user:user . .

# Clone and set up MuseV
RUN git clone https://github.com/TMElyralab/MuseV.git /tmp/musev && \
    cd /tmp/musev && \
    git clone https://github.com/huggingface/diffusers.git && \
    git clone https://github.com/patrickvonplaten/controlnet_aux.git && \
    cd diffusers && pip install -e . && \
    cd ../controlnet_aux && pip install -e . && \
    cd .. && \
    # Copy MuseV contents
    cp -r * ../MuseV/ && \
    cd .. && \
    # Copy gradio scripts
    cp MuseV/scripts/gradio/gradio_video2video.py . && \
    cp MuseV/scripts/gradio/gradio_text2video.py . && \
    chmod +x gradio_*.py && \
    # Verify setup
    echo "Directory contents:" && ls -la && \
    echo "MuseV directory contents:" && ls -la MuseV && \
    echo "Scripts directory contents:" && ls -la MuseV/scripts && \
    echo "Gradio scripts directory contents:" && ls -la MuseV/scripts/gradio && \
    echo "Checking gradio scripts:" && ls -la gradio_*.py && \
    echo "Verifying file contents:" && \
    cat gradio_video2video.py | head -n 5 && \
    echo "---" && \
    cat gradio_text2video.py | head -n 5

# Set up Python path
ENV PYTHONPATH="${HOME}/app:${HOME}/app/MuseV:${HOME}/app/MuseV/MMCM:${HOME}/app/MuseV/diffusers/src:${HOME}/app/MuseV/controlnet_aux/src:${HOME}/app/MuseV/scripts/gradio"

EXPOSE 7860

CMD ["python", "-u", "app.py"]