(scripts) rename/reorganize CLI scripts

- add torch MPS fallback directly to CLI.py
- rename CLI scripts with `invoke-...` prefix
- delete long-deprecated scripts
- add a missing package dependency
- delete setup.py as obsolete
This commit is contained in:
Eugene Brodsky 2023-01-27 01:20:50 -05:00
parent 22c34aabfe
commit 2ff47cdecf
7 changed files with 9 additions and 134 deletions

View File

@ -21,6 +21,9 @@ import ldm.invoke
# global used in multiple functions (fix)
infile = None
if sys.platform == 'darwin':
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
def main():
"""Initialize command-line parsers and the diffusion model"""
global infile

View File

@ -61,6 +61,7 @@ dependencies = [
"picklescan",
"pillow",
"pudb",
"prompt-toolkit",
"pypatchmatch",
"pyreadline3",
"pytorch-lightning==1.7.7",
@ -90,10 +91,10 @@ dependencies = [
"test" = ["pytest>6.0.0", "pytest-cov"]
[project.scripts]
"configure_invokeai" = "ldm.invoke.configure_invokeai:main"
"invokeai-config" = "ldm.invoke.config.configure_invokeai:main"
"textual_inversion" = "ldm.invoke.textual_inversion:main"
"merge_models" = "ldm.invoke.merge_diffusers:main" # note name munging
"invoke" = "ldm.invoke.CLI:main"
"invoke-configure" = "ldm.invoke.config.configure_invokeai:main"
"invoke-merge" = "ldm.invoke.merge_diffusers:main" # note name munging
"invoke-ti" = "ldm.invoke.training.textual_inversion:main"
[project.urls]
"Homepage" = "https://invoke-ai.github.io/InvokeAI/"

View File

@ -1,11 +1,9 @@
#!/usr/bin/env python
# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein)
# Before running stable-diffusion on an internet-isolated machine,
# run this script from one with internet connectivity. The
# two machines must share a common .cache directory.
import warnings
from ldm.invoke.config import configure_invokeai
if __name__ == '__main__':
warnings.warn("configire_invokeai.py is deprecated, please run 'invoke'", DeprecationWarning)
configure_invokeai.main()

View File

@ -2,9 +2,6 @@
import sys
import os
if sys.platform == 'darwin':
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
import ldm.invoke.CLI
ldm.invoke.CLI.main()

View File

@ -1,12 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein)
# Before running stable-diffusion on an internet-isolated machine,
# run this script from one with internet connectivity. The
# two machines must share a common .cache directory.
import warnings
import ldm.invoke.configure_invokeai as configure_invokeai
if __name__ == '__main__':
configure_invokeai.main()

View File

@ -1,12 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein)
# Before running stable-diffusion on an internet-isolated machine,
# run this script from one with internet connectivity. The
# two machines must share a common .cache directory.
import warnings
import ldm.invoke.configure_invokeai as configure_invokeai
if __name__ == '__main__':
configure_invokeai.main()

100
setup.py
View File

@ -1,100 +0,0 @@
import sys
import os
import re
from setuptools import setup, find_packages
def list_files(directory):
listing = list()
for root, dirs, files in os.walk(directory,topdown=False):
pair = (root,[os.path.join(root,f) for f in files])
listing.append(pair)
return listing
def get_version()->str:
from ldm.invoke import __version__ as version
return version
# The canonical version number is stored in the file ldm/invoke/_version.py
VERSION = get_version()
DESCRIPTION = ('An implementation of Stable Diffusion which provides various new features'
' and options to aid the image generation process')
LONG_DESCRIPTION = ('This version of Stable Diffusion features a slick WebGUI, an'
' interactive command-line script that combines text2img and img2img'
' functionality in a "dream bot" style interface, and multiple features'
' and other enhancements.')
HOMEPAGE = 'https://github.com/invoke-ai/InvokeAI'
FRONTEND_FILES = list_files('frontend/dist')
FRONTEND_FILES.append(('assets',['assets/caution.png']))
print(FRONTEND_FILES)
REQUIREMENTS=[
'accelerate',
'albumentations',
'diffusers',
'eventlet',
'flask_cors',
'flask_socketio',
'flaskwebgui',
'getpass_asterisk',
'imageio-ffmpeg',
'pyreadline3',
'realesrgan',
'send2trash',
'streamlit',
'taming-transformers-rom1504',
'test-tube',
'torch-fidelity',
'torch',
'torchvision',
'transformers',
'picklescan',
'clip',
'clipseg',
'gfpgan',
'k-diffusion',
'pypatchmatch',
]
setup(
name='InvokeAI',
version=VERSION,
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
author='The InvokeAI Project',
author_email='lincoln.stein@gmail.com',
url=HOMEPAGE,
license='MIT',
packages=find_packages(exclude=['tests.*']),
install_requires=REQUIREMENTS,
dependency_links=['https://download.pytorch.org/whl/torch_stable.html'],
python_requires='>=3.9, <3.11',
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',
],
scripts = ['scripts/invoke.py','scripts/configure_invokeai.py', 'scripts/sd-metadata.py',
'scripts/images2prompt.py','scripts/merge_embeddings.py',
'scripts/textual_inversion_fe.py','scripts/textual_inversion.py'
],
data_files=FRONTEND_FILES,
include_package_data=True,
)