Ë
    ºîÆjï  ã                   óÞ   — d Z ddlZddlZddlZddlmZ  ee«      j                  «       j                  j                  Z	e	dz  dz  Z
 ej                  d«      ZdZd„ Zd	„ Zed
k(  r e«        yy)a*  
Reune en un solo .txt los PROMPTS de todas las imagenes APROBADAS de un pool.

Cada PNG de APROBADO/ tiene un prompt que se busca asi, por orden de prioridad:
  1. regen_*.json  -> prompt corregido a mano (la version buena)
  2. manifest del lote --all -> prompt original con el que se genero

Marca cuales siguen la especificacion nueva de hombre y cuales son los antiguos,
para que se vea de un vistazo que prompts hay que regenerar.

    python Engine/dump_aprobados.py                     # explicit
    python Engine/dump_aprobados.py --pool spicy
é    N)ÚPathÚOutputÚtest_blockszW1boy,\s*\(faceless male:1\.4\),\s*muscular body(,\s*broad shoulders)?(,\s*taller male)?)z	full bodyz	wide shotzwhole body visiblezboth characters fully visiblec                  ó0  — i } t        t        j                  d«      «      D ]c  }	 t        j                  |j                  d¬«      «      }|D ]6  }|j                  dd«      }|sŒ|| vsŒ|j                  d«      sŒ/|d   | |<   Œ8 Œe | S # t        $ r Y Œsw xY w)zÜ-> {nombre_png: prompt}. Busca en TODOS los manifests, no solo los del
    pool: algunas imagenes fueron generadas en corridas viejas cuyo manifest
    quedo en la raiz de Output/test_blocks/ y su pool no era subcarpeta.zmanifest_*.jsonú	utf-8-sig©ÚencodingÚfileÚ Úprompt)ÚsortedÚTEST_BLOCKSÚrglobÚjsonÚloadsÚ	read_textÚ	ExceptionÚget)ÚoutÚmÚdataÚeÚfs        ú7C:\Users\Usuario\Downloads\NEW\Engine\dump_aprobados.pyÚload_all_promptsr      s™   € ð €CÜ”K×%Ñ%Ð&7Ó8Ö9ˆð	Ü—:‘:˜aŸk™k°;˜kÓ?Ó@ˆDó ˆAØ—‘�f˜bÓ!ˆAÚ�Q˜c’\ a§e¡e¨H¥oØ˜8™��A’ñ ð :ð €Jøô ò 	Ùð	ús   ¥%B	Â		BÂBc                  ó®  ‡— t        j                  d¬«      } | j                  dd¬«       | j                  «       }t        |j
                  z  dz  }|j                  «       st        d|› �«      ‚t        d„ |j                  d	«      D «       «      }i }|j                  d
«      D ]R  }	 t        j                  |j                  d¬«      «      }|j                  d«      sŒ;|j                  dd«      ||d   <   ŒT t        «       }g }|D ]•  }	|j                  |	«      xs |j                  |	d«      Š‰s|j!                  |	ddf«       Œ?t#        t$        j'                  ‰«      «      }
t)        ˆfd„t*        D «       «      }|
rdnd}|r|dz  }|j!                  |	‰|f«       Œ— |d|j
                  › d�z  }d|j
                  › dt-        |«      › d�d|j
                  › d�ddddd d!d"d#dg}|D ]„  \  }	Š}|j!                  |	› d$�«       |j!                  d«       |j!                  d%|› d&�«       |j!                  ‰«       |j!                  d«       |j!                  d'«       |j!                  d«       Œ† |j/                  d(j1                  |«      d)¬«       t3        d*„ |D «       «      }t3        d+„ |D «       «      }t3        d,„ |D «       «      }t5        d-t-        |«      › d.|j7                  t8        «      › �«       t5        d/|› �«       t5        d0|› �«       t5        d1|› �«       t5        «        |D ]  \  }	}}t5        d2|	d3›d4|› d&�«       Œ y # t        $ r Y �Œ°w xY w)5NzVolcado de prompts APROBADOS)Údescriptionz--poolÚexplicit)ÚdefaultÚAPROBADOz[!] No existe c              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Úname)Ú.0r   s     r   Ú	<genexpr>zmain.<locals>.<genexpr>8   s   è ø€ Ð5Ñ"4˜Q�!—&•&Ñ"4ùs   ‚z*.pngzregen_*.jsonr   r   r
   r   r   z
SIN PROMPTc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr"   © )r$   Útr   s     €r   r%   zmain.<locals>.<genexpr>M   s   øè ø€ Ð5©9 a�a˜6”k©9ùs   ƒÚNUEVOÚantiguoz +tags camaraÚprompts_aprobados_z.txtz# PROMPTS APROBADOS de z (z
 imagenes)z# en Output/test_blocks/z
/APROBADO/z*# formato: <nombre del png>:\n\n<prompt>\nÚ#zB# 'NUEVO'    = Corresponde con la especificacion actual del hombrezK#             (1boy, (faceless male:1.4), muscular body, [broad shoulders],z<#              [taller male]) y sin tags de cuerpo completo.zI# 'antiguo'  = Especificacion larga de hombre + tags de camara. La imagenz@#              fue aprobada asi, pero si la quieres con la nuevaz2#              especificacion hay que regenerarla.Ú:Ú[Ú]zN------------------------------------------------------------------------------Ú
zutf-8c              3   óV   K  — | ]!  \  }}}|j                  d «      sŒd|vsŒd–— Œ# y­w)r)   Úcamaraé   N©Ú
startswith©r$   Ú_r(   s      r   r%   zmain.<locals>.<genexpr>k   s*   è ø€ ÐV¡$‘w�q˜!˜Q¨!¯,©,°wÕ*?ÀHÐTUÒDU”¡$ùs   ‚)�)¢)c              3   óL   K  — | ]  \  }}}|j                  d «      sŒd–— Œ y­w)r*   r3   Nr4   r6   s      r   r%   zmain.<locals>.<genexpr>l   s"   è ø€ ÐB¡$‘w�q˜!˜Q¨!¯,©,°yÕ*A”¡$ùs   ‚$�$c              3   ó2   K  — | ]  \  }}}d |v sŒd–— Œ y­w)r2   r3   Nr'   r6   s      r   r%   zmain.<locals>.<genexpr>m   s   è ø€ Ð5™t‘G�A�q˜! x°1¢}Œa™tùs   ‚�z[OK] z prompts -> z&    NUEVO (spec actual, sin camara) : z'    antiguo (spec larga + camara)    : z&    con tags de camara              : z    Ú48z [)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr   ÚpoolÚis_dirÚ
SystemExitr   Úglobr   r   r   r   r   r   ÚappendÚboolÚNEW_MALEÚsearchÚanyÚ	FULL_BODYÚlenÚ
write_textÚjoinÚsumÚprintÚrelative_toÚBASE_DIR)ÚpÚargsÚapprÚpngsÚregenÚjÚdÚbatchÚrowsÚpngÚnew_specÚhas_camÚtagr   ÚlinesÚnuevosÚviejosÚcamr7   r   s                      @r   Úmainra   /   s+  ø€ Ü×ÑÐ,JÔK€AØ‡N�N�8 Z€NÔ0Ø�<‰<‹>€Dä˜Ÿ™Ñ" ZÑ/€DØ�;‰;Œ=Ü˜>¨$¨Ð0Ó1Ð1äÑ5 $§)¡)¨GÔ"4Ó5Ó5€Dð €EØ�Y‰Y�~Ö&ˆð	Ü—
‘
˜1Ÿ;™;°˜;Ó<Ó=ˆAð �5‰5��=Ø Ÿu™u X¨rÓ2ˆE�!�F‘)Òð 'ô Ó€Eà€DÛˆØ—‘˜3“Ò5 5§9¡9¨S°"Ó#5ˆÙØ�K‰K˜˜b ,Ð/Ô0ØÜœŸ™¨Ó/Ó0ˆÜÓ5­9Ó5Ó5ˆÙ!‰g yˆÙØ�?Ñ"ˆCØ�‰�S˜& #Ð&Õ'ð ð Ð% d§i¡i [°Ð5Ñ
5€Cà
! $§)¡) ¨B¬s°4«y¨k¸ÐDØ
" 4§9¡9 +¨ZÐ8Ø7ØØLØUØFØSØJØ<Ø
ð€Eó !ÑˆˆV�SØ�‰˜�u˜A�YÔØ�‰�RÔØ�‰�q˜˜˜Q�ZÔ Ø�‰�VÔØ�‰�RÔØ�‰�XÔØ�‰�RÕð !ð ‡N�N�4—9‘9˜UÓ#¨g€NÔ6äÑV¡$ÓVÓV€FÜÑB¡$ÓBÓB€FÜ
Ñ5™tÓ5Ó
5€CÜ	ˆE”#�d“)�˜L¨¯©¼Ó)BÐ(CÐ
DÔEÜ	Ð2°6°(Ð
;Ô<Ü	Ð3°F°8Ð
<Ô=Ü	Ð2°3°%Ð
8Ô9Ü	„GÛ‰ˆˆQ�Ü��S˜�H˜B˜s˜e 1Ð%Õ&ñ øôi ò 	Úð	ús   Â'%MÍ	MÍMÚ__main__)Ú__doc__r;   r   ÚreÚpathlibr   Ú__file__ÚresolveÚparentrO   r   ÚcompilerE   rH   r   ra   Ú__name__r'   ó    r   Ú<module>rl      sƒ   ðñó Û Û 	Ý á�‹>×!Ñ!Ó#×*Ñ*×1Ñ1€Ø˜Ñ! MÑ1€ð ˆ2�:‰:ð0ó1€ð.€	òò"E'ðP ˆzÒÙ…Fð rk   