
    I g]/                        d dl Zd dl mZmZmZmZmZmZmZ d dl	Z	d dl
Z
d dlZd dl d dl  ej                  ej                          ej                   d      j#                  ej                         i dddd	d
 e       dd dd dd ddddddddddddddddddddddZd Zd Zd Zedk(  r e        yy)     N)ElevatedButton
FilePickerFilePickerResultEventPageRowTexticons)*)levelflet_runtimeoutput_typergbamodebasedevicergbcolorz	[0, 0, 0]ckpt	thresholdreverseFresizestaticformatsourcedest
use_customjitabortc                 @    | y	 t        |       }y# t        $ r Y yw xY w)NFT)float
ValueError)strtmps     B/var/www/html/transparent-background/transparent_background/gui.pyis_floatr'   )   s-    
{Cj s    	c                     !"#$%&'()  fd} 'fd}  %&)f	d}  %fd}  (fd}  fd}dt         ffd}dt         ffd	}dt         ffd
}	 "#$fd}
 fd}d _        d _        d _        t        j
                  j                   _        t	        j                  d|      }t	        j                  t        j                  j                         dj                  t        d   t        d   t        d   t        d   t        d   t        d          _        t	        j                   ddt        j                  j                   d      }t	        j"                  dd|      t	        j"                  dd|      't	        j$                  dd d!|t        j&                  j)                  d"      t        j&                  j)                  d#      t        j&                  j)                  d$      t        j&                  j)                  d%      t        j&                  j)                  d&      t        j&                  j)                  d'      t        j&                  j)                  d(      g)      )t        d   )_        t	        j$                  dd d*|t        j&                  j)                  d+      t        j&                  j)                  d,      g)      &t        d   &_        t+                t,        j.                  j1                  d-t,        j2                  j5                  t,        j2                  j7                  d.                  }t,        j2                  j9                  |d/      }t;        t,        j2                  j9                  |d0            }t	        j$                  dd1d||j=                         D cg c]!  }t        j&                  j)                  |      # c})      t        d   _        t        j&                  j)                  d2      g}|t?        t@        jB                  jE                               D cg c]0  }t        j&                  j)                  d3j                  |            2 c}z  }|t@        jF                  jH                  jK                         rd4gng z  }t	        j$                  dd1d||)      t        d   _        t	        jL                  d5d6|7      %t	        jL                  d5d8|7      t	        jL                  d5d9|7      tO        t        d:         %_        tO        t        d;         _        tO        t        d<         _        t	        jL                  d1d|7      (d (_        t	        jL                  d=d|7      d _         jQ                  t	        jR                  t	        jT                  d>d=d=?      t	        jV                  t	        jR                  |'|g      t	        jR                  )&(g      g      g             tY        |@      !tY        |@      t        t        j                  j                        dA_        t	        j                  ddt        j                  jZ                  d      }tY        |	@      t        t        j                  j                        dB_        t	        j                  ddt        j                  j\                  d      } j^                  ja                  !g       t	        jb                  d dCdDE      $dF$_        t	        jT                  dGH      "t	        jT                  dIH      # jQ                  tS        te        dJtf        jh                  !fdKL      te        dMtf        jj                  fdN jl                  O      |g      tS        te        dPtf        jj                  fdQ jl                  O      |g      tS        te        dRtf        jn                  |
 jl                  O      te        dStf        jp                  | jl                  O      $g              jQ                  tS        "#g             y c c}w c c}w )TNc                     j                   t        j                  j                  k(  rt        j                  j                  nt        j                  j                  _         j                          y N)
theme_modeft	ThemeModeLIGHTDARKupdateepages    r&   theme_changedzmain.<locals>.theme_changed3   sI     ",,"4"44 LL## 	
 	    c                 r    j                   t        d<   j                   t        d<   j                          y )Nr   r   )valueoptionsr0   )r2   	jit_checkr3   reverse_checks    r&   checkbox_changedzmain.<locals>.checkbox_changed;   s)    "*00	r5   c           	      4  	 	j                   t        d<   j                   t        d<   j                   t        d<   j                   t        d<   t        d   dk(  r;t        d   s2j                  dt        j                  g             dt        d<   n/t        d   dk7  r#t        d   rd	t        d<   j                  d       d
j                  t        d   t        d   t        d   t        d   t        d   t        d         _         j                          y )Nr   r   r   r   customr      TFEType: {}, Mode: {}, Device: {}, Threshold: {}, Resize: {}, Format: {}r   r   )r7   r8   insertr,   r   	remove_atr   r0   )
r2   b_fielddevice_dropdowng_fieldmode_dropdownoutput_textr3   r_fieldresize_dropdowntype_dropdowns
    r&   dropdown_changedzmain.<locals>.dropdown_changed@   sA   !.!4!4'--+11+11 =!X-gl6KKK2667GW"=>?"&GL!]#x/GL4I"'GL!NN1cjjkr  tA  lB  DK  LR  DS  U\  ]e  Uf  ho  p{  h|  ~E  FN  ~O  QX  Ya  Qb  cr5   c           	         t        j                        dkD  r/j                  j                         rt        j                        ndt        d<   t        j                        dkD  r/j                  j                         rt        j                        ndt        d<   t        j                        dkD  r/j                  j                         rt        j                        ndt        d<   t        t        d   t        d   t        d   g      t        d<   dj                  t        d   t        d   t        d   t        d	   t        d
   t        d         _        j                          y )Nr   r   r   r   r   r?   r   r   r   r   r   )lenr7   isdigitintr8   r$   r   r0   )r2   rB   rD   rF   r3   rG   s    r&   color_changedzmain.<locals>.color_changedR   sX   -0-?!-CH]H]H_s7==)ef-0-?!-CH]H]H_s7==)ef-0-?!-CH]H]H_s7==)efgclGCLIJcjjkr  tA  lB  DK  LS  DT  V]  ^f  Vg  ip  q|  i}  F  GO  P  RY  Zb  Rc  dr5   c           	         t        j                        dkD  r*t        j                        rt        j                        nd t        d<   t        t        d         rt        d   dk  st        d   dkD  rd nt        d   t        d<   dj                  t        d   t        d   t        d   t        d   t        d   t        d	         _        j                          y )
Nr   r   r>   r?   r   r   r   r   r   )rL   r7   r'   r"   r8   r   r0   )r2   rF   r3   threshold_fields    r&   threshold_changedzmain.<locals>.threshold_changedZ   s,   ?B?CXCX?Y\]?]bjkz  lA  lA  cBu_%:%:;  HL'/0D'E7S^K_bcKcgnozg{~gt  GN  OZ  G[cjjkr  tA  lB  DK  LR  DS  U\  ]e  Uf  ho  p{  h|  ~E  FN  ~O  QX  Ya  Qb  cr5   c           	      V   j                   j                  t              sj                   j                  t              rj                   nd t        d<   dj                  t        d   t        d   t        d   t        d   t        d   t        d         _         j                          y )Nr   r?   r   r   r   r   r   )r7   endswithIMG_EXTSVID_EXTSr8   r   r0   )r2   format_fieldrF   r3   s    r&   format_changedzmain.<locals>.format_changed`   s    2>2D2D2M2Mh2W[g[m[m[v[vw  \AL..  GKcjjkr  tA  lB  DK  LR  DS  U\  ]e  Uf  ho  p{  h|  ~E  FN  ~O  QX  Ya  Qb  cr5   r2   c                 n   j                          | j                  r| j                  d   j                  ndt        d<   t        d   _        j                          t        d   Ot
        j                  j                  t        d         d   t        d<   t        d   _        j                          y y )Nr   Not Selectedr   r   )r0   filespathr8   r7   ossplitr2   	dest_path	file_paths    r&   pick_files_resultzmain.<locals>.pick_files_resulte   s    /0wwAGGAJOON!(+	6?" ggmmGH,=>qAGFO%foIO #r5   c                 4   | j                   r| j                   ndt        d<   t        d   _        j                          t        d   Ot        j                   j                  t        d         d   t        d<   t        d   _        j                          y y )NrZ   r   r   r   )r\   r8   r7   r0   r]   r^   r_   s    r&   get_directory_resultz"main.<locals>.get_directory_resultp   sw    &'ffAFF.!(+	6?" ggmmGH,=>qAGFO%foIO #r5   c                     | j                   r| j                   ndt        d<   t        d   _        j                          y )NrZ   r   )r\   r8   r7   r0   )r2   r`   s    r&   get_dest_resultzmain.<locals>.get_dest_resulty   s/    $%FF!&&!&/	r5   c                    t         d   }|dk(  r	t         d   n|}dt         d<   t        |t         d   t         d   t         d   t         d	   t         d
   t         d   t         d   t         d   t         d   t         d   t                y )Nr   r=   r   Fr    r   r   r   r   r   r   r   r   r   r   )r8   entry_point)r2   r   r3   previewpreview_outprogress_rings     r&   processzmain.<locals>.process~   s    m,*5*Agg&{ K'(2CWV_V]^fVgipqwix  {B  CH  {I  KR  S^  K_  ah  iq  ar  t{  |D  tE  GN  OX  GY  [h  jn  pw  yD  FM  	Nr5   c                 8    dt         d<   j                          y )NTr    )r8   r0   r1   s    r&   click_abortzmain.<locals>.click_abort   s    r5   i  i  Fz	Dark mode)label	on_change)r   r?   r   r   r   r   r   r   
   )contentmarginpaddingbgcolorborder_radiuszuse torchscript)ro   r7   rp   r   type   zoutput typer   mapgreenwhitebluroverlayr=   )ro   width	hint_textrp   r8   zresize methodr   dynamic TRANSPARENT_BACKGROUND_FILE_PATH~z.transparent-backgroundzconfig.yaml   cpuzcuda:{}zmps:0<   R)r~   ro   rp   GBr   r   r   d   zVhttps://raw.githubusercontent.com/plemeri/transparent-background/main/figures/logo.png)srcr~   height)	on_resultz)Input file or directory will be displayedz*Output file or directory will be displayedamberz#eeeeee)r~   r   ru   r   .preview.png)r   .preview_out.pngz	Open Filec                 (    j                  d      S )NF)allow_multiple)
pick_files)_pick_files_dialogs    r&   <lambda>zmain.<locals>.<lambda>  s    '8'C'C', (D ( r5   )iconon_clickzOpen Directoryc                 $    j                         S r*   get_directory_path)r   get_directory_dialogs    r&   r   zmain.<locals>.<lambda>  s    ';'N'N'P r5   )r   r   disabledzOpen Destinationc                 $    j                         S r*   r   )r   get_dest_dialogs    r&   r   zmain.<locals>.<lambda>*  s    'I'I'K r5   ProcessStop)9r   window_widthwindow_heightwindow_resizabler,   r-   r.   r+   Switchr   colorsBLACKr   r8   r7   	Container	GREEN_100CheckboxDropdowndropdownOptionRemoverr]   environgetr\   abspath
expanduserjoinload_configkeysrangetorchcudadevice_countbackendsmpsis_available	TextFieldr$   addr   ImageColumnr   AMBERCYAN_200r}   extendProgressBarr   r	   UPLOAD_FILEFOLDER_OPENwebSENDSTOP)*r3   r4   r;   rJ   rO   rR   rX   rb   rd   rf   rl   rn   coutput_text_containercfg_pathhome_dirconfigskeydevice_optionsifile_path_containerdest_path_containerrB   r`   rC   ra   rW   rD   r   r   r9   rE   rF   r   ri   rj   rk   rG   rH   r:   rQ   rI   s*   `                     @@@@@@@@@@@@@@@@@@@@r&   mainr   2   s   
 $ 
2  5 0 
N DD!Dll((DO
		}=A''		0K_ffgno|g}  @G  HN  @O  QX  Ya  Qb  dk  lw  dx  zA  BJ  zK  MT  U]  M^  _KLL'II//"$ "35L\]IKKiuHXYMKK"KKv&KKu%KKw'KKw'KKv&KKy)KKx(
M "-0Mkk!"KKx(KKy)
	O $H-OIzz~~@"''//RTRYRYRdRdehRiBjkHww||H&?@H"'',,x?@GKK"4;LLNCS##C(CM "&/Mkk((/0NejjNeNeNgHhi1r{{)))*:*:1*=>iiN5>>#5#5#B#B#Dwi"LNkk"O "(+Oll3-HGll3-HGll3-HGgcl#GMgcl#GMgcl#GMllKK\]O O<<c^TLLHH
u  ~A  JM  N		9m=RST}o`oq}~
	
 #->?%0DE299??+IAIO,,!		  !?;O299??+IBIO,,II&&
 	LL*,@/RSNNGYOMMhh>,G((12KHH** $**P!XX	 $	
$ 	&**K!XX	 $
	
 	$!XX	 (!XX	 	
=/b 	HH	
 D
 js   	&a>5bc                  
   t        j                  t               t        j                  j                  d      rt        j                  d       t        j                  j                  d      rt        j                  d       y y )N)targetr   r   )r,   appr   r]   r\   isfileremove r5   r&   guir   M  sM    FF$	ww~~n%
		.!	ww~~()
		$% *r5   __main__)fletr,   r   r   r   r   r   r   r	   r]   r   loggingtransparent_background.utilstransparent_background.RemoverbasicConfigWARN	getLoggersetLevelget_backendr8   r'   r   r   __name__r   r5   r&   <module>r      sQ      
   * ,   ',, '   . ! * *7<< 8&
6 [] !	
 ! ! k 4  u h d T 4   
%!" E#(Xv& zE r5   