From fd74b8556f1f7a22dc6705c85336830c8987c84e Mon Sep 17 00:00:00 2001 From: Qing Date: Fri, 5 Jan 2024 16:40:06 +0800 Subject: [PATCH] beta2 --- iopaint/cli.py | 6 +++--- iopaint/model/base.py | 4 ++-- iopaint/model/controlnet.py | 13 ++++++------- iopaint/model/ddim_sampler.py | 2 +- iopaint/model/fcf.py | 4 ++-- iopaint/model/helper/__init__.py | 0 iopaint/model/helper/cpu_text_encoder.py | 2 +- iopaint/model/instruct_pix2pix.py | 2 +- iopaint/model/kandinsky.py | 2 +- iopaint/model/lama.py | 2 +- iopaint/model/ldm.py | 8 ++++---- iopaint/model/manga.py | 2 +- iopaint/model/mat.py | 6 +++--- iopaint/model/mi_gan.py | 2 +- iopaint/model/opencv2.py | 2 +- iopaint/model/paint_by_example.py | 2 +- iopaint/model/plms_sampler.py | 2 +- iopaint/model/power_paint/power_paint.py | 6 +++--- iopaint/model/sd.py | 6 +++--- iopaint/model/sdxl.py | 5 +++-- iopaint/model/zits.py | 2 +- iopaint/schema.py | 4 ++-- setup.py | 2 +- web_app/src/components/DiffusionProgress.tsx | 2 +- web_app/src/lib/api.ts | 2 +- 25 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 iopaint/model/helper/__init__.py diff --git a/iopaint/cli.py b/iopaint/cli.py index be505b3..6625a21 100644 --- a/iopaint/cli.py +++ b/iopaint/cli.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import Dict +from typing import Dict, Optional import typer from fastapi import FastAPI @@ -114,8 +114,8 @@ def start( device: Device = Option(Device.cpu), gui: bool = Option(False, help=GUI_HELP), disable_model_switch: bool = Option(False), - input: Path = Option(None, help=INPUT_HELP), - output_dir: Path = Option( + input: Optional[Path] = Option(None, help=INPUT_HELP), + output_dir: Optional[Path] = Option( None, help=OUTPUT_DIR_HELP, dir_okay=True, file_okay=False ), quality: int = Option(95, help=QUALITY_HELP), diff --git a/iopaint/model/base.py b/iopaint/model/base.py index fa6a677..839fd94 100644 --- a/iopaint/model/base.py +++ b/iopaint/model/base.py @@ -12,9 +12,9 @@ from iopaint.helper import ( pad_img_to_modulo, switch_mps_device, ) -from iopaint.model.helper.g_diffuser_bot import expand_image -from iopaint.model.utils import get_scheduler from iopaint.schema import InpaintRequest, HDStrategy, SDSampler +from .helper.g_diffuser_bot import expand_image +from .utils import get_scheduler class InpaintModel: diff --git a/iopaint/model/controlnet.py b/iopaint/model/controlnet.py index abc049f..0b0cb33 100644 --- a/iopaint/model/controlnet.py +++ b/iopaint/model/controlnet.py @@ -1,20 +1,19 @@ import PIL.Image import cv2 -import numpy as np import torch -from diffusers import ControlNetModel, DiffusionPipeline +from diffusers import ControlNetModel from loguru import logger +from iopaint.schema import InpaintRequest, ModelType -from iopaint.model.base import DiffusionInpaintModel -from iopaint.model.helper.controlnet_preprocess import ( +from .base import DiffusionInpaintModel +from .helper.controlnet_preprocess import ( make_canny_control_image, make_openpose_control_image, make_depth_control_image, make_inpaint_control_image, ) -from iopaint.model.helper.cpu_text_encoder import CPUTextEncoderWrapper -from iopaint.model.utils import get_scheduler, handle_from_pretrained_exceptions -from iopaint.schema import InpaintRequest, ModelType +from .helper.cpu_text_encoder import CPUTextEncoderWrapper +from .utils import get_scheduler, handle_from_pretrained_exceptions class ControlNet(DiffusionInpaintModel): diff --git a/iopaint/model/ddim_sampler.py b/iopaint/model/ddim_sampler.py index 7d4033e..a3f44fd 100644 --- a/iopaint/model/ddim_sampler.py +++ b/iopaint/model/ddim_sampler.py @@ -2,7 +2,7 @@ import torch import numpy as np from tqdm import tqdm -from iopaint.model.utils import make_ddim_timesteps, make_ddim_sampling_parameters, noise_like +from .utils import make_ddim_timesteps, make_ddim_sampling_parameters, noise_like from loguru import logger diff --git a/iopaint/model/fcf.py b/iopaint/model/fcf.py index 80d9596..a6f2d42 100644 --- a/iopaint/model/fcf.py +++ b/iopaint/model/fcf.py @@ -16,11 +16,11 @@ from iopaint.helper import ( resize_max_size, download_model, ) -from iopaint.model.base import InpaintModel +from .base import InpaintModel from torch import conv2d, nn import torch.nn.functional as F -from iopaint.model.utils import ( +from .utils import ( setup_filter, _parse_scaling, _parse_padding, diff --git a/iopaint/model/helper/__init__.py b/iopaint/model/helper/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/iopaint/model/helper/cpu_text_encoder.py b/iopaint/model/helper/cpu_text_encoder.py index 20ce9d0..532f6ff 100644 --- a/iopaint/model/helper/cpu_text_encoder.py +++ b/iopaint/model/helper/cpu_text_encoder.py @@ -1,5 +1,5 @@ import torch -from iopaint.model.utils import torch_gc +from ..utils import torch_gc class CPUTextEncoderWrapper(torch.nn.Module): diff --git a/iopaint/model/instruct_pix2pix.py b/iopaint/model/instruct_pix2pix.py index 1c43d46..697f932 100644 --- a/iopaint/model/instruct_pix2pix.py +++ b/iopaint/model/instruct_pix2pix.py @@ -4,7 +4,7 @@ import torch from loguru import logger from iopaint.const import INSTRUCT_PIX2PIX_NAME -from iopaint.model.base import DiffusionInpaintModel +from .base import DiffusionInpaintModel from iopaint.schema import InpaintRequest diff --git a/iopaint/model/kandinsky.py b/iopaint/model/kandinsky.py index cd2a665..4419921 100644 --- a/iopaint/model/kandinsky.py +++ b/iopaint/model/kandinsky.py @@ -4,7 +4,7 @@ import numpy as np import torch from iopaint.const import KANDINSKY22_NAME -from iopaint.model.base import DiffusionInpaintModel +from .base import DiffusionInpaintModel from iopaint.schema import InpaintRequest diff --git a/iopaint/model/lama.py b/iopaint/model/lama.py index 15d1f7d..7aba242 100644 --- a/iopaint/model/lama.py +++ b/iopaint/model/lama.py @@ -10,8 +10,8 @@ from iopaint.helper import ( load_jit_model, download_model, ) -from iopaint.model.base import InpaintModel from iopaint.schema import InpaintRequest +from .base import InpaintModel LAMA_MODEL_URL = os.environ.get( "LAMA_MODEL_URL", diff --git a/iopaint/model/ldm.py b/iopaint/model/ldm.py index 6ba4f3a..19e51a3 100644 --- a/iopaint/model/ldm.py +++ b/iopaint/model/ldm.py @@ -4,9 +4,9 @@ import numpy as np import torch from loguru import logger -from iopaint.model.base import InpaintModel -from iopaint.model.ddim_sampler import DDIMSampler -from iopaint.model.plms_sampler import PLMSSampler +from .base import InpaintModel +from .ddim_sampler import DDIMSampler +from .plms_sampler import PLMSSampler from iopaint.schema import InpaintRequest, LDMSampler torch.manual_seed(42) @@ -17,7 +17,7 @@ from iopaint.helper import ( get_cache_path_by_url, load_jit_model, ) -from iopaint.model.utils import ( +from .utils import ( make_beta_schedule, timestep_embedding, ) diff --git a/iopaint/model/manga.py b/iopaint/model/manga.py index 66d04fc..1f58251 100644 --- a/iopaint/model/manga.py +++ b/iopaint/model/manga.py @@ -8,7 +8,7 @@ import time from loguru import logger from iopaint.helper import get_cache_path_by_url, load_jit_model, download_model -from iopaint.model.base import InpaintModel +from .base import InpaintModel from iopaint.schema import InpaintRequest diff --git a/iopaint/model/mat.py b/iopaint/model/mat.py index c55c913..0c5360f 100644 --- a/iopaint/model/mat.py +++ b/iopaint/model/mat.py @@ -14,8 +14,9 @@ from iopaint.helper import ( norm_img, download_model, ) -from iopaint.model.base import InpaintModel -from iopaint.model.utils import ( +from iopaint.schema import InpaintRequest +from .base import InpaintModel +from .utils import ( setup_filter, Conv2dLayer, FullyConnectedLayer, @@ -28,7 +29,6 @@ from iopaint.model.utils import ( normalize_2nd_moment, set_seed, ) -from iopaint.schema import InpaintRequest class ModulatedConv2d(nn.Module): diff --git a/iopaint/model/mi_gan.py b/iopaint/model/mi_gan.py index a9605cc..f1ce25f 100644 --- a/iopaint/model/mi_gan.py +++ b/iopaint/model/mi_gan.py @@ -11,7 +11,7 @@ from iopaint.helper import ( resize_max_size, norm_img, ) -from iopaint.model.base import InpaintModel +from .base import InpaintModel from iopaint.schema import InpaintRequest MIGAN_MODEL_URL = os.environ.get( diff --git a/iopaint/model/opencv2.py b/iopaint/model/opencv2.py index 9ab8e5c..de47209 100644 --- a/iopaint/model/opencv2.py +++ b/iopaint/model/opencv2.py @@ -1,5 +1,5 @@ import cv2 -from iopaint.model.base import InpaintModel +from .base import InpaintModel from iopaint.schema import InpaintRequest flag_map = {"INPAINT_NS": cv2.INPAINT_NS, "INPAINT_TELEA": cv2.INPAINT_TELEA} diff --git a/iopaint/model/paint_by_example.py b/iopaint/model/paint_by_example.py index 0e5200c..18207e4 100644 --- a/iopaint/model/paint_by_example.py +++ b/iopaint/model/paint_by_example.py @@ -5,7 +5,7 @@ import torch from loguru import logger from iopaint.helper import decode_base64_to_image -from iopaint.model.base import DiffusionInpaintModel +from .base import DiffusionInpaintModel from iopaint.schema import InpaintRequest diff --git a/iopaint/model/plms_sampler.py b/iopaint/model/plms_sampler.py index 29450e5..131a8f4 100644 --- a/iopaint/model/plms_sampler.py +++ b/iopaint/model/plms_sampler.py @@ -1,7 +1,7 @@ # From: https://github.com/CompVis/latent-diffusion/blob/main/ldm/models/diffusion/plms.py import torch import numpy as np -from iopaint.model.utils import make_ddim_timesteps, make_ddim_sampling_parameters, noise_like +from .utils import make_ddim_timesteps, make_ddim_sampling_parameters, noise_like from tqdm import tqdm diff --git a/iopaint/model/power_paint/power_paint.py b/iopaint/model/power_paint/power_paint.py index 980cf93..6c74dd9 100644 --- a/iopaint/model/power_paint/power_paint.py +++ b/iopaint/model/power_paint/power_paint.py @@ -4,9 +4,9 @@ import cv2 import torch from loguru import logger -from iopaint.model.base import DiffusionInpaintModel -from iopaint.model.helper.cpu_text_encoder import CPUTextEncoderWrapper -from iopaint.model.utils import handle_from_pretrained_exceptions +from ..base import DiffusionInpaintModel +from ..helper.cpu_text_encoder import CPUTextEncoderWrapper +from ..utils import handle_from_pretrained_exceptions from iopaint.schema import InpaintRequest from .powerpaint_tokenizer import add_task_to_prompt from ...const import POWERPAINT_NAME diff --git a/iopaint/model/sd.py b/iopaint/model/sd.py index f1a3086..403e9f6 100644 --- a/iopaint/model/sd.py +++ b/iopaint/model/sd.py @@ -3,9 +3,9 @@ import cv2 import torch from loguru import logger -from iopaint.model.base import DiffusionInpaintModel -from iopaint.model.helper.cpu_text_encoder import CPUTextEncoderWrapper -from iopaint.model.utils import handle_from_pretrained_exceptions +from .base import DiffusionInpaintModel +from .helper.cpu_text_encoder import CPUTextEncoderWrapper +from .utils import handle_from_pretrained_exceptions from iopaint.schema import InpaintRequest, ModelType diff --git a/iopaint/model/sdxl.py b/iopaint/model/sdxl.py index 5675202..6ec13da 100644 --- a/iopaint/model/sdxl.py +++ b/iopaint/model/sdxl.py @@ -6,10 +6,11 @@ import torch from diffusers import AutoencoderKL from loguru import logger -from iopaint.model.base import DiffusionInpaintModel -from iopaint.model.utils import handle_from_pretrained_exceptions from iopaint.schema import InpaintRequest, ModelType +from .base import DiffusionInpaintModel +from .utils import handle_from_pretrained_exceptions + class SDXL(DiffusionInpaintModel): name = "diffusers/stable-diffusion-xl-1.0-inpainting-0.1" diff --git a/iopaint/model/zits.py b/iopaint/model/zits.py index 16f9634..d58ac01 100644 --- a/iopaint/model/zits.py +++ b/iopaint/model/zits.py @@ -9,7 +9,7 @@ from iopaint.helper import get_cache_path_by_url, load_jit_model, download_model from iopaint.schema import InpaintRequest import numpy as np -from iopaint.model.base import InpaintModel +from .base import InpaintModel ZITS_INPAINT_MODEL_URL = os.environ.get( "ZITS_INPAINT_MODEL_URL", diff --git a/iopaint/schema.py b/iopaint/schema.py index 000771b..c3a5588 100644 --- a/iopaint/schema.py +++ b/iopaint/schema.py @@ -92,8 +92,8 @@ class ApiConfig(BaseModel): device: Device gui: bool disable_model_switch: bool - input: Path - output_dir: Path + input: Optional[Path] + output_dir: Optional[Path] quality: int enable_interactive_seg: bool interactive_seg_model: InteractiveSegModel diff --git a/setup.py b/setup.py index 727d953..4380fd1 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ def load_requirements(): # https://setuptools.readthedocs.io/en/latest/setuptools.html#including-data-files setuptools.setup( name="IOPaint", - version="1.0.0-beta.1", + version="1.0.0-beta.2", author="PanicByte", author_email="cwq1913@gmail.com", description="Image inpainting, outpainting tool powered by SOTA AI Model", diff --git a/web_app/src/components/DiffusionProgress.tsx b/web_app/src/components/DiffusionProgress.tsx index 851e4ba..3032475 100644 --- a/web_app/src/components/DiffusionProgress.tsx +++ b/web_app/src/components/DiffusionProgress.tsx @@ -3,7 +3,7 @@ import io from "socket.io-client" import { Progress } from "./ui/progress" import { useStore } from "@/lib/states" -export const API_ENDPOINT = import.meta.env.VITE_BACKEND +export const API_ENDPOINT = import.meta.env.DEV ? import.meta.env.VITE_BACKEND : "" const socket = io(API_ENDPOINT) diff --git a/web_app/src/lib/api.ts b/web_app/src/lib/api.ts index 9346607..54e577e 100644 --- a/web_app/src/lib/api.ts +++ b/web_app/src/lib/api.ts @@ -10,7 +10,7 @@ import { Settings } from "@/lib/states" import { convertToBase64, srcToFile } from "@/lib/utils" import axios from "axios" -export const API_ENDPOINT = import.meta.env.VITE_BACKEND +export const API_ENDPOINT = import.meta.env.DEV ? import.meta.env.VITE_BACKEND + "/api/v1" : "/api/v1"