Merge pull request #373 from light-and-ray/inputaccordion

use inputaccordions
pull/396/head
Kahsolt 2024-03-30 16:09:10 +08:00 committed by GitHub
commit 8f924dc6ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 37 additions and 7 deletions

View File

@ -72,6 +72,10 @@ from tile_methods.abstractdiffusion import AbstractDiffusion
from tile_methods.multidiffusion import MultiDiffusion
from tile_methods.mixtureofdiffusers import MixtureOfDiffusers
from tile_utils.utils import *
if hasattr(opts, 'hypertile_enable_unet'): # webui >= 1.7
from modules.ui_components import InputAccordion
else:
InputAccordion = None
CFG_PATH = os.path.join(scripts.basedir(), 'region_configs')
BBOX_MAX_NUM = min(getattr(shared.cmd_opts, 'md_max_regions', 8), 16)
@ -96,9 +100,14 @@ class Script(scripts.Script):
is_t2i = 'true' if not is_img2img else 'false'
uid = lambda name: f'MD-{tab}-{name}'
with gr.Accordion('Tiled Diffusion', open=False, elem_id=f'MD-{tab}'):
with (
InputAccordion(False, label='Tiled Diffusion', elem_id=uid('enabled')) if InputAccordion
else gr.Accordion('Tiled Diffusion', open=False, elem_id=f'MD-{tab}')
as enabled
):
with gr.Row(variant='compact') as tab_enable:
enabled = gr.Checkbox(label='Enable Tiled Diffusion', value=False, elem_id=uid('enabled'))
if not InputAccordion:
enabled = gr.Checkbox(label='Enable Tiled Diffusion', value=False, elem_id=uid('enabled'))
overwrite_size = gr.Checkbox(label='Overwrite image size', value=False, visible=not is_img2img, elem_id=uid('overwrite-image-size'))
keep_input_size = gr.Checkbox(label='Keep input image size', value=True, visible=is_img2img, elem_id=uid('keep-input-size'))

View File

@ -15,6 +15,10 @@ from tile_methods.demofusion import DemoFusion
from tile_utils.utils import *
from modules.sd_samplers_common import InterruptedException
# import k_diffusion.sampling
if hasattr(opts, 'hypertile_enable_unet'): # webui >= 1.7
from modules.ui_components import InputAccordion
else:
InputAccordion = None
CFG_PATH = os.path.join(scripts.basedir(), 'region_configs')
@ -54,9 +58,16 @@ class Script(scripts.Script):
is_t2i = 'true' if not is_img2img else 'false'
uid = lambda name: f'MD-{tab}-{name}'
with gr.Accordion('DemoFusion', open=False, elem_id=f'MD-{tab}'):
with (
InputAccordion(False, label='DemoFusion', elem_id=uid('enabled')) if InputAccordion
else gr.Accordion('DemoFusion', open=False, elem_id=f'MD-{tab}')
as enabled
):
with gr.Row(variant='compact') as tab_enable:
enabled = gr.Checkbox(label='Enable DemoFusion(Dont open with tilediffusion)', value=False, elem_id=uid('enabled'))
if not InputAccordion:
enabled = gr.Checkbox(label='Enable DemoFusion(Dont open with tilediffusion)', value=False, elem_id=uid('enabled'))
else:
gr.Markdown('(Dont open with tilediffusion)')
random_jitter = gr.Checkbox(label='Random Jitter', value = True, elem_id=uid('random-jitter'))
keep_input_size = gr.Checkbox(label='Keep input-image size', value=False,visible=is_img2img, elem_id=uid('keep-input-size'))
mixture_mode = gr.Checkbox(label='Mixture mode', value=False,elem_id=uid('mixture-mode'))

View File

@ -61,7 +61,7 @@ import gradio as gr
import modules.scripts as scripts
import modules.devices as devices
from modules.shared import state
from modules.shared import state, opts
from modules.ui import gr_show
from modules.processing import opt_f
from modules.sd_vae_approx import cheap_approximation
@ -70,6 +70,11 @@ from ldm.modules.diffusionmodules.model import AttnBlock, MemoryEfficientAttnBlo
from tile_utils.attn import get_attn_func
from tile_utils.typing import Processing
if hasattr(opts, 'hypertile_enable_unet'): # webui >= 1.7
from modules.ui_components import InputAccordion
else:
InputAccordion = None
def get_rcmd_enc_tsize():
if torch.cuda.is_available() and devices.device not in ['cpu', devices.cpu]:
@ -666,9 +671,14 @@ class Script(scripts.Script):
tab = 't2i' if not is_img2img else 'i2i'
uid = lambda name: f'MD-{tab}-{name}'
with gr.Accordion('Tiled VAE', open=False, elem_id=f'MDV-{tab}'):
with (
InputAccordion(False, label='Tiled VAE', elem_id=f'MDV-{tab}-enabled') if InputAccordion
else gr.Accordion('Tiled VAE', open=False, elem_id=f'MDV-{tab}')
as enabled
):
with gr.Row() as tab_enable:
enabled = gr.Checkbox(label='Enable Tiled VAE', value=False, elem_id=uid('enable'))
if not InputAccordion:
enabled = gr.Checkbox(label='Enable Tiled VAE', value=False, elem_id=uid('enable'))
vae_to_gpu = gr.Checkbox(label='Move VAE to GPU (if possible)', value=True, elem_id=uid('vae2gpu'))
gr.HTML('<p style="margin-bottom:0.8em"> Recommended to set tile sizes as large as possible before got CUDA error: out of memory. </p>')