Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -20,6 +20,7 @@ from PIL import Image
|
|
20 |
from functools import partial
|
21 |
import io
|
22 |
from io import BytesIO
|
|
|
23 |
|
24 |
app = FastAPI()
|
25 |
|
@@ -187,11 +188,37 @@ def generate(image, mc_resolution, formats=["obj", "glb"]):
|
|
187 |
|
188 |
return mesh_path_obj.name, mesh_path_glb.name
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
@app.post("/process_image/")
|
191 |
async def process_image(
|
192 |
file: UploadFile = File(...),
|
193 |
seed: int = Form(...),
|
194 |
-
|
195 |
do_remove_background: bool = Form(...),
|
196 |
foreground_ratio: float = Form(...),
|
197 |
mc_resolution: int = Form(...),
|
@@ -200,7 +227,7 @@ async def process_image(
|
|
200 |
image_bytes = await file.read()
|
201 |
input_image = Image.open(BytesIO(image_bytes))
|
202 |
|
203 |
-
if
|
204 |
image_pil = generate_image_from_text(encoded_image=input_image, seed=seed, pos_prompt=text_prompt)
|
205 |
else:
|
206 |
image_pil = input_image
|
@@ -209,8 +236,8 @@ async def process_image(
|
|
209 |
mesh_name_obj, mesh_name_glb = generate(preprocessed, mc_resolution)
|
210 |
|
211 |
return {
|
212 |
-
"obj_path": mesh_name_obj,
|
213 |
-
"glb_path": mesh_name_glb
|
214 |
}
|
215 |
|
216 |
if __name__ == "__main__":
|
|
|
20 |
from functools import partial
|
21 |
import io
|
22 |
from io import BytesIO
|
23 |
+
from botocore.exceptions import NoCredentialsError, PartialCredentialsError
|
24 |
|
25 |
app = FastAPI()
|
26 |
|
|
|
188 |
|
189 |
return mesh_path_obj.name, mesh_path_glb.name
|
190 |
|
191 |
+
def upload_file_to_s3(file_path, bucket_name, object_name=None):
|
192 |
+
s3_client = boto3.client('s3',aws_access_key_id = ACCESS, aws_secret_access_key = SECRET, region_name='us-east-1')
|
193 |
+
|
194 |
+
if object_name is None:
|
195 |
+
object_name = file_path
|
196 |
+
|
197 |
+
try:
|
198 |
+
s3_client.upload_file(file_path, bucket_name, object_name)
|
199 |
+
except FileNotFoundError:
|
200 |
+
print(f"The file {file_path} was not found.")
|
201 |
+
return False
|
202 |
+
except NoCredentialsError:
|
203 |
+
print("Credentials not available.")
|
204 |
+
return False
|
205 |
+
except PartialCredentialsError:
|
206 |
+
print("Incomplete credentials provided.")
|
207 |
+
return False
|
208 |
+
except Exception as e:
|
209 |
+
print(f"An error occurred: {e}")
|
210 |
+
return False
|
211 |
+
|
212 |
+
print(f"File {file_path} uploaded successfully to {bucket_name}/{object_name}.")
|
213 |
+
return True
|
214 |
+
|
215 |
+
|
216 |
+
|
217 |
@app.post("/process_image/")
|
218 |
async def process_image(
|
219 |
file: UploadFile = File(...),
|
220 |
seed: int = Form(...),
|
221 |
+
enhance_image: bool = Form(...),
|
222 |
do_remove_background: bool = Form(...),
|
223 |
foreground_ratio: float = Form(...),
|
224 |
mc_resolution: int = Form(...),
|
|
|
227 |
image_bytes = await file.read()
|
228 |
input_image = Image.open(BytesIO(image_bytes))
|
229 |
|
230 |
+
if enhance_image:
|
231 |
image_pil = generate_image_from_text(encoded_image=input_image, seed=seed, pos_prompt=text_prompt)
|
232 |
else:
|
233 |
image_pil = input_image
|
|
|
236 |
mesh_name_obj, mesh_name_glb = generate(preprocessed, mc_resolution)
|
237 |
|
238 |
return {
|
239 |
+
"obj_path": upload_file_to_s3(mesh_name_obj, 'framebucket3d')
|
240 |
+
"glb_path": upload_file_to_s3(mesh_name_glb, 'framebucket3d')
|
241 |
}
|
242 |
|
243 |
if __name__ == "__main__":
|