diff --git a/utils/utils.py b/.env similarity index 100% rename from utils/utils.py rename to .env diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e69de29 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/deps.py b/app/api/deps.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/__init__.py b/app/api/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/__init__.py b/app/api/v1/endpoints/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/endpoints/items.py b/app/api/v1/endpoints/items.py new file mode 100644 index 0000000..e69de29 diff --git a/task/remove_background.py b/app/api/v1/endpoints/remove_background.py similarity index 100% rename from task/remove_background.py rename to app/api/v1/endpoints/remove_background.py diff --git a/task/rmbg2.py b/app/api/v1/endpoints/rmbg2.py similarity index 100% rename from task/rmbg2.py rename to app/api/v1/endpoints/rmbg2.py diff --git a/app/api/v1/endpoints/users.py b/app/api/v1/endpoints/users.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/router.py b/app/api/v1/router.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/__init__.py b/app/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/config.py b/app/core/config.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/logging.py b/app/core/logging.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/security.py b/app/core/security.py new file mode 100644 index 0000000..e69de29 diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..e69de29 diff --git a/app/middleware/__init__.py b/app/middleware/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/middleware/auth.py b/app/middleware/auth.py new file mode 100644 index 0000000..e69de29 diff --git a/app/middleware/logging.py b/app/middleware/logging.py new file mode 100644 index 0000000..e69de29 diff --git a/app/schemas/__init__.py b/app/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/schemas/base.py b/app/schemas/base.py new file mode 100644 index 0000000..e69de29 diff --git a/app/schemas/request.py b/app/schemas/request.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/backend/__init__.py b/app/services/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/jingrow/__init__.py b/app/services/jingrow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/jingrow/auth.py b/app/services/jingrow/auth.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/jingrow/billing.py b/app/services/jingrow/billing.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/jingrow/client.py b/app/services/jingrow/client.py new file mode 100644 index 0000000..e69de29 diff --git a/app/utils/__init__.py b/app/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/utils/utils.py b/app/utils/utils.py new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e69de29 diff --git a/output/3T8A4426_nobg.png b/output/3T8A4426_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/3T8A4426_nobg.png and /dev/null differ diff --git a/output/tmp0kh35900_nobg.png b/output/tmp0kh35900_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmp0kh35900_nobg.png and /dev/null differ diff --git a/output/tmp119tqook_nobg.png b/output/tmp119tqook_nobg.png deleted file mode 100644 index 9045f12..0000000 Binary files a/output/tmp119tqook_nobg.png and /dev/null differ diff --git a/output/tmp3v4i6y57_nobg.png b/output/tmp3v4i6y57_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmp3v4i6y57_nobg.png and /dev/null differ diff --git a/output/tmp4d66uuvp_nobg.png b/output/tmp4d66uuvp_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmp4d66uuvp_nobg.png and /dev/null differ diff --git a/output/tmp4kv2mhwg_nobg.png b/output/tmp4kv2mhwg_nobg.png deleted file mode 100644 index e0875fd..0000000 Binary files a/output/tmp4kv2mhwg_nobg.png and /dev/null differ diff --git a/output/tmp7e7ckapa_nobg.png b/output/tmp7e7ckapa_nobg.png deleted file mode 100644 index 9045f12..0000000 Binary files a/output/tmp7e7ckapa_nobg.png and /dev/null differ diff --git a/output/tmp972za3v4_nobg.png b/output/tmp972za3v4_nobg.png deleted file mode 100644 index 9045f12..0000000 Binary files a/output/tmp972za3v4_nobg.png and /dev/null differ diff --git a/output/tmp_v9_rdjz_nobg.png b/output/tmp_v9_rdjz_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmp_v9_rdjz_nobg.png and /dev/null differ diff --git a/output/tmpb2icryq6_nobg.png b/output/tmpb2icryq6_nobg.png deleted file mode 100644 index 9328fd1..0000000 Binary files a/output/tmpb2icryq6_nobg.png and /dev/null differ diff --git a/output/tmpb4585ssd_nobg.png b/output/tmpb4585ssd_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmpb4585ssd_nobg.png and /dev/null differ diff --git a/output/tmpdyscjyi5_nobg.png b/output/tmpdyscjyi5_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmpdyscjyi5_nobg.png and /dev/null differ diff --git a/output/tmpfc5ytkx0_nobg.png b/output/tmpfc5ytkx0_nobg.png deleted file mode 100644 index 9045f12..0000000 Binary files a/output/tmpfc5ytkx0_nobg.png and /dev/null differ diff --git a/output/tmpisrqzyuh_nobg.png b/output/tmpisrqzyuh_nobg.png deleted file mode 100644 index 1f47adb..0000000 Binary files a/output/tmpisrqzyuh_nobg.png and /dev/null differ diff --git a/output/tmpktvlg1nn_nobg.png b/output/tmpktvlg1nn_nobg.png deleted file mode 100644 index 3819c55..0000000 Binary files a/output/tmpktvlg1nn_nobg.png and /dev/null differ diff --git a/output/tmppdj3mnpp_nobg.png b/output/tmppdj3mnpp_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmppdj3mnpp_nobg.png and /dev/null differ diff --git a/output/tmpsrxe2mao_nobg.png b/output/tmpsrxe2mao_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmpsrxe2mao_nobg.png and /dev/null differ diff --git a/output/tmptv1q37s9_nobg.png b/output/tmptv1q37s9_nobg.png deleted file mode 100644 index 91ceee8..0000000 Binary files a/output/tmptv1q37s9_nobg.png and /dev/null differ diff --git a/output/tmpxrzisy8i_nobg.png b/output/tmpxrzisy8i_nobg.png deleted file mode 100644 index 47408df..0000000 Binary files a/output/tmpxrzisy8i_nobg.png and /dev/null differ diff --git a/output/tmpycn_udag_nobg.png b/output/tmpycn_udag_nobg.png deleted file mode 100644 index 9328fd1..0000000 Binary files a/output/tmpycn_udag_nobg.png and /dev/null differ diff --git a/output/tmpym2v1swb_nobg.png b/output/tmpym2v1swb_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/output/tmpym2v1swb_nobg.png and /dev/null differ diff --git a/output/tmpz2kzshzf_nobg.png b/output/tmpz2kzshzf_nobg.png deleted file mode 100644 index 2b89660..0000000 Binary files a/output/tmpz2kzshzf_nobg.png and /dev/null differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e6a36e9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +requests>=2.31.0 +Pillow>=10.0.0 +torch>=2.0.0 +transformers>=4.30.0 +fastapi>=0.104.0 +uvicorn>=0.23.2 +python-multipart>=0.0.6 +pydantic>=2.4.2 \ No newline at end of file diff --git a/task/output/tmp1uqgmfm9_nobg.png b/task/output/tmp1uqgmfm9_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/task/output/tmp1uqgmfm9_nobg.png and /dev/null differ diff --git a/task/output/tmp4hma0__o_nobg.png b/task/output/tmp4hma0__o_nobg.png deleted file mode 100644 index bef75db..0000000 Binary files a/task/output/tmp4hma0__o_nobg.png and /dev/null differ diff --git a/task/output/tmpn8r2g6do_nobg.png b/task/output/tmpn8r2g6do_nobg.png deleted file mode 100644 index 9045f12..0000000 Binary files a/task/output/tmpn8r2g6do_nobg.png and /dev/null differ diff --git a/task/requirements.txt b/task/requirements.txt deleted file mode 100644 index e846745..0000000 --- a/task/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -requests>=2.31.0 -Pillow>=10.0.0 -torch>=2.0.0 -transformers>=4.30.0 \ No newline at end of file diff --git a/task/rmbg.py b/task/rmbg.py deleted file mode 100644 index 68188db..0000000 --- a/task/rmbg.py +++ /dev/null @@ -1,106 +0,0 @@ -import os -import gradio as gr -from gradio_imageslider import ImageSlider -from loadimg import load_img -import spaces -from transformers import AutoModelForImageSegmentation -import torch -from torchvision import transforms - -torch.set_float32_matmul_precision(["high", "highest"][0]) - -birefnet = AutoModelForImageSegmentation.from_pretrained( - "briaai/RMBG-2.0", trust_remote_code=True -) -birefnet.to("cuda") -transform_image = transforms.Compose( - [ - transforms.Resize((1024, 1024)), - transforms.ToTensor(), - transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), - ] -) - -output_folder = 'output_images' -if not os.path.exists(output_folder): - os.makedirs(output_folder) - -def fn(image): - im = load_img(image, output_type="pil") - im = im.convert("RGB") - origin = im.copy() - image = process(im) - image_path = os.path.join(output_folder, "no_bg_image.png") - image.save(image_path) - return (image, origin), image_path - -@spaces.GPU -def process(image): - image_size = image.size - input_images = transform_image(image).unsqueeze(0).to("cuda") - # Prediction - with torch.no_grad(): - preds = birefnet(input_images)[-1].sigmoid().cpu() - pred = preds[0].squeeze() - pred_pil = transforms.ToPILImage()(pred) - mask = pred_pil.resize(image_size) - image.putalpha(mask) - return image - -def process_file(f): - name_path = f.rsplit(".",1)[0]+".png" - im = load_img(f, output_type="pil") - im = im.convert("RGB") - transparent = process(im) - transparent.save(name_path) - return name_path - -slider1 = ImageSlider(label="RMBG-2.0", type="pil") -slider2 = ImageSlider(label="RMBG-2.0", type="pil") -image = gr.Image(label="Upload an image") -image2 = gr.Image(label="Upload an image",type="filepath") -text = gr.Textbox(label="Paste an image URL") -png_file = gr.File(label="output png file") - - -chameleon = load_img("giraffe.jpg", output_type="pil") - -url = "http://farm9.staticflickr.com/8488/8228323072_76eeddfea3_z.jpg" - -tab1 = gr.Interface( - fn, inputs=image, outputs=[slider1, gr.File(label="output png file")], examples=[chameleon], api_name="image" -) - -tab2 = gr.Interface(fn, inputs=text, outputs=[slider2, gr.File(label="output png file")], examples=[url], api_name="text") -tab3 = gr.Interface(process_file, inputs=image2, outputs=png_file, examples=["giraffe.jpg"], api_name="png") - - -demo = gr.TabbedInterface( - [tab1, tab2], ["input image", "input url"], title = ( - "RMBG-2.0 for background removal
" - "" - "Background removal model developed by " - "BRIA.AI, trained on a carefully selected dataset,
" - "and is available as an open-source model for non-commercial use.

" - " For testing upload your image and wait.
" - "Commercial use license | " - "Model card | " - "Blog" - "

" - "" - "API Endpoint available on: " - "Bria.ai, " - "fal.ai
" - "ComfyUI node is available here: " - "ComfyUI Node
" - "Purchase commercial weigths for commercial use: " - "here" - "
" -) - - - -) - -if __name__ == "__main__": - demo.launch(show_error=True) \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..e69de29