LogicGoInfotechSpaces commited on
Commit
05ad3d5
·
verified ·
1 Parent(s): d39b616

Update api/main.py

Browse files
Files changed (1) hide show
  1. api/main.py +4 -34
api/main.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import os
2
  import uuid
3
  import shutil
@@ -11,20 +12,7 @@ from pydantic import BaseModel
11
  from PIL import Image
12
 
13
  from src.core import process_inpaint
14
- from pymongo import MongoClient
15
-
16
- # Connect to MongoDB (URI must be in HF env variables)
17
- MONGO_URI = os.environ.get("MONGO_URI")
18
- mongo_client = None
19
- mongo_collection = None
20
 
21
- if MONGO_URI:
22
- try:
23
- mongo_client = MongoClient(MONGO_URI)
24
- mongo_db = mongo_client["object-remove-logs"]
25
- mongo_collection = mongo_db["api_logs"]
26
- except Exception as e:
27
- print("Mongo connection failed:", e)
28
  # Directories (use writable space on HF Spaces)
29
  BASE_DIR = os.environ.get("DATA_DIR", "/data")
30
  if not os.path.isdir(BASE_DIR):
@@ -150,7 +138,7 @@ def inpaint(req: InpaintRequest, _: None = Depends(bearer_auth)) -> Dict[str, st
150
  raise HTTPException(status_code=404, detail="mask_id not found")
151
 
152
  img_rgba = _load_rgba_image(file_store[req.image_id]["path"])
153
- mask_img = Image.open(file_store[req.mask_id]["path"])
154
  mask_rgba = _load_rgba_mask_from_image(mask_img)
155
 
156
  result = process_inpaint(np.array(img_rgba), mask_rgba)
@@ -159,15 +147,6 @@ def inpaint(req: InpaintRequest, _: None = Depends(bearer_auth)) -> Dict[str, st
159
  Image.fromarray(result).save(result_path)
160
 
161
  logs.append({"result": result_name, "timestamp": datetime.utcnow().isoformat()})
162
-
163
- # Mongo logging
164
- if mongo_collection:
165
- mongo_collection.insert_one({
166
- "endpoint": "/inpaint",
167
- "result": result_name,
168
- "timestamp": datetime.utcnow().isoformat()
169
- })
170
-
171
  return {"result": result_name}
172
 
173
 
@@ -200,6 +179,7 @@ def inpaint_multipart(
200
  request: Request = None,
201
  _: None = Depends(bearer_auth),
202
  ) -> Dict[str, str]:
 
203
  img = Image.open(image.file).convert("RGBA")
204
  m = Image.open(mask.file)
205
  mask_rgba = _load_rgba_mask_from_image(m)
@@ -220,16 +200,6 @@ def inpaint_multipart(
220
  if url:
221
  entry["url"] = url
222
  logs.append(entry)
223
-
224
- # Mongo logging
225
- if mongo_collection:
226
- mongo_collection.insert_one({
227
- "endpoint": "/inpaint-multipart",
228
- "result": result_name,
229
- "url": url,
230
- "timestamp": datetime.utcnow().isoformat()
231
- })
232
-
233
  resp: Dict[str, str] = {"result": result_name}
234
  if url:
235
  resp["url"] = url
@@ -255,4 +225,4 @@ def view_result(filename: str):
255
 
256
  @app.get("/logs")
257
  def get_logs(_: None = Depends(bearer_auth)) -> JSONResponse:
258
- return JSONResponse(content=logs)
 
1
+
2
  import os
3
  import uuid
4
  import shutil
 
12
  from PIL import Image
13
 
14
  from src.core import process_inpaint
 
 
 
 
 
 
15
 
 
 
 
 
 
 
 
16
  # Directories (use writable space on HF Spaces)
17
  BASE_DIR = os.environ.get("DATA_DIR", "/data")
18
  if not os.path.isdir(BASE_DIR):
 
138
  raise HTTPException(status_code=404, detail="mask_id not found")
139
 
140
  img_rgba = _load_rgba_image(file_store[req.image_id]["path"])
141
+ mask_img = Image.open(file_store[req.mask_id]["path"]) # may be RGB/gray/RGBA
142
  mask_rgba = _load_rgba_mask_from_image(mask_img)
143
 
144
  result = process_inpaint(np.array(img_rgba), mask_rgba)
 
147
  Image.fromarray(result).save(result_path)
148
 
149
  logs.append({"result": result_name, "timestamp": datetime.utcnow().isoformat()})
 
 
 
 
 
 
 
 
 
150
  return {"result": result_name}
151
 
152
 
 
179
  request: Request = None,
180
  _: None = Depends(bearer_auth),
181
  ) -> Dict[str, str]:
182
+ # Load in-memory
183
  img = Image.open(image.file).convert("RGBA")
184
  m = Image.open(mask.file)
185
  mask_rgba = _load_rgba_mask_from_image(m)
 
200
  if url:
201
  entry["url"] = url
202
  logs.append(entry)
 
 
 
 
 
 
 
 
 
 
203
  resp: Dict[str, str] = {"result": result_name}
204
  if url:
205
  resp["url"] = url
 
225
 
226
  @app.get("/logs")
227
  def get_logs(_: None = Depends(bearer_auth)) -> JSONResponse:
228
+ return JSONResponse(content=logs)