2023-01-17 02:00:02 +00:00
|
|
|
[build-system]
|
2023-01-19 02:12:59 +00:00
|
|
|
requires = ["setuptools~=65.5", "pip~=22.3", "wheel"]
|
2023-01-17 02:00:02 +00:00
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
[project]
|
|
|
|
name = "InvokeAI"
|
|
|
|
description = "An implementation of Stable Diffusion which provides various new features and options to aid the image generation process"
|
|
|
|
requires-python = ">=3.9, <3.11"
|
|
|
|
readme = { content-type = "text/markdown", file = "README.md" }
|
|
|
|
keywords = ["stable-diffusion", "AI"]
|
|
|
|
dynamic = ["version"]
|
|
|
|
license = { file = "LICENSE" }
|
|
|
|
authors = [{ name = "The InvokeAI Project", email = "lincoln.stein@gmail.com" }]
|
|
|
|
classifiers = [
|
|
|
|
'Development Status :: 4 - Beta',
|
|
|
|
'Environment :: GPU',
|
|
|
|
'Environment :: GPU :: NVIDIA CUDA',
|
|
|
|
'Environment :: MacOS X',
|
|
|
|
'Intended Audience :: End Users/Desktop',
|
|
|
|
'Intended Audience :: Developers',
|
|
|
|
'License :: OSI Approved :: MIT License',
|
|
|
|
'Operating System :: POSIX :: Linux',
|
|
|
|
'Operating System :: MacOS',
|
|
|
|
'Operating System :: Microsoft :: Windows',
|
|
|
|
'Programming Language :: Python :: 3 :: Only',
|
|
|
|
'Programming Language :: Python :: 3.8',
|
|
|
|
'Programming Language :: Python :: 3.9',
|
|
|
|
'Programming Language :: Python :: 3.10',
|
|
|
|
'Topic :: Artistic Software',
|
|
|
|
'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
|
|
|
|
'Topic :: Internet :: WWW/HTTP :: WSGI :: Server',
|
|
|
|
'Topic :: Multimedia :: Graphics',
|
|
|
|
'Topic :: Scientific/Engineering :: Artificial Intelligence',
|
|
|
|
'Topic :: Scientific/Engineering :: Image Processing',
|
|
|
|
]
|
|
|
|
dependencies = [
|
2023-03-05 00:30:48 +00:00
|
|
|
"accelerate~=0.16",
|
2023-01-17 02:00:02 +00:00
|
|
|
"albumentations",
|
2023-02-05 03:05:27 +00:00
|
|
|
"click",
|
2023-01-26 14:35:16 +00:00
|
|
|
"clip_anytorch", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip",
|
2023-05-07 19:22:46 +00:00
|
|
|
"compel~=1.1.5",
|
2023-01-17 02:00:02 +00:00
|
|
|
"datasets",
|
2023-05-07 03:09:24 +00:00
|
|
|
"diffusers[torch]~=0.16.1",
|
2023-01-17 02:00:02 +00:00
|
|
|
"dnspython==2.2.1",
|
|
|
|
"einops",
|
|
|
|
"eventlet",
|
|
|
|
"facexlib",
|
2023-03-26 06:40:30 +00:00
|
|
|
"fastapi==0.88.0",
|
2023-03-22 02:45:17 +00:00
|
|
|
"fastapi-events==0.8.0",
|
|
|
|
"fastapi-socketio==0.0.10",
|
2023-01-17 02:00:02 +00:00
|
|
|
"flask==2.1.3",
|
|
|
|
"flask_cors==3.0.10",
|
|
|
|
"flask_socketio==5.3.0",
|
|
|
|
"flaskwebgui==1.0.3",
|
|
|
|
"gfpgan==1.3.8",
|
|
|
|
"huggingface-hub>=0.11.1",
|
|
|
|
"npyscreen",
|
2023-01-30 23:42:17 +00:00
|
|
|
"numpy<1.24",
|
2023-01-17 02:00:02 +00:00
|
|
|
"omegaconf",
|
|
|
|
"opencv-python",
|
|
|
|
"picklescan",
|
|
|
|
"pillow",
|
2023-01-27 06:20:50 +00:00
|
|
|
"prompt-toolkit",
|
2023-01-17 02:00:02 +00:00
|
|
|
"pypatchmatch",
|
|
|
|
"pyreadline3",
|
2023-04-07 18:43:42 +00:00
|
|
|
"python-multipart==0.0.6",
|
2023-03-08 21:48:39 +00:00
|
|
|
"pytorch-lightning==1.7.7",
|
2023-01-17 02:00:02 +00:00
|
|
|
"realesrgan",
|
2023-01-30 23:42:17 +00:00
|
|
|
"requests==2.28.2",
|
2023-03-05 02:37:39 +00:00
|
|
|
"rich~=13.3",
|
2023-03-05 00:30:48 +00:00
|
|
|
"safetensors~=0.3.0",
|
2023-01-17 02:00:02 +00:00
|
|
|
"scikit-image>=0.19",
|
|
|
|
"send2trash",
|
|
|
|
"test-tube>=0.7.5",
|
2023-05-07 03:09:24 +00:00
|
|
|
"torch~=2.0.0",
|
2023-01-17 02:00:02 +00:00
|
|
|
"torchvision>=0.14.1",
|
|
|
|
"torchmetrics",
|
2023-03-05 00:30:48 +00:00
|
|
|
"transformers~=4.26",
|
2023-03-22 02:45:17 +00:00
|
|
|
"uvicorn[standard]==0.21.1",
|
2023-01-17 02:00:02 +00:00
|
|
|
"windows-curses; sys_platform=='win32'",
|
|
|
|
]
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
"dist" = ["pip-tools", "pipdeptree", "twine"]
|
|
|
|
"docs" = [
|
|
|
|
"mkdocs-material<9.0",
|
|
|
|
"mkdocs-git-revision-date-localized-plugin",
|
|
|
|
"mkdocs-redirects==1.2.0",
|
|
|
|
]
|
2023-03-05 02:16:59 +00:00
|
|
|
"dev" = [
|
|
|
|
"pudb",
|
|
|
|
]
|
2023-01-27 00:45:04 +00:00
|
|
|
"test" = ["pytest>6.0.0", "pytest-cov"]
|
2023-02-01 22:41:38 +00:00
|
|
|
"xformers" = [
|
2023-05-07 03:09:24 +00:00
|
|
|
"xformers~=0.0.19; sys_platform!='darwin'",
|
2023-02-02 05:28:38 +00:00
|
|
|
"triton; sys_platform=='linux'",
|
2023-02-01 22:41:38 +00:00
|
|
|
]
|
2023-01-17 02:00:02 +00:00
|
|
|
|
|
|
|
[project.scripts]
|
2023-01-28 21:56:14 +00:00
|
|
|
|
|
|
|
# legacy entrypoints; provided for backwards compatibility
|
2023-03-04 01:19:37 +00:00
|
|
|
"invoke.py" = "invokeai.frontend.CLI:invokeai_command_line_interface"
|
2023-03-03 06:02:00 +00:00
|
|
|
"configure_invokeai.py" = "invokeai.frontend.install:invokeai_configure"
|
|
|
|
"textual_inversion.py" = "invokeai.frontend.training:invokeai_textual_inversion"
|
2023-01-28 21:56:14 +00:00
|
|
|
|
|
|
|
# modern entrypoints
|
2023-03-03 06:02:00 +00:00
|
|
|
"invokeai-configure" = "invokeai.frontend.install:invokeai_configure"
|
2023-03-03 05:02:15 +00:00
|
|
|
"invokeai-merge" = "invokeai.frontend.merge:invokeai_merge_diffusers"
|
|
|
|
"invokeai-ti" = "invokeai.frontend.training:invokeai_textual_inversion"
|
2023-03-03 06:02:00 +00:00
|
|
|
"invokeai-model-install" = "invokeai.frontend.install:invokeai_model_install"
|
2023-04-02 15:08:12 +00:00
|
|
|
"invokeai-update" = "invokeai.frontend.install:invokeai_update"
|
2023-03-04 01:19:37 +00:00
|
|
|
"invokeai-metadata" = "invokeai.frontend.CLI.sd_metadata:print_metadata"
|
|
|
|
"invokeai-node-cli" = "invokeai.app.cli_app:invoke_cli"
|
|
|
|
"invokeai-node-web" = "invokeai.app.api_app:invoke_api"
|
2023-01-17 02:00:02 +00:00
|
|
|
|
|
|
|
[project.urls]
|
|
|
|
"Homepage" = "https://invoke-ai.github.io/InvokeAI/"
|
|
|
|
"Documentation" = "https://invoke-ai.github.io/InvokeAI/"
|
|
|
|
"Source" = "https://github.com/invoke-ai/InvokeAI/"
|
|
|
|
"Bug Reports" = "https://github.com/invoke-ai/InvokeAI/issues"
|
|
|
|
"Discord" = "https://discord.gg/ZmtBAhwWhy"
|
|
|
|
|
|
|
|
[tool.setuptools.dynamic]
|
2023-03-02 18:28:17 +00:00
|
|
|
version = { attr = "invokeai.version.__version__" }
|
2023-01-17 02:00:02 +00:00
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
"where" = ["."]
|
first phase of source tree restructure
This is the first phase of a big shifting of files and directories
in the source tree.
You will need to run `pip install -e .` before the code will work again!
Here's what's in the current commit:
1) Remove a lot of dead code that dealt with checkpoint and safetensor loading.
2) Entire ckpt_generator hierarchy is now gone!
3) ldm.invoke.generator.* => invokeai.generator.*
4) ldm.model.* => invokeai.model.*
5) ldm.invoke.model_manager => invokeai.model.model_manager
6) In addition, a number of frequently-accessed classes can be imported
from the invokeai.model and invokeai.generator modules:
from invokeai.generator import ( Generator, PipelineIntermediateState,
StableDiffusionGeneratorPipeline, infill_methods)
from invokeai.models import ( ModelManager, SDLegacyType
InvokeAIDiffuserComponent, AttentionMapSaver,
DDIMSampler, KSampler, PLMSSampler,
PostprocessingSettings )
2023-02-28 04:52:46 +00:00
|
|
|
"include" = [
|
2023-03-05 02:16:59 +00:00
|
|
|
"invokeai.assets.web*","invokeai.version*",
|
first phase of source tree restructure
This is the first phase of a big shifting of files and directories
in the source tree.
You will need to run `pip install -e .` before the code will work again!
Here's what's in the current commit:
1) Remove a lot of dead code that dealt with checkpoint and safetensor loading.
2) Entire ckpt_generator hierarchy is now gone!
3) ldm.invoke.generator.* => invokeai.generator.*
4) ldm.model.* => invokeai.model.*
5) ldm.invoke.model_manager => invokeai.model.model_manager
6) In addition, a number of frequently-accessed classes can be imported
from the invokeai.model and invokeai.generator modules:
from invokeai.generator import ( Generator, PipelineIntermediateState,
StableDiffusionGeneratorPipeline, infill_methods)
from invokeai.models import ( ModelManager, SDLegacyType
InvokeAIDiffuserComponent, AttentionMapSaver,
DDIMSampler, KSampler, PLMSSampler,
PostprocessingSettings )
2023-02-28 04:52:46 +00:00
|
|
|
"invokeai.generator*","invokeai.backend*",
|
2023-03-03 05:02:15 +00:00
|
|
|
"invokeai.frontend*", "invokeai.frontend.web.dist*",
|
|
|
|
"invokeai.configs*",
|
|
|
|
"invokeai.app*","ldm*",
|
first phase of source tree restructure
This is the first phase of a big shifting of files and directories
in the source tree.
You will need to run `pip install -e .` before the code will work again!
Here's what's in the current commit:
1) Remove a lot of dead code that dealt with checkpoint and safetensor loading.
2) Entire ckpt_generator hierarchy is now gone!
3) ldm.invoke.generator.* => invokeai.generator.*
4) ldm.model.* => invokeai.model.*
5) ldm.invoke.model_manager => invokeai.model.model_manager
6) In addition, a number of frequently-accessed classes can be imported
from the invokeai.model and invokeai.generator modules:
from invokeai.generator import ( Generator, PipelineIntermediateState,
StableDiffusionGeneratorPipeline, infill_methods)
from invokeai.models import ( ModelManager, SDLegacyType
InvokeAIDiffuserComponent, AttentionMapSaver,
DDIMSampler, KSampler, PLMSSampler,
PostprocessingSettings )
2023-02-28 04:52:46 +00:00
|
|
|
]
|
2023-01-17 02:00:02 +00:00
|
|
|
|
|
|
|
[tool.setuptools.package-data]
|
2023-01-30 23:42:17 +00:00
|
|
|
"invokeai.assets.web" = ["**.png"]
|
|
|
|
"invokeai.backend" = ["**.png"]
|
|
|
|
"invokeai.configs" = ["*.example", "**/*.yaml", "*.txt"]
|
2023-03-03 05:02:15 +00:00
|
|
|
"invokeai.frontend.web.dist" = ["**"]
|
2023-01-17 02:00:02 +00:00
|
|
|
|
2023-03-05 17:00:08 +00:00
|
|
|
#=== Begin: PyTest and Coverage
|
2023-01-17 02:00:02 +00:00
|
|
|
[tool.pytest.ini_options]
|
2023-03-05 17:00:08 +00:00
|
|
|
addopts = "--cov-report term --cov-report html --cov-report xml"
|
|
|
|
[tool.coverage.run]
|
|
|
|
branch = true
|
|
|
|
source = ["invokeai"]
|
|
|
|
omit = ["*tests*", "*migrations*", ".venv/*", "*.env"]
|
|
|
|
[tool.coverage.report]
|
|
|
|
show_missing = true
|
|
|
|
fail_under = 85 # let's set something sensible on Day 1 ...
|
|
|
|
[tool.coverage.json]
|
|
|
|
output = "coverage/coverage.json"
|
|
|
|
pretty_print = true
|
|
|
|
[tool.coverage.html]
|
|
|
|
directory = "coverage/html"
|
|
|
|
[tool.coverage.xml]
|
|
|
|
output = "coverage/index.xml"
|
|
|
|
#=== End: PyTest and Coverage
|
2023-03-03 06:02:00 +00:00
|
|
|
|
|
|
|
[flake8]
|
|
|
|
max-line-length = 120
|