Pacicap commited on
Commit
3fb45e7
·
1 Parent(s): ea69a75

...3 app update

Browse files
Files changed (1) hide show
  1. app.py +11 -15
app.py CHANGED
@@ -1,27 +1,23 @@
1
- from fastapi import FastAPI
2
- from fastapi import Request
3
  from pydantic import BaseModel
4
  from fastapi.middleware.cors import CORSMiddleware
5
  from diffusers import DiffusionPipeline
6
  import torch
7
  import uuid
8
- from PIL import Image
9
  import os
 
10
  from fastapi.staticfiles import StaticFiles
11
 
12
  app = FastAPI()
13
 
14
  app.add_middleware(
15
  CORSMiddleware,
16
- allow_origins=["http://localhost:5173",
17
- "https://react-portfolio-git-main-pacicaps-projects.vercel.app",
18
- "https://react-portfolio-ij8ifou62-pacicaps-projects.vercel.app"],
19
  allow_credentials=True,
20
  allow_methods=["*"],
21
  allow_headers=["*"],
22
  )
23
 
24
- # Remote Hugging Face model IDs
25
  hf_model_ids = {
26
  "model1": "Pacicap/FineTuned_claude_StableDiffussion_2_1",
27
  "model2": "Pacicap/FineTuned_gpt4o_StableDiffussion_2_1"
@@ -31,7 +27,7 @@ loaded_models = {}
31
 
32
  class PromptInput(BaseModel):
33
  prompt: str
34
- model: str # should be "model1" or "model2"
35
 
36
  @app.post("/generate")
37
  def generate(data: PromptInput, request: Request):
@@ -43,8 +39,10 @@ def generate(data: PromptInput, request: Request):
43
  model_id = hf_model_ids[model_key]
44
 
45
  if model_key not in loaded_models:
46
- device = "cuda" if torch.cuda.is_available() else "cpu"
47
- pipe = DiffusionPipeline.from_pretrained(model_id).to(device)
 
 
48
  loaded_models[model_key] = pipe
49
  else:
50
  pipe = loaded_models[model_key]
@@ -56,10 +54,8 @@ def generate(data: PromptInput, request: Request):
56
  filepath = os.path.join("generated", filename)
57
  image.save(filepath)
58
 
59
- image_url = f"{request.base_url}generated/{filename}"
60
- return {"url": image_url}
61
-
62
- #return {"url": f"http://localhost:8000/generated/{filename}"}
63
 
64
- # Serve images
65
  app.mount("/generated", StaticFiles(directory="generated"), name="generated")
 
1
+ from fastapi import FastAPI, Request
 
2
  from pydantic import BaseModel
3
  from fastapi.middleware.cors import CORSMiddleware
4
  from diffusers import DiffusionPipeline
5
  import torch
6
  import uuid
 
7
  import os
8
+ from PIL import Image
9
  from fastapi.staticfiles import StaticFiles
10
 
11
  app = FastAPI()
12
 
13
  app.add_middleware(
14
  CORSMiddleware,
15
+ allow_origins=["*"], # Accept from all for now
 
 
16
  allow_credentials=True,
17
  allow_methods=["*"],
18
  allow_headers=["*"],
19
  )
20
 
 
21
  hf_model_ids = {
22
  "model1": "Pacicap/FineTuned_claude_StableDiffussion_2_1",
23
  "model2": "Pacicap/FineTuned_gpt4o_StableDiffussion_2_1"
 
27
 
28
  class PromptInput(BaseModel):
29
  prompt: str
30
+ model: str
31
 
32
  @app.post("/generate")
33
  def generate(data: PromptInput, request: Request):
 
39
  model_id = hf_model_ids[model_key]
40
 
41
  if model_key not in loaded_models:
42
+ pipe = DiffusionPipeline.from_pretrained(
43
+ model_id,
44
+ torch_dtype=torch.float32
45
+ ).to("cpu") # CPU-safe for Spaces
46
  loaded_models[model_key] = pipe
47
  else:
48
  pipe = loaded_models[model_key]
 
54
  filepath = os.path.join("generated", filename)
55
  image.save(filepath)
56
 
57
+ return {
58
+ "url": f"{request.base_url}generated/{filename}"
59
+ }
 
60
 
 
61
  app.mount("/generated", StaticFiles(directory="generated"), name="generated")