Procházet zdrojové kódy

add Usage Syntax to Prompts from file or textbox

w-e-w před 1 rokem
rodič
revize
f8395750f4
1 změnil soubory, kde provedl 29 přidání a 1 odebrání
  1. 29 1
      scripts/prompts_from_file.py

+ 29 - 1
scripts/prompts_from_file.py

@@ -11,24 +11,29 @@ from modules.shared import state
 
 
 
 
 def process_model_tag(tag):
 def process_model_tag(tag):
+    """\"mode-name\""""
     info = sd_models.get_closet_checkpoint_match(tag)
     info = sd_models.get_closet_checkpoint_match(tag)
     assert info is not None, f'Unknown checkpoint: {tag}'
     assert info is not None, f'Unknown checkpoint: {tag}'
     return info.name
     return info.name
 
 
 
 
 def process_string_tag(tag):
 def process_string_tag(tag):
+    """\"str\""""
     return tag
     return tag
 
 
 
 
 def process_int_tag(tag):
 def process_int_tag(tag):
+    """int-number"""
     return int(tag)
     return int(tag)
 
 
 
 
 def process_float_tag(tag):
 def process_float_tag(tag):
+    """float-number"""
     return float(tag)
     return float(tag)
 
 
 
 
 def process_boolean_tag(tag):
 def process_boolean_tag(tag):
+    """true|false"""
     return True if (tag == "true") else False
     return True if (tag == "true") else False
 
 
 
 
@@ -60,6 +65,27 @@ prompt_tags = {
 }
 }
 
 
 
 
+def doc_md():
+    md = '<details><summary>Usage Syntax</summary><p>\n\n'
+    for key, func in prompt_tags.items():
+        md += f'`--{key}` `{func.__doc__}`\n'
+
+    md += '''
+<details><summary>Example</summary><p>
+
+```shell
+--prompt "photo of sunset"
+--prompt "photo of sunset" --negative_prompt "orange, pink, red, sea, water, lake" --width 1024 --height 768 --sampler_name "DPM++ 2M Karras" --steps 10 --batch_size 2 --cfg_scale 3 --seed 9
+--prompt "photo of winter mountains" --steps 7 --sampler_name "DDIM"
+--prompt "photo of winter mountains" --width 1024
+```
+</p></details>
+'''
+
+    md += '</p></details>'
+    return md
+
+
 def cmdargs(line):
 def cmdargs(line):
     args = shlex.split(line)
     args = shlex.split(line)
     pos = 0
     pos = 0
@@ -84,7 +110,6 @@ def cmdargs(line):
             res[tag] = prompt
             res[tag] = prompt
             continue
             continue
 
 
-
         func = prompt_tags.get(tag, None)
         func = prompt_tags.get(tag, None)
         assert func, f'unknown commandline option: {arg}'
         assert func, f'unknown commandline option: {arg}'
 
 
@@ -125,6 +150,9 @@ class Script(scripts.Script):
         # We don't shrink back to 1, because that causes the control to ignore [enter], and it may
         # We don't shrink back to 1, because that causes the control to ignore [enter], and it may
         # be unclear to the user that shift-enter is needed.
         # be unclear to the user that shift-enter is needed.
         prompt_txt.change(lambda tb: gr.update(lines=7) if ("\n" in tb) else gr.update(lines=2), inputs=[prompt_txt], outputs=[prompt_txt], show_progress=False)
         prompt_txt.change(lambda tb: gr.update(lines=7) if ("\n" in tb) else gr.update(lines=2), inputs=[prompt_txt], outputs=[prompt_txt], show_progress=False)
+
+        gr.Markdown(doc_md())
+
         return [checkbox_iterate, checkbox_iterate_batch, prompt_position, prompt_txt]
         return [checkbox_iterate, checkbox_iterate_batch, prompt_position, prompt_txt]
 
 
     def run(self, p, checkbox_iterate, checkbox_iterate_batch, prompt_position, prompt_txt: str):
     def run(self, p, checkbox_iterate, checkbox_iterate_batch, prompt_position, prompt_txt: str):