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-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
2023-06-23 05:58:20 +03:00
2022-10-19 21:18:06 +03:00
@logger.catch ( reraise = True )
2022-10-18 04:01:19 +03:00
def layout ( ) :
2023-06-23 05:58:20 +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 " ) :
2023-06-23 05:58:20 +03:00
(
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 :
2023-06-23 05:58:20 +03:00
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 = [ ]
2023-06-23 05:58:20 +03:00
device_properties = [
( i , torch . cuda . get_device_properties ( i ) )
for i in range ( torch . cuda . device_count ( ) )
]
2022-10-18 04:01:19 +03:00
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
2023-06-23 05:58:20 +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 " )
2023-06-23 05:58:20 +03:00
st . session_state [ " defaults " ] . general . gpu = int (
st . selectbox (
" GPU " ,
device_list ,
index = st . session_state [ " defaults " ] . general . gpu ,
help = f " Select which GPU to use. Default: { device_list [ 0 ] } " ,
) . split ( " : " ) [ 0 ]
)
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 " ] :
2023-06-23 05:58:20 +03:00
st . session_state . defaults . general . default_model = st . selectbox (
" Default Model: " ,
server_state [ " custom_models " ] ,
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 \
2023-06-23 05:58:20 +03:00
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 :
2023-06-23 05:58:20 +03:00
st . session_state . defaults . general . default_model = st . selectbox (
" Default Model: " ,
[ 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 \
2023-06-23 05:58:20 +03:00
will make it easier for you to distinguish it from other models . Default : Stable Diffusion v1 .4 " ,
)
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 ' " ,
)
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 ' " ,
)
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 ' " ,
)
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 ' " ,
)
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 ' " ,
)
2022-10-18 04:01:19 +03:00
Upscaler_list = [ " RealESRGAN " , " LDSR " ]
2023-06-23 05:58:20 +03:00
st . session_state [ " defaults " ] . general . upscaling_method = st . selectbox (
" Upscaler " ,
Upscaler_list ,
index = Upscaler_list . index (
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
2023-06-23 05:58:20 +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 " ,
)
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 " ,
)
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 " ,
)
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. \
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 :
2023-06-23 05:58:20 +03:00
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 ]
)
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 ]
)
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 " ,
)
st . session_state [ " defaults " ] . general . use_cudnn = st . checkbox (
" Use cudnn " ,
value = st . session_state [ " defaults " ] . general . use_cudnn ,
help = " Switch the pytorch backend to use cudnn, this should help with fixing Nvidia 16xx cards getting "
" a black or green image. Default: False " ,
)
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 " ,
)
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 " ,
)
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 \
at the cost of performance . Default : False " ,
)
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 \
runs siginificantly faster . Default : False " ,
)
st . session_state [ " defaults " ] . general . optimized_config = st . text_input (
" Optimized Config " ,
value = st . session_state [ " defaults " ] . general . optimized_config ,
help = " Loads alternative optimized configuration for inference. \
Default : optimizedSD / v1 - inference . yaml " ,
)
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 \
2023-06-23 05:58:20 +03:00
memory in exchange for a small speed decrease . Only works the txt2vid tab right now . Default : False " ,
)
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 \
2023-06-23 05:58:20 +03:00
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
2023-06-23 05:58:20 +03:00
st . session_state [
" defaults "
] . general . update_preview_frequency = st . number_input (
" Update Preview Frequency " ,
min_value = 0 ,
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 \
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 " )
2023-06-23 05:58:20 +03:00
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 \
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 :
2023-06-23 05:58:20 +03:00
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. \
Default : ' models/custom/sd-concepts-library ' " ,
)
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 ' " ,
)
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 " ,
)
save_format_list = [ " png " , " jpg " , " jpeg " , " webp " ]
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 ' " ,
)
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 " ,
)
2022-10-18 04:01:19 +03:00
if not st . session_state [ " defaults " ] . general . skip_grid :
2023-06-23 05:58:20 +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 " ,
)
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 " ,
)
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 ' " ,
)
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 " ,
)
st . session_state [
" defaults "
] . general . show_percent_in_tab_title = st . checkbox (
" Show Percent in tab title " ,
value = st . session_state [
" defaults "
] . general . show_percent_in_tab_title ,
help = " Add the progress percent value to the page title on the tab on your browser. "
" This is useful in case you need to know how the generation is going while doign something else "
" in another tab on your browser. Default: True " ,
)
st . session_state [ " defaults " ] . general . enable_suggestions = st . checkbox (
" Enable Suggestions Box " ,
value = st . session_state [ " defaults " ] . general . enable_suggestions ,
help = " Adds a suggestion box under the prompt when clicked. Default: True " ,
)
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 " ]
2023-06-23 05:58:20 +03:00
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
if not st . session_state [ " defaults " ] . admin . hide_server_setting :
2022-10-29 09:48:45 +03:00
with st . expander ( " Server " , True ) :
2023-06-23 05:58:20 +03:00
st . session_state [ " streamlit_config " ] [ " server " ] [
" headless "
] = st . checkbox (
" Run Headless " ,
help = " If false, will attempt to open a browser window on start. \
2022-10-29 09:48:45 +03:00
Default : false unless ( 1 ) we are on a Linux box where DISPLAY is unset , \
2023-06-23 05:58:20 +03:00
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. \
2022-10-29 09:48:45 +03:00
Due to conflicts between CORS and XSRF , if ` server . enableXsrfProtection ` is on and ` server . enableCORS ` \
2023-06-23 05:58:20 +03:00
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, \
2022-10-29 09:48:45 +03:00
for added security . Due to conflicts between CORS and XSRF , \
if ` server . enableXsrfProtection ` is on and ` server . enableCORS ` is off at \
2023-06-23 05:58:20 +03:00
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 :
2022-10-29 09:48:45 +03:00
with st . expander ( " Browser " , expanded = True ) :
2023-06-23 05:58:20 +03:00
st . session_state [ " streamlit_config " ] [ " browser " ] [
" serverAddress "
] = st . text_input (
" Server Address " ,
value = st . session_state [ " streamlit_config " ] [ " browser " ] [
" serverAddress "
]
if " serverAddress " in st . session_state [ " streamlit_config " ]
else " localhost " ,
help = " Internet address where users should point their browsers in order \
2022-10-29 09:48:45 +03:00
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 . \
2023-06-23 05:58:20 +03:00
- 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. \
2022-10-29 09:48:45 +03:00
This is used to : - Set the correct URL for CORS and XSRF protection purposes . \
- Show the URL on the terminal - Open the browser \
2023-06-23 05:58:20 +03:00
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 " )
2023-06-23 05:58:20 +03:00
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 \
2023-06-23 05:58:20 +03:00
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 " )
2023-06-23 05:58:20 +03:00
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 \
2022-10-30 13:36:30 +03:00
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 \
2023-06-23 05:58:20 +03:00
read more about them at https : / / dbzer0 . com / blog / the - kudos - based - economy - for - the - koboldai - horde / . " ,
)
2022-10-30 13:36:30 +03:00
2022-10-18 04:01:19 +03:00
with txt2img_tab :
2023-06-23 05:58:20 +03:00
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
2022-10-18 04:01:19 +03:00
# Sampling Steps
2023-06-23 05:58:20 +03:00
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) " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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. " ,
)
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 . \
2023-06-23 05:58:20 +03:00
Default : 1 " ,
)
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 " ,
)
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 :
2023-06-23 05:58:20 +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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 (
2023-06-23 05:58:20 +03:00
" 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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +03:00
st . session_state [
" defaults "
] . txt2img . update_preview_frequency = st . number_input (
" Preview Image Update Frequency " ,
min_value = 0 ,
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
2023-06-23 05:58:20 +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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 :
2023-06-23 05:58:20 +03:00
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 :
2023-06-23 05:58:20 +03:00
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
2023-06-23 05:58:20 +03:00
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) " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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. " ,
)
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. \
2022-10-18 04:01:19 +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 . \
2023-06-23 05:58:20 +03:00
Default : 1 " ,
)
2022-10-18 04:01:19 +03:00
with col4 :
# Inference Steps
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +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 " ,
)
st . session_state [ " defaults " ] . img2img . seed = st . text_input (
" Default Img2Img Seed " ,
value = st . session_state [ " defaults " ] . img2img . seed ,
help = " Default seed. " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 (
2023-06-23 05:58:20 +03:00
" 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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +03:00
st . session_state [
" defaults "
] . img2img . update_preview_frequency = st . number_input (
" Img2Img Preview Image Update Frequency " ,
min_value = 0 ,
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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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) " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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. " ,
)
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 . \
2023-06-23 05:58:20 +03:00
Default : 1 " ,
)
2022-10-06 11:46:24 +03:00
2022-10-18 04:01:19 +03:00
# Inference Steps
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +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
2023-06-23 05:58:20 +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 " ,
)
st . session_state [ " defaults " ] . txt2vid . seed = st . text_input (
" Default txt2vid Seed " ,
value = st . session_state [ " defaults " ] . txt2vid . seed ,
help = " Default seed. " ,
)
st . session_state [ " defaults " ] . txt2vid . scheduler_name = st . text_input (
" Default Txt2Vid Scheduler " ,
value = st . session_state [ " defaults " ] . txt2vid . scheduler_name ,
help = " Default scheduler. " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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 \
during a generation . " ,
)
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 " ,
)
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...
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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
2023-06-23 05:58:20 +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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +03:00
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 " ,
)
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 " ,
)
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 " ,
)
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 " ,
)
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
2023-06-23 05:58:20 +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 " ,
)
2022-10-18 04:01:19 +03:00
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
2023-06-23 05:58:20 +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 " ,
)
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 " )
2023-06-23 05:58:20 +03:00
# st.info("Under Construction. :construction_worker:")
col1 , col2 , col3 , col4 , col5 = st . columns ( 5 , gap = " large " )
2022-10-18 04:01:19 +03:00
with col1 :
2023-06-23 05:58:20 +03:00
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.
2023-06-23 05:58:20 +03:00
_ , _ , save_button_col , reset_button_col , _ , _ = st . columns (
[ 1 , 1 , 1 , 1 , 1 , 1 ] , gap = " large "
)
2022-10-18 04:01:19 +03:00
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 :
2023-06-23 05:58:20 +03:00
OmegaConf . save (
config = st . session_state . defaults ,
f = " configs/webui/userconfig_streamlit.yaml " ,
)
2022-10-18 04:01:19 +03:00
loaded = OmegaConf . load ( " configs/webui/userconfig_streamlit.yaml " )
assert st . session_state . defaults == loaded
#
2023-06-23 05:58:20 +03:00
if os . path . exists ( " .streamlit/config.toml " ) :
2022-10-18 04:01:19 +03:00
with open ( " .streamlit/config.toml " , " w " ) as toml_file :
toml . dump ( st . session_state [ " streamlit_config " ] , toml_file )
if reset_button :
2023-06-23 05:58:20 +03:00
st . session_state [ " defaults " ] = OmegaConf . load (
" configs/webui/webui_streamlit.yaml "
)
2022-10-18 04:01:19 +03:00
st . experimental_rerun ( )