Sanster / IOPaint

Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.
https://www.iopaint.com/
Apache License 2.0
17.34k stars 1.75k forks source link

Getting different errors with pydantic for different versions of pydantic #512

Closed cgiturtle closed 3 weeks ago

cgiturtle commented 3 weeks ago

ImportError: cannot import name 'Undefined' from 'pydantic.fields'

Traceback (most recent call last):
  File "/usr/local/bin/iopaint", line 8, in <module>
    sys.exit(entry_point())
  File "/usr/local/lib/python3.8/dist-packages/iopaint/__init__.py", line 21, in entry_point
    from iopaint.cli import typer_app
  File "/usr/local/lib/python3.8/dist-packages/iopaint/cli.py", line 7, in <module>
    from fastapi import FastAPI
  File "/usr/local/lib/python3.8/dist-packages/fastapi/__init__.py", line 7, in <module>
    from .applications import FastAPI as FastAPI
  File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 15, in <module>
    from fastapi import routing
  File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 22, in <module>
    from fastapi import params
  File "/usr/local/lib/python3.8/dist-packages/fastapi/params.py", line 4, in <module>
    from pydantic.fields import FieldInfo, Undefined
ImportError: cannot import name 'Undefined' from 'pydantic.fields' (/usr/local/lib/python3.8/dist-packages/pydantic/fields.py)

https://github.com/vladmandic/automatic/issues/1670

with pydantic version 2.x

ImportError: cannot import name 'field_validator' from 'pydantic'

Traceback (most recent call last):
  File "/usr/local/bin/iopaint", line 8, in <module>
    sys.exit(entry_point())
  File "/usr/local/lib/python3.8/dist-packages/iopaint/__init__.py", line 21, in entry_point
    from iopaint.cli import typer_app
  File "/usr/local/lib/python3.8/dist-packages/iopaint/cli.py", line 13, in <module>
    from iopaint.runtime import setup_model_dir, dump_environment_info, check_device
  File "/usr/local/lib/python3.8/dist-packages/iopaint/runtime.py", line 8, in <module>
    from iopaint.schema import Device
  File "/usr/local/lib/python3.8/dist-packages/iopaint/schema.py", line 16, in <module>
    from pydantic import BaseModel, Field, field_validator, computed_field
ImportError: cannot import name 'field_validator' from 'pydantic' (/usr/local/lib/python3.8/dist-packages/pydantic/__init__.cpython-38-x86_64-linux-gnu.so)

https://github.com/pydantic/pydantic/discussions/9302

with pydantic version 1.x

The issue with pydantic version 2.x doesn‘t happen when I run IOPaint batch job in a Colab notebook, only in the Docker GPU image from this repo

cgiturtle commented 3 weeks ago

pip install --force-reinstall fastapi==0.108.0 solved it issue with pydantic version 2.x