§
    ïgÇj0  ã                   ó˜  — d Z ddlZddlZddlZddlZddlZddlmZ ej        dk    rC	 ej	         
                    d¬¦  «         ej         
                    d¬¦  «         n# e$ r Y nw xY w ee¦  «                             ¦   «         j        j        Zedz  Zedz  Zed	z  Zd
„ Zd„ Zd„ Zd„ Zdd„Zdd„Zd„ Zedk    r e¦   «          dS dS )u–   
Kieu Story AI Film Production Pipeline Helper (v2.0)
Quáº£n lÃ½ prompt, kiá»ƒm tra tÃ i nguyÃªn Ä‘a táº§ng nhÃ¢n váº­t, vÃ  há»— trá»£ xuáº¥t video.
é    N)ÚPathÚwin32úutf-8©ÚencodingÚ02_AI_PromptsÚ	04_AssetsÚ
06_Exportsc                 óÒ   — |                       ¦   «         st          d| › �¦  «         d S t          | dd¬¦  «        5 }t          j        |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nu   [!] KhÃ´ng tÃ¬m tháº¥y file: Úrr   r   )ÚexistsÚprintÚopenÚjsonÚload)Ú	file_pathÚfs     ú?C:\Projects\KieuStory\05_Production_Pipeline\pipeline_helper.pyÚ	load_jsonr      s³   € Ø×ÒÑÔð ÝÐ9¨iÐ9Ð9Ñ:Ô:Ð:ØˆtÝ	ˆi˜ wÐ	/Ñ	/Ô	/ð °1ÝŒy˜‰|Œ|ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   »AÁA Á#A c                  ó8  — t           dz  } t           dz  }t          | ¦  «        }t          |¦  «        }t          d¦  «         t          d¦  «         t          d¦  «         |�r”t          d¦  «         |                     di ¦  «        }d}|                     ¦   «         D ]|\  }}t          d	|› d
�¦  «         |                     ¦   «         D ]O\  }}	|dz  }|	                     dd¦  «        }
|	                     d|¦  «        }t          d|› d|› d|
› d�¦  «         ŒPŒ}t          d|› �¦  «         t          d¦  «         |                     di ¦  «                             ¦   «         D ]-\  }}t          d|› d|                     d¦  «        › �¦  «         Œ.t          d¦  «         |                     di ¦  «                             ¦   «         D ]-\  }}t          d|› d|                     d¦  «        › �¦  «         Œ.|r’t          d¦  «         |                     di ¦  «                             ¦   «         D ]Z\  }}t          d|› d|                     d¦  «        › d|                     d¦  «        › d|                     d ¦  «        › d!�	¦  «         Œ[t          d"¦  «         d S )#Núgemini_banana_prompts.jsonúmuse_ai_video_prompts.jsonúB
=================================================================uG   ðŸŽ¬ KIEU STORY - DANH Má»¤C TÃ€I NGUYÃŠN PROMPT AI TOÃ€N DIá»†N (V2.0)úA=================================================================u?   
[1] GEMINI BANANA (IMAGE GENERATION) - CÃ�C NHÃ“M NHÃ‚N Váº¬T:Ú
charactersr   u   
  ðŸ“� NhÃ³m [z]:é   Ú	role_typeu   NhÃ¢n váº­tÚcharacter_nameu
        â€¢ [z]: ú (ú)u:   
  ðŸ‘‰ Tá»•ng sá»‘ táº¡o hÃ¬nh nhÃ¢n váº­t thiáº¿t káº¿: u!   
[2] Bá»�I Cáº¢NH (ENVIRONMENTS):Úenvironmentsu     â€¢ [Únameu4   
[3] KEYFRAMES TRá»ŒNG Ä�Iá»‚M (CRITICAL KEYFRAMES):Úcritical_keyframesÚscenez'
[4] MUSE.AI (VIDEO MOTION GENERATION):Úmotion_promptsÚscene_titleÚmodez, Úduration_seczs)zC
=================================================================
)ÚPROMPTS_DIRr   r   ÚgetÚitems)Úbanana_fileÚ	muse_fileÚbanana_dataÚ	muse_dataÚchars_groupÚtotal_charsÚ	group_keyÚ
chars_dictÚchar_idÚchar_valÚroler"   ÚkeyÚvals                 r   Úlist_promptsr9   %   sï  € ÝÐ <Ñ<€KÝÐ:Ñ:€Iå˜KÑ(Ô(€KÝ˜)Ñ$Ô$€Iå	ˆ/ÑÔÐÝ	Ð
SÑTÔTÐTÝ	ˆ(�O„O€Oàñ 8ÝÐPÑQÔQÐQØ!—o’o l°BÑ7Ô7ˆØˆØ%0×%6Ò%6Ñ%8Ô%8ð 	@ð 	@Ñ!ˆI�zÝÐ2 YÐ2Ð2Ð2Ñ3Ô3Ð3Ø%/×%5Ò%5Ñ%7Ô%7ð @ð @Ñ!�˜Ø˜qÑ �Ø—|’| K°Ñ?Ô?�Ø—|’|Ð$4°gÑ>Ô>�ÝÐ> 7Ð>Ð>¨tÐ>Ð>°tÐ>Ð>Ð>Ñ?Ô?Ð?Ð?ð	@õ
 	ÐYÈKÐYÐYÑZÔZÐZåÐ2Ñ3Ô3Ð3Ø#Ÿš¨¸Ñ;Ô;×AÒAÑCÔCð 	7ð 	7‰HˆC�ÝÐ5˜CÐ5Ð5 C§G¢G¨F¡O¤OÐ5Ð5Ñ6Ô6Ð6Ð6åÐEÑFÔFÐFØ#ŸšÐ(<¸bÑAÔA×GÒGÑIÔIð 	8ð 	8‰HˆC�ÝÐ6˜CÐ6Ð6 C§G¢G¨GÑ$4Ô$4Ð6Ð6Ñ7Ô7Ð7Ð7àð nÝÐ8Ñ9Ô9Ð9Ø!ŸšÐ&6¸Ñ;Ô;×AÒAÑCÔCð 	nð 	n‰HˆC�ÝÐl˜CÐlÐl C§G¢G¨MÑ$:Ô$:ÐlÐl¸c¿gºgÀf¹o¼oÐlÐlÐQT×QXÒQXÐYgÑQhÔQhÐlÐlÐlÑmÔmÐmÐmÝ	Ð
 Ñ!Ô!Ð!Ð!Ð!ó    c                  ó  — t           dz  } t           dz  }t          | ¦  «        }t          |¦  «        }t           dz  }|                     dd¬¦  «         d}|�r¾|                     dd¦  «        }|                     d	i ¦  «        }|                     ¦   «         D ]Û\  }}	|d	z  |z  }
|
                     dd¬¦  «         |	                     ¦   «         D ]¢\  }}|
|› d
�z  }d|                     d¦  «        › d|                     d¦  «        › d�}|d|› d�z  }|d|                     d¦  «        › d�z  }|d|                     d¦  «        › d�z  }|d|› d�z  }|                     |d¬¦  «         |dz  }Œ£ŒÜ|dz  }|                     d¬¦  «         |                     di ¦  «                             ¦   «         D ]^\  }}||› d
�z  }d|                     d¦  «        › d�}|d |                     d¦  «        › d�z  }|                     |d¬¦  «         |dz  }Œ_|�rZ|d!z  }|                     d¬¦  «         |                     d"i ¦  «                             ¦   «         D �]\  }}||› d
�z  }d|                     d#¦  «        › d�}|d$|                     d%¦  «        › d�z  }|d&|                     d'¦  «        › d(�z  }|d)|                     d*¦  «        › d�z  }|                     d+¦  «        r|d,|                     d+¦  «        › d�z  }|                     d-¦  «        r|d.|                     d-¦  «        › d�z  }|d/|                     d0¦  «        › d�z  }|                     |d¬¦  «         |dz  }�Œt          d1|› d2|› �¦  «         d S )3Nr   r   Úexported_txtT)ÚparentsÚexist_okr   Úmaster_style_anchorÚ r   z.txtz--- r   r   r   z) ---
u   NhÃ³m thÆ° má»¥c: z

z[16:9 Cinema Prompt]:
Úprompt_16x9z[9:16 Shorts Prompt]:
Úprompt_9x16z[Master Style Anchor]:
ú
r   r   r   r!   )r>   u   --- Bá»‘i cáº£nh: r"   z ---

z[16:9 Prompt]:
Úvideo_motionr%   r&   u   Cháº¿ Ä‘á»™: r'   u   Thá»�i lÆ°á»£ng: r(   u    giÃ¢y
u   Chuyá»ƒn Ä‘á»™ng camera: Úcamera_motionÚreference_start_frameu.   Frame tham chiáº¿u Ä‘áº§u vÃ o (Start Frame): Úaudio_promptu,   
[Chá»‰ Thá»‹ Ã‚m Thanh / Audio Directive]:
z/
[Motion & Audio Combined Prompt for Muse.ai]:
Úmotion_promptu   [âœ“] Ä�Ã£ xuáº¥t thÃ nh cÃ´ng u#    prompt text files phÃ¢n cáº¥p ra: )r)   r   Úmkdirr*   r+   Ú
write_textr   )r,   r-   r.   r/   Úexport_folderÚcountÚmaster_anchorr0   r2   r3   Úgroup_folderr4   r5   Útxt_pathÚcontentÚ
env_folderr7   r8   Úvideo_folders                      r   Úexport_prompts_to_txtrS   L   sT  € ÝÐ <Ñ<€KÝÐ:Ñ:€Iå˜KÑ(Ô(€KÝ˜)Ñ$Ô$€Iå .Ñ0€MØ×Ò ¨tÐÑ4Ô4Ð4à€EØñ Ø#ŸšÐ(=¸rÑBÔBˆØ!—o’o l°BÑ7Ô7ˆà%0×%6Ò%6Ñ%8Ô%8ð 	ð 	Ñ!ˆI�zØ(¨<Ñ7¸)ÑCˆLØ×Ò t°dÐÑ;Ô;Ð;à%/×%5Ò%5Ñ%7Ô%7ð ð Ñ!�˜Ø'¨WÐ*:Ð*:Ð*:Ñ:�Øe §¢Ð.>Ñ!?Ô!?ÐeÐeÀ8Ç<Â<ÐP[ÑC\ÔC\ÐeÐeÐe�ØÐ?°	Ð?Ð?Ð?Ñ?�ØÐV°X·\²\À-Ñ5PÔ5PÐVÐVÐVÑV�ØÐV°X·\²\À-Ñ5PÔ5PÐVÐVÐVÑV�ØÐG°mÐGÐGÐGÑG�Ø×#Ò# G°gÐ#Ñ>Ô>Ð>Ø˜‘
��ðð # ^Ñ3ˆ
Ø×Ò $ÐÑ'Ô'Ð'Ø#Ÿš¨¸Ñ;Ô;×AÒAÑCÔCð 	ð 	‰HˆC�Ø! s L L LÑ0ˆHØD¨3¯7ª7°6©?¬?ÐDÐDÐDˆGØÐD¨#¯'ª'°-Ñ*@Ô*@ÐDÐDÐDÑDˆGØ×Ò °'ÐÑ:Ô:Ð:Ø�Q‰JˆEˆEàñ Ø$ ~Ñ5ˆØ×Ò DÐÑ)Ô)Ð)Ø!ŸšÐ&6¸Ñ;Ô;×AÒAÑCÔCð 	ñ 	‰HˆC�Ø#¨ l l lÑ2ˆHØ=˜SŸWšW ]Ñ3Ô3Ð=Ð=Ð=ˆGØÐ: s§w¢w¨v¡¤Ð:Ð:Ð:Ñ:ˆGØÐL¨3¯7ª7°>Ñ+BÔ+BÐLÐLÐLÑLˆGØÐO°3·7²7¸?Ñ3KÔ3KÐOÐOÐOÑOˆGØ�wŠwÐ.Ñ/Ô/ð qØÐpÈCÏGÊGÐTkÑLlÔLlÐpÐpÐpÑp�Ø�wŠw�~Ñ&Ô&ð hØÐgÈCÏGÊGÐTbÑLcÔLcÐgÐgÐgÑg�ØÐgÈ3Ï7Ê7ÐSbÑKcÔKcÐgÐgÐgÑgˆGØ×Ò °'ÐÑ:Ô:Ð:Ø�Q‰JˆE‰Eå	Ð
e¨EÐ
eÐ
eÐVcÐ
eÐ
eÑfÔfÐfÐfÐfr:   c            	      óÈ  — t          d¦  «         t          d¦  «         t          d¦  «         t          dz  } t          d¦  «         |                      ¦   «         r_t          |                      d¦  «        ¦  «        D ];}|                     ¦   «         j        dz  }t          d|j        d	›d
|d›d�¦  «         Œ<nt          d¦  «         t          dz  }t          d¦  «         |                     ¦   «         r|t          d„ | 	                    ¦   «         D ¦   «         ¦  «        }|D ]M}t          |                     d¦  «        ¦  «        }t          d|j        d›d
t          |¦  «        › d�¦  «         ŒNnt          d¦  «         t          d¦  «         dt          dz  fdt          dz  fdt          dz  fg}|D ]t\  }}	|	                     ¦   «         rGt          |	                     d¦  «        ¦  «        }t          d|d›d
t          |¦  «        › d�¦  «         Œ`t          d|d›d�¦  «         Œut          d¦  «         dt          dz  fdt          d z  fd!t          d"z  fg}
|
D ]t\  }}	|	                     ¦   «         rGt          |	                     d¦  «        ¦  «        }t          d#|d›d
t          |¦  «        › d�¦  «         Œ`t          d#|d›d�¦  «         Œut          d$¦  «         d S )%Nr   uS   ðŸ“Š KIEU STORY - TRáº NG THÃ�I Dá»° Ã�N & TÃ€I NGUYÃŠN (PHÃ‚N Táº¦NG Ä�áº¦Y Ä�á»¦)r   Ú01_Scripts_And_Episodesu>   
[VÄƒn báº£n Nguá»“n & Ká»‹ch báº£n 01_Scripts_And_Episodes/]:z*.*i   u     ðŸ“œ z<48z : z8.1fz KBu     [CHÆ¯A Táº O]r   u0   
[ThÆ° má»¥c NhÃ¢n váº­t 04_Assets/characters/]:c                 ó:   — g | ]}|                      ¦   «         ¯|‘ŒS © )Úis_dir)Ú.0Úds     r   ú
<listcomp>z check_status.<locals>.<listcomp>˜   s%   € ÐGÐGÐG ¸A¿HºH¹J¼JÐG˜!ÐGÐGÐGr:   u     ðŸ“� z<32z filesu'   
[ThÆ° má»¥c Bá»‘i cáº£nh & Ã‚m thanh]:z04_Assets/backgroundsÚbackgroundsz04_Assets/keyframesÚ	keyframesz04_Assets/audio_sfxÚ	audio_sfxu    : [CHÆ¯A Táº O]u-   
[ThÆ° má»¥c Xuáº¥t Báº£n Video 06_Exports/]:z06_Exports/episodes_30mÚepisodes_30mz06_Exports/shorts_5mÚ	shorts_5mz06_Exports/shorts_1m_9x16Úshorts_1m_9x16u     ðŸŽ¬ zB=================================================================
)r   ÚBASE_DIRr   ÚsortedÚglobÚstatÚst_sizer"   Ú
ASSETS_DIRÚiterdirÚlistÚlenÚEXPORTS_DIR)ÚSCRIPTS_DIRÚscript_fileÚsize_kbÚ	char_baseÚsubdirsrZ   ÚfilesÚother_assetsr"   ÚpathÚexport_dirss              r   Úcheck_statusru   ‡   sE  € Ý	ˆ/ÑÔÐÝ	Ð
_Ñ`Ô`Ð`Ý	ˆ(�O„O€OåÐ6Ñ6€KÝ	Ð
KÑLÔLÐLØ×ÒÑÔð !Ý! +×"2Ò"2°5Ñ"9Ô"9Ñ:Ô:ð 	Hð 	HˆKØ!×&Ò&Ñ(Ô(Ô0°4Ñ7ˆGÝÐF˜KÔ,ÐFÐFÐF°WÐFÐFÐFÐFÑGÔGÐGÐGð	Hõ 	ÐÑ Ô Ð å˜\Ñ)€IÝ	Ð
=Ñ>Ô>Ð>Ø×ÒÑÔð !ÝÐGÐG Y×%6Ò%6Ñ%8Ô%8ÐGÑGÔGÑHÔHˆØð 	?ð 	?ˆAÝ˜Ÿš ™œÑ'Ô'ˆEÝÐ=˜AœFÐ=Ð=Ð=­3¨u©:¬:Ð=Ð=Ð=Ñ>Ô>Ð>Ð>ð	?õ 	ÐÑ Ô Ð å	Ð
4Ñ5Ô5Ð5à	 ¥*¨}Ñ"<Ð=Ø	¥
¨[Ñ 8Ð9Ø	¥
¨[Ñ 8Ð9ð€Lð
 #ð 8ð 8‰
ˆˆdØ�;Š;‰=Œ=ð 	8Ý˜Ÿš 5Ñ)Ô)Ñ*Ô*ˆEÝÐ;˜DÐ;Ð;Ð;­¨U©¬Ð;Ð;Ð;Ñ<Ô<Ð<Ð<åÐ6˜DÐ6Ð6Ð6Ð6Ñ7Ô7Ð7Ð7å	Ð
:Ñ;Ô;Ð;à	"¥K°.Ñ$@ÐAØ	¥¨{Ñ!:Ð;Ø	$¥kÐ4DÑ&DÐEð€Kð
 "ð 8ð 8‰
ˆˆdØ�;Š;‰=Œ=ð 	8Ý˜Ÿš 5Ñ)Ô)Ñ*Ô*ˆEÝÐ;˜DÐ;Ð;Ð;­¨U©¬Ð;Ð;Ð;Ñ<Ô<Ð<Ð<åÐ6˜DÐ6Ð6Ð6Ð6Ñ7Ô7Ð7Ð7å	ˆ/ÑÔÐÐÐr:   ú00:00:00Ú60c                 ó  — t          t          j        ¦  «        j        dz  }|                     ¦   «         sd}d}t          |¦  «        ddt          |¦  «        dt          |¦  «        dt          | ¦  «        d|d	d
d	dddddddddddt          |¦  «        g}t          d¦  «         	 t          j        |d¬¦  «         t          d|› �¦  «         d S # t          j	        $ r }t          d|› �¦  «         t          d¦  «         d|| 
                    d¦  «        <   d|| 
                    d¦  «        <   d|v rd|| 
                    d¦  «        <   t          j        |d¬¦  «         t          d|› �¦  «         Y d }~d S d }~ww xY w) Nú
ffmpeg.exeÚffmpegzë[0:v]split=2[fg][bg];[bg]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=20:5[bg_blurred];[fg]scale=1080:1920:force_original_aspect_ratio=decrease[fg_scaled];[bg_blurred][fg_scaled]overlay=(W-w)/2:(H-h)/2[v]ú-yz-ssz-tú-iz-filter_complexz-mapz[v]z0:a?ú-c:vÚ
h264_nvencú-presetÚp4z-cqÚ20ú-c:aÚaacú-b:aÚ192ku0   [*] Ä�ang thá»±c thi render Shorts 9:16 NVENC...T)Úchecku+   [âœ“] Ä�Ã£ xuáº¥t thÃ nh cÃ´ng Short 9:16: u#   [!] Lá»—i khi cháº¡y ffmpeg nvenc: u$   [*] Thá»­ láº¡i vá»›i CPU libx264...Úlibx264ú-crfÚslowu*   [âœ“] Xuáº¥t thÃ nh cÃ´ng (CPU fallback): )r   ÚsysÚ
executableÚparentr   Ústrr   Ú
subprocessÚrunÚCalledProcessErrorÚindex)Úinput_videoÚoutput_videoÚ
start_timeÚdurationÚ
ffmpeg_exeÚfilter_complexÚcmdÚes           r   Ú
make_shortrš   ¼   sÂ  € Ý•c”nÑ%Ô%Ô,¨|Ñ;€JØ×ÒÑÔð Øˆ
ð	<ð õ 	ˆJ‰Œ˜Ø�s�:‰ŒØ�c�(‰mŒmØ�c�+ÑÔØ˜>Ø�Ø�Ø�Ø�4ØˆtØ�Ø�ÝˆLÑÔð€Cõ  
Ð
=Ñ>Ô>Ð>ðKÝŒ�s $Ð'Ñ'Ô'Ð'ÝÐJ¸LÐJÐJÑKÔKÐKÐKÐKøÝÔ(ð Kð Kð KÝÐ7°AÐ7Ð7Ñ8Ô8Ð8ÝÐ4Ñ5Ô5Ð5Ø'0ˆˆC�IŠI�lÑ#Ô#Ñ$Ø &ˆˆC�IŠI�eÑÔÑØ�3ˆ;ˆ;Ø#)ˆC�—	’	˜$‘”Ñ ÝŒ�s $Ð'Ñ'Ô'Ð'ÝÐI¸<ÐIÐIÑJÔJÐJÐJÐJÐJÐJÐJÐJøøøøðKøøøs   Â&(C ÃE?ÃBE:Å:E?c                 óB  — t          | ¦  «                             ¦   «         }|                     ¦   «         st          d|› �¦  «         dS |r!t          |¦  «                             ¦   «         n|}|                     |j        › dt          j        ¦   «         › |j        › �¦  «        }t          t          j
        ¦  «        j        dz  }|                     ¦   «         sd}t          |¦  «        ddt          |¦  «        dd	d
dddddddddddddt          |¦  «        g}t          d|j        › d�¦  «         t          j        |dd¬¦  «        }|j        dk    ry|                     ¦   «         re|                     ¦   «         j        dk    rHddl}|                     t          |¦  «        t          |¦  «        ¦  «         t          d|› �¦  «         dS t          d |j        › �¦  «         |                     ¦   «         r&	 |                     ¦   «          n# t.          $ r Y nw xY wdS )!u]   Ä�áº£o ngÆ°á»£c 1 file video (hÃ¬nh áº£nh + Ã¢m thanh) qua FFmpeg (-vf reverse -af areverse).u   [!] KhÃ´ng tÃ¬m tháº¥y video: FÚ
_rev_temp_ry   rz   r{   r|   z-vfÚreversez-afÚareverser}   r‡   rˆ   Ú18r   r‰   r‚   rƒ   r„   r…   z-arÚ48000u)   [*] Ä�ang thá»±c thi Reverse Motion cho: z...T)Úcapture_outputÚtextr   iè  Nu)   [âœ“] Ä�Ã£ Ä‘áº£o ngÆ°á»£c thÃ nh cÃ´ng: u   [!] Lá»—i khi reverse video: )r   Úresolver   r   Ú	with_nameÚstemÚosÚgetpidÚsuffixrŠ   r‹   rŒ   r�   r"   rŽ   r�   Ú
returncodere   rf   ÚshutilÚmoveÚstderrÚunlinkÚ	Exception)	r’   r“   Úin_pathÚout_pathÚtemp_outr–   r˜   Úresrª   s	            r   Úreverse_videor³   ç   s.  € å�;ÑÔ×'Ò'Ñ)Ô)€GØ�>Š>ÑÔð ÝÐ8¨wÐ8Ð8Ñ9Ô9Ð9Øˆuà/;ÐH�t�LÑ!Ô!×)Ò)Ñ+Ô+Ð+À€HØ× Ò  G¤LÐ!YÐ!Y½B¼I¹K¼KÐ!YÈÌÐ!YÐ!YÑZÔZ€Hå•c”nÑ%Ô%Ô,¨|Ñ;€JØ×ÒÑÔð Øˆ
õ 	ˆJ‰Œ˜Ø�c�'‰lŒlØˆyØˆzØ�	Ø�Ø�6Ø�Ø�ØˆwÝˆH‰Œð€Cõ 
Ð
G°g´lÐ
GÐ
GÐ
GÑHÔHÐHÝ
Œ.˜¨T¸Ð
=Ñ
=Ô
=€CØ
„~˜ÒÐ˜xŸšÑ0Ô0Ð°X·]²]±_´_Ô5LÈtÒ5SÐ5SØˆˆˆØ�Š•C˜‘M”M¥3 x¡=¤=Ñ1Ô1Ð1ÝÐD¸(ÐDÐDÑEÔEÐEØˆtåÐ:¨c¬jÐ:Ð:Ñ;Ô;Ð;Ø�?Š?ÑÔð 	ðØ—’Ñ!Ô!Ð!Ð!øÝð ð ð Ø�ðøøøàˆus   Ç:H È
HÈHc                  óø  — t          j        d¬¦  «        } |                      ddd¬¦  «         |                      ddd¬¦  «         |                      d	dd
¬¦  «         |                      ddd¬¦  «         |                      ddd¬¦  «         |                      dt          d¬¦  «         |                      dt          d¬¦  «         |                      dt          dd¬¦  «         |                      dt          dd¬¦  «         |                      ¦   «         }|j        rt          ¦   «          d S |j        rt          ¦   «          d S |j	        rt          ¦   «          d S |j        r4|j        st          d¦  «         d S t          |j        |j        ¦  «         d S |j        rG|j        r|j        st          d¦  «         d S t          |j        |j        |j        |j        ¦  «         d S |                      ¦   «          d S )Nz*Kieu Story Production Pipeline Helper v2.0)Údescriptionz--listÚ
store_trueu,   Liá»‡t kÃª danh sÃ¡ch prompt AI toÃ n diá»‡n)ÚactionÚhelpz--export-promptsu=   Xuáº¥t prompt phÃ¢n cáº¥p ra cÃ¡c file txt tiá»‡n sá»­ dá»¥ngz--statusu.   Kiá»ƒm tra tráº¡ng thÃ¡i tÃ i nguyÃªn dá»± Ã¡nz--make-shortu'   Cáº¯t vÃ  táº¡o video ngáº¯n dá»�c 9:16z--reverse-videou.   Ä�áº£o ngÆ°á»£c video vÃ  Ã¢m thanh qua FFmpegz--inputu!   Ä�Æ°á»�ng dáº«n video Ä‘áº§u vÃ o)Útyper¸   z--outputu   Ä�Æ°á»�ng dáº«n video Ä‘áº§u raz--startrv   u&   Thá»�i Ä‘iá»ƒm báº¯t Ä‘áº§u (HH:MM:SS))r¹   Údefaultr¸   z
--durationÚ58u   Thá»�i lÆ°á»£ng (giÃ¢y)u7   [!] Vui lÃ²ng chá»‰ Ä‘á»‹nh --input cho --reverse-videouG   [!] Vui lÃ²ng chá»‰ Ä‘á»‹nh --input vÃ  --output khi dÃ¹ng --make-short)ÚargparseÚArgumentParserÚadd_argumentr�   Ú
parse_argsri   r9   Úexport_promptsrS   Ústatusru   r³   Úinputr   Úoutputrš   Ústartr•   Ú
print_help)ÚparserÚargss     r   ÚmainrÈ     s/  € ÝÔ$Ð1]Ð^Ñ^Ô^€FØ
×Ò˜¨Ð<jÐÑkÔkÐkØ
×ÒÐ*°<ð  GFÐñ  Gô  Gð  GØ
×Ò˜
¨<Ð>nÐÑoÔoÐoØ
×Ò˜¨|ÐBkÐÑlÔlÐlØ
×ÒÐ)°,ÐEuÐÑvÔvÐvØ
×Ò˜	­Ð2UÐÑVÔVÐVØ
×Ò˜
­Ð3TÐÑUÔUÐUØ
×Ò˜	­°ZÐFnÐÑoÔoÐoØ
×Ò˜­3¸ÐC\ÐÑ]Ô]Ð]à×ÒÑÔ€Dà„yð Ý‰ŒˆˆˆØ	Ô	ð ÝÑÔÐÐÐØ	Œð Ý‰ŒˆˆˆØ	Ô	ð ØŒzð 	ÝÐKÑLÔLÐLØˆFÝ�d”j $¤+Ñ.Ô.Ð.Ð.Ð.Ø	Œð ØŒzð 	 ¤ð 	ÝÐ[Ñ\Ô\Ð\ØˆFÝ�4”:˜tœ{¨D¬J¸¼ÑFÔFÐFÐFÐFà×ÒÑÔÐÐÐr:   Ú__main__)rv   rw   )N)Ú__doc__r¦   rŠ   r   r¼   rŽ   Úpathlibr   ÚplatformÚstdoutÚreconfigurer¬   r®   Ú__file__r£   rŒ   rb   r)   rg   rk   r   r9   rS   ru   rš   r³   rÈ   Ú__name__rW   r:   r   ú<module>rÑ      sŸ  ððð ð
 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ð „<�7ÒÐðØŒ
×Ò¨ÐÑ0Ô0Ð0ØŒ
×Ò¨ÐÑ0Ô0Ð0Ð0øØð ð ð Øˆðøøøð ˆ4�‰>Œ>×!Ò!Ñ#Ô#Ô*Ô1€Ø˜Ñ(€Ø˜Ñ#€
Ø˜Ñ%€ðð ð ð$"ð $"ð $"ðN8gð 8gð 8gðv2ð 2ð 2ðj(Kð (Kð (Kð (KðV)ð )ð )ð )ðXð ð ðD ˆzÒÐØ€D�F„F€F€F€Fð Ðs   ©6A  Á A(Á'A(