Inpaint-Anything icon indicating copy to clipboard operation
Inpaint-Anything copied to clipboard

remove_anything.py SamPredictor Error

Open filibis opened this issue 1 year ago • 6 comments

Hi, I'm getting the error below. Same issue with #34 but that solution doesn't work for me. Please note that I'm a designer and my code knowledge is very basic. I use Windows 10.

I typed these line by line at CMD and everything installed succesfully without errors.

python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install -r lama_requirements_windows.txt

Then I wanted to test remove_anything example code and I got the error below.

D:\inpaint_anything\Inpaint-Anything>python remove_anything.py --input_img ./example/remove-anything/dog.jpg --coords_type key_in --point_coords 200 450 --point_labels 1 --dilate_kernel_size 15 --output_dir ./results --sam_model_type "vit_h" --sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth --lama_config ./lama/configs/prediction/default.yaml --lama_ckpt ./pretrained_models/big-lama
Traceback (most recent call last):
  File "D:\inpaint_anything\Inpaint-Anything\remove_anything.py", line 8, in <module>
    from sam_segment import predict_masks_with_sam
  File "D:\inpaint_anything\Inpaint-Anything\sam_segment.py", line 9, in <module>
    from segment_anything import SamPredictor, sam_model_registry
ImportError: cannot import name 'SamPredictor' from 'segment_anything' (unknown location)

Then I tried using miniconda CMD for whole process and I got a different error as seen below. Any help is appreciated.

(base) D:\inpaint_anything\Inpaint-Anything>python remove_anything.py --input_img ./example/remove-anything/dog.jpg --coords_type key_in --point_coords 200 450 --point_labels 1 --dilate_kernel_size 15 --output_dir ./results --sam_model_type "vit_h" --sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth --lama_config ./lama/configs/prediction/default.yaml --lama_ckpt ./pretrained_models/big-lama
Traceback (most recent call last):
  File "D:\inpaint_anything\Inpaint-Anything\remove_anything.py", line 9, in <module>
    from lama_inpaint import inpaint_img_with_lama
  File "D:\inpaint_anything\Inpaint-Anything\lama_inpaint.py", line 19, in <module>
    from saicinpainting.evaluation.utils import move_to_device
  File "D:\inpaint_anything\Inpaint-Anything\lama\saicinpainting\evaluation\__init__.py", line 6, in <module>
    from saicinpainting.evaluation.losses.base_loss import SSIMScore, LPIPSScore, FIDScore
  File "D:\inpaint_anything\Inpaint-Anything\lama\saicinpainting\evaluation\losses\base_loss.py", line 15, in <module>
    from .lpips import PerceptualLoss
  File "D:\inpaint_anything\Inpaint-Anything\lama\saicinpainting\evaluation\losses\lpips.py", line 15, in <module>
    from saicinpainting.utils import get_shape
  File "D:\inpaint_anything\Inpaint-Anything\lama\saicinpainting\utils.py", line 12, in <module>
    from pytorch_lightning import seed_everything
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\__init__.py", line 28, in <module>
    from pytorch_lightning import metrics  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\__init__.py", line 14, in <module>
    from pytorch_lightning.metrics.classification import (  # noqa: F401
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\classification\__init__.py", line 14, in <module>
    from pytorch_lightning.metrics.classification.accuracy import Accuracy  # noqa: F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\classification\accuracy.py", line 18, in <module>
    from pytorch_lightning.metrics.functional.accuracy import _accuracy_compute, _accuracy_update
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\functional\__init__.py", line 14, in <module>
    from pytorch_lightning.metrics.functional.accuracy import accuracy  # noqa: F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\functional\accuracy.py", line 18, in <module>
    from pytorch_lightning.metrics.classification.helpers import _input_format_classification, DataType
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\classification\helpers.py", line 19, in <module>
    from pytorch_lightning.metrics.utils import select_topk, to_onehot
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\metrics\utils.py", line 18, in <module>
    from pytorch_lightning.utilities import rank_zero_warn
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\utilities\__init__.py", line 18, in <module>
    from pytorch_lightning.utilities.apply_func import move_data_to_device  # noqa: F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\utilities\apply_func.py", line 25, in <module>
    from pytorch_lightning.utilities.imports import _compare_version, _TORCHTEXT_AVAILABLE
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\utilities\imports.py", line 76, in <module>
    _HYDRA_EXPERIMENTAL_AVAILABLE = _module_available("hydra.experimental")
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\site-packages\pytorch_lightning\utilities\imports.py", line 35, in _module_available
    return find_spec(module_path) is not None
           ^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib.util>", line 94, in find_spec
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\__init__.py", line 5, in <module>
    from hydra import utils
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\utils.py", line 8, in <module>
    import hydra._internal.instantiate._instantiate2
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\_internal\instantiate\_instantiate2.py", line 11, in <module>
    from hydra._internal.utils import _locate
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\_internal\utils.py", line 17, in <module>
    from hydra.core.utils import get_valid_filename, validate_config_path
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\core\utils.py", line 19, in <module>
    from hydra.core.hydra_config import HydraConfig
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\core\hydra_config.py", line 6, in <module>
    from hydra.conf import HydraConf
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\conf\__init__.py", line 45, in <module>
    class JobConf:
  File "C:\Users\emir\miniconda3\Lib\site-packages\hydra\conf\__init__.py", line 70, in JobConf
    @dataclass
     ^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\dataclasses.py", line 1230, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\dataclasses.py", line 958, in _process_class
    cls_fields.append(_get_field(cls, name, type, kw_only))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\emir\miniconda3\Lib\dataclasses.py", line 815, in _get_field
    raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'hydra.conf.JobConf.JobConfig.OverrideDirname'> for field override_dirname is not allowed: use default_factory

filibis avatar Sep 13 '23 12:09 filibis

Im having the same problem,

lihaibo123as avatar Sep 27 '23 07:09 lihaibo123as

Im having the same problem,

changqing91 avatar Oct 19 '23 07:10 changqing91

Im having the same problem,

changqing91 avatar Oct 19 '23 07:10 changqing91

Hi @filibis and @lihaibo123as , were you able to solve this problem? I am getting the same issue. It appears that dataclasses.py does not want to see mutable default values.

alireza18878 avatar Dec 08 '23 16:12 alireza18878

Hi @alireza18878 , unfortunately not. I eventually gave up.

filibis avatar Dec 08 '23 18:12 filibis

this particular error can be solved by changing the python version from 3.11 to 3.10. What you can do is create a new conda environment by the following command: "conda create -n env_name python==3.10" this will create a new conda env then you can install everything again in the new environment and the error is solved.

HG2407 avatar Dec 13 '23 07:12 HG2407