Skip to content

Commit c4e6d4b

Browse files
authored
fix broken scripts (#2857)
This PR fixes the following scripts: 1) Scripts that can be executed within the repo's scripts directory. Note that these are for development testing and are not intended to be exposed to the user. ``` configure_invokeai.py - configuration dream.py - the legacy CLI images2prompt.py - legacy "dream prompt" retriever invoke-new.py - new nodes-based CLI invoke.py - the legacy CLI under another name make_models_markdown_table.py - a utility used during the release/doc process pypi_helper.py - another utility used during the release process sd-metadata.py - retrieve JSON-formatted metadata from a PNG file ``` 2) Scripts that are installed by pip install. They get placed into the venv's PATH and are intended to be the official entry points: ``` invokeai-node-cli - new nodes-based CLI invokeai-node-web - new nodes-based web server invokeai - legacy CLI invokeai-configure - install time configuration script invokeai-merge - model merging script invokeai-ti - textual inversion script invokeai-model-install - model installer invokeai-update - update script invokeai-metadata" - retrieve JSON-formatted metadata from PNG files ```
2 parents 55d2094 + eab32bc commit c4e6d4b

File tree

15 files changed

+56
-697
lines changed

15 files changed

+56
-697
lines changed

invokeai/app/api/dependencies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import os
44
from argparse import Namespace
55

6-
from ...globals import Globals
6+
from ...backend import Globals
77
from ..services.generate_initializer import get_generate
88
from ..services.graph import GraphExecutionState
99
from ..services.image_storage import DiskImageStorage

invokeai/app/api_app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from fastapi_events.middleware import EventHandlerASGIMiddleware
1414
from pydantic.schema import schema
1515

16-
from ..args import Args
16+
from ..backend import Args
1717
from .api.dependencies import ApiDependencies
1818
from .api.routers import images, sessions
1919
from .api.sockets import SocketIO

invokeai/app/cli_app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from pydantic import BaseModel
1919
from pydantic.fields import Field
2020

21-
from ..args import Args
21+
from ..backend import Args
2222
from .invocations import *
2323
from .invocations.baseinvocation import BaseInvocation
2424
from .invocations.image import ImageField

invokeai/app/services/generate_initializer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import invokeai.version
77
from invokeai.backend import Generate, ModelManager
88

9-
from ...globals import Globals
9+
from ...backend import Globals
1010

1111

1212
# TODO: most of this code should be split into individual services as the Generate.py code is deprecated

invokeai/backend/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
"""
44
from .generate import Generate
55
from .model_management import ModelManager
6+
from .args import Args
7+
from .globals import Globals
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
'''
2+
This is a modularized version of the sd-metadata.py script,
3+
which retrieves and prints the metadata from a series of generated png files.
4+
'''
5+
import sys
6+
import json
7+
from invokeai.backend.image_util import retrieve_metadata
8+
9+
10+
def print_metadata():
11+
if len(sys.argv) < 2:
12+
print("Usage: file2prompt.py <file1.png> <file2.png> <file3.png>...")
13+
print("This script opens up the indicated invoke.py-generated PNG file(s) and prints out their metadata.")
14+
exit(-1)
15+
16+
filenames = sys.argv[1:]
17+
for f in filenames:
18+
try:
19+
metadata = retrieve_metadata(f)
20+
print(f'{f}:\n',json.dumps(metadata['sd-metadata'], indent=4))
21+
except FileNotFoundError:
22+
sys.stderr.write(f'{f} not found\n')
23+
continue
24+
except PermissionError:
25+
sys.stderr.write(f'{f} could not be opened due to inadequate permissions\n')
26+
continue
27+
28+
if __name__== '__main__':
29+
print_metadata()
30+

pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ dependencies = [
104104
[project.scripts]
105105

106106
# legacy entrypoints; provided for backwards compatibility
107-
"invoke.py" = "invokeai.frontend.CLI:command_line_interface"
107+
"invoke.py" = "invokeai.frontend.CLI:invokeai_command_line_interface"
108108
"configure_invokeai.py" = "invokeai.frontend.install:invokeai_configure"
109109
"textual_inversion.py" = "invokeai.frontend.training:invokeai_textual_inversion"
110110

@@ -115,6 +115,9 @@ dependencies = [
115115
"invokeai-ti" = "invokeai.frontend.training:invokeai_textual_inversion"
116116
"invokeai-model-install" = "invokeai.frontend.install:invokeai_model_install"
117117
"invokeai-update" = "invokeai.frontend.config:invokeai_update"
118+
"invokeai-metadata" = "invokeai.frontend.CLI.sd_metadata:print_metadata"
119+
"invokeai-node-cli" = "invokeai.app.cli_app:invoke_cli"
120+
"invokeai-node-web" = "invokeai.app.api_app:invoke_api"
118121

119122
[project.urls]
120123
"Homepage" = "https://invoke-ai.github.io/InvokeAI/"

scripts/configure_invokeai.py

100644100755
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein)
33

44
import warnings
5-
from ldm.invoke.config import invokeai_configure
5+
from invokeai.frontend.install import invokeai_configure as configure
66

77
if __name__ == '__main__':
88
warnings.warn("configure_invokeai.py is deprecated, running 'invokeai-configure'...", DeprecationWarning)
9-
invokeai_configure.main()
9+
configure()

scripts/dream.py

100644100755
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
#!/usr/bin/env python3
1+
#!/usr/bin/env python
22
# Copyright (c) 2022 Lincoln D. Stein (https://github.com/lstein)
33

44
import warnings
5-
import ldm.invoke.CLI
5+
from invokeai.frontend.CLI import invokeai_command_line_interface as main
66
warnings.warn("dream.py is being deprecated, please run invoke.py for the "
77
"new UI/API or legacy_api.py for the old API",
88
DeprecationWarning)
9-
ldm.invoke.CLI.main()
9+
main()
1010

scripts/images2prompt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/usr/bin/env python3
1+
#!/usr/bin/env python
22
'''This script reads the "Invoke" Stable Diffusion prompt embedded in files generated by invoke.py'''
33

44
import sys

0 commit comments

Comments
 (0)