| |
| |
| FROM python:3.10-slim |
|
|
| |
| LABEL maintainer="opq007" |
| LABEL description="VD - 视频处理服务" |
| LABEL version="3.0.0" |
|
|
| |
| WORKDIR /app |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| ENV PYTHONUNBUFFERED=1 \ |
| DEBIAN_FRONTEND=noninteractive \ |
| PYTHONDONTWRITEBYTECODE=1 \ |
| PIP_NO_CACHE_DIR=1 \ |
| PIP_DISABLE_PIP_VERSION_CHECK=1 \ |
| PORT=7860 \ |
| HOST=0.0.0.0 \ |
| ENABLE_GRADIO_UI=true \ |
| FW_MODEL=small \ |
| FW_DEVICE=cpu \ |
| FW_COMPUTE=int8 \ |
| VOX_ONNX_DEVICE=cpu \ |
| VOX_ONNX_OPTIMIZE=1 \ |
| VOX_ONNX_DTYPE=fp32 \ |
| LOG_LEVEL=INFO \ |
| MODELSCOPE_CACHE=/app/models/modelscope_cache |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| ffmpeg \ |
| aria2 \ |
| p7zip-full \ |
| git \ |
| curl \ |
| ca-certificates \ |
| && rm -rf /var/lib/apt/lists/* \ |
| && apt-get clean |
|
|
| |
| ARG REPO_URL=https://github.com/opq007/vd.git |
| ARG REPO_BRANCH=main |
|
|
| |
| RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \ |
| pip install --no-cache-dir --default-timeout=100 \ |
| "faster-whisper" \ |
| "fastapi" \ |
| "uvicorn[standard]" \ |
| "python-multipart" \ |
| "aiofiles" \ |
| "PyJWT" \ |
| "gradio" \ |
| "requests" && \ |
| pip install --no-cache-dir --default-timeout=100 \ |
| "playwright>=1.40.0" \ |
| "opencv-python-headless" \ |
| "numpy" \ |
| "torch" \ |
| "Pillow>=10.0.0" \ |
| "soundfile" \ |
| "transformers>=4.30.0" \ |
| "onnxruntime" \ |
| "modelscope" && \ |
| pip install --no-cache-dir --default-timeout=100 \ |
| "sentencepiece" \ |
| "protobuf" \ |
| "accelerate" \ |
| "einops" \ |
| "omegaconf" \ |
| "scipy" \ |
| "librosa" |
|
|
| |
| RUN echo "Cloning project from ${REPO_URL} (branch: ${REPO_BRANCH})..." && \ |
| git clone --depth 1 --branch ${REPO_BRANCH} ${REPO_URL} /tmp/vd && \ |
| cp -r /tmp/vd/* . && \ |
| cp -r /tmp/vd/.* . 2>/dev/null || true && \ |
| rm -rf /tmp/vd && \ |
| echo "Project cloned successfully" |
|
|
| |
| RUN mkdir -p models uploads output debug logs && \ |
| chmod -R 755 models uploads output debug logs |
|
|
| |
| |
| RUN echo "Downloading RMBG-1.4 model..." && \ |
| aria2c -x 16 -s 16 --max-tries=5 --retry-wait=5 \ |
| -d models/ -o rmbg-1.4.onnx \ |
| https://modelscope.cn/models/AI-ModelScope/RMBG-1.4/resolve/master/onnx/model.onnx || \ |
| (echo "RMBG-1.4 download failed, retrying..." && \ |
| aria2c -x 16 -s 16 --max-tries=10 --retry-wait=10 \ |
| -d models/ -o rmbg-1.4.onnx \ |
| https://modelscope.cn/models/AI-ModelScope/RMBG-1.4/resolve/master/onnx/model.onnx) |
|
|
| |
| RUN echo "Downloading faster-whisper-small model..." && \ |
| modelscope download --model angelala00/faster-whisper-small --local_dir ./models/small --revision master || \ |
| (echo "faster-whisper download failed, retrying..." && \ |
| modelscope download --model angelala00/faster-whisper-small --local_dir ./models/small --revision master) |
|
|
| |
| RUN echo "Downloading VoxCPM ONNX model..." && \ |
| aria2c -x 16 -s 16 --max-tries=5 --retry-wait=5 \ |
| -d models/ -o onnx_models_v15.zip \ |
| https://modelscope.cn/models/opqtest007/vox/resolve/master/onnx_models_v15.zip.ckpt || \ |
| (echo "VoxCPM download failed, retrying..." && \ |
| aria2c -x 16 -s 16 --max-tries=10 --retry-wait=10 \ |
| -d models/ -o onnx_models_v15.zip \ |
| https://modelscope.cn/models/opqtest007/vox/resolve/master/onnx_models_v15.zip.ckpt) && \ |
| cd models/ && \ |
| 7z x onnx_models_v15.zip -p -y && \ |
| rm onnx_models_v15.zip && \ |
| cd .. |
|
|
| |
| RUN echo "Downloading VoxCPM reference database..." && \ |
| aria2c -x 16 -s 16 --max-tries=5 --retry-wait=5 \ |
| -d models/ -o voxcpm_ref.db \ |
| https://modelscope.cn/models/opqtest007/vox/resolve/master/voxcpm_ref.db || \ |
| (echo "VoxCPM reference database download failed, retrying..." && \ |
| aria2c -x 16 -s 16 --max-tries=10 --retry-wait=10 \ |
| -d models/ -o voxcpm_ref.db \ |
| https://modelscope.cn/models/opqtest007/vox/resolve/master/voxcpm_ref.db) |
|
|
| |
| RUN echo "Verifying model files..." && \ |
| ls -lh models/ && \ |
| ls -lh models/small/ 2>/dev/null || echo "small model not found" && \ |
| ls -lh models/onnx_models_v15/ 2>/dev/null || echo "onnx_models_v15 not found" |
|
|
| |
| RUN rm -rf /tmp/* /root/.cache/pip /root/.local/share/pip |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| RUN useradd -m -u 1000 appuser && \ |
| chown -R appuser:appuser /app |
|
|
| |
| USER appuser |
|
|
| |
| CMD ["uvicorn", "app:app", \ |
| "--host", "0.0.0.0", \ |
| "--port", "7860", \ |
| "--workers", "1", \ |
| "--log-level", "info", \ |
| "--access-log", \ |
| "--no-use-colors"] |