description:You think somethings is broken in the UI
description:You think something is broken in the UI
title:"[Bug]:"
labels:["bug-report"]
body:
-type:markdown
attributes:
value:|
> The title of the bug report should be short and descriptive.
> Use relevant keywords for searchability.
> Do not leave it blank, but also do not put an entire error log in it.
-type:checkboxes
attributes:
label:Is there an existing issue for this?
description:Please search to see if an issue already exists for the bug you encountered, and that it hasn't been fixed in a recent build/commit.
label:Checklist
description:|
Please perform basic debugging to see if extensions or configuration is the cause of the issue.
Basic debug procedure
1. Disable all third-party extensions - check if extension is the cause
2. Update extensions and webui - sometimes things just need to be updated
3. Backup and remove your config.json and ui-config.json - check if the issue is caused by bad configuration
4. Delete venv with third-party extensions disabled - sometimes extensions might cause wrong libraries to be installed
5. Try a fresh installation webui in a different directory - see if a clean installation solves the issue
Before making a issue report please, check that the issue hasn't been reported recently.
options:
-label:I have searched the existing issues and checked the recent builds/commits
required:true
-label:The issue exists after disabling all extensions
-label:The issue exists on a clean installation of webui
-label:The issue is caused by an extension, but I believe it is caused by a bug in the webui
-label:The issue exists in the current version of the webui
-label:The issue has not been reported before recently
-label:The issue has been reported before but has not been fixed yet
-type:markdown
attributes:
value:|
*Please fill this form with as much information as possible, don't forget to fill "What OS..." and "What browsers" and *provide screenshots if possible**
> Please fill this form with as much information as possible. Don't forget to "Upload Sysinfo" and "What browsers" and provide screenshots if possible
-type:textarea
id:what-did
attributes:
label:What happened?
description:Tell us what happened in a very clear and simple way
placeholder:|
txt2img is not working as intended.
validations:
required:true
-type:textarea
...
...
@@ -27,9 +47,9 @@ body:
attributes:
label:Steps to reproduce the problem
description:Please provide us with precise step by step instructions on how to reproduce the bug
value:|
1. Go to ....
2. Press ....
placeholder:|
1. Go to ...
2. Press ...
3. ...
validations:
required:true
...
...
@@ -38,13 +58,8 @@ body:
attributes:
label:What should have happened?
description:Tell us what you think the normal behavior should be
validations:
required:true
-type:textarea
id:sysinfo
attributes:
label:Sysinfo
description:System info file, generated by WebUI. You can generate it in settings, on the Sysinfo page. Drag the file into the field to upload it. If you submit your report without including the sysinfo file, the report will be closed. If needed, review the report to make sure it includes no personal information you don't want to share. If you can't start WebUI, you can use --dump-sysinfo commandline argument to generate the file.
placeholder:|
WebUI should ...
validations:
required:true
-type:dropdown
...
...
@@ -58,12 +73,25 @@ body:
-Brave
-Apple Safari
-Microsoft Edge
-Android
-iOS
-Other
-type:textarea
id:sysinfo
attributes:
label:Sysinfo
description:System info file, generated by WebUI. You can generate it in settings, on the Sysinfo page. Drag the file into the field to upload it. If you submit your report without including the sysinfo file, the report will be closed. If needed, review the report to make sure it includes no personal information you don't want to share. If you can't start WebUI, you can use --dump-sysinfo commandline argument to generate the file.
placeholder:|
1. Go to WebUI Settings -> Sysinfo -> Download system info.
If WebUI fails to launch, use --dump-sysinfo commandline argument to generate the file
2. Upload the Sysinfo as a attached file, Do NOT paste it in as plain text.
validations:
required:true
-type:textarea
id:logs
attributes:
label:Console logs
description:Please provide **full** cmd/terminal logs from the moment you started UI to the end of it, after your bug happened. If it's very long, provide a link to pastebin or similar service.
description:Please provide **full** cmd/terminal logs from the moment you started UI to the end of it, after the bug occured. If it's very long, provide a link to pastebin or similar service.
render:Shell
validations:
required:true
...
...
@@ -71,4 +99,7 @@ body:
id:misc
attributes:
label:Additional information
description:Please provide us with any relevant additional info or context.
description:|
Please provide us with any relevant additional info or context.
@@ -88,7 +88,7 @@ A browser interface based on Gradio library for Stable Diffusion.
-[Alt-Diffusion](https://arxiv.org/abs/2211.06679) support - see [wiki](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#alt-diffusion) for instructions
- Now without any bad letters!
- Load checkpoints in safetensors format
- Eased resolution restriction: generated image's dimension must be a multiple of 8 rather than 64
- Eased resolution restriction: generated image's dimensions must be a multiple of 8 rather than 64
- Now with a license!
- Reorder elements in the UI from settings screen
...
...
@@ -103,7 +103,7 @@ Alternatively, use online services (like Google Colab):
-[List of Online Services](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Online-Services)
### Installation on Windows 10/11 with NVidia-GPUs using release package
1. Download `sd.webui.zip` from [v1.0.0-pre](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre) and extract it's contents.
1. Download `sd.webui.zip` from [v1.0.0-pre](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre) and extract its contents.
2. Run `update.bat`.
3. Run `run.bat`.
> For more details see [Install-and-Run-on-NVidia-GPUs](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs)
@@ -284,8 +283,8 @@ class EmbeddingItem(BaseModel):
vectors:int=Field(title="Vectors",description="The number of vectors in the embedding")
classEmbeddingsResponse(BaseModel):
loaded:Dict[str,EmbeddingItem]=Field(title="Loaded",description="Embeddings loaded for the current model")
skipped:Dict[str,EmbeddingItem]=Field(title="Skipped",description="Embeddings skipped for the current model (likely due to architecture incompatibility)")
loaded:dict[str,EmbeddingItem]=Field(title="Loaded",description="Embeddings loaded for the current model")
skipped:dict[str,EmbeddingItem]=Field(title="Skipped",description="Embeddings skipped for the current model (likely due to architecture incompatibility)")
@@ -90,7 +90,7 @@ parser.add_argument("--autolaunch", action='store_true', help="open the webui UR
parser.add_argument("--theme",type=str,help="launches the UI with light or dark theme",default=None)
parser.add_argument("--use-textbox-seed",action='store_true',help="use textbox for seeds in UI (no up/down, but possible to input long seeds)",default=False)
parser.add_argument("--disable-console-progressbars",action='store_true',help="do not output progressbars to console",default=False)
parser.add_argument("--enable-console-prompts",action='store_true',help="print prompts to console when generating with txt2img and img2img",default=False)
parser.add_argument("--enable-console-prompts",action='store_true',help="does not do anything",default=False)# Legacy compatibility, use as default value shared.opts.enable_console_prompts
parser.add_argument('--vae-path',type=str,help='Checkpoint to use as VAE; setting this argument disables all settings related to VAE',default=None)
parser.add_argument("--disable-safe-unpickle",action='store_true',help="disable checking pytorch models for malicious code",default=False)
parser.add_argument("--api",action='store_true',help="use api=True to launch the API together with the webui (use --nowebui instead for only the API)")
parser.add_argument("--disable-tls-verify",action="store_false",help="When passed, enables the use of self-signed certificates.",default=None)
parser.add_argument("--server-name",type=str,help="Sets hostname of server",default=None)
parser.add_argument("--gradio-queue",action='store_true',help="does not do anything",default=True)
parser.add_argument("--no-gradio-queue",action='store_true',help="Disables gradio queue; causes the webpage to use http requests instead of websockets; was the defaul in earlier versions")
parser.add_argument("--no-gradio-queue",action='store_true',help="Disables gradio queue; causes the webpage to use http requests instead of websockets; was the default in earlier versions")
parser.add_argument("--skip-version-check",action='store_true',help="Do not check versions of torch and xformers")
parser.add_argument("--no-hashing",action='store_true',help="disable sha256 hashing of checkpoints to help loading performance",default=False)
parser.add_argument("--no-download-sd-model",action='store_true',help="don't download SD1.5 model even if no model is found in --ckpt-dir",default=False)
parser.add_argument('--subpath',type=str,help='customize the subpath for gradio, use with reverse proxy')
parser.add_argument('--add-stop-route',action='store_true',help='add /_stop route to stop server')
parser.add_argument('--add-stop-route',action='store_true',help='does not do anything')
parser.add_argument('--api-server-stop',action='store_true',help='enable server stop/restart/kill via api')
parser.add_argument('--timeout-keep-alive',type=int,default=30,help='set timeout_keep_alive for uvicorn')
parser.add_argument("--disable-all-extensions",action='store_true',help="prevent all extensions from running regardless of any other settings",default=False)
parser.add_argument("--disable-extra-extensions",action='store_true',help=" prevent all extensions except built-in from running regardless of any other settings",default=False)
parser.add_argument("--disable-extra-extensions",action='store_true',help="prevent all extensions except built-in from running regardless of any other settings",default=False)
parser.add_argument("--skip-load-model-at-start",action='store_true',help="if load a model at web start, only take effect when --nowebui",)
random_seed=ToolButton(ui.random_symbol,elem_id=self.elem_id("random_seed"),tooltip="Set seed to -1, which will cause a new random number to be used every time")
reuse_seed=ToolButton(ui.reuse_symbol,elem_id=self.elem_id("reuse_seed"),tooltip="Reuse seed from last generation, mostly useful if it was randomized")
@@ -2,10 +2,9 @@ from __future__ import annotations
importre
fromcollectionsimportnamedtuple
fromtypingimportList
importlark
# a prompt like this: "fantasy landscape with a [mountain:lake:0.25] and [an oak:a christmas tree:0.75][ in foreground::0.6][ in background:0.25] [shoddy:masterful:0.5]"
# a prompt like this: "fantasy landscape with a [mountain:lake:0.25] and [an oak:a christmas tree:0.75][ in foreground::0.6][: in background:0.25] [shoddy:masterful:0.5]"
# will be represented with prompt_schedule like this (assuming steps=100):
# [25, 'fantasy landscape with a mountain and an oak in foreground shoddy']
# [50, 'fantasy landscape with a lake and an oak in foreground in background shoddy']
"save_images_add_number":OptionInfo(True,"Add number to filename when saving",component_args=hide_dirs),
"save_images_replace_action":OptionInfo("Replace","Saving the image to an existing file",gr.Radio,{"choices":["Replace","Add number suffix"],**hide_dirs}),
"grid_save":OptionInfo(True,"Always save all generated image grids"),
"grid_format":OptionInfo('png','File format for grids'),
"grid_extended_filename":OptionInfo(False,"Add extended info (seed, prompt) to filename when saving grid"),
"clean_temp_dir_at_start":OptionInfo(False,"Cleanup non-default temporary directory when starting webui"),
"save_incomplete_images":OptionInfo(False,"Save incomplete images").info("save images that has been interrupted in mid-generation; even if not saved, they will still show up in webui output."),
"notification_audio":OptionInfo(True,"Play notification sound after image generation").info("notification.mp3 should be present in the root directory").needs_reload_ui(),
}))
options_templates.update(options_section(('saving-paths',"Paths for saving"),{
"list_hidden_files":OptionInfo(True,"Load models/files in hidden directories").info("directory is hidden if its name starts with \".\""),
"disable_mmap_load_safetensors":OptionInfo(False,"Disable memmapping for loading .safetensors files.").info("fixes very slow loading speed in some cases"),
"hide_ldm_prints":OptionInfo(True,"Prevent Stability-AI's ldm/sgm modules from printing noise to console."),
"dump_stacks_on_signal":OptionInfo(False,"Print stack traces before exiting the program with ctrl+c."),
"sd_checkpoints_limit":OptionInfo(1,"Maximum number of checkpoints loaded at the same time",gr.Slider,{"minimum":1,"maximum":10,"step":1}),
"sd_checkpoints_keep_in_cpu":OptionInfo(True,"Only keep one model on device").info("will keep models other than the currently used one in RAM rather than VRAM"),
"sd_checkpoint_cache":OptionInfo(0,"Checkpoints to cache in RAM",gr.Slider,{"minimum":0,"maximum":10,"step":1}).info("obsolete; set to 0 and use the two settings above instead"),
"extra_networks_card_height":OptionInfo(0,"Card height for Extra Networks").info("in pixels"),
"extra_networks_card_text_scale":OptionInfo(1.0,"Card text scale",gr.Slider,{"minimum":0.0,"maximum":2.0,"step":0.01}).info("1 = original size"),
"extra_networks_card_show_desc":OptionInfo(True,"Show description on card"),
"extra_networks_card_order_field":OptionInfo("Name","Default order field for Extra Networks cards",gr.Dropdown,{"choices":['Name','Date Created','Date Modified']}).needs_reload_ui(),
"extra_networks_card_order":OptionInfo("Ascending","Default order for Extra Networks cards",gr.Dropdown,{"choices":['Ascending','Descending']}).needs_reload_ui(),
"extra_networks_add_text_separator":OptionInfo(" ","Extra networks separator").info("extra text to add before <...> when adding extra network to prompt"),
"dimensions_and_batch_together":OptionInfo(True,"Show Width/Height and Batch sliders in same row").needs_reload_ui(),
"keyedit_precision_attention":OptionInfo(0.1,"Ctrl+up/down precision when editing (attention:1.1)",gr.Slider,{"minimum":0.01,"maximum":0.2,"step":0.001}),
"keyedit_precision_extra":OptionInfo(0.05,"Ctrl+up/down precision when editing <extra networks:0.9>",gr.Slider,{"minimum":0.01,"maximum":0.2,"step":0.001}),
"keyedit_delimiters":OptionInfo(".,\\/!?%^*;:{}=`~()","Ctrl+up/down word delimiters"),
"keyedit_delimiters":OptionInfo(r".,\/!?%^*;:{}=`~() ","Ctrl+up/down word delimiters"),
"quicksettings_list":OptionInfo(["sd_model_checkpoint"],"Quicksettings list",ui_components.DropdownMulti,lambda:{"choices":list(shared.opts.data_labels.keys())}).js("info","settingsHintsShowQuicksettings").info("setting entries that appear at the top of page rather than in settings tab").needs_reload_ui(),
"sd_checkpoint_dropdown_use_short":OptionInfo(False,"Checkpoint dropdown: use filenames without paths").info("models in subdirectories like photo/sd15.ckpt will be listed as just sd15.ckpt"),
"hires_fix_show_sampler":OptionInfo(False,"Hires fix: show hires checkpoint and sampler selection").needs_reload_ui(),
"hires_fix_show_prompts":OptionInfo(False,"Hires fix: show hires prompt and negative prompt").needs_reload_ui(),
"compact_prompt_box":OptionInfo(False,"Compact prompt layout").info("puts prompt and negative prompt inside the Generate tab, leaving more vertical space for the image on the right").needs_reload_ui(),
's_tmax':OptionInfo(0.0,"sigma tmax",gr.Slider,{"minimum":0.0,"maximum":999.0,"step":0.01},infotext='Sigma tmax').info("0 = inf; end value of the sigma range; only applies to Euler, Heun, and DPM2"),
's_noise':OptionInfo(1.0,"sigma noise",gr.Slider,{"minimum":0.0,"maximum":1.1,"step":0.001},infotext='Sigma noise').info('amount of additional noise to counteract loss of detail during sampling'),
'k_sched_type':OptionInfo("Automatic","Scheduler type",gr.Dropdown,{"choices":["Automatic","karras","exponential","polyexponential"]},infotext='Schedule type').info("lets you override the noise schedule for k-diffusion samplers; choosing Automatic disables the three parameters below"),
'sigma_min':OptionInfo(0.0,"sigma min",gr.Number,infotext='Schedule max sigma').info("0 = default (~0.03); minimum noise strength for k-diffusion noise scheduler"),
'sigma_max':OptionInfo(0.0,"sigma max",gr.Number,infotext='Schedule min sigma').info("0 = default (~14.6); maximum noise strength for k-diffusion noise scheduler"),
'sigma_min':OptionInfo(0.0,"sigma min",gr.Number,infotext='Schedule min sigma').info("0 = default (~0.03); minimum noise strength for k-diffusion noise scheduler"),
'sigma_max':OptionInfo(0.0,"sigma max",gr.Number,infotext='Schedule max sigma').info("0 = default (~14.6); maximum noise strength for k-diffusion noise scheduler"),
'rho':OptionInfo(0.0,"rho",gr.Number,infotext='Schedule rho').info("0 = default (7 for karras, 1 for polyexponential); higher values result in a steeper noise schedule (decreases faster)"),
'eta_noise_seed_delta':OptionInfo(0,"Eta noise seed delta",gr.Number,{"precision":0},infotext='ENSD').info("ENSD; does not improve anything, just produces different results for ancestral samplers - only useful for reproducing images"),
"""Creates a top row UI with prompts, generate button, styles, extra little buttons for things, and enables some functionality related to their operation"""
self.prompt=gr.Textbox(label="Prompt",elem_id=f"{id_part}_prompt",show_label=False,lines=3,placeholder="Prompt (press Ctrl+Enter or Alt+Enter to generate)",elem_classes=["prompt"])
self.negative_prompt=gr.Textbox(label="Negative prompt",elem_id=f"{id_part}_neg_prompt",show_label=False,lines=3,placeholder="Negative prompt (press Ctrl+Enter or Alt+Enter to generate)",elem_classes=["prompt"])
init_img=gr.Image(label="Image for img2img",elem_id="img2img_image",show_label=False,source="upload",interactive=True,type="pil",tool="editor",image_mode="RGBA",height=opts.img2img_editor_height)
sketch=gr.Image(label="Image for img2img",elem_id="img2img_sketch",show_label=False,source="upload",interactive=True,type="pil",tool="color-sketch",image_mode="RGB",height=opts.img2img_editor_height,brush_color=opts.img2img_sketch_default_brush_color)
init_img_with_mask=gr.Image(label="Image for inpainting with mask",show_label=False,elem_id="img2maskimg",source="upload",interactive=True,type="pil",tool="sketch",image_mode="RGBA",height=opts.img2img_editor_height,brush_color=opts.img2img_inpaint_mask_brush_color)
img2img_batch_inpaint_mask_dir=gr.Textbox(label="Inpaint batch mask directory (required for inpaint batch processing only)",**shared.hide_dirs,elem_id="img2img_batch_inpaint_mask_dir")
withgr.Accordion("PNG info",open=False):
img2img_batch_use_png_info=gr.Checkbox(label="Append png info to prompts",**shared.hide_dirs,elem_id="img2img_batch_use_png_info")
img2img_batch_png_info_dir=gr.Textbox(label="PNG info directory",**shared.hide_dirs,placeholder="Leave empty to use input directory",elem_id="img2img_batch_png_info_dir")
img2img_batch_png_info_props=gr.CheckboxGroup(["Prompt","Negative prompt","Seed","CFG scale","Sampler","Steps"],label="Parameters to take from png info",info="Prompts from png info will be appended to prompts set in ui.")
init_img=gr.Image(label="Image for img2img",elem_id="img2img_image",show_label=False,source="upload",interactive=True,type="pil",tool="editor",image_mode="RGBA",height=opts.img2img_editor_height)
sketch=gr.Image(label="Image for img2img",elem_id="img2img_sketch",show_label=False,source="upload",interactive=True,type="pil",tool="color-sketch",image_mode="RGB",height=opts.img2img_editor_height,brush_color=opts.img2img_sketch_default_brush_color)
init_img_with_mask=gr.Image(label="Image for inpainting with mask",show_label=False,elem_id="img2maskimg",source="upload",interactive=True,type="pil",tool="sketch",image_mode="RGBA",height=opts.img2img_editor_height,brush_color=opts.img2img_inpaint_mask_brush_color)
img2img_batch_inpaint_mask_dir=gr.Textbox(label="Inpaint batch mask directory (required for inpaint batch processing only)",**shared.hide_dirs,elem_id="img2img_batch_inpaint_mask_dir")
withgr.Accordion("PNG info",open=False):
img2img_batch_use_png_info=gr.Checkbox(label="Append png info to prompts",**shared.hide_dirs,elem_id="img2img_batch_use_png_info")
img2img_batch_png_info_dir=gr.Textbox(label="PNG info directory",**shared.hide_dirs,placeholder="Leave empty to use input directory",elem_id="img2img_batch_png_info_dir")
img2img_batch_png_info_props=gr.CheckboxGroup(["Prompt","Negative prompt","Seed","CFG scale","Sampler","Steps","Model hash"],label="Parameters to take from png info",info="Prompts from png info will be appended to prompts set in ui.")
ifisinstance(x,gr.Textbox)andfield=='value':# due to an undesirable behavior of gr.Textbox, if you give it an int value instead of str, everything dies
ifisinstance(obj,gr.Textbox)andfield=='value':# due to an undesirable behavior of gr.Textbox, if you give it an int value instead of str, everything dies
self.selection=gr.Dropdown(label="Styles",elem_id=f"{tabname}_styles_edit_select",choices=list(shared.prompt_styles.styles),value=[],allow_custom_value=True,info="Styles allow you to add custom text to prompt. Use the {prompt} token in style text, and it will be replaced with user's prompt when applying style. Otherwise, style's text will be added to the end of the prompt.")
self.materialize=ui_components.ToolButton(value=styles_materialize_symbol,elem_id=f"{tabname}_style_apply",tooltip="Apply all selected styles from the style selction dropdown in main UI to the prompt.")
self.materialize=ui_components.ToolButton(value=styles_materialize_symbol,elem_id=f"{tabname}_style_apply_dialog",tooltip="Apply all selected styles from the style selction dropdown in main UI to the prompt.")
self.copy=ui_components.ToolButton(value=styles_copy_symbol,elem_id=f"{tabname}_style_copy",tooltip="Copy main UI prompt to style.")
reload_script_bodies=gr.Button(value='Reload custom script bodies (No ui updates, No restart)',variant='secondary',elem_id="settings_reload_script_bodies")
withgr.Row():
unload_sd_model=gr.Button(value='Unload SD checkpoint to free VRAM',elem_id="sett_unload_sd_model")
reload_sd_model=gr.Button(value='Reload the last SD checkpoint back into VRAM',elem_id="sett_reload_sd_model")
unload_sd_model=gr.Button(value='Unload SD checkpoint to RAM',elem_id="sett_unload_sd_model")
reload_sd_model=gr.Button(value='Load SD checkpoint to VRAM from RAM',elem_id="sett_reload_sd_model")
withgr.Row():
calculate_all_checkpoint_hash=gr.Button(value='Calculate hash for all checkpoint',elem_id="calculate_all_checkpoint_hash")
calculate_all_checkpoint_hash_threads=gr.Number(value=1,label="Number of parallel calculations",elem_id="calculate_all_checkpoint_hash_threads",precision=0,minimum=1)
"""Creates a top row UI with prompts, generate button, styles, extra little buttons for things, and enables some functionality related to their operation"""
self.prompt=gr.Textbox(label="Prompt",elem_id=f"{self.id_part}_prompt",show_label=False,lines=3,placeholder="Prompt (press Ctrl+Enter or Alt+Enter to generate)",elem_classes=["prompt"])
self.negative_prompt=gr.Textbox(label="Negative prompt",elem_id=f"{self.id_part}_neg_prompt",show_label=False,lines=3,placeholder="Negative prompt (press Ctrl+Enter or Alt+Enter to generate)",elem_classes=["prompt"])
self.paste=ToolButton(value=paste_symbol,elem_id="paste",tooltip="Read generation parameters from prompt or last generation if prompt is empty into user interface.")
self.apply_styles=ToolButton(value=ui_prompt_styles.styles_materialize_symbol,elem_id=f"{self.id_part}_style_apply",tooltip="Apply all selected styles to prompts.")
ifself.is_img2img:
self.button_interrogate=ToolButton('📎',tooltip='Interrogate CLIP - use CLIP neural network to create a text describing the image, and put it into the prompt field',elem_id="interrogate")
self.button_deepbooru=ToolButton('📦',tooltip='Interrogate DeepBooru - use DeepBooru neural network to create a text describing the image, and put it into the prompt field',elem_id="deepbooru")
# Navi 3 needs at least 5.5 which is only on the nightly chain, previous versions are no longer online (torch==2.1.0.dev-20230614+rocm5.5 torchvision==0.16.0.dev-20230614+rocm5.5 torchaudio==2.1.0.dev-20230614+rocm5.5)
# so switch to nightly rocm5.6 without explicit versions this time