| FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 |
|
|
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| git curl wget ca-certificates \ |
| build-essential g++ \ |
| libgl1-mesa-glx libglib2.0-0 libopenexr-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| ENV MAMBA_ROOT_PREFIX=/opt/micromamba |
| RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest \ |
| | tar -xvj -C /opt bin/micromamba \ |
| && ln -s /opt/bin/micromamba /usr/local/bin/micromamba |
|
|
| SHELL ["/bin/bash", "-lc"] |
|
|
| RUN micromamba create -y -n sam3d -c conda-forge python=3.11 pip \ |
| && micromamba clean -a -y |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install --force-reinstall "setuptools==81.0.0" |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install \ |
| torch==2.5.1 torchvision torchaudio \ |
| --index-url https://download.pytorch.org/whl/cu121 |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install \ |
| gradio==5.49.0 fal-client huggingface-hub requests Pillow numpy |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install -U kaolin \ |
| -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.5.1_cu121.html \ |
| || true |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install \ |
| "git+https://github.com/EasternJournalist/utils3d.git@3913c65d81e05e47b9f367250cf8c0f7462a0900" |
|
|
| |
| RUN micromamba run -n sam3d python -m pip install \ |
| "git+https://github.com/microsoft/MoGe.git@a8c37341bc0325ca99b9d57981cc3bb2bd3e255b" \ |
| || true |
|
|
| |
| |
| COPY MV-SAM3D/my_requirements.txt /tmp/my_requirements.txt |
| RUN micromamba run -n sam3d bash -c '\ |
| while IFS= read -r pkg || [ -n "$pkg" ]; do \ |
| pkg=$(echo "$pkg" | tr -d "\r" | xargs); \ |
| [ -z "$pkg" ] && continue; \ |
| pip install "$pkg" || echo "⚠ SKIPPED: $pkg"; \ |
| done < /tmp/my_requirements.txt' |
|
|
| |
| COPY MV-SAM3D/wheels /tmp/wheels |
| RUN micromamba run -n sam3d pip install --no-deps /tmp/wheels/pytorch3d-0.7.8-cp311-cp311-linux_x86_64.whl |
| RUN micromamba run -n sam3d pip install /tmp/wheels/gsplat-1.5.3-cp311-cp311-linux_x86_64.whl |
| RUN rm -rf /tmp/wheels |
|
|
| |
| COPY MV-SAM3D /mv_sam3d |
|
|
| |
| ENV LIDRA_SKIP_INIT=1 \ |
| CUDA_HOME=/usr/local/cuda \ |
| CONDA_PREFIX=/opt/micromamba/envs/sam3d \ |
| HF_HOME=/data/hf \ |
| TRANSFORMERS_CACHE=/data/hf \ |
| TORCH_HOME=/data/torch \ |
| XDG_CACHE_HOME=/data/cache \ |
| GRADIO_SERVER_NAME=0.0.0.0 \ |
| GRADIO_SERVER_PORT=7860 \ |
| PYTHONPATH=/mv_sam3d:/mv_sam3d/notebook |
|
|
| |
| RUN micromamba run -n sam3d bash -c '\ |
| export PYTHONPATH=/mv_sam3d:/mv_sam3d/notebook; \ |
| python -c "\ |
| import sys; \ |
| print(\"[diag] Testing step-by-step imports...\"); \ |
| from sam3d_objects.utils.visualization.image_mesh import mesh_from_pointmap; \ |
| print(\" OK: image_mesh\"); \ |
| from sam3d_objects.utils.visualization.plotly.plot_scene import plot_tdfy_scene; \ |
| print(\" OK: plot_scene\"); \ |
| from sam3d_objects.utils.visualization.plotly.save_scene import make_video; \ |
| print(\" OK: save_scene\"); \ |
| from sam3d_objects.utils.visualization.scene_visualizer import SceneVisualizer; \ |
| print(\" OK: SceneVisualizer\"); \ |
| from sam3d_objects.utils.visualization import SceneVisualizer; \ |
| print(\" OK: visualization __init__\"); \ |
| print(\"ALL IMPORTS OK\"); \ |
| "' |
|
|
| WORKDIR /workspace |
| COPY src /workspace/src |
| COPY app.py /workspace/app.py |
| COPY MV-SAM3D/my_requirements.txt /workspace/my_requirements.txt |
| COPY README.md /workspace/README.md |
|
|
| |
| ENV PATH=/opt/micromamba/envs/sam3d/bin:$PATH |
|
|
| EXPOSE 7860 |
| CMD ["python", "/workspace/app.py"] |
|
|