fix broken scripts

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
This commit is contained in:
Lincoln Stein
2023-03-03 20:19:37 -05:00
parent b3dccfaeb6
commit bdc7b8b75a
15 changed files with 56 additions and 697 deletions

View File

@ -3,7 +3,7 @@
import os
from argparse import Namespace
from ...globals import Globals
from ...backend import Globals
from ..services.generate_initializer import get_generate
from ..services.graph import GraphExecutionState
from ..services.image_storage import DiskImageStorage

View File

@ -13,7 +13,7 @@ from fastapi_events.handlers.local import local_handler
from fastapi_events.middleware import EventHandlerASGIMiddleware
from pydantic.schema import schema
from ..args import Args
from ..backend import Args
from .api.dependencies import ApiDependencies
from .api.routers import images, sessions
from .api.sockets import SocketIO

View File

@ -18,7 +18,7 @@ from typing import (
from pydantic import BaseModel
from pydantic.fields import Field
from ..args import Args
from ..backend import Args
from .invocations import *
from .invocations.baseinvocation import BaseInvocation
from .invocations.image import ImageField

View File

@ -6,7 +6,7 @@ from argparse import Namespace
import invokeai.version
from invokeai.backend import Generate, ModelManager
from ...globals import Globals
from ...backend import Globals
# TODO: most of this code should be split into individual services as the Generate.py code is deprecated

View File

@ -3,3 +3,5 @@ Initialization file for invokeai.backend
"""
from .generate import Generate
from .model_management import ModelManager
from .args import Args
from .globals import Globals

View File

@ -0,0 +1,30 @@
'''
This is a modularized version of the sd-metadata.py script,
which retrieves and prints the metadata from a series of generated png files.
'''
import sys
import json
from invokeai.backend.image_util import retrieve_metadata
def print_metadata():
if len(sys.argv) < 2:
print("Usage: file2prompt.py <file1.png> <file2.png> <file3.png>...")
print("This script opens up the indicated invoke.py-generated PNG file(s) and prints out their metadata.")
exit(-1)
filenames = sys.argv[1:]
for f in filenames:
try:
metadata = retrieve_metadata(f)
print(f'{f}:\n',json.dumps(metadata['sd-metadata'], indent=4))
except FileNotFoundError:
sys.stderr.write(f'{f} not found\n')
continue
except PermissionError:
sys.stderr.write(f'{f} could not be opened due to inadequate permissions\n')
continue
if __name__== '__main__':
print_metadata()