Spaces:
Paused
Paused
| # FoundationPose Dockerfile for Hugging Face Spaces with ZeroGPU | |
| FROM nvidia/cuda:12.1.0-devel-ubuntu22.04 | |
| # Set environment variables | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV CUDA_HOME=/usr/local/cuda | |
| ENV PATH=${CUDA_HOME}/bin:${PATH} | |
| ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH} | |
| # FoundationPose model configuration | |
| # Override these in Space settings to enable real model | |
| ENV FOUNDATIONPOSE_MODEL_REPO=gpue/foundationpose-weights | |
| ENV USE_HF_WEIGHTS=true | |
| ENV USE_REAL_MODEL=false | |
| # Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| git \ | |
| wget \ | |
| python3.9 \ | |
| python3.9-dev \ | |
| python3-pip \ | |
| libgl1-mesa-glx \ | |
| libglib2.0-0 \ | |
| libeigen3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set Python 3.9 as default | |
| RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 | |
| RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 | |
| # Upgrade pip | |
| RUN python3 -m pip install --upgrade pip setuptools wheel | |
| # Set working directory | |
| WORKDIR /app | |
| # Copy requirements first for better caching | |
| COPY requirements.txt . | |
| # Install Python dependencies | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Install FoundationPose dependencies | |
| RUN pip install --no-cache-dir \ | |
| git+https://github.com/NVlabs/nvdiffrast.git | |
| # Install Kaolin (if using model-free mode) | |
| RUN pip install --no-cache-dir kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html | |
| # Install PyTorch3D | |
| RUN pip install --no-cache-dir pytorch3d | |
| # Clone FoundationPose repository | |
| RUN git clone https://github.com/NVlabs/FoundationPose.git /app/FoundationPose | |
| # Build FoundationPose C++ extensions | |
| WORKDIR /app/FoundationPose | |
| RUN bash build_all.sh || echo "Build completed with warnings" | |
| # Copy application files | |
| WORKDIR /app | |
| COPY . . | |
| # Download model weights from Hugging Face model repository | |
| # The download_weights.py script will: | |
| # 1. Check if weights already exist locally | |
| # 2. Download from FOUNDATIONPOSE_MODEL_REPO if USE_HF_WEIGHTS=true | |
| # 3. Fall back to placeholder mode if download fails | |
| RUN echo "Downloading model weights from ${FOUNDATIONPOSE_MODEL_REPO}..." && \ | |
| python3 download_weights.py || \ | |
| echo "⚠️ Weights download failed or skipped. Space will run in placeholder mode." | |
| # Expose port for Gradio | |
| EXPOSE 7860 | |
| # Run the application | |
| CMD ["python3", "app.py"] | |