mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2025-01-29 09:42:54 +08:00
gradio 3.41.2 attempt
This commit is contained in:
parent
f0f100e67b
commit
08c68820cd
@ -93,8 +93,8 @@ class PydanticModelGenerator:
|
|||||||
d.field: (d.field_type, Field(default=d.field_value, alias=d.field_alias, exclude=d.field_exclude)) for d in self._model_def
|
d.field: (d.field_type, Field(default=d.field_value, alias=d.field_alias, exclude=d.field_exclude)) for d in self._model_def
|
||||||
}
|
}
|
||||||
DynamicModel = create_model(self._model_name, **fields)
|
DynamicModel = create_model(self._model_name, **fields)
|
||||||
DynamicModel.__config__.allow_population_by_field_name = True
|
DynamicModel.model_config['populate_by_name'] = True
|
||||||
DynamicModel.__config__.allow_mutation = True
|
DynamicModel.model_config['frozen'] = True
|
||||||
return DynamicModel
|
return DynamicModel
|
||||||
|
|
||||||
StableDiffusionTxt2ImgProcessingAPI = PydanticModelGenerator(
|
StableDiffusionTxt2ImgProcessingAPI = PydanticModelGenerator(
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
from inspect import signature
|
||||||
|
from functools import wraps
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
|
|
||||||
from modules import scripts, ui_tempdir, patches
|
from modules import scripts, ui_tempdir, patches
|
||||||
@ -64,10 +66,77 @@ def Blocks_get_config_file(self, *args, **kwargs):
|
|||||||
return config
|
return config
|
||||||
|
|
||||||
|
|
||||||
original_IOComponent_init = patches.patch(__name__, obj=gr.components.IOComponent, field="__init__", replacement=IOComponent_init)
|
def gradio_component_compatibility_layer(component_function):
|
||||||
|
@wraps(component_function)
|
||||||
|
def patched_function(*args, **kwargs):
|
||||||
|
original_signature = signature(component_function).parameters
|
||||||
|
valid_kwargs = {k: v for k, v in kwargs.items() if k in original_signature}
|
||||||
|
result = component_function(*args, **valid_kwargs)
|
||||||
|
return result
|
||||||
|
|
||||||
|
return patched_function
|
||||||
|
|
||||||
|
|
||||||
|
sub_events = ['then', 'success']
|
||||||
|
|
||||||
|
|
||||||
|
def gradio_component_events_compatibility_layer(component_function):
|
||||||
|
@wraps(component_function)
|
||||||
|
def patched_function(*args, **kwargs):
|
||||||
|
kwargs['js'] = kwargs.get('js', kwargs.pop('_js', None))
|
||||||
|
original_signature = signature(component_function).parameters
|
||||||
|
valid_kwargs = {k: v for k, v in kwargs.items() if k in original_signature}
|
||||||
|
|
||||||
|
result = component_function(*args, **valid_kwargs)
|
||||||
|
|
||||||
|
for sub_event in sub_events:
|
||||||
|
component_event_then_function = getattr(result, sub_event, None)
|
||||||
|
if component_event_then_function:
|
||||||
|
patched_component_event_then_function = gradio_component_sub_events_compatibility_layer(component_event_then_function)
|
||||||
|
setattr(result, sub_event, patched_component_event_then_function)
|
||||||
|
# original_component_event_then_function = patches.patch(f'{__name__}.', obj=result, field='then', replacement=patched_component_event_then_function)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
return patched_function
|
||||||
|
|
||||||
|
|
||||||
|
def gradio_component_sub_events_compatibility_layer(component_function):
|
||||||
|
@wraps(component_function)
|
||||||
|
def patched_function(*args, **kwargs):
|
||||||
|
kwargs['js'] = kwargs.get('js', kwargs.pop('_js', None))
|
||||||
|
original_signature = signature(component_function).parameters
|
||||||
|
valid_kwargs = {k: v for k, v in kwargs.items() if k in original_signature}
|
||||||
|
result = component_function(*args, **valid_kwargs)
|
||||||
|
return result
|
||||||
|
|
||||||
|
return patched_function
|
||||||
|
|
||||||
|
|
||||||
|
for component_name in set(gr.components.__all__ + gr.layouts.__all__):
|
||||||
|
try:
|
||||||
|
component = getattr(gr, component_name)
|
||||||
|
component_init = getattr(component, '__init__')
|
||||||
|
patched_component_init = gradio_component_compatibility_layer(component_init)
|
||||||
|
original_IOComponent_init = patches.patch(f'{__name__}.{component_name}', obj=component, field="__init__", replacement=patched_component_init)
|
||||||
|
|
||||||
|
component_events = set(getattr(component, 'EVENTS'))
|
||||||
|
for component_event in component_events:
|
||||||
|
component_event_function = getattr(component, component_event)
|
||||||
|
patched_component_event_function = gradio_component_events_compatibility_layer(component_event_function)
|
||||||
|
original_component_event_function = patches.patch(f'{__name__}.{component_name}.{component_event}', obj=component, field=component_event, replacement=patched_component_event_function)
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
pass
|
||||||
|
|
||||||
|
gr.Box = gr.Group
|
||||||
|
|
||||||
|
|
||||||
|
original_IOComponent_init = patches.patch(__name__, obj=gr.components.base.Component, field="__init__", replacement=IOComponent_init)
|
||||||
original_Block_get_config = patches.patch(__name__, obj=gr.blocks.Block, field="get_config", replacement=Block_get_config)
|
original_Block_get_config = patches.patch(__name__, obj=gr.blocks.Block, field="get_config", replacement=Block_get_config)
|
||||||
original_BlockContext_init = patches.patch(__name__, obj=gr.blocks.BlockContext, field="__init__", replacement=BlockContext_init)
|
original_BlockContext_init = patches.patch(__name__, obj=gr.blocks.BlockContext, field="__init__", replacement=BlockContext_init)
|
||||||
original_Blocks_get_config_file = patches.patch(__name__, obj=gr.blocks.Blocks, field="get_config_file", replacement=Blocks_get_config_file)
|
original_Blocks_get_config_file = patches.patch(__name__, obj=gr.blocks.Blocks, field="get_config_file", replacement=Blocks_get_config_file)
|
||||||
|
|
||||||
|
|
||||||
ui_tempdir.install_ui_tempdir_override()
|
ui_tempdir.install_ui_tempdir_override()
|
||||||
|
|
||||||
|
@ -32,8 +32,8 @@ from modules.generation_parameters_copypaste import image_from_url_text
|
|||||||
|
|
||||||
create_setting_component = ui_settings.create_setting_component
|
create_setting_component = ui_settings.create_setting_component
|
||||||
|
|
||||||
warnings.filterwarnings("default" if opts.show_warnings else "ignore", category=UserWarning)
|
# warnings.filterwarnings("default" if opts.show_warnings else "ignore", category=UserWarning)
|
||||||
warnings.filterwarnings("default" if opts.show_gradio_deprecation_warnings else "ignore", category=gr.deprecation.GradioDeprecationWarning)
|
# warnings.filterwarnings("default" if opts.show_gradio_deprecation_warnings else "ignore", category=gr.deprecation.GradioDeprecationWarning)
|
||||||
|
|
||||||
# this is a fix for Windows users. Without it, javascript files will be served with text/html content-type and the browser will not show any UI
|
# this is a fix for Windows users. Without it, javascript files will be served with text/html content-type and the browser will not show any UI
|
||||||
mimetypes.init()
|
mimetypes.init()
|
||||||
|
@ -61,7 +61,7 @@ def save_pil_to_file(self, pil_image, dir=None, format="png"):
|
|||||||
|
|
||||||
def install_ui_tempdir_override():
|
def install_ui_tempdir_override():
|
||||||
"""override save to file function so that it also writes PNG info"""
|
"""override save to file function so that it also writes PNG info"""
|
||||||
gradio.components.IOComponent.pil_to_temp_file = save_pil_to_file
|
# gradio.components.IOComponent.pil_to_temp_file = save_pil_to_file
|
||||||
|
|
||||||
|
|
||||||
def on_tmpdir_changed():
|
def on_tmpdir_changed():
|
||||||
|
@ -8,7 +8,7 @@ clean-fid
|
|||||||
einops
|
einops
|
||||||
fastapi>=0.90.1
|
fastapi>=0.90.1
|
||||||
gfpgan
|
gfpgan
|
||||||
gradio==3.41.2
|
gradio==4.7.1
|
||||||
inflection
|
inflection
|
||||||
jsonmerge
|
jsonmerge
|
||||||
kornia
|
kornia
|
||||||
|
@ -5,9 +5,9 @@ basicsr==1.4.2
|
|||||||
blendmodes==2022
|
blendmodes==2022
|
||||||
clean-fid==0.1.35
|
clean-fid==0.1.35
|
||||||
einops==0.4.1
|
einops==0.4.1
|
||||||
fastapi==0.94.0
|
fastapi==0.104.1
|
||||||
gfpgan==1.3.8
|
gfpgan==1.3.8
|
||||||
gradio==3.41.2
|
gradio==4.7.1
|
||||||
httpcore==0.15
|
httpcore==0.15
|
||||||
inflection==0.5.1
|
inflection==0.5.1
|
||||||
jsonmerge==1.8.0
|
jsonmerge==1.8.0
|
||||||
|
Loading…
Reference in New Issue
Block a user