a
    Ad                     @   s   d dl Z d dlZd dlmZmZmZmZmZ d dl	m
Z
 G dd dejZejedeg dejdd	 d
dd eg dejdd	 d
dd eddejdd i edd d dS )    N)scriptssharedui_componentsui_settingsgeneration_parameters_copypaste)
FormColumnc                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )ExtraOptionsSectionextra_optionsc                 C   s   d | _ d | _d S N)compssetting_namesself r   n/var/www/html/stable-diffusion-webui/extensions-builtin/extra-options-section/scripts/extra_options_section.py__init__   s    zExtraOptionsSection.__init__c                 C   s   dS )NzExtra optionsr   r   r   r   r   title   s    zExtraOptionsSection.titlec                 C   s   t jS r
   )r   AlwaysVisible)r   
is_img2imgr   r   r   show   s    zExtraOptionsSection.showc                    s  g  _ g  _g  _|rtjjntjj}dd tjD }t	
 J}tjjr\|r\t	jdddnt	  tt|tjj }t|D ]}t	  ttjjD ]}|tjj | }|t|kr q:|| }	t  t|	}
W d    n1 s0    Y   j |
  j|	 ||	}|d ur j|
|f qW d    q1 sP0    Y  qW d    n1 sr0    Y  W d    n1 s0    Y   fdd}|j|g  j ddd  j S )	Nc                 S   s   i | ]\}}||qS r   r   ).0vkr   r   r   
<dictcomp>       z*ExtraOptionsSection.ui.<locals>.<dictcomp>OptionsF)openc                     s(   dd  j D } t| dkr$| d S | S )Nc                 S   s   g | ]}t |qS r   )r   get_value_for_setting)r   keyr   r   r   
<listcomp>6   r   zGExtraOptionsSection.ui.<locals>.get_settings_values.<locals>.<listcomp>   r   )r   len)resr   r   r   get_settings_values5   s    z3ExtraOptionsSection.ui.<locals>.get_settings_values)fninputsoutputsqueueshow_progress)r   r   infotext_fieldsr   optsextra_options_img2imgextra_options_txt2imgr    infotext_to_setting_name_mappinggrBlocksextra_options_accordion	AccordionGroupmathceilr!   extra_options_colsrangeRowr   r   create_setting_componentappendgetload)r   r   r	   mapping	interface	row_countrowcolindexsetting_namecompZsetting_infotext_namer#   r   r   r   ui   s2    &
(
tzExtraOptionsSection.uic                 G   s.   t | j|D ]\}}||jvr||j|< qd S r
   )zipr   override_settings)r   pargsnamevaluer   r   r   before_process=   s    
z"ExtraOptionsSection.before_processN)	__name__
__module____qualname__sectionr   r   r   rD   rK   r   r   r   r   r      s   (r   )rD   zUser interfacezOptions in main UI - txt2imgc                   C   s   dt tjj iS Nchoiceslistr   r*   data_labelskeysr   r   r   r   <lambda>D   r   rV   infoZsettingsHintsShowQuicksettingsz6setting entries that also appear in txt2img interfaceszOptions in main UI - img2imgc                   C   s   dt tjj iS rP   rR   r   r   r   r   rV   E   r   z6setting entries that also appear in img2img interfacesr    z&Options in main UI - number of columns	precisionFz,Options in main UI - place into an accordion)r,   r+   r5   r0   )r3   gradior.   modulesr   r   r   r   r   Zmodules.ui_componentsr   Scriptr   options_templatesupdateoptions_section
OptionInfoDropdownMultijsrW   needs_reload_uiNumberr   r   r   r   <module>   s   ;&&