home · contact · privacy
Change -D to read from stdin rather than argument string.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 22 Aug 2024 05:23:42 +0000 (07:23 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 22 Aug 2024 05:23:42 +0000 (07:23 +0200)
stable.py

index 634add345326e22539b8e8867646bd9e1b68551c..665b3a95c600e97177553be519474100586f2db3 100755 (executable)
--- a/stable.py
+++ b/stable.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-from sys import argv, exit as sys_exit
+from sys import argv, exit as sys_exit, stdin
 from os.path import dirname, basename, splitext, join as path_join, exists
 from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
 from random import randint
@@ -42,8 +42,8 @@ def parse_args():
     parser.add_argument('-S', '--scheduler', default=DEFAULT_SCHEDULER,
                         help='name of denoising scheduler; --list-schedulers '
                         'prints available choices for chosen model')
-    parser.add_argument('-D', '--defaults_from_params_string',
-                        help='string to parse for image generation options '
+    parser.add_argument('-D', '--defaults_from_stdin', action='store_true',
+                        help='parse stdin for image generation options '
                         '(e.g. from image file EXIF comment)')
     parser.add_argument('-P', '--model_path_prefix',
                         help='optional directory path prefix to MODEL for '
@@ -54,9 +54,9 @@ def parse_args():
                         help='list options for -S available with chosen model')
     parsed_args = parser.parse_args()
     parser.set_defaults(model_path_prefix='')
-    if parsed_args.defaults_from_params_string:
-        first_split = parsed_args.\
-                defaults_from_params_string.split('; PROMPT: ', maxsplit=1)
+    if parsed_args.defaults_from_stdin:
+        defaults_string = stdin.read()
+        first_split = defaults_string.split('; PROMPT: ', maxsplit=1)
         if 2 == len(first_split):
             parser.set_defaults(prompt=first_split[1])
         for section in first_split[0].split('; '):