mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
f74f3d6a3a
1. Separated the "starter models" and "more models" sections. This gives us room to list all installed diffuserse models, not just those that are on the starter list. 2. Support mouse-based paste into the textboxes with either middle or right mouse buttons. 3. Support terminal-style cursor movement: ^A to move to beginning of line ^E to move to end of line ^K kill text to right and put in killring ^Y yank text back 4. Internal code cleanup.
172 lines
5.4 KiB
TOML
172 lines
5.4 KiB
TOML
[build-system]
|
|
requires = ["setuptools~=65.5", "pip~=22.3", "wheel"]
|
|
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 = [
|
|
"accelerate~=0.16",
|
|
"albumentations",
|
|
"click",
|
|
"clip_anytorch", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip",
|
|
"compel~=1.1.5",
|
|
"controlnet-aux>=0.0.4",
|
|
"timm==0.6.13", # needed to override timm latest in controlnet_aux, see https://github.com/isl-org/ZoeDepth/issues/26
|
|
"datasets",
|
|
"diffusers[torch]~=0.16.1",
|
|
"dnspython==2.2.1",
|
|
"einops",
|
|
"eventlet",
|
|
"facexlib",
|
|
"fastapi==0.88.0",
|
|
"fastapi-events==0.8.0",
|
|
"fastapi-socketio==0.0.10",
|
|
"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",
|
|
"mediapipe", # needed for "mediapipeface" controlnet model
|
|
"npyscreen",
|
|
"numpy<1.24",
|
|
"omegaconf",
|
|
"opencv-python",
|
|
"picklescan",
|
|
"pillow",
|
|
"prompt-toolkit",
|
|
"pypatchmatch",
|
|
'pyperclip',
|
|
"pyreadline3",
|
|
"python-multipart==0.0.6",
|
|
"pytorch-lightning==1.7.7",
|
|
"realesrgan",
|
|
"requests==2.28.2",
|
|
"rich~=13.3",
|
|
"safetensors~=0.3.0",
|
|
"scikit-image>=0.19",
|
|
"send2trash",
|
|
"test-tube>=0.7.5",
|
|
"torch~=2.0.0",
|
|
"torchvision>=0.14.1",
|
|
"torchmetrics",
|
|
"transformers~=4.26",
|
|
"uvicorn[standard]==0.21.1",
|
|
"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",
|
|
]
|
|
"dev" = [
|
|
"pudb",
|
|
]
|
|
"test" = ["pytest>6.0.0", "pytest-cov"]
|
|
"xformers" = [
|
|
"xformers~=0.0.19; sys_platform!='darwin'",
|
|
"triton; sys_platform=='linux'",
|
|
]
|
|
|
|
[project.scripts]
|
|
|
|
# legacy entrypoints; provided for backwards compatibility
|
|
"configure_invokeai.py" = "invokeai.frontend.install:invokeai_configure"
|
|
"textual_inversion.py" = "invokeai.frontend.training:invokeai_textual_inversion"
|
|
|
|
# shortcut commands to start cli and web
|
|
"invokeai" = "invokeai.app.cli_app:invoke_cli"
|
|
"invokeai-web" = "invokeai.app.api_app:invoke_api"
|
|
|
|
# full commands
|
|
"invokeai-configure" = "invokeai.frontend.install:invokeai_configure"
|
|
"invokeai-merge" = "invokeai.frontend.merge:invokeai_merge_diffusers"
|
|
"invokeai-ti" = "invokeai.frontend.training:invokeai_textual_inversion"
|
|
"invokeai-model-install" = "invokeai.frontend.install:invokeai_model_install"
|
|
"invokeai-update" = "invokeai.frontend.install:invokeai_update"
|
|
"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"
|
|
|
|
[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]
|
|
version = { attr = "invokeai.version.__version__" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
"where" = ["."]
|
|
"include" = [
|
|
"invokeai.assets.web*","invokeai.version*",
|
|
"invokeai.generator*","invokeai.backend*",
|
|
"invokeai.frontend*", "invokeai.frontend.web.dist*",
|
|
"invokeai.frontend.web.static*",
|
|
"invokeai.configs*",
|
|
"invokeai.app*","ldm*",
|
|
]
|
|
|
|
[tool.setuptools.package-data]
|
|
"invokeai.assets.web" = ["**.png"]
|
|
"invokeai.backend" = ["**.png"]
|
|
"invokeai.configs" = ["*.example", "**/*.yaml", "*.txt"]
|
|
"invokeai.frontend.web.dist" = ["**"]
|
|
"invokeai.frontend.web.static" = ["**"]
|
|
|
|
#=== Begin: PyTest and Coverage
|
|
[tool.pytest.ini_options]
|
|
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
|
|
|
|
[flake8]
|
|
max-line-length = 120
|