§
    ïJÊj£\  ã                   ó¼  — 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ZddlmZ ddl	m
Z
mZmZmZ ddlZddlZddlZej        dk    rC	 ej                             d¬¦  «         ej                             d¬¦  «         n# e$ r Y nw xY w ed¦  «        Zed	z  Z ee¦  «        ej        vr$ej                             d ee¦  «        ¦  «         ed
z  Zedz  Zedz  dz  Zedz  Zedz  Z edz  Z!edz  Z"e #                    dd¬¦  «         e #                    dd¬¦  «         e  #                    dd¬¦  «         e! #                    dd¬¦  «         e" #                    dd¬¦  «         ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+  e'¦   «         Z,defd„Z-d(de%dedede.deeef         f
d„Z/	 d)de%d!eded"ed#e
e         d$e0deeef         fd%„Z1d&„ Z2e3d'k    r e2¦   «          dS dS )*uŒ  
=============================================================================
THáº¬P NGÅ¨ NIÃŠN (THE FIFTEEN SPRINGS) - PROLOGUE 40S FRESH RENDER PIPELINE
=============================================================================
Quy trÃ¬nh sáº£n xuáº¥t Ä‘iá»‡n áº£nh AI khÃ©p kÃ­n 40s Prologue hoÃ n toÃ n má»›i:
1. Ä�á»™ng cÆ¡ Muse2API Gateway (http://127.0.0.1:18610 /v1):
   - Sinh má»›i 100% qua AI (Text-to-Video & Image-to-Video First-frame).
   - Render tuáº§n tá»± 4 shots (má»—i shot 10s) theo chuá»—i Head-Tail Chaining:
     * Shot 1: LÃ ng quÃª Báº¯c Bá»™ 1980s & HiÃªn nhÃ  ngÃ³i ba gian (start_frame_720p.png)
     * Shot 2: Cáº­n cáº£nh cá»¥ Ã´ng ngÃ¢m Kiá»�u (Start Frame = Frame 239 cá»§a Shot 1)
     * Shot 3: VÃ²ng xoÃ¡y kÃ½ á»©c & XuyÃªn khÃ´ng (Start Frame = Frame 239 cá»§a Shot 2)
     * Shot 4: Khai má»Ÿ kinh thÃ nh Gia TÄ©nh triá»�u Minh (Start Frame = Frame 239 cá»§a Shot 3 hoáº·c start_frame_720p.png)
2. Ã‚m thanh Ä�iá»‡n áº£nh Chuáº©n Má»±c (NO BGM - 100% Pure Voice & Foley):
   - Tuyá»‡t Ä‘á»‘i KHÃ”NG ghÃ©p nháº¡c ná»�n nhÃ¢n táº¡o (No artificial BGM).
   - Giá»¯ nguyÃªn 100% giá»�ng ngÃ¢m Kiá»�u má»™c máº¡c nguyÃªn báº£n cá»§a cá»¥ giÃ  vÃ  foley tá»± nhiÃªn.
   - Chuyá»ƒn cáº£nh Ã¢m thanh: Equal-Power acrossfade (qsin) 0.5s triá»‡t tiÃªu click/pop.
   - Chuáº©n hÃ³a EBU R128 (-14.0 LUFS, True Peak <= -1.0 dBTP, Stereo 48kHz AAC).
3. Xuáº¥t báº£n Master:
   - 06_Exports/thap_ngu_nien_prologue_master_40s.mp4
   - 06_Exports/thap_ngu_nien_ep01_intro_prologue_60s.mp4 (Intro 20s + Prologue 40s)
   - Zero-Waste Contact Sheet & Critic Gate 14 lá»—i AI.
=============================================================================
é    N)ÚPath)ÚOptionalÚDictÚAnyÚTupleÚwin32úutf-8©Úencodingzc:/Projects/KieuStoryÚ05_Production_PipelineÚ	04_AssetsÚvideosÚaudioÚprologue_inspectÚ	keyframesÚcritic_queueÚ
06_ExportsÚtemp_prologue_freshT©ÚparentsÚexist_ok)ÚMuseApiClient)ÚAudioContinuityEngine)ÚZeroWasteContactSheet)Úevaluate_scene_gateÚreturnc                  óP  — t          t          j        ¦  «        j        dz  } |                      ¦   «         rt          | ¦  «        S dD ]^}t          j                             |¦  «        s|dk    r7	 t          j	        |dgd¬¦  «        j
        dk    r|c S ŒN# t          $ r Y ŒZw xY wŒ_dS )Nz
ffmpeg.exe)z�C:\Users\Admin\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-9.0.2-full_build\bin\ffmpeg.exez=C:\Users\Admin\AppData\Local\Microsoft\WindowsApps\ffmpeg.exeÚffmpegr   z-versionT)Úcapture_outputr   )r   ÚsysÚ
executableÚparentÚexistsÚstrÚosÚpathÚ
subprocessÚrunÚ
returncodeÚ	Exception)ÚexeÚps     ú&tools/render_fresh_prologue_flowkit.pyÚ
get_ffmpegr.   K   sÇ   € Ý
�sŒ~Ñ
Ô
Ô
%¨Ñ
4€CØ
‡z‚z�|„|ð Ý�3‰xŒxˆðð 
ð 
ˆõ
 Œ7�>Š>˜!ÑÔð 	  X¢ ðÝ”> 1 j /À$ÐGÑGÔGÔRÐVWÒWÐWØ�H�H�Hð Xøåð ð ð Ø�ðøøøð	 !.ð ˆ8s   Á/"BÂ
B"Â!B"ç     À‚@ÚclientÚtask_idÚlabelÚtimeoutc                 ó  — t          d|› d|› d�¦  «         t          j        ¦   «         }d}| j        › d|› �}t          j        ¦   «         |z
  |k     �r™t          j        d¦  «         	 t	          j        || j        d¬¦  «        }|                     ¦   «          |                     ¦   «         }n*# t          $ r}	t          d	|	› d
�¦  «         Y d}	~	Œ—d}	~	ww xY w|                     d¦  «        }
|                     dd¦  «        }||k    rTt          t          j        ¦   «         |z
  ¦  «        }t          d|d›d|› d|
                     ¦   «         › d|› d�	¦  «         |}|
dk    rB|                     d¦  «        pi }|                     d¦  «        }|st          d|› �¦  «        ‚|S |
dk    r'|                     d¦  «        }t          d|› �¦  «        ‚t          j        ¦   «         |z
  |k     �°™t          d|› d|› d�¦  «        ‚)uO   Theo dÃµi tiáº¿n Ä‘á»™ táº¡o video trÃªn Muse2API vá»›i thÃ´ng bÃ¡o chi tiáº¿t.u4         [*] Ä�ang theo dÃµi tiáº¿n Ä‘á»™ Muse.ai cho [z] (Task ID: ú)...éÿÿÿÿz/v1/videos/g      @g      (@)Úheadersr3   u8         [~] Táº¡m thá»�i máº¥t káº¿t ná»‘i tá»›i gateway (u   ), Ä‘ang thá»­ láº¡i...NÚstatusÚprogressr   z      [Ú03dzs] [u   ] Tráº¡ng thÃ¡i: ú (z%)Ú	succeededÚresultÚurlu,   Task thÃ nh cÃ´ng nhÆ°ng thiáº¿u URL video: ÚfailedÚerroru(   Táº¡o video tháº¥t báº¡i tá»« Muse2API: u%   Háº¿t thá»�i gian chá»� táº¡o video (zs) cho task ú.)ÚprintÚtimeÚbase_urlÚsleepÚrequestsÚgetr7   Úraise_for_statusÚjsonr*   ÚintÚupperÚRuntimeErrorÚTimeoutError)r0   r1   r2   r3   ÚstartedÚlast_pr>   ÚrespÚdataÚer8   r9   Úelapsedr=   Ú	video_urlÚerrs                   r-   Úpoll_task_with_displayrV   ]   sC  € å	Ð
aÀÐ
aÐ
aÐT[Ð
aÐ
aÐ
aÑbÔbÐbÝŒi‰kŒk€GØ€FØŒ_Ð
2Ð
2¨Ð
2Ð
2€Cå
Œ)‰+Œ+˜Ñ
 'Ò
)Ñ
)ÝŒ
�3‰Œˆð	Ý”< ¨V¬^ÀTÐJÑJÔJˆDØ×!Ò!Ñ#Ô#Ð#Ø—9’9‘;”;ˆDˆDøÝð 	ð 	ð 	ÝÐgÈQÐgÐgÐgÑhÔhÐhØˆHˆHˆHˆHøøøøð	øøøð —’˜(Ñ#Ô#ˆØ—8’8˜J¨Ñ*Ô*ˆà�vÒÐÝ�$œ)™+œ+¨Ñ/Ñ0Ô0ˆGÝÐc˜GÐcÐcÐc¨UÐcÐcÀVÇ\Â\Á^Ä^ÐcÐcÐW_ÐcÐcÐcÑdÔdÐdØˆFà�[Ò Ð Ø—X’X˜hÑ'Ô'Ð-¨2ˆFØŸ
š
 5Ñ)Ô)ˆIØð ZÝ"Ð#XÐRVÐ#XÐ#XÑYÔYÐYØˆKà�XÒÐØ—(’(˜7Ñ#Ô#ˆCÝÐOÈ#ÐOÐOÑPÔPÐPõ7 Œ)‰+Œ+˜Ñ
 'Ò
)Ñ
)õ: Ð^¸wÐ^Ð^ÐT[Ð^Ð^Ð^Ñ
_Ô
_Ð_s   Á(AB- Â-
CÂ7CÃCé
   Úshot_idÚpromptÚinput_frame_pathÚdurationc                 óø  — t           |› d�z  }t          |z  }|                     dd¬¦  «         |dz  }t          d¦  «         t          d|› d|› d�¦  «         t          d	|j        › �¦  «         |rJ|                     ¦   «         r6t          d
|j        › d|                     ¦   «         j        dz  › d�¦  «         nt          d¦  «         t          d¦  «         |                      ||r#|                     ¦   «         rt          |¦  «        nddd|¬¦  «        }	t          d|	› �¦  «         t          | |	|d¬¦  «        }
|
d         d         }t          d|› �¦  «         |                      ||¦  «         t          d|j        › d|                     ¦   «         j        dz  › d�¦  «         t          j        t          |¦  «        ¦  «        }t          |                     t          j        ¦  «        ¦  «        }t#          d|dz
  ¦  «        }|                     t          j        |¦  «         |                     ¦   «         \  }}|                     ¦   «          |r?|�=t          j        t          |¦  «        |¦  «         t          d|› d|j        › �¦  «         nct/          ¦   «         }|ddd d!t          |¦  «        d"d#d$d%t          |¦  «        g}t1          j        |dd¬&¦  «         t          d'|j        › �¦  «         ||fS )(us   
    Render 1 shot má»›i 100% qua Muse2API, táº£i vá»� vÃ  trÃ­ch xuáº¥t tail frame chuáº©n bá»‹ cho shot sau.
    z_10s_v2.mp4Tr   zclean_frame_239_v2.jpgzG
----------------------------------------------------------------------u    ðŸŽ¬ Báº®T Ä�áº¦U Sáº¢N XUáº¤T: r;   ú)u      Ä�Ã­ch video xuáº¥t báº£n: z   Start Frame: i   z KB)u*      Start Frame: KhÃ´ng cÃ³ (Text-to-Video)zF----------------------------------------------------------------------NÚsoraz16:9)rY   ÚimageÚmodelÚsizer[   u-      âœ“ Ä�Ã£ kÃ­ch hoáº¡t tÃ¡c vá»¥ Muse2API: r/   )r3   r=   r>   u-      âœ“ Video Ä‘Ã£ sáºµn sÃ ng trÃªn gateway: u/      âœ“ Ä�Ã£ táº£i vÃ  lÆ°u video tÆ°Æ¡i má»›i: r   é   u-      âœ“ Ä�Ã£ trÃ­ch xuáº¥t Tail Frame (frame #z): ú-yz-sseofz-0.1ú-iz-vframesÚ1z-q:vÚ2©Úcheckr   u1      âœ“ Ä�Ã£ trÃ­ch xuáº¥t Tail Frame qua FFmpeg: )Ú
VIDEOS_DIRÚKEYFRAMES_DIRÚmkdirrB   Únamer#   ÚstatÚst_sizeÚcreate_video_taskr$   rV   Údownload_mediaÚcv2ÚVideoCapturerJ   rG   ÚCAP_PROP_FRAME_COUNTÚmaxÚsetÚCAP_PROP_POS_FRAMESÚreadÚreleaseÚimwriter.   r'   r(   )r0   rX   r2   rY   rZ   r[   Útarget_video_pathÚshot_kf_dirÚtail_frame_pathr1   Ú	task_datarT   ÚcapÚtotal_framesÚ
target_posÚretÚ
tail_frameÚ
ffmpeg_binÚcmd_tfs                      r-   Úrender_shot_with_tailr…   „   sf  € õ #¨Ð%<Ð%<Ð%<Ñ<ÐÝ 'Ñ)€KØ×Ò˜d¨TÐÑ2Ô2Ð2Ø!Ð$<Ñ<€Oå	ˆ/ÑÔÐÝ	Ð
@¨UÐ
@Ð
@°gÐ
@Ð
@Ð
@ÑAÔAÐAÝ	Ð
CÐ+<Ô+AÐ
CÐ
CÑDÔDÐDØð =Ð,×3Ò3Ñ5Ô5ð =ÝÐgÐ!1Ô!6ÐgÐgÐ:J×:OÒ:OÑ:QÔ:QÔ:YÐ]aÑ:aÐgÐgÐgÑhÔhÐhÐhåÐ;Ñ<Ô<Ð<Ý	ˆ(�O„O€Oð ×&Ò&ØØ(8ÐaÐ=M×=TÒ=TÑ=VÔ=VÐa�cÐ"Ñ#Ô#Ð#Ð]aØØØð 'ñ ô €Gõ 
Ð
C¸'Ð
CÐ
CÑDÔDÐDõ ' v¨w¸ÀuÐMÑMÔM€IØ˜(Ô# EÔ*€IÝ	Ð
E¸)Ð
EÐ
EÑFÔFÐFð ×Ò˜)Ð%6Ñ7Ô7Ð7Ý	ð  EÐ<MÔ<Rð  Eð  EÐVg×VlÒVlÑVnÔVnÔVvÐz~ÑV~ð  Eð  Eð  Eñ  Fô  Fð  Fõ Ô
�3Ð0Ñ1Ô1Ñ
2Ô
2€CÝ�s—w’w�sÔ7Ñ8Ô8Ñ9Ô9€LÝ�Q˜ qÑ(Ñ)Ô)€JØ‡G‚G�CÔ# ZÑ0Ô0Ð0Ø—h’h‘j”j�O€CˆØ‡K‚K�M„M€Mà
ð ZˆzÐ%ÝŒ•C˜Ñ(Ô(¨*Ñ5Ô5Ð5ÝÐc¸jÐcÐcÈ_ÔMaÐcÐcÑdÔdÐdÐdå‘\”\ˆ
à˜Ø�fØ•#Ð'Ñ(Ô(Ø˜Ø�CÝ�Ñ Ô ð
ˆõ 	Œ�v T¸$Ð?Ñ?Ô?Ð?ÝÐXÀ/ÔBVÐXÐXÑYÔYÐYà˜oÐ-Ð-ó    c                  óð  — t          d¦  «         t          d¦  «         t          d¦  «         t          ¦   «         } 	 |                      ¦   «         }t          d|                     di ¦  «                             dd¦  «        › d|                     di ¦  «                             dd¦  «        › d	�¦  «         n># t          $ r1}t          d
|› d�¦  «         t          j        d¦  «         Y d }~nd }~ww xY wt          ¦   «         }t          d|› �¦  «         d}d}d}t          dz  dz  }| 	                    ¦   «         st          dz  dz  }t          | ||||d¬¦  «        \  }}	d}
d}d}|	}t          | |
|||d¬¦  «        \  }}d}d}d}|}t          | ||||d¬¦  «        \  }}d}d}d}t          dz  dz  }| 	                    ¦   «         s|}t          | ||||d¬¦  «        \  }}t          d¦  «         t          d ¦  «         t          d¦  «         t          d!¦  «         t          d"z  t          d#z  t          d$z  t          d%z  g}||||g}g }t          t          ||¦  «        d¦  «        D ]í\  }\  } }!t          d&|d'›d(�z  }"t          d)|› d*| j        › d+|!j        › d,�¦  «         g |‘d-‘d.‘d/‘d0‘d1‘d2‘t!          | ¦  «        ‘d.‘d/‘d0‘d1‘d2‘t!          |!¦  «        ‘d3‘d4‘d5‘d6‘d7‘d8‘d9‘d:‘d;‘d<‘d;‘d=‘d>‘d?‘d@‘dA‘dB‘dC‘dD‘t!          |"¦  «        ‘}#t#          j        |#dEdE¬F¦  «         |                     |"¦  «         t          dG|› dH|"j        › �¦  «         Œît          dI¦  «         t          dJz  }$|d-d2t!          |dK         ¦  «        dLdMd;dNd;dOd3d4d5d6d7dPd9d:d>d?d@dAdBdCt!          |$¦  «        g}%t#          j        |%dEdE¬F¦  «         t          dQz  }&dR}'g |‘d-‘d2‘t!          |d         ¦  «        ‘d2‘t!          |d         ¦  «        ‘d2‘t!          |dS         ¦  «        ‘d2‘t!          |$¦  «        ‘dL‘|'‘d;‘dT‘d;‘dU‘d3‘d4‘d5‘d6‘d7‘d8‘d9‘d:‘d>‘d?‘d@‘dA‘dB‘dC‘t!          |&¦  «        ‘}(t#          j        |(dEdE¬F¦  «         t          dV|&j        › �¦  «         t          dW¦  «         t(          dXz  })t*                               t!          |&¦  «        t!          |)¦  «        dYdE¬Z¦  «         t          d[|)j        › �¦  «         t/          j        |)t2          d\z  ¦  «         t(          d]z  }*|* 	                    ¦   «         �r2t          d^¦  «         t(          d_z  }+t          d`z  },t5          |,dadb¬c¦  «        5 }-|-                     dd|*                     ¦   «         › de�¦  «         |-                     dd|)                     ¦   «         › de�¦  «         d d d ¦  «         n# 1 swxY w Y   |d-dfdgdhdid2t!          |,¦  «        djdkt!          |+¦  «        g}.t#          j        |.dEdE¬F¦  «         t/          j        |+t(          dlz  ¦  «         t/          j        |+t2          dlz  ¦  «         t          dm|+j        › �¦  «         t          dn¦  «         t;          ¦   «         }/t<          doz  }0|/                     t!          |)¦  «        t!          |0¦  «        dpdq¬r¦  «         t          ds|0j        › �¦  «         	 tA          dtt!          |)¦  «        t!          |0¦  «        ¬u¦  «        }1t          dvtC          |1dwd ¦  «        › dxtC          |1dyd ¦  «        › �¦  «         n)# t          $ r}t          dz|› �¦  «         Y d }~nd }~ww xY wt*           "                    t!          |)¦  «        ¦  «        }2t          d¦  «         t          d{¦  «         t          d¦  «         t          d||)› �¦  «         t          d}¦  «         t          d~|2                     d¦  «        › d€�¦  «         t          d�|2                     d‚¦  «        › dƒ�¦  «         t          d„|2                     d…¦  «        › d†�¦  «         t          d‡¦  «         t          dˆ¦  «         t          d‰¦  «         d S )ŠNzP================================================================================uG   ðŸŽ¬ KIEU STORY - PRODUCTION OF 40S FRESH PROLOGUE VIA MUSE2API GATEWAYu,   [âœ“] Muse2API Gateway trá»±c tuyáº¿n 100%: ÚaccountsÚ	availabler   ú/Útotalu    tÃ i khoáº£n kháº£ dá»¥ng.u5   [!] KhÃ´ng thá»ƒ káº¿t ná»‘i tá»›i Muse2API Gateway (u%   ). Vui lÃ²ng kiá»ƒm tra cá»•ng 18610!rb   u   [âœ“] Nhá»‹ phÃ¢n FFmpeg: Úprologue_shot01u6   Shot 1: LÃ ng QuÃª Báº¯c Bá»™ 1980s & HiÃªn NhÃ  NgÃ³iu  Bá»‘i cáº£nh lÃ ng quÃª Báº¯c Bá»™ Viá»‡t Nam nhá»¯ng nÄƒm 1980 (1980s Northern Vietnamese rural countryside). Khung cáº£nh chiá»�u tÃ  thanh bÃ¬nh, hiÃªn ngÃ´i nhÃ  ngÃ³i ba gian rÃªu phong cá»• kÃ­nh, sÃ¢n gáº¡ch Ä‘á»�, ráº·ng cau cao vÃºt Ä‘ung Ä‘Æ°a trong giÃ³. Má»™t cá»¥ Ã´ng 70 tuá»•i hiá»�n tá»«, tÃ³c rÃ¢u báº¡c phÆ¡, máº·c Ã¡o bÃ  ba nÃ¢u sá»“ng má»™c máº¡c ngá»“i trÃªn chÃµng tre á»Ÿ hiÃªn nhÃ , tay cáº§m quáº¡t mo cau phe pháº©y nhá»‹p nhÃ ng. Ä�á»©a chÃ¡u nhá»� khoáº£ng 6 tuá»•i ngoan ngoÃ£n gá»‘i Ä‘áº§u lÃªn Ä‘Ã¹i Ã´ng ngá»§ thiu thiu thanh tháº£n. Cá»¥ Ã´ng miá»‡ng máº¥p mÃ¡y ngÃ¢m nga náº£y Kiá»�u tráº§m máº·c. Ã�nh hoÃ ng hÃ´n vÃ ng áº¥m Ã¡p rá»�i qua hÃ ng hiÃªn, mÃ¡y quay slow cinematic dolly-in, 24fps hoÃ i niá»‡m giÃ u cháº¥t thÆ¡. Ã‚m thanh: Tiáº¿ng quáº¡t mo cau phe pháº©y nhá»‹p nhÃ ng, tiáº¿ng lÃ¡ cau xÃ o xáº¡c trong giÃ³ chiá»�u, tiáº¿ng ve rÃ¢m ran xa xa, tiáº¿ng cá»¥ Ã´ng ngÃ¢m nga náº£y Kiá»�u tráº§m áº¥m. Tuyá»‡t Ä‘á»‘i KHÃ”NG sinh nháº¡c ná»�n, khÃ´ng Ã¢m thanh Ä‘iá»‡n tá»­, khÃ´ng táº¡p Ã¢m rÃ¨ nhiá»…u.Úprologue_shot1zstart_frame_720p.pngrW   )r0   rX   r2   rY   rZ   r[   Úprologue_shot02u;   Shot 2: Ná»—i Niá»�m Náº£y Kiá»�u & Ã�nh Máº¯t Tráº§m Máº·cuF  Tiáº¿p diá»…n mÆ°á»£t mÃ  tá»« khung hÃ¬nh cáº­n cáº£nh: Cáº­n cáº£nh cá»¥ Ã´ng 70 tuá»•i gÆ°Æ¡ng máº·t Ä‘Ã´n háº­u háº±n in náº¿p nhÄƒn nÄƒm thÃ¡ng vÃ  Ä‘á»©a chÃ¡u gÃ¡i nhá»� Ä‘ang ngá»§ say bÃ¬nh yÃªn trÃªn ngá»±c Ã´ng dÆ°á»›i Ã¡nh hoÃ ng hÃ´n vÃ ng áº¥m háº¯t qua hÃ ng hiÃªn nhÃ  ngÃ³i cá»• kÃ­nh. BÃ n tay giÃ  nua nháº¹ nhÃ ng phe pháº©y quáº¡t mo cau. Ä�Ã´i mÃ´i Ã´ng máº¥p mÃ¡y ngÃ¢m nga Ä‘iá»‡u thÆ¡ lá»¥c bÃ¡t Kiá»�u tráº§m bá»•ng: 'Chá»¯ tÃ i chá»¯ má»‡nh khÃ©o lÃ  ghÃ©t nhau; Tráº£i qua má»™t cuá»™c bá»ƒ dÃ¢u...'. Ã�nh máº¯t Ã´ng Ä‘Äƒm chiÃªu, tráº§m máº·c nhÃ¬n xa xÄƒm vÃ o khoáº£ng khÃ´ng gian chiá»�u tÃ , khÃ³i lam chiá»�u báº£ng láº£ng. CÃº mÃ¡y slow cinematic push-in dáº§n vÃ o Ä‘Ã´i máº¯t ngáº­p trÃ n kÃ½ á»©c cá»§a ngÆ°á»�i Ã´ng, 24fps hoÃ i niá»‡m giÃ u cáº£m xÃºc. Ã‚m thanh: Giá»�ng cá»¥ Ã´ng 70 tuá»•i ngÃ¢m thÆ¡ Kiá»�u tráº§m áº¥m, má»™c máº¡c: 'Chá»¯ tÃ i chá»¯ má»‡nh khÃ©o lÃ  ghÃ©t nhau; Tráº£i qua má»™t cuá»™c bá»ƒ dÃ¢u...'. Tiáº¿ng quáº¡t mo cau thoáº£ng nháº¹, tiáº¿ng thá»Ÿ Ãªm cá»§a chÃ¡u. Tuyá»‡t Ä‘á»‘i KHÃ”NG sinh nháº¡c ná»�n, khÃ´ng táº¡p Ã¢m rÃ¡c.Úprologue_shot03u<   Shot 3: VÃ²ng XoÃ¡y KÃ½ á»¨c & Chuyá»ƒn Cáº£nh XuyÃªn KhÃ´ngu¸  Tiáº¿p diá»…n mÆ°á»£t mÃ  tá»« khung hÃ¬nh Ä‘áº·c táº£ Ä‘Ã´i máº¯t: Ä�áº·c táº£ cáº­n cáº£nh Ä‘Ã´i máº¯t tráº§m tÆ° Ä‘áº§y náº¿p nhÄƒn thá»�i gian cá»§a cá»¥ Ã´ng. Khi cÃ¢u ngÃ¢m Kiá»�u ngÃ¢n dÃ i da diáº¿t '...Nhá»¯ng Ä‘iá»�u trÃ´ng tháº¥y mÃ  Ä‘au Ä‘á»›n lÃ²ng', trong Ã¡nh máº¯t Ã´ng pháº£n chiáº¿u Ã¡nh hoÃ ng hÃ´n dáº§n biáº¿n hÃ³a thÃ nh má»™t luá»“ng Ã¡nh sÃ¡ng sÆ°Æ¡ng khÃ³i huyá»�n áº£o nhÆ° vÃ²ng xoÃ¡y kÃ½ á»©c (cinematic memory vortex). KhÃ´ng gian hiÃªn nhÃ  ngÃ³i 1980s tá»« tá»« tan biáº¿n vÃ  hÃ²a tan (cross-dissolve) vÃ o lÃ n sÆ°Æ¡ng tráº¯ng bá»“ng bá»�nh. Nhá»¯ng cÃ¡nh hoa lÃª tráº¯ng vÃ  hoa Ä‘Ã o bay lÆ°á»£n trong giÃ³ sÆ°Æ¡ng, thá»�i gian lÃ¹i sÃ¢u vá»� quÃ¡ khá»© lá»‹ch sá»­ hÃ ng trÄƒm nÄƒm trÆ°á»›c. Cuá»‘i 10 giÃ¢y, lÃ n sÆ°Æ¡ng hÃ© má»Ÿ ra bÃ³ng dÃ¡ng má»� áº£o cá»§a mÃ¡i ngÃ³i láº§u cÃ¡c cong vÃºt thá»�i Gia TÄ©nh triá»�u Minh. CÃº mÃ¡y macro push-in káº¿t há»£p transition hÃ²a tan huyá»�n áº£o, 24fps cinematic. Ã‚m thanh: Tiáº¿ng ngÃ¢m Kiá»�u ngÃ¢n dÃ i da diáº¿t: '...Nhá»¯ng Ä‘iá»�u trÃ´ng tháº¥y mÃ  Ä‘au Ä‘á»›n lÃ²ng', tiáº¿ng giÃ³ kÃ½ á»©c vi vu, tiáº¿ng sÆ°Æ¡ng má»� chuyá»ƒn Ä‘á»™ng. Tuyá»‡t Ä‘á»‘i KHÃ”NG sinh nháº¡c ná»�n Ä‘iá»‡n tá»­, khÃ´ng táº¡p Ã¢m rÃ¨ mÃ©o.Úprologue_shot04u;   Shot 4: Khai Má»Ÿ Kinh ThÃ nh Thá»�i Gia TÄ©nh Triá»�u Minhu  Tiáº¿p diá»…n mÆ°á»£t mÃ  tá»« khung hÃ¬nh cá»•ng thÃ nh láº§u cÃ¡c cá»• kÃ­nh: CÃº mÃ¡y bay lÆ°á»›t (cinematic fly-through) bay qua cá»•ng thÃ nh láº§u cÃ¡c cá»• kÃ­nh thá»�i Gia TÄ©nh triá»�u Minh. LÃ n sÆ°Æ¡ng mÃ¹ má»‹t tan biáº¿n dÆ°á»›i Ã¡nh bÃ¬nh minh xuÃ¢n rá»±c rá»¡, má»Ÿ ra toÃ n cáº£nh Ä‘áº¡i Ä‘Ã´ thá»‹ kinh thÃ nh trÃ¡ng lá»‡, cá»� ngÅ© sáº¯c bay pháº¥p phá»›i, dÃ²ng ngÆ°á»�i tráº©y há»™i Ä�áº¡p Thanh táº¥p náº­p trong trang phá»¥c cá»• trang thanh nhÃ£, cÃ nh hoa Ä‘Ã o hoa lÃª rá»£p lá»‘i Ä‘i bÃªn cáº§u Ä‘Ã¡ uá»‘n cong trÃªn dÃ²ng sÃ´ng biáº¿c. Hiá»‡n duy nháº¥t dÃ²ng chá»¯ phá»¥ Ä‘á»� cá»• phong trang trá»�ng: 'NÄƒm Gia TÄ©nh, triá»�u Minh'. KhÃ´ng thÃªm báº¥t ká»³ lá»�i giáº£i thÃ­ch nÃ o khÃ¡c. CÃº mÃ¡y sweeping crane aerial reveal trÃ¡ng lá»‡, 24fps Ä‘iá»‡n áº£nh bom táº¥n. Ã‚m thanh: Tiáº¿ng cá»� ngÅ© sáº¯c bay pháº§n pháº­t trÃªn cá»•ng thÃ nh, tiáº¿ng rÃ¬ ráº§m tá»« xa cá»§a dÃ²ng ngÆ°á»�i tráº©y há»™i, tiáº¿ng giÃ³ xuÃ¢n lÆ°á»›t qua mÃ¡i ngÃ³i. Tuyá»‡t Ä‘á»‘i KHÃ”NG sinh nháº¡c ná»�n, khÃ´ng táº¡p Ã¢m rÃ¡c.Úprologue_shot4zQ
================================================================================uK   âœ“ Ä�Ãƒ Sáº¢N XUáº¤T XONG 4 SHOTS TÆ¯Æ I Má»šI 100% Tá»ª MUSE2API GATEWAY!uN   
[2/5] Ä�ang tÃ­ch há»£p Ã¢m thanh ngÃ¢m thÆ¡ & foley gá»‘c cho tá»«ng shot...z&prologue_shot_01_lang_que_198x_10s.wavz"prologue_shot_02_ngam_kieu_10s.wavz$prologue_shot_03_xuyen_khong_10s.wavz,prologue_shot_04_gia_tinh_trieu_minh_10s.wavÚfresh_prologue_shotÚ02dz	_prep.mp4z   Shot u   : Muxing video má»›i (u   ) + audio gá»‘c (r5   rc   z-ssz0.0z-tz10.0rd   z-c:vÚlibx264z-crfÚ18z-presetÚslowz-pix_fmtÚyuv420pz-mapz0:v:0z1:a:0z-c:aÚaacz-b:aÚ256kz-arÚ48000z	-shortestTrg   u      âœ“ Shot u    hoÃ n táº¥t chuáº©n hÃ³a: uT   
[3/5] Ä�ang ghÃ©p ná»‘i liÃªn hoÃ n 4 shots vá»›i xfade 0.5s vÃ  acrossfade 0.5s...z fresh_prologue_shot04_padded.mp4é   z-filter_complexza[0:v]tpad=stop_mode=clone:stop_duration=1.5[v];[0:a]apad=pad_dur=1.5,afade=t=out:st=10.0:d=1.5[a]z[v]z[a]Úfastzprologue_fresh_stitched_raw.mp4aP  [0:v][1:v]xfade=transition=fade:duration=0.5:offset=9.5[v01];[v01][2:v]xfade=transition=fade:duration=0.5:offset=19.0[v02];[v02][3:v]xfade=transition=fade:duration=0.5:offset=28.5[vmaster];[0:a][1:a]acrossfade=d=0.5:c1=qsin:c2=qsin[a01];[a01][2:a]acrossfade=d=0.5:c1=qsin:c2=qsin[a02];[a02][3:a]acrossfade=d=0.5:c1=qsin:c2=qsin[amaster]é   z	[vmaster]z	[amaster]u,      âœ“ GhÃ©p ná»‘i thÃ nh cÃ´ng raw master: uI   
[4/5] Ä�ang cÃ¢n báº±ng Ã¢m lÆ°á»£ng EBU R128 (-14.0 LUFS, -1.0 dBTP)...z%thap_ngu_nien_prologue_master_40s.mp4g      ,À)Útarget_lufsÚtwo_passu-      âœ“ Ä�Ã£ hoÃ n táº¥t Prologue Master 40s: z+prologue_hoai_niem_198x_to_gia_tinh_40s.mp4z"thap_ngu_nien_intro_master_20s.mp4uG   
   [*] Ä�ang ghÃ©p Báº£n LiÃªn HoÃ n 60s (Intro 20s + Prologue 40s)...z/thap_ngu_nien_intro_prologue_continuous_60s.mp4zconcat_60s.txtÚwr	   r
   zfile 'z'
z-fÚconcatz-safeÚ0z-cÚcopyz)thap_ngu_nien_ep01_intro_prologue_60s.mp4u0      âœ“ Ä�Ã£ xuáº¥t báº£n Báº£n LiÃªn HoÃ n 60s: uM   
[5/5] Ä�ang táº¡o Zero-Waste Contact Sheet vÃ  kiá»ƒm duyá»‡t Critic Gate...z$contact_sheet_prologue_fresh_40s.jpgé   ÚPROLOGUE_FRESH_40S)Ú
video_pathÚoutput_pathÚn_framesÚ	scene_tagu+      âœ“ Contact sheet 12 frames Ä‘Ã£ táº¡o: Úfresh_prologue_40s)Úscene_idr¦   Úcontact_sheet_pathu%      âœ“ Critic Gate verdict: Approved=Úapprovedz, Score=Úoverall_scorez$   [~] Critic Gate evaluation note: uF   ðŸŽ‰ HOÃ€N THÃ€NH TOÃ€N DIá»†N Sáº¢N XUáº¤T 40S PROLOGUE TÆ¯Æ I Má»šI!u   ðŸ“� Video Master 40s: u$   ðŸ“Š ThÃ´ng sá»‘ Ã¢m thanh EBU R128:z   - Integrated Loudness: Úinput_iu    LUFS (Má»¥c tiÃªu: -14.0 LUFS)z   - True Peak:          Úinput_tpu     dBTP (Má»¥c tiÃªu <= -1.0 dBTP)z   - Loudness Range:     Ú	input_lraz LUu_      - Ã‚m thanh:           100% Pure Voice & Foley (HoÃ n toÃ n KHÃ”NG nháº¡c ná»�n nhÃ¢n táº¡o)uY   ðŸŽžï¸� 4 Shots tÆ°Æ¡i má»›i:    prologue_shot01_10s_v2.mp4 .. prologue_shot04_10s_v2.mp4zQ================================================================================
)#rB   r   Úcheck_healthrG   r*   r    Úexitr.   rj   r#   r…   Ú	AUDIO_DIRÚ	enumerateÚzipÚTEMP_DIRrl   r$   r'   r(   ÚappendÚEXPORTS_DIRÚaceÚnormalize_loudnessÚshutilÚcopy2ri   ÚopenÚwriteÚas_posixr   Ú
CRITIC_DIRÚgenerate_contact_sheetr   ÚgetattrÚmeasure_loudness)3r0   ÚhealthrR   rƒ   Ú	shot01_idÚshot01_labelÚshot01_promptÚshot01_start_frameÚvideo01_pathÚtail01_pathÚ	shot02_idÚshot02_labelÚshot02_promptÚshot02_start_frameÚvideo02_pathÚtail02_pathÚ	shot03_idÚshot03_labelÚshot03_promptÚshot03_start_frameÚvideo03_pathÚtail03_pathÚ	shot04_idÚshot04_labelÚshot04_promptÚshot04_start_frameÚvideo04_pathÚtail04_pathÚaudio_sourcesr   Ú
prep_shotsÚiÚvÚaÚ	prep_shotÚcmd_muxÚshot04_paddedÚcmd_pad4Úraw_prologue_stitchedÚfilter_prologueÚcmd_stitch_pÚfinal_prologue_masterÚintro_master_fileÚcontinuous_60s_exportÚconcat_list_txtÚfÚcmd_60sÚ	cs_engineÚcs_outÚverdictÚ
final_louds3                                                      r-   Úmainrô   Ë   s€  € Ý	ˆ(�O„O€OÝ	Ð
SÑTÔTÐTÝ	ˆ(�O„O€Oå‰_Œ_€FðØ×$Ò$Ñ&Ô&ˆÝð  v¸V¿ZºZÈ
ÐTVÑ=WÔ=W×=[Ò=[Ð\gÐijÑ=kÔ=kð  vð  vÐnt×nxÒnxð  zDð  FHñ  oIô  oI÷  oMò  oMð  NUð  WXñ  oYô  oYð  vð  vð  vñ  	wô  	wð  	wð  	wøÝð ð ð ÝÐnÀaÐnÐnÐnÑoÔoÐoÝŒ�‰Œˆˆˆˆˆˆøøøøðøøøõ ‘”€JÝ	Ð
3 zÐ
3Ð
3Ñ4Ô4Ð4ð "€IØK€Lð	pð õ 'Ð)9Ñ9Ð<RÑRÐØ×$Ò$Ñ&Ô&ð XÝ*Ð->Ñ>ÐAWÑWÐå 5ØØØØØ+Øð!ñ !ô !Ñ€L�+ð "€IØP€Lð	Jð ð %Ðå 5ØØØØØ+Øð!ñ !ô !Ñ€L�+ð "€IØQ€Lð	[ð ð %Ðå 5ØØØØØ+Øð!ñ !ô !Ñ€L�+ð "€IØP€Lð	Jð õ 'Ð)9Ñ9Ð<RÑRÐØ×$Ò$Ñ&Ô&ð )Ø(Ðå 5ØØØØØ+Øð!ñ !ô !Ñ€L�+õ 
ˆ/ÑÔÐÝ	Ð
WÑXÔXÐXÝ	ˆ(�O„O€Oõ
 
Ð
[Ñ\Ô\Ð\õ 	Ð<Ñ<ÝÐ8Ñ8ÝÐ:Ñ:ÝÐBÑBð	€Mð ˜L¨,¸ÐE€FØ€Jå�s 6¨=Ñ9Ô9¸1Ñ=Ô=ð Mð M‰	ˆ‰6ˆAˆqÝÐE°QÐEÐEÐEÐEÑEˆ	ÝÐW˜ÐWÐW°!´&ÐWÐWÈ1Ì6ÐWÐWÐWÑXÔXÐXð	
Øð	
Øð	
àð	
àð	
àð	
à &ð	
à(,ð	
å.1°!©f¬fð	
ð ð	
ð ð	
ð ð	
ð !'ð	
ð )-ð	
õ /2°!©f¬fð	
ð ð		
ð ð		
ð  &ð		
ð (,ð		
ð .7ð		
ð 9?ð		
ð AKð		
ð MVð		
ð
 ð	
ð
 ð	
ð
 $ð	
ð
 &-ð	
ð ð	
ð ð	
ð "ð	
ð $*ð	
ð ,1ð	
ð 3:ð	
ð ð	
õ �	‰NŒNð	
ˆõ 	Œ�w d¸4Ð@Ñ@Ô@Ð@Ø×Ò˜)Ñ$Ô$Ð$ÝÐK˜QÐKÐK¸9¼>ÐKÐKÑLÔLÐLÐLõ
 
Ð
aÑbÔbÐbõ ÐAÑA€Mà�DØ�c�*˜Q”-Ñ Ô Øð	=à��v˜uØ�	˜6 4¨°F¸JÈ	Ø��v˜v u¨gÝˆMÑÔð
€Hõ „N�8 4¸Ð=Ñ=Ô=Ð=å$Ð'HÑHÐð	>ð ðØðØðàðå�*˜Q”-Ñ Ô ðð 	ðõ �*˜Q”-Ñ Ô ðð 	ð	õ �*˜Q”-Ñ Ô ð	ð
 	ðõ
 �-Ñ Ô ðð 	ðð +ðð 	ðð ðð $ðð &1ðð 	ðð ðð "ðð $(ðð *3ðð 5;ðð =Gðð IRðð 	ðð ðð ðð  &ðð (-ðð /6ðõ 	Ð!Ñ"Ô"ð€Lõ „N�< t¸DÐAÑAÔAÐAÝ	Ð
UÐ9NÔ9SÐ
UÐ
UÑVÔVÐVõ
 
Ð
VÑWÔWÐWÝ'Ð*QÑQÐÝ×ÒÝÐ!Ñ"Ô"ÝÐ!Ñ"Ô"ØØð	 ñ ô ð õ 
Ð
VÐ:OÔ:TÐ
VÐ
VÑWÔWÐWõ „LÐ&­
Ð5bÑ(bÑcÔcÐcõ $Ð&JÑJÐØ×ÒÑ!Ô!ñ _ÝÐXÑYÔYÐYÝ +Ð._Ñ _ÐÝ"Ð%5Ñ5ˆÝ�/ 3°Ð9Ñ9Ô9ð 	D¸QØ�GŠGÐ>Ð.×7Ò7Ñ9Ô9Ð>Ð>Ð>Ñ?Ô?Ð?Ø�GŠGÐBÐ2×;Ò;Ñ=Ô=ÐBÐBÐBÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð
 ˜Ø�(˜G SØ•#�oÑ&Ô&Ø�&ÝÐ%Ñ&Ô&ð
ˆõ 	Œ�w d¸4Ð@Ñ@Ô@Ð@ÝŒÐ*­KÐ:eÑ,eÑfÔfÐfÝŒÐ*­JÐ9dÑ,dÑeÔeÐeÝÐ]ÐAVÔA[Ð]Ð]Ñ^Ô^Ð^õ
 
Ð
ZÑ[Ô[Ð[å%Ñ'Ô'€IÝÐ@Ñ@€FØ×$Ò$ÝÐ,Ñ-Ô-Ý˜‘K”KØØ&ð	 %ñ ô ð õ 
Ð
E¸¼Ð
EÐ
EÑFÔFÐFð:Ý%Ø)ÝÐ0Ñ1Ô1Ý" 6™{œ{ð
ñ 
ô 
ˆõ
 	ð  Lµg¸gÀzÐSWÑ6XÔ6Xð  Lð  LÕbiÐjqð  tCð  EIñ  cJô  cJð  Lð  Lñ  	Mô  	Mð  	Mð  	MøÝð :ð :ð :ÝÐ8°QÐ8Ð8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9øøøøð:øøøõ ×%Ò%¥cÐ*?Ñ&@Ô&@ÑAÔA€JÝ	ˆ/ÑÔÐÝ	Ð
RÑSÔSÐSÝ	ˆ(�O„O€OÝ	Ð
;Ð$9Ð
;Ð
;Ñ<Ô<Ð<Ý	Ð
1Ñ2Ô2Ð2Ý	Ð
a z§~¢~°iÑ'@Ô'@Ð
aÐ
aÐ
aÑbÔbÐbÝ	Ð
b j§n¢n°ZÑ&@Ô&@Ð
bÐ
bÐ
bÑcÔcÐcÝ	Ð
F j§n¢n°[Ñ&AÔ&AÐ
FÐ
FÐ
FÑGÔGÐGÝ	Ð
lÑmÔmÐmÝ	Ð
fÑgÔgÐgÝ	ˆ/ÑÔÐÐÐsD   ½A:B8 Â8
C3Ã'C.Ã.C3Õ*AW×W×WÛA\9 Ü9
]Ý]Ý]Ú__main__)r/   )rW   )4Ú__doc__r%   r    rC   r¼   r'   rI   Úpathlibr   Útypingr   r   r   r   rq   rF   ÚnumpyÚnpÚplatformÚstdoutÚreconfigureÚstderrr*   ÚBASE_DIRÚPIPELINE_DIRr$   r&   ÚinsertÚ
ASSETS_DIRri   r´   rj   rÁ   r¹   r·   rk   Úmuse_api_clientr   Úaudio_continuity_enginer   Úcontact_sheet_enginer   Úantigravity_critic_gater   rº   r.   ÚfloatrV   rJ   r…   rô   Ú__name__© r†   r-   ú<module>r
     s™  ððð ð0 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à 
€
€
€
Ø €€€Ø Ð Ð Ð ð „<�7ÒÐðØŒ
×Ò¨ÐÑ0Ô0Ð0ØŒ
×Ò¨ÐÑ0Ô0Ð0Ð0øØð ð ð Øˆðøøøð ˆ4Ð'Ñ(Ô(€ØÐ2Ñ2€Ø€3€|ÑÔ˜CœHÐ$Ð$Ø„H‡O‚O�A�s�s˜<Ñ(Ô(Ñ)Ô)Ð)à˜Ñ#€
Ø˜(Ñ"€
Ø˜Ñ Ð#5Ñ5€	Ø˜[Ñ(€Ø˜.Ñ(€
Ø˜Ñ%€ØÐ-Ñ-€à 
× Ò ˜¨Ð Ñ -Ô -Ð -Ø × Ò ˜D¨4Ð Ñ 0Ô 0Ð 0Ø 
× Ò ˜¨Ð Ñ -Ô -Ð -Ø × Ò ˜$¨Ð Ñ .Ô .Ð .Ø ‡‚�t d€Ñ +Ô +Ð +à )Ð )Ð )Ð )Ð )Ð )Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7àÐÑÔ€ð�Cð ð ð ð ð$$`ð $` =ð $`¸3ð $`Àsð $`ÐUZð $`ÐgkÐloÐqtÐltÔguð $`ð $`ð $`ð $`ðZ ðD.ð D.ØðD.àðD.ð ðD.ð ð	D.ð
 ˜t”nðD.ð ðD.ð ˆ4�ˆ:ÔðD.ð D.ð D.ð D.ðNOð Oð Oðd ˆzÒÐØ€D�F„F€F€F€Fð Ðs   Á6A< Á<BÂB