saicoder commited on
Commit
842dc01
·
unverified ·
1 Parent(s): d224b5d

Add docker file

Browse files
Files changed (5) hide show
  1. .dockerignore +3 -0
  2. Dockerfile +17 -0
  3. api/index.py +0 -1
  4. app/server.py +15 -10
  5. requirements.txt +3 -2
.dockerignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ __pycache__
2
+ .checkpoint
3
+ Dockerfile
Dockerfile ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11
2
+
3
+ WORKDIR /src
4
+
5
+ ADD ./ /src
6
+
7
+ RUN pip install --upgrade pip
8
+ RUN pip install --no-cache-dir -r requirements.txt
9
+
10
+
11
+ # Download Model
12
+ RUN python3 -c 'from app.cloth_segmentation.model import load_seg_model; load_seg_model(".checkpoint/model.pth")'
13
+
14
+ EXPOSE 80
15
+
16
+
17
+ CMD ["uvicorn", "app.server:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
api/index.py DELETED
@@ -1 +0,0 @@
1
- from app.server import app
 
 
app/server.py CHANGED
@@ -1,14 +1,12 @@
1
- from typing import Optional
2
- from fastapi import FastAPI, UploadFile
3
- from contextlib import asynccontextmanager
4
-
5
- from pydantic.dataclasses import dataclass
6
- from app.cloth_segmentation.model import segment, Mode, load_seg_model, Result, U2NET
7
- from PIL import Image
8
-
9
- from base64 import b64encode
10
  from io import BytesIO
11
-
 
 
 
 
 
 
 
12
 
13
  # === DTOs ==
14
 
@@ -45,6 +43,13 @@ async def lifespan(app: FastAPI):
45
 
46
 
47
  app = FastAPI(lifespan=lifespan)
 
 
 
 
 
 
 
48
  # === Routes
49
 
50
 
 
 
 
 
 
 
 
 
 
 
1
  from io import BytesIO
2
+ from base64 import b64encode
3
+ from PIL import Image
4
+ from app.cloth_segmentation.model import segment, Mode, load_seg_model, Result, U2NET
5
+ from pydantic.dataclasses import dataclass
6
+ from contextlib import asynccontextmanager
7
+ from fastapi.middleware.cors import CORSMiddleware
8
+ from fastapi import FastAPI, UploadFile
9
+ from typing import Optional
10
 
11
  # === DTOs ==
12
 
 
43
 
44
 
45
  app = FastAPI(lifespan=lifespan)
46
+ app.add_middleware(
47
+ CORSMiddleware,
48
+ allow_origins=['*'],
49
+ allow_credentials=True,
50
+ allow_methods=["*"],
51
+ allow_headers=["*"],
52
+ )
53
  # === Routes
54
 
55
 
requirements.txt CHANGED
@@ -1,8 +1,9 @@
1
  uvicorn==0.23.2
2
  fastapi==0.104.1
 
3
  pydantic==2.4.2
4
 
5
  Pillow==9.5.0
6
  numpy==1.24.3
7
- torch==2.1.0
8
- torchvision==0.16.0
 
1
  uvicorn==0.23.2
2
  fastapi==0.104.1
3
+ python-multipart==0.0.6
4
  pydantic==2.4.2
5
 
6
  Pillow==9.5.0
7
  numpy==1.24.3
8
+ torch==2.0.*
9
+ torchvision