Sticker_Diffusion / Dockerfile
KarthikAI's picture
Update Dockerfile
8d3155f verified
FROM python:3.10-slim
# System dependencies
RUN apt-get update && apt-get install -y git wget && rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
# Install Python dependencies
COPY requirements.txt .
RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt
# Set Hugging Face cache for all model downloads (best practice for Spaces)
# ENV HF_HOME="/workspace/.cache/huggingface"
# RUN mkdir -p /workspace/.cache/huggingface
# ENV CACHE_DIR="/workspace/.cache"
# ENV HF_HOME="/workspace/.cache/huggingface"
# ENV TRANSFORMERS_CACHE="/workspace/.cache/huggingface"
# RUN mkdir -p /workspace/.cache/huggingface/hub && \
# chmod -R 777 /workspace/.cache
ENV CACHE_DIR="/data"
ENV HF_HOME="/data/huggingface"
ENV TRANSFORMERS_CACHE="/data/huggingface"
RUN mkdir -p /data/huggingface/models
RUN mkdir -p /data/huggingface/hub/models--h94--IP-Adapter
RUN mkdir -p /data/huggingface/.locks && chmod -R 777 /data
# Pre-download Stable Diffusion v1-5 weights into cache
RUN python -c "import torch; from diffusers import StableDiffusionImg2ImgPipeline; StableDiffusionImg2ImgPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', cache_dir='/workspace/.cache/huggingface', torch_dtype=torch.float32)"
# Pre-download IP-Adapter weights (if using)
# RUN mkdir -p /workspace/.cache/huggingface/ip_adapter && \
# wget -O /workspace/.cache/huggingface/ip_adapter/ip-adapter_sd15.bin https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin
# Copy app code
COPY . .
# Disable Gradio analytics (optional, but good for Spaces)
ENV GRADIO_ANALYTICS_ENABLED="False"
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
# EXPOSE 7860
# CMD ["python", "app.py"]
# FROM python:3.10-slim
# # System dependencies
# RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
# WORKDIR /workspace
# # Install Python dependencies
# COPY requirements.txt .
# RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt
# # Download models and adapters at build time
# # You can replace MODEL_ID or adapter repos as needed
# ENV CACHE_DIR="/data"
# ENV HF_HOME="/data"
# # ENV TRANSFORMERS_CACHE="/data"
# # ENV DEEPFACE_HOME="/data"
# # ENV INSIGHTFACE_HOME="/data/.insightface"
# RUN mkdir -p /data && \
# chmod -R 777 /data
# # -- Download Stable Diffusion v1-5 weights --
# # RUN python -c "from diffusers import StableDiffusionImg2ImgPipeline; StableDiffusionImg2ImgPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', cache_dir='./models', torch_dtype='float32')"
# RUN python -c "import torch; from diffusers import StableDiffusionImg2ImgPipeline; StableDiffusionImg2ImgPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', cache_dir='./models', torch_dtype=torch.float32)"
# RUN apt-get update && apt-get install -y wget
# # -- Download IP-Adapter weights (official Hugging Face repo) --
# RUN mkdir -p ./models/ip_adapter && \
# wget -O ./models/ip_adapter/ip-adapter_sd15.bin https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin
# # Set Hugging Face cache for all model downloads (best practice for Spaces)
# ENV TRANSFORMERS_CACHE="/workspace/.cache/huggingface"
# RUN mkdir -p /workspace/.cache/huggingface && \
# chmod -R 777 /workspace
# # Pre-download Stable Diffusion v1-5 weights into cache
# RUN python -c "import torch; from diffusers import StableDiffusionImg2ImgPipeline; StableDiffusionImg2ImgPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', cache_dir='/workspace/.cache/huggingface', torch_dtype=torch.float32)"
# # Pre-download IP-Adapter weights (if using)
# RUN mkdir -p /workspace/.cache/huggingface/ip_adapter && \
# wget -O /workspace/.cache/huggingface/ip_adapter/ip-adapter_sd15.bin https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin
# # Copy app code
# COPY . .
# # Set environment (disable gradio analytics, useful for Spaces)
# ENV GRADIO_ANALYTICS_ENABLED="False"
# EXPOSE 7860
# CMD ["python", "app.py"]