2022-10-24 03:31:41 +03:00
# This file is part of sygil-webui (https://github.com/Sygil-Dev/sygil-webui/).
2022-09-26 16:02:48 +03:00
2022-10-24 03:17:50 +03:00
# Copyright 2022 Sygil-Dev team.
2022-09-26 16:02:48 +03:00
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
2022-10-06 11:46:24 +03:00
# along with this program. If not, see <http://www.gnu.org/licenses/>.
2022-09-24 15:30:16 +03:00
# base webui import and utils.
2022-11-03 10:04:32 +03:00
from sd_utils import st , custom_models_available , logger , human_readable_size
2022-09-12 21:44:00 +03:00
2022-09-24 15:30:16 +03:00
# streamlit imports
2022-10-18 04:01:19 +03:00
# streamlit components section
2022-09-24 15:30:16 +03:00
import streamlit_nested_layout
2022-11-03 10:04:32 +03:00
from streamlit_server_state import server_state
2022-09-24 15:30:16 +03:00
2022-10-18 04:01:19 +03:00
# other imports
2022-09-24 15:30:16 +03:00
from omegaconf import OmegaConf
2022-11-03 10:04:32 +03:00
import torch
import os , toml
2022-09-24 15:30:16 +03:00
# end of imports
2022-10-18 04:01:19 +03:00
# ---------------------------------------------------------------------------------------------------------------
2022-09-24 15:30:16 +03:00
2022-10-19 21:18:06 +03:00
@logger.catch ( reraise = True )
2022-10-18 04:01:19 +03:00
def layout ( ) :
2022-10-19 21:18:06 +03:00
#st.header("Settings")
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with st . form ( " Settings " ) :
general_tab , txt2img_tab , img2img_tab , img2txt_tab , txt2vid_tab , image_processing , textual_inversion_tab , concepts_library_tab = st . tabs (
[ ' General ' , " Text-To-Image " , " Image-To-Image " , " Image-To-Text " , " Text-To-Video " , " Image processing " , " Textual Inversion " , " Concepts Library " ] )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with general_tab :
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = ' large ' )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
device_list = [ ]
device_properties = [ ( i , torch . cuda . get_device_properties ( i ) ) for i in range ( torch . cuda . device_count ( ) ) ]
for device in device_properties :
id = device [ 0 ]
name = device [ 1 ] . name
total_memory = device [ 1 ] . total_memory
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
device_list . append ( f " { id } : { name } ( { human_readable_size ( total_memory , decimal_places = 0 ) } ) " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col1 :
st . title ( " General " )
2022-11-03 01:51:37 +03:00
st . session_state [ ' defaults ' ] . general . gpu = int ( st . selectbox ( " GPU " , device_list , index = st . session_state [ ' defaults ' ] . general . gpu ,
2022-10-18 04:01:19 +03:00
help = f " Select which GPU to use. Default: { device_list [ 0 ] } " ) . split ( " : " ) [ 0 ] )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . outdir = str ( st . text_input ( " Output directory " , value = st . session_state [ ' defaults ' ] . general . outdir ,
help = " Relative directory on which the output images after a generation will be placed. Default: ' outputs ' " ) )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# If we have custom models available on the "models/custom"
# folder then we show a menu to select which model we want to use, otherwise we use the main model for SD
custom_models_available ( )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
if server_state [ " CustomModel_available " ] :
2022-10-21 00:09:19 +03:00
st . session_state . defaults . general . default_model = st . selectbox ( " Default Model: " , server_state [ " custom_models " ] ,
2022-10-18 04:01:19 +03:00
index = server_state [ " custom_models " ] . index ( st . session_state [ ' defaults ' ] . general . default_model ) ,
help = " Select the model you want to use. If you have placed custom models \
2022-10-19 21:18:06 +03:00
on your ' models/custom ' folder they will be shown here as well . The model name that will be shown here \
is the same as the name the file for the model has on said folder , \
it is recommended to give the . ckpt file a name that \
will make it easier for you to distinguish it from other models . Default : Stable Diffusion v1 .4 " )
2022-10-18 04:01:19 +03:00
else :
2022-10-21 00:09:19 +03:00
st . session_state . defaults . general . default_model = st . selectbox ( " Default Model: " , [ st . session_state [ ' defaults ' ] . general . default_model ] ,
2022-10-18 04:01:19 +03:00
help = " Select the model you want to use. If you have placed custom models \
2022-10-19 21:18:06 +03:00
on your ' models/custom ' folder they will be shown here as well . \
The model name that will be shown here is the same as the name \
the file for the model has on said folder , it is recommended to give the . ckpt file a name that \
will make it easier for you to distinguish it from other models . Default : Stable Diffusion v1 .4 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . default_model_config = st . text_input ( " Default Model Config " , value = st . session_state [ ' defaults ' ] . general . default_model_config ,
help = " Default model config file for inference. Default: ' configs/stable-diffusion/v1-inference.yaml ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . default_model_path = st . text_input ( " Default Model Config " , value = st . session_state [ ' defaults ' ] . general . default_model_path ,
help = " Default model path. Default: ' models/ldm/stable-diffusion-v1/model.ckpt ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . GFPGAN_dir = st . text_input ( " Default GFPGAN directory " , value = st . session_state [ ' defaults ' ] . general . GFPGAN_dir ,
help = " Default GFPGAN directory. Default: ' ./models/gfpgan ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . RealESRGAN_dir = st . text_input ( " Default RealESRGAN directory " , value = st . session_state [ ' defaults ' ] . general . RealESRGAN_dir ,
help = " Default GFPGAN directory. Default: ' ./models/realesrgan ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
RealESRGAN_model_list = [ " RealESRGAN_x4plus " , " RealESRGAN_x4plus_anime_6B " ]
st . session_state [ ' defaults ' ] . general . RealESRGAN_model = st . selectbox ( " RealESRGAN model " , RealESRGAN_model_list ,
index = RealESRGAN_model_list . index ( st . session_state [ ' defaults ' ] . general . RealESRGAN_model ) ,
help = " Default RealESRGAN model. Default: ' RealESRGAN_x4plus ' " )
Upscaler_list = [ " RealESRGAN " , " LDSR " ]
st . session_state [ ' defaults ' ] . general . upscaling_method = st . selectbox ( " Upscaler " , Upscaler_list , index = Upscaler_list . index (
2022-10-19 21:18:06 +03:00
st . session_state [ ' defaults ' ] . general . upscaling_method ) , help = " Default upscaling method. Default: ' RealESRGAN ' " )
2022-09-24 15:30:16 +03:00
2022-10-18 04:01:19 +03:00
with col2 :
st . title ( " Performance " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . gfpgan_cpu = st . checkbox ( " GFPGAN - CPU " , value = st . session_state [ ' defaults ' ] . general . gfpgan_cpu ,
help = " Run GFPGAN on the cpu. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . esrgan_cpu = st . checkbox ( " ESRGAN - CPU " , value = st . session_state [ ' defaults ' ] . general . esrgan_cpu ,
help = " Run ESRGAN on the cpu. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . extra_models_cpu = st . checkbox ( " Extra Models - CPU " , value = st . session_state [ ' defaults ' ] . general . extra_models_cpu ,
help = " Run extra models (GFGPAN/ESRGAN) on cpu. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . extra_models_gpu = st . checkbox ( " Extra Models - GPU " , value = st . session_state [ ' defaults ' ] . general . extra_models_gpu ,
help = " Run extra models (GFGPAN/ESRGAN) on gpu. \
2022-10-19 21:18:06 +03:00
Check and save in order to be able to select the GPU that each model will use . Default : False " )
2022-10-18 04:01:19 +03:00
if st . session_state [ " defaults " ] . general . extra_models_gpu :
st . session_state [ ' defaults ' ] . general . gfpgan_gpu = int ( st . selectbox ( " GFGPAN GPU " , device_list , index = st . session_state [ ' defaults ' ] . general . gfpgan_gpu ,
help = f " Select which GPU to use. Default: { device_list [ st . session_state [ ' defaults ' ] . general . gfpgan_gpu ] } " ,
key = " gfpgan_gpu " ) . split ( " : " ) [ 0 ] )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . esrgan_gpu = int ( st . selectbox ( " ESRGAN - GPU " , device_list , index = st . session_state [ ' defaults ' ] . general . esrgan_gpu ,
help = f " Select which GPU to use. Default: { device_list [ st . session_state [ ' defaults ' ] . general . esrgan_gpu ] } " ,
key = " esrgan_gpu " ) . split ( " : " ) [ 0 ] )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . no_half = st . checkbox ( " No Half " , value = st . session_state [ ' defaults ' ] . general . no_half ,
help = " DO NOT switch the model to 16-bit floats. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . use_float16 = st . checkbox ( " Use float16 " , value = st . session_state [ ' defaults ' ] . general . use_float16 ,
help = " Switch the model to 16-bit floats. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
precision_list = [ ' full ' , ' autocast ' ]
st . session_state [ " defaults " ] . general . precision = st . selectbox ( " Precision " , precision_list , index = precision_list . index ( st . session_state [ ' defaults ' ] . general . precision ) ,
help = " Evaluates at this precision. Default: autocast " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . optimized = st . checkbox ( " Optimized Mode " , value = st . session_state [ ' defaults ' ] . general . optimized ,
help = " Loads the model onto the device piecemeal instead of all at once to reduce VRAM usage \
2022-09-24 15:30:16 +03:00
at the cost of performance . Default : False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . optimized_turbo = st . checkbox ( " Optimized Turbo Mode " , value = st . session_state [ ' defaults ' ] . general . optimized_turbo ,
help = " Alternative optimization mode that does not save as much VRAM but \
2022-10-19 21:18:06 +03:00
runs siginificantly faster . Default : False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . optimized_config = st . text_input ( " Optimized Config " , value = st . session_state [ ' defaults ' ] . general . optimized_config ,
help = f " Loads alternative optimized configuration for inference. \
Default : optimizedSD / v1 - inference . yaml " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . enable_attention_slicing = st . checkbox ( " Enable Attention Slicing " , value = st . session_state [ ' defaults ' ] . general . enable_attention_slicing ,
help = " Enable sliced attention computation. When this option is enabled, the attention module will \
2022-10-19 21:18:06 +03:00
split the input tensor in slices , to compute attention in several steps . This is useful to save some \
memory in exchange for a small speed decrease . Only works the txt2vid tab right now . Default : False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . enable_minimal_memory_usage = st . checkbox ( " Enable Minimal Memory Usage " , value = st . session_state [ ' defaults ' ] . general . enable_minimal_memory_usage ,
help = " Moves only unet to fp16 and to CUDA, while keepping lighter models on CPUs \
2022-10-19 21:18:06 +03:00
( Not properly implemented and currently not working , check this \
link ' https://github.com/huggingface/diffusers/pull/537 ' for more information on it ) . Default : False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# st.session_state["defaults"].general.update_preview = st.checkbox("Update Preview Image", value=st.session_state['defaults'].general.update_preview,
# help="Enables the preview image to be updated and shown to the user on the UI during the generation.\
# If checked, once you save the settings an option to specify the frequency at which the image is updated\
# in steps will be shown, this is helpful to reduce the negative effect this option has on performance. \
# Default: True")
st . session_state [ " defaults " ] . general . update_preview = True
st . session_state [ " defaults " ] . general . update_preview_frequency = st . number_input ( " Update Preview Frequency " ,
2022-10-24 22:35:30 +03:00
min_value = 0 ,
2022-10-18 04:01:19 +03:00
value = st . session_state [ ' defaults ' ] . general . update_preview_frequency ,
help = " Specify the frequency at which the image is updated in steps, this is helpful to reduce the \
2022-10-19 21:18:06 +03:00
negative effect updating the preview image has on performance . Default : 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col3 :
st . title ( " Others " )
st . session_state [ " defaults " ] . general . use_sd_concepts_library = st . checkbox ( " Use the Concepts Library " , value = st . session_state [ ' defaults ' ] . general . use_sd_concepts_library ,
help = " Use the embeds Concepts Library, if checked, once the settings are saved an option will \
2022-10-19 21:18:06 +03:00
appear to specify the directory where the concepts are stored . Default : True ) " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
if st . session_state [ " defaults " ] . general . use_sd_concepts_library :
st . session_state [ ' defaults ' ] . general . sd_concepts_library_folder = st . text_input ( " Concepts Library Folder " ,
value = st . session_state [ ' defaults ' ] . general . sd_concepts_library_folder ,
help = " Relative folder on which the concepts library embeds are stored. \
2022-10-19 21:18:06 +03:00
Default : ' models/custom/sd-concepts-library ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . general . LDSR_dir = st . text_input ( " LDSR Folder " , value = st . session_state [ ' defaults ' ] . general . LDSR_dir ,
help = " Folder where LDSR is located. Default: ' ./models/ldsr ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . save_metadata = st . checkbox ( " Save Metadata " , value = st . session_state [ ' defaults ' ] . general . save_metadata ,
help = " Save metadata on the output image. Default: True " )
2022-10-24 10:20:44 +03:00
save_format_list = [ " png " , " jpg " , " jpeg " , " webp " ]
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . save_format = st . selectbox ( " Save Format " , save_format_list , index = save_format_list . index ( st . session_state [ ' defaults ' ] . general . save_format ) ,
help = " Format that will be used whens saving the output images. Default: ' png ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . skip_grid = st . checkbox ( " Skip Grid " , value = st . session_state [ ' defaults ' ] . general . skip_grid ,
help = " Skip saving the grid output image. Default: False " )
if not st . session_state [ " defaults " ] . general . skip_grid :
2022-10-24 10:20:44 +03:00
st . session_state [ " defaults " ] . general . grid_quality = st . number_input ( " Grid Quality " , value = st . session_state [ ' defaults ' ] . general . grid_quality ,
help = " Format for saving the grid output image. Default: 95 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . skip_save = st . checkbox ( " Skip Save " , value = st . session_state [ ' defaults ' ] . general . skip_save ,
help = " Skip saving the output image. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . n_rows = st . number_input ( " Number of Grid Rows " , value = st . session_state [ ' defaults ' ] . general . n_rows ,
help = " Number of rows the grid wil have when saving the grid output image. Default: ' -1 ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . general . no_verify_input = st . checkbox ( " Do not Verify Input " , value = st . session_state [ ' defaults ' ] . general . no_verify_input ,
help = " Do not verify input to check if it ' s too long. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . daisi_app . running_on_daisi_io = st . checkbox ( " Running on Daisi.io? " , value = st . session_state [ ' defaults ' ] . daisi_app . running_on_daisi_io ,
help = " Specify if we are running on app.Daisi.io . Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col4 :
st . title ( " Streamlit Config " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
default_theme_list = [ " light " , " dark " ]
st . session_state [ " defaults " ] . general . default_theme = st . selectbox ( " Default Theme " , default_theme_list , index = default_theme_list . index ( st . session_state [ ' defaults ' ] . general . default_theme ) ,
help = " Defaut theme to use as base for streamlit. Default: dark " )
st . session_state [ " streamlit_config " ] [ " theme " ] [ " base " ] = st . session_state [ " defaults " ] . general . default_theme
2022-10-06 11:46:24 +03:00
2022-10-29 09:20:21 +03:00
2022-10-29 09:48:45 +03:00
if not st . session_state [ ' defaults ' ] . admin . hide_server_setting :
with st . expander ( " Server " , True ) :
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' headless ' ] = st . checkbox ( " Run Headless " , help = " If false, will attempt to open a browser window on start. \
Default : false unless ( 1 ) we are on a Linux box where DISPLAY is unset , \
or ( 2 ) we are running in the Streamlit Atom plugin . " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' port ' ] = st . number_input ( " Port " , value = st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' port ' ] ,
help = " The port where the server will listen for browser connections. Default: 8501 " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' baseUrlPath ' ] = st . text_input ( " Base Url Path " , value = st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' baseUrlPath ' ] ,
help = " The base path for the URL where Streamlit should be served from. Default: ' ' " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' enableCORS ' ] = st . checkbox ( " Enable CORS " , value = st . session_state [ ' streamlit_config ' ] [ ' server ' ] [ ' enableCORS ' ] ,
help = " Enables support for Cross-Origin Request Sharing (CORS) protection, for added security. \
Due to conflicts between CORS and XSRF , if ` server . enableXsrfProtection ` is on and ` server . enableCORS ` \
is off at the same time , we will prioritize ` server . enableXsrfProtection ` . Default : true " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' enableXsrfProtection ' ] = st . checkbox ( " Enable Xsrf Protection " ,
value = st . session_state [ ' streamlit_config ' ] [ ' server ' ] [ ' enableXsrfProtection ' ] ,
help = " Enables support for Cross-Site Request Forgery (XSRF) protection, \
for added security . Due to conflicts between CORS and XSRF , \
if ` server . enableXsrfProtection ` is on and ` server . enableCORS ` is off at \
the same time , we will prioritize ` server . enableXsrfProtection ` . Default : true " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' maxUploadSize ' ] = st . number_input ( " Max Upload Size " , value = st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' maxUploadSize ' ] ,
help = " Max size, in megabytes, for files uploaded with the file_uploader. Default: 200 " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' maxMessageSize ' ] = st . number_input ( " Max Message Size " , value = st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' maxUploadSize ' ] ,
help = " Max size, in megabytes, of messages that can be sent via the WebSocket connection. Default: 200 " )
st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' enableWebsocketCompression ' ] = st . checkbox ( " Enable Websocket Compression " ,
value = st . session_state [ " streamlit_config " ] [ ' server ' ] [ ' enableWebsocketCompression ' ] ,
help = " Enables support for websocket compression. Default: false " )
if not st . session_state [ ' defaults ' ] . admin . hide_browser_setting :
with st . expander ( " Browser " , expanded = True ) :
st . session_state [ " streamlit_config " ] [ ' browser ' ] [ ' serverAddress ' ] = st . text_input ( " Server Address " ,
2022-10-29 19:56:50 +03:00
value = st . session_state [ " streamlit_config " ] [ ' browser ' ] [ ' serverAddress ' ] if " serverAddress " in st . session_state [ " streamlit_config " ] else " localhost " ,
2022-10-29 09:48:45 +03:00
help = " Internet address where users should point their browsers in order \
to connect to the app . Can be IP address or DNS name and path . \
This is used to : - Set the correct URL for CORS and XSRF protection purposes . \
- Show the URL on the terminal - Open the browser . Default : ' localhost ' " )
st . session_state [ " defaults " ] . general . streamlit_telemetry = st . checkbox ( " Enable Telemetry " , value = st . session_state [ ' defaults ' ] . general . streamlit_telemetry ,
help = " Enables or Disables streamlit telemetry. Default: False " )
st . session_state [ " streamlit_config " ] [ " browser " ] [ " gatherUsageStats " ] = st . session_state [ " defaults " ] . general . streamlit_telemetry
st . session_state [ " streamlit_config " ] [ ' browser ' ] [ ' serverPort ' ] = st . number_input ( " Server Port " , value = st . session_state [ " streamlit_config " ] [ ' browser ' ] [ ' serverPort ' ] ,
help = " Port where users should point their browsers in order to connect to the app. \
This is used to : - Set the correct URL for CORS and XSRF protection purposes . \
- Show the URL on the terminal - Open the browser \
Default : whatever value is set in server . port . " )
2022-10-29 09:20:21 +03:00
2022-10-18 04:01:19 +03:00
with col5 :
st . title ( " Huggingface " )
st . session_state [ " defaults " ] . general . huggingface_token = st . text_input ( " Huggingface Token " , value = st . session_state [ ' defaults ' ] . general . huggingface_token , type = " password " ,
help = " Your Huggingface Token, it ' s used to download the model for the diffusers library which \
2022-10-19 21:18:06 +03:00
is used on the Text To Video tab . This token will be saved to your user config file \
and WILL NOT be share with us or anyone . You can get your access token \
at https : / / huggingface . co / settings / tokens . Default : None " )
2022-10-06 11:46:24 +03:00
2022-10-30 13:36:30 +03:00
st . title ( " Stable Horde " )
st . session_state [ " defaults " ] . general . stable_horde_api = st . text_input ( " Stable Horde Api " , value = st . session_state [ " defaults " ] . general . stable_horde_api , type = " password " ,
help = " First Register an account at https://stablehorde.net/register which will generate for you \
an API key . Store that key somewhere safe . \n \
If you do not want to register , you can use ` 0000000000 ` as api_key to connect anonymously . \
However anonymous accounts have the lowest priority when there ' s too many concurrent requests! \
To increase your priority you will need a unique API key and then to increase your Kudos \
read more about them at https : / / dbzer0 . com / blog / the - kudos - based - economy - for - the - koboldai - horde / . " )
2022-10-18 04:01:19 +03:00
with txt2img_tab :
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = ' medium ' )
2022-10-01 11:30:25 +03:00
2022-10-18 04:01:19 +03:00
with col1 :
st . title ( " Slider Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Width
st . session_state [ " defaults " ] . txt2img . width . value = st . number_input ( " Default Image Width " , value = st . session_state [ ' defaults ' ] . txt2img . width . value ,
help = " Set the default width for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . width . min_value = st . number_input ( " Minimum Image Width " , value = st . session_state [ ' defaults ' ] . txt2img . width . min_value ,
help = " Set the default minimum value for the width slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . width . max_value = st . number_input ( " Maximum Image Width " , value = st . session_state [ ' defaults ' ] . txt2img . width . max_value ,
help = " Set the default maximum value for the width slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Height
st . session_state [ " defaults " ] . txt2img . height . value = st . number_input ( " Default Image Height " , value = st . session_state [ ' defaults ' ] . txt2img . height . value ,
help = " Set the default height for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . height . min_value = st . number_input ( " Minimum Image Height " , value = st . session_state [ ' defaults ' ] . txt2img . height . min_value ,
help = " Set the default minimum value for the height slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . height . max_value = st . number_input ( " Maximum Image Height " , value = st . session_state [ ' defaults ' ] . txt2img . height . max_value ,
help = " Set the default maximum value for the height slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col2 :
# CFG
st . session_state [ " defaults " ] . txt2img . cfg_scale . value = st . number_input ( " Default CFG Scale " , value = st . session_state [ ' defaults ' ] . txt2img . cfg_scale . value ,
help = " Set the default value for the CFG Scale. Default is: 7.5 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . cfg_scale . min_value = st . number_input ( " Minimum CFG Scale Value " , value = st . session_state [ ' defaults ' ] . txt2img . cfg_scale . min_value ,
help = " Set the default minimum value for the CFG scale slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . cfg_scale . step = st . number_input ( " CFG Slider Steps " , value = st . session_state [ ' defaults ' ] . txt2img . cfg_scale . step ,
help = " Set the default value for the number of steps on the CFG scale slider. Default is: 0.5 " )
# Sampling Steps
st . session_state [ " defaults " ] . txt2img . sampling_steps . value = st . number_input ( " Default Sampling Steps " , value = st . session_state [ ' defaults ' ] . txt2img . sampling_steps . value ,
help = " Set the default number of sampling steps to use. Default is: 30 (with k_euler) " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . sampling_steps . min_value = st . number_input ( " Minimum Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . txt2img . sampling_steps . min_value ,
help = " Set the default minimum value for the sampling steps slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . sampling_steps . step = st . number_input ( " Sampling Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2img . sampling_steps . step ,
help = " Set the default value for the number of steps on the sampling steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col3 :
st . title ( " General Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Batch Count
st . session_state [ " defaults " ] . txt2img . batch_count . value = st . number_input ( " Batch count " , value = st . session_state [ ' defaults ' ] . txt2img . batch_count . value ,
help = " How many iterations or batches of images to generate in total. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . batch_size . value = st . number_input ( " Batch size " , value = st . session_state . defaults . txt2img . batch_size . value ,
help = " How many images are at once in a batch. \
2022-10-19 21:18:06 +03:00
It increases the VRAM usage a lot but if you have enough VRAM it can reduce the time it \
takes to finish generation as more images are generated at once . \
Default : 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
default_sampler_list = [ " k_lms " , " k_euler " , " k_euler_a " , " k_dpm_2 " , " k_dpm_2_a " , " k_heun " , " PLMS " , " DDIM " ]
st . session_state [ " defaults " ] . txt2img . default_sampler = st . selectbox ( " Default Sampler " ,
default_sampler_list , index = default_sampler_list . index (
st . session_state [ ' defaults ' ] . txt2img . default_sampler ) ,
help = " Defaut sampler to use for txt2img. Default: k_euler " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2img . seed = st . text_input ( " Default Seed " , value = st . session_state [ ' defaults ' ] . txt2img . seed , help = " Default seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col4 :
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . separate_prompts = st . checkbox ( " Separate Prompts " ,
value = st . session_state [ ' defaults ' ] . txt2img . separate_prompts , help = " Separate Prompts. Default: False " )
2022-10-01 11:30:25 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . normalize_prompt_weights = st . checkbox ( " Normalize Prompt Weights " ,
value = st . session_state [ ' defaults ' ] . txt2img . normalize_prompt_weights ,
help = " Choose to normalize prompt weights. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . save_individual_images = st . checkbox ( " Save Individual Images " ,
value = st . session_state [ ' defaults ' ] . txt2img . save_individual_images ,
help = " Choose to save individual images. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . save_grid = st . checkbox ( " Save Grid Images " , value = st . session_state [ ' defaults ' ] . txt2img . save_grid ,
help = " Choose to save the grid images. Default: True " )
2022-10-01 11:30:25 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . group_by_prompt = st . checkbox ( " Group By Prompt " , value = st . session_state [ ' defaults ' ] . txt2img . group_by_prompt ,
help = " Choose to save images grouped by their prompt. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . save_as_jpg = st . checkbox ( " Save As JPG " , value = st . session_state [ ' defaults ' ] . txt2img . save_as_jpg ,
help = " Choose to save images as jpegs. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . write_info_files = st . checkbox ( " Write Info Files For Images " , value = st . session_state [ ' defaults ' ] . txt2img . write_info_files ,
help = " Choose to write the info files along with the generated images. Default: True " )
2022-10-01 11:30:25 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . use_GFPGAN = st . checkbox (
" Use GFPGAN " , value = st . session_state [ ' defaults ' ] . txt2img . use_GFPGAN , help = " Choose to use GFPGAN. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . use_upscaling = st . checkbox ( " Use Upscaling " , value = st . session_state [ ' defaults ' ] . txt2img . use_upscaling ,
help = " Choose to turn on upscaling by default. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . update_preview = True
st . session_state [ " defaults " ] . txt2img . update_preview_frequency = st . number_input ( " Preview Image Update Frequency " ,
2022-10-24 22:35:30 +03:00
min_value = 0 ,
2022-10-18 04:01:19 +03:00
value = st . session_state [ ' defaults ' ] . txt2img . update_preview_frequency ,
help = " Set the default value for the frrquency of the preview image updates. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col5 :
st . title ( " Variation Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . variant_amount . value = st . number_input ( " Default Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2img . variant_amount . value ,
help = " Set the default variation to use. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . variant_amount . min_value = st . number_input ( " Minimum Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2img . variant_amount . min_value ,
help = " Set the default minimum value for the variation slider. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . variant_amount . max_value = st . number_input ( " Maximum Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2img . variant_amount . max_value ,
help = " Set the default maximum value for the variation slider. Default is: 1.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2img . variant_amount . step = st . number_input ( " Variation Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2img . variant_amount . step ,
help = " Set the default value for the number of steps on the variation slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2img . variant_seed = st . text_input ( " Default Variation Seed " , value = st . session_state [ ' defaults ' ] . txt2img . variant_seed ,
help = " Default variation seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with img2img_tab :
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = ' medium ' )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col1 :
st . title ( " Image Editing " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Denoising
st . session_state [ " defaults " ] . img2img . denoising_strength . value = st . number_input ( " Default Denoising Amount " ,
value = st . session_state [ ' defaults ' ] . img2img . denoising_strength . value ,
help = " Set the default denoising to use. Default is: 0.75 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . denoising_strength . min_value = st . number_input ( " Minimum Denoising Amount " ,
value = st . session_state [ ' defaults ' ] . img2img . denoising_strength . min_value ,
help = " Set the default minimum value for the denoising slider. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . denoising_strength . max_value = st . number_input ( " Maximum Denoising Amount " ,
value = st . session_state [ ' defaults ' ] . img2img . denoising_strength . max_value ,
help = " Set the default maximum value for the denoising slider. Default is: 1.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . denoising_strength . step = st . number_input ( " Denoising Slider Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . denoising_strength . step ,
help = " Set the default value for the number of steps on the denoising slider. Default is: 0.01 " )
2022-10-01 14:41:40 +03:00
2022-10-18 04:01:19 +03:00
# Masking
st . session_state [ " defaults " ] . img2img . mask_mode = st . number_input ( " Default Mask Mode " , value = st . session_state [ ' defaults ' ] . img2img . mask_mode ,
help = " Set the default mask mode to use. 0 = Keep Masked Area, 1 = Regenerate Masked Area. Default is: 0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . mask_restore = st . checkbox ( " Default Mask Restore " , value = st . session_state [ ' defaults ' ] . img2img . mask_restore ,
help = " Mask Restore. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . resize_mode = st . number_input ( " Default Resize Mode " , value = st . session_state [ ' defaults ' ] . img2img . resize_mode ,
help = " Set the default resizing mode. 0 = Just Resize, 1 = Crop and Resize, 3 = Resize and Fill. Default is: 0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col2 :
st . title ( " Slider Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Width
st . session_state [ " defaults " ] . img2img . width . value = st . number_input ( " Default Outputted Image Width " , value = st . session_state [ ' defaults ' ] . img2img . width . value ,
help = " Set the default width for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . width . min_value = st . number_input ( " Minimum Outputted Image Width " , value = st . session_state [ ' defaults ' ] . img2img . width . min_value ,
help = " Set the default minimum value for the width slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . width . max_value = st . number_input ( " Maximum Outputted Image Width " , value = st . session_state [ ' defaults ' ] . img2img . width . max_value ,
help = " Set the default maximum value for the width slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Height
st . session_state [ " defaults " ] . img2img . height . value = st . number_input ( " Default Outputted Image Height " , value = st . session_state [ ' defaults ' ] . img2img . height . value ,
help = " Set the default height for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . height . min_value = st . number_input ( " Minimum Outputted Image Height " , value = st . session_state [ ' defaults ' ] . img2img . height . min_value ,
help = " Set the default minimum value for the height slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . height . max_value = st . number_input ( " Maximum Outputted Image Height " , value = st . session_state [ ' defaults ' ] . img2img . height . max_value ,
help = " Set the default maximum value for the height slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# CFG
st . session_state [ " defaults " ] . img2img . cfg_scale . value = st . number_input ( " Default Img2Img CFG Scale " , value = st . session_state [ ' defaults ' ] . img2img . cfg_scale . value ,
help = " Set the default value for the CFG Scale. Default is: 7.5 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . cfg_scale . min_value = st . number_input ( " Minimum Img2Img CFG Scale Value " ,
value = st . session_state [ ' defaults ' ] . img2img . cfg_scale . min_value ,
help = " Set the default minimum value for the CFG scale slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col3 :
st . session_state [ " defaults " ] . img2img . cfg_scale . step = st . number_input ( " Img2Img CFG Slider Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . cfg_scale . step ,
help = " Set the default value for the number of steps on the CFG scale slider. Default is: 0.5 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Sampling Steps
st . session_state [ " defaults " ] . img2img . sampling_steps . value = st . number_input ( " Default Img2Img Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . sampling_steps . value ,
help = " Set the default number of sampling steps to use. Default is: 30 (with k_euler) " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . sampling_steps . min_value = st . number_input ( " Minimum Img2Img Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . sampling_steps . min_value ,
help = " Set the default minimum value for the sampling steps slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . sampling_steps . step = st . number_input ( " Img2Img Sampling Slider Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . sampling_steps . step ,
help = " Set the default value for the number of steps on the sampling steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Batch Count
st . session_state [ " defaults " ] . img2img . batch_count . value = st . number_input ( " Img2img Batch count " , value = st . session_state [ " defaults " ] . img2img . batch_count . value ,
help = " How many iterations or batches of images to generate in total. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . batch_size . value = st . number_input ( " Img2img Batch size " , value = st . session_state [ " defaults " ] . img2img . batch_size . value ,
help = " How many images are at once in a batch. \
It increases the VRAM usage a lot but if you have enough VRAM it can reduce the time it \
takes to finish generation as more images are generated at once . \
Default : 1 " )
with col4 :
# Inference Steps
st . session_state [ " defaults " ] . img2img . num_inference_steps . value = st . number_input ( " Default Inference Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . num_inference_steps . value ,
help = " Set the default number of inference steps to use. Default is: 200 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . num_inference_steps . min_value = st . number_input ( " Minimum Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . num_inference_steps . min_value ,
help = " Set the default minimum value for the inference steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . num_inference_steps . max_value = st . number_input ( " Maximum Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . num_inference_steps . max_value ,
help = " Set the default maximum value for the inference steps slider. Default is: 500 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . num_inference_steps . step = st . number_input ( " Inference Slider Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . num_inference_steps . step ,
help = " Set the default value for the number of steps on the inference steps slider. \
Default is : 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Find Noise Steps
st . session_state [ " defaults " ] . img2img . find_noise_steps . value = st . number_input ( " Default Find Noise Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . find_noise_steps . value ,
help = " Set the default number of find noise steps to use. Default is: 100 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . find_noise_steps . min_value = st . number_input ( " Minimum Find Noise Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . find_noise_steps . min_value ,
help = " Set the default minimum value for the find noise steps slider. Default is: 0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . find_noise_steps . step = st . number_input ( " Find Noise Slider Steps " ,
value = st . session_state [ ' defaults ' ] . img2img . find_noise_steps . step ,
help = " Set the default value for the number of steps on the find noise steps slider. \
Default is : 100 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col5 :
st . title ( " General Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
default_sampler_list = [ " k_lms " , " k_euler " , " k_euler_a " , " k_dpm_2 " , " k_dpm_2_a " , " k_heun " , " PLMS " , " DDIM " ]
st . session_state [ " defaults " ] . img2img . sampler_name = st . selectbox ( " Default Img2Img Sampler " , default_sampler_list ,
index = default_sampler_list . index ( st . session_state [ ' defaults ' ] . img2img . sampler_name ) ,
help = " Defaut sampler to use for img2img. Default: k_euler " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . img2img . seed = st . text_input ( " Default Img2Img Seed " , value = st . session_state [ ' defaults ' ] . img2img . seed , help = " Default seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . separate_prompts = st . checkbox ( " Separate Img2Img Prompts " , value = st . session_state [ ' defaults ' ] . img2img . separate_prompts ,
help = " Separate Prompts. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . normalize_prompt_weights = st . checkbox ( " Normalize Img2Img Prompt Weights " ,
value = st . session_state [ ' defaults ' ] . img2img . normalize_prompt_weights ,
help = " Choose to normalize prompt weights. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . save_individual_images = st . checkbox ( " Save Individual Img2Img Images " ,
value = st . session_state [ ' defaults ' ] . img2img . save_individual_images ,
help = " Choose to save individual images. Default: True " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . save_grid = st . checkbox ( " Save Img2Img Grid Images " ,
value = st . session_state [ ' defaults ' ] . img2img . save_grid , help = " Choose to save the grid images. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . group_by_prompt = st . checkbox ( " Group By Img2Img Prompt " ,
value = st . session_state [ ' defaults ' ] . img2img . group_by_prompt ,
help = " Choose to save images grouped by their prompt. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . save_as_jpg = st . checkbox ( " Save Img2Img As JPG " , value = st . session_state [ ' defaults ' ] . img2img . save_as_jpg ,
help = " Choose to save images as jpegs. Default: False " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . write_info_files = st . checkbox ( " Write Info Files For Img2Img Images " ,
value = st . session_state [ ' defaults ' ] . img2img . write_info_files ,
help = " Choose to write the info files along with the generated images. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . use_GFPGAN = st . checkbox (
" Img2Img Use GFPGAN " , value = st . session_state [ ' defaults ' ] . img2img . use_GFPGAN , help = " Choose to use GFPGAN. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . use_RealESRGAN = st . checkbox ( " Img2Img Use RealESRGAN " , value = st . session_state [ ' defaults ' ] . img2img . use_RealESRGAN ,
help = " Choose to use RealESRGAN. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . update_preview = True
st . session_state [ " defaults " ] . img2img . update_preview_frequency = st . number_input ( " Img2Img Preview Image Update Frequency " ,
2022-10-24 22:35:30 +03:00
min_value = 0 ,
2022-10-18 04:01:19 +03:00
value = st . session_state [ ' defaults ' ] . img2img . update_preview_frequency ,
help = " Set the default value for the frrquency of the preview image updates. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . title ( " Variation Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2img . variant_amount = st . number_input ( " Default Img2Img Variation Amount " ,
value = st . session_state [ ' defaults ' ] . img2img . variant_amount ,
help = " Set the default variation to use. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# I THINK THESE ARE MISSING FROM THE CONFIG FILE
# st.session_state["defaults"].img2img.variant_amount.min_value = st.number_input("Minimum Img2Img Variation Amount",
# value=st.session_state['defaults'].img2img.variant_amount.min_value, help="Set the default minimum value for the variation slider. Default is: 0.0"))
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# st.session_state["defaults"].img2img.variant_amount.max_value = st.number_input("Maximum Img2Img Variation Amount",
# value=st.session_state['defaults'].img2img.variant_amount.max_value, help="Set the default maximum value for the variation slider. Default is: 1.0"))
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# st.session_state["defaults"].img2img.variant_amount.step = st.number_input("Img2Img Variation Slider Steps",
# value=st.session_state['defaults'].img2img.variant_amount.step, help="Set the default value for the number of steps on the variation slider. Default is: 1"))
2022-10-01 14:41:40 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . img2img . variant_seed = st . text_input ( " Default Img2Img Variation Seed " ,
value = st . session_state [ ' defaults ' ] . img2img . variant_seed , help = " Default variation seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with img2txt_tab :
col1 = st . columns ( 1 , gap = " large " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . title ( " Image-To-Text " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2txt . batch_size = st . number_input ( " Default Img2Txt Batch Size " , value = st . session_state [ ' defaults ' ] . img2txt . batch_size ,
help = " Set the default batch size for Img2Txt. Default is: 420? " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . img2txt . blip_image_eval_size = st . number_input ( " Default Blip Image Size Evaluation " ,
value = st . session_state [ ' defaults ' ] . img2txt . blip_image_eval_size ,
help = " Set the default value for the blip image evaluation size. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with txt2vid_tab :
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = " medium " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col1 :
st . title ( " Slider Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Width
st . session_state [ " defaults " ] . txt2vid . width . value = st . number_input ( " Default txt2vid Image Width " ,
value = st . session_state [ ' defaults ' ] . txt2vid . width . value ,
help = " Set the default width for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . width . min_value = st . number_input ( " Minimum txt2vid Image Width " ,
value = st . session_state [ ' defaults ' ] . txt2vid . width . min_value ,
help = " Set the default minimum value for the width slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . width . max_value = st . number_input ( " Maximum txt2vid Image Width " ,
value = st . session_state [ ' defaults ' ] . txt2vid . width . max_value ,
help = " Set the default maximum value for the width slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Height
st . session_state [ " defaults " ] . txt2vid . height . value = st . number_input ( " Default txt2vid Image Height " ,
value = st . session_state [ ' defaults ' ] . txt2vid . height . value ,
help = " Set the default height for the generated image. Default is: 512 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . height . min_value = st . number_input ( " Minimum txt2vid Image Height " ,
value = st . session_state [ ' defaults ' ] . txt2vid . height . min_value ,
help = " Set the default minimum value for the height slider. Default is: 64 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . height . max_value = st . number_input ( " Maximum txt2vid Image Height " ,
value = st . session_state [ ' defaults ' ] . txt2vid . height . max_value ,
help = " Set the default maximum value for the height slider. Default is: 2048 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# CFG
st . session_state [ " defaults " ] . txt2vid . cfg_scale . value = st . number_input ( " Default txt2vid CFG Scale " ,
value = st . session_state [ ' defaults ' ] . txt2vid . cfg_scale . value ,
help = " Set the default value for the CFG Scale. Default is: 7.5 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . cfg_scale . min_value = st . number_input ( " Minimum txt2vid CFG Scale Value " ,
value = st . session_state [ ' defaults ' ] . txt2vid . cfg_scale . min_value ,
help = " Set the default minimum value for the CFG scale slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . cfg_scale . step = st . number_input ( " txt2vid CFG Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . cfg_scale . step ,
help = " Set the default value for the number of steps on the CFG scale slider. Default is: 0.5 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col2 :
# Sampling Steps
st . session_state [ " defaults " ] . txt2vid . sampling_steps . value = st . number_input ( " Default txt2vid Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . sampling_steps . value ,
help = " Set the default number of sampling steps to use. Default is: 30 (with k_euler) " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . sampling_steps . min_value = st . number_input ( " Minimum txt2vid Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . sampling_steps . min_value ,
help = " Set the default minimum value for the sampling steps slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . sampling_steps . step = st . number_input ( " txt2vid Sampling Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . sampling_steps . step ,
help = " Set the default value for the number of steps on the sampling steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Batch Count
st . session_state [ " defaults " ] . txt2vid . batch_count . value = st . number_input ( " txt2vid Batch count " , value = st . session_state [ ' defaults ' ] . txt2vid . batch_count . value ,
help = " How many iterations or batches of images to generate in total. " )
2022-10-02 23:10:17 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . batch_size . value = st . number_input ( " txt2vid Batch size " , value = st . session_state . defaults . txt2vid . batch_size . value ,
help = " How many images are at once in a batch. \
2022-10-19 21:18:06 +03:00
It increases the VRAM usage a lot but if you have enough VRAM it can reduce the time it \
takes to finish generation as more images are generated at once . \
Default : 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Inference Steps
st . session_state [ " defaults " ] . txt2vid . num_inference_steps . value = st . number_input ( " Default Txt2Vid Inference Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . num_inference_steps . value ,
help = " Set the default number of inference steps to use. Default is: 200 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . num_inference_steps . min_value = st . number_input ( " Minimum Txt2Vid Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . num_inference_steps . min_value ,
help = " Set the default minimum value for the inference steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . num_inference_steps . max_value = st . number_input ( " Maximum Txt2Vid Sampling Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . num_inference_steps . max_value ,
help = " Set the default maximum value for the inference steps slider. Default is: 500 " )
st . session_state [ " defaults " ] . txt2vid . num_inference_steps . step = st . number_input ( " Txt2Vid Inference Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . num_inference_steps . step ,
help = " Set the default value for the number of steps on the inference steps slider. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col3 :
st . title ( " General Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2vid . default_model = st . text_input ( " Default Txt2Vid Model " , value = st . session_state [ ' defaults ' ] . txt2vid . default_model ,
help = " Default: CompVis/stable-diffusion-v1-4 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# INSERT CUSTOM_MODELS_LIST HERE
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
default_sampler_list = [ " k_lms " , " k_euler " , " k_euler_a " , " k_dpm_2 " , " k_dpm_2_a " , " k_heun " , " PLMS " , " DDIM " ]
st . session_state [ " defaults " ] . txt2vid . default_sampler = st . selectbox ( " Default txt2vid Sampler " , default_sampler_list ,
index = default_sampler_list . index ( st . session_state [ ' defaults ' ] . txt2vid . default_sampler ) ,
help = " Defaut sampler to use for txt2vid. Default: k_euler " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2vid . seed = st . text_input ( " Default txt2vid Seed " , value = st . session_state [ ' defaults ' ] . txt2vid . seed , help = " Default seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2vid . scheduler_name = st . text_input ( " Default Txt2Vid Scheduler " ,
value = st . session_state [ ' defaults ' ] . txt2vid . scheduler_name , help = " Default scheduler. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . separate_prompts = st . checkbox ( " Separate txt2vid Prompts " ,
value = st . session_state [ ' defaults ' ] . txt2vid . separate_prompts , help = " Separate Prompts. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . normalize_prompt_weights = st . checkbox ( " Normalize txt2vid Prompt Weights " ,
value = st . session_state [ ' defaults ' ] . txt2vid . normalize_prompt_weights ,
help = " Choose to normalize prompt weights. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . save_individual_images = st . checkbox ( " Save Individual txt2vid Images " ,
value = st . session_state [ ' defaults ' ] . txt2vid . save_individual_images ,
help = " Choose to save individual images. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . save_video = st . checkbox ( " Save Txt2Vid Video " , value = st . session_state [ ' defaults ' ] . txt2vid . save_video ,
help = " Choose to save the Txt2Vid video. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . save_video_on_stop = st . checkbox ( " Save video on Stop " , value = st . session_state [ ' defaults ' ] . txt2vid . save_video_on_stop ,
help = " Save a video with all the images generated as frames when we hit the stop button \
2022-10-08 09:46:52 +03:00
during a generation . " )
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . group_by_prompt = st . checkbox ( " Group By txt2vid Prompt " , value = st . session_state [ ' defaults ' ] . txt2vid . group_by_prompt ,
help = " Choose to save images grouped by their prompt. Default: False " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . save_as_jpg = st . checkbox ( " Save txt2vid As JPG " , value = st . session_state [ ' defaults ' ] . txt2vid . save_as_jpg ,
help = " Choose to save images as jpegs. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Need more info for the Help dialog...
st . session_state [ " defaults " ] . txt2vid . do_loop = st . checkbox ( " Loop Generations " , value = st . session_state [ ' defaults ' ] . txt2vid . do_loop ,
help = " Choose to loop or something, IDK.... Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-23 12:54:25 +03:00
st . session_state [ " defaults " ] . txt2vid . max_duration_in_seconds = st . number_input ( " Txt2Vid Max Duration in Seconds " , value = st . session_state [ ' defaults ' ] . txt2vid . max_duration_in_seconds ,
help = " Set the default value for the max duration in seconds for the video generated. Default is: 30 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . write_info_files = st . checkbox ( " Write Info Files For txt2vid Images " , value = st . session_state [ ' defaults ' ] . txt2vid . write_info_files ,
help = " Choose to write the info files along with the generated images. Default: True " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . use_GFPGAN = st . checkbox ( " txt2vid Use GFPGAN " , value = st . session_state [ ' defaults ' ] . txt2vid . use_GFPGAN ,
help = " Choose to use GFPGAN. Default: False " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . use_RealESRGAN = st . checkbox ( " txt2vid Use RealESRGAN " , value = st . session_state [ ' defaults ' ] . txt2vid . use_RealESRGAN ,
help = " Choose to use RealESRGAN. Default: False " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . update_preview = True
st . session_state [ " defaults " ] . txt2vid . update_preview_frequency = st . number_input ( " txt2vid Preview Image Update Frequency " ,
value = st . session_state [ ' defaults ' ] . txt2vid . update_preview_frequency ,
help = " Set the default value for the frrquency of the preview image updates. Default is: 10 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col4 :
st . title ( " Variation Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . variant_amount . value = st . number_input ( " Default txt2vid Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2vid . variant_amount . value ,
help = " Set the default variation to use. Default is: 0.0 " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . variant_amount . min_value = st . number_input ( " Minimum txt2vid Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2vid . variant_amount . min_value ,
help = " Set the default minimum value for the variation slider. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . variant_amount . max_value = st . number_input ( " Maximum txt2vid Variation Amount " ,
value = st . session_state [ ' defaults ' ] . txt2vid . variant_amount . max_value ,
help = " Set the default maximum value for the variation slider. Default is: 1.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . variant_amount . step = st . number_input ( " txt2vid Variation Slider Steps " ,
value = st . session_state [ ' defaults ' ] . txt2vid . variant_amount . step ,
help = " Set the default value for the number of steps on the variation slider. Default is: 1 " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . txt2vid . variant_seed = st . text_input ( " Default txt2vid Variation Seed " ,
value = st . session_state [ ' defaults ' ] . txt2vid . variant_seed , help = " Default variation seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col5 :
st . title ( " Beta Parameters " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Beta Start
st . session_state [ " defaults " ] . txt2vid . beta_start . value = st . number_input ( " Default txt2vid Beta Start Value " ,
value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . value ,
help = " Set the default variation to use. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_start . min_value = st . number_input ( " Minimum txt2vid Beta Start Amount " ,
value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . min_value ,
help = " Set the default minimum value for the variation slider. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_start . max_value = st . number_input ( " Maximum txt2vid Beta Start Amount " ,
value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . max_value ,
help = " Set the default maximum value for the variation slider. Default is: 1.0 " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_start . step = st . number_input ( " txt2vid Beta Start Slider Steps " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . step ,
help = " Set the default value for the number of steps on the variation slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_start . format = st . text_input ( " Default txt2vid Beta Start Format " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . format ,
help = " Set the default Beta Start Format. Default is: % .5 \f " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Beta End
st . session_state [ " defaults " ] . txt2vid . beta_end . value = st . number_input ( " Default txt2vid Beta End Value " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_end . value ,
help = " Set the default variation to use. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_end . min_value = st . number_input ( " Minimum txt2vid Beta End Amount " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_end . min_value ,
help = " Set the default minimum value for the variation slider. Default is: 0.0 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_end . max_value = st . number_input ( " Maximum txt2vid Beta End Amount " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_end . max_value ,
help = " Set the default maximum value for the variation slider. Default is: 1.0 " )
2022-10-02 11:24:50 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_end . step = st . number_input ( " txt2vid Beta End Slider Steps " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_end . step ,
help = " Set the default value for the number of steps on the variation slider. Default is: 1 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . txt2vid . beta_end . format = st . text_input ( " Default txt2vid Beta End Format " , value = st . session_state [ ' defaults ' ] . txt2vid . beta_start . format ,
help = " Set the default Beta Start Format. Default is: % .5 \f " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with image_processing :
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = " large " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with col1 :
st . title ( " GFPGAN " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ " defaults " ] . gfpgan . strength = st . number_input ( " Default Img2Txt Batch Size " , value = st . session_state [ ' defaults ' ] . gfpgan . strength ,
help = " Set the default global strength for GFPGAN. Default is: 100 " )
with col2 :
st . title ( " GoBig " )
with col3 :
st . title ( " RealESRGAN " )
with col4 :
st . title ( " LDSR " )
with col5 :
st . title ( " GoLatent " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with textual_inversion_tab :
st . title ( " Textual Inversion " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . textual_inversion . pretrained_model_name_or_path = st . text_input ( " Default Textual Inversion Model Path " ,
value = st . session_state [ ' defaults ' ] . textual_inversion . pretrained_model_name_or_path ,
help = " Default: models/ldm/stable-diffusion-v1-4 " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
st . session_state [ ' defaults ' ] . textual_inversion . tokenizer_name = st . text_input ( " Default Img2Img Variation Seed " , value = st . session_state [ ' defaults ' ] . textual_inversion . tokenizer_name ,
help = " Default tokenizer seed. " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
with concepts_library_tab :
st . title ( " Concepts Library " )
#st.info("Under Construction. :construction_worker:")
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = ' large ' )
with col1 :
st . session_state [ " defaults " ] . concepts_library . concepts_per_page = st . number_input ( " Concepts Per Page " , value = st . session_state [ ' defaults ' ] . concepts_library . concepts_per_page ,
help = " Number of concepts per page to show on the Concepts Library. Default: ' 12 ' " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# add space for the buttons at the bottom
st . markdown ( " --- " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# We need a submit button to save the Settings
# as well as one to reset them to the defaults, just in case.
_ , _ , save_button_col , reset_button_col , _ , _ = st . columns ( [ 1 , 1 , 1 , 1 , 1 , 1 ] , gap = " large " )
with save_button_col :
save_button = st . form_submit_button ( " Save " )
with reset_button_col :
reset_button = st . form_submit_button ( " Reset " )
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
if save_button :
OmegaConf . save ( config = st . session_state . defaults , f = " configs/webui/userconfig_streamlit.yaml " )
loaded = OmegaConf . load ( " configs/webui/userconfig_streamlit.yaml " )
assert st . session_state . defaults == loaded
#
if ( os . path . exists ( " .streamlit/config.toml " ) ) :
with open ( " .streamlit/config.toml " , " w " ) as toml_file :
toml . dump ( st . session_state [ " streamlit_config " ] , toml_file )
if reset_button :
st . session_state [ " defaults " ] = OmegaConf . load ( " configs/webui/webui_streamlit.yaml " )
st . experimental_rerun ( )