
    M`j                        d dl m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 ed          ZdZ	edz  Z
 ej                    dz  ZdZdZd	 Zd
 Zd Z eedz            ek    r+ ej        edz                                            d         sJ  eedz            Z eedz            ZdZede dz   ede dz   ddZe
                    dd           dde	ddeeedddi dZe                                D ]U\  ZZe
e d z  Ze                    e            ee                     e                     ee          d!ed"         e<   V eed#z  e           d$D ]zZe
e d%z  Z!e
e d&z  Z"ed"         e         Z#dde	ed'deeee#d(          ee!                     e                    dd e            d)Z$ ee"e$            ej%        ej&         ee          d*ee#d+         z                                  d, ee!          d-d.d/d0d1d0d2d0d3d4d5d6d7d8gej'        ej'        dd9:          Z(e(j)        se!*                                sCe$+                    d;e(j,        pe(j-        d<d         d=            ee"e$            e.e          e$+                    d>d ee!          e!/                                j0         e            d?            ee"e$           | e1 ej2        d@ e3e          dAdB                     dS )C    )PathNz\/data/video-pipeline/HaTramAudio/project/026-Ngay-Chung-Ta-Xoa-Ten-Khoi-Giay-Dang-Ky-Ket-Honzrun-20260722T033406Z-3df8cc80zwork/artworkzA.hermes/skills/content-creation/tao-anh/scripts/generate_image.py@a124ee39d569ab043105b755f9a3c10a2c92a1b3edccb2162ec2ab8767fc1f7fu=   Ngày Chúng Ta Xóa Tên Khỏi Giấy Đăng Ký Kết Hônc                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)fs    work/artwork/generate_artwork.py<lambda>zsha.<locals>.<lambda>   s    qvve}}     r   )hashlibsha256openiterupdate	hexdigest)phbr	   s      @r
   shar      s    
>ffTll 6a$$$$S))55a!((1++++56 6 6 6 6 6 6 6 6 6 6 6 6 6 6	s   ,A##A'*A'c                     | j                             dd           |                     | j        dz             }|                    t          j        |dd          dz              t          j        ||            d S )NTparentsexist_okz.tmpF   )ensure_asciiindent
)	parentmkdirwith_suffixsuffix
write_textjsondumpsosreplace)r   oqs      r
   atomicr*   
   s    d+++ammAHVO.L.LAQ\\Z^Zdefty  BC  [D  [D  [D  EI  [I  NJ  NJ  NJ  KM  KU  VW  XY  KZ  KZ  KZ  KZ  KZr   c                      t           j                             t           j        j                                                  S )N)datetimenowtimezoneutc	isoformat r   r
   r-   r-      s*    "&&x'8'<==GGII
Ir   zstory/canon.txtzstory/story-qa.jsonverifiedzstory/identity-registry.jsonzstory/reveal-ledger.jsonu  Key art ngôn tình đô thị cưới trước yêu sau tại Hàng Châu hư cấu, digital illustration bán hiện thực điện ảnh cao cấp, mưa nhẹ bên kênh nhà cổ, xanh ngọc xám pha hổ phách ấm, tối giản, một focal point, không collage/card/slide/mockup, không mô phỏng người thật. Tống Dư An 30 tuổi, nữ kiến trúc sư châu Á hư cấu, tóc đen ngang vai, áo khoác kem, bình tĩnh và tự chủ. Lục Cảnh Hành 33 tuổi, nam quản lý quỹ bảo tồn châu Á hư cấu, tóc đen gọn, áo khoác xanh than, điềm tĩnh, đứng cách cô một khoảng tôn trọng. Motif công khai: hai chiếc chìa khóa đồng cũ, hồ sơ đăng ký khép lại, mái ngói Hàng Châu và mưa trên cửa kính. Không lộ email đầy đủ, kết luận kiểm toán, lời tỏ tình sau ly hôn, thủ đoạn của Chính Phong hay kết quả đấu thầu. Mọi giấy, bảng, biển, nhãn, màn hình, đồng hồ và đạo cụ nền phải trơn, không chữ, không số, không pseudo-text, logo hay watermark. Provider render hình và typography hoàn chỉnh cùng raster; không chừa chỗ hậu kỳ.
uo  Tạo poster ngang chính xác 16:9, master 1920x1080. Dư An là focal point trước căn nhà ven kênh, cầm một chìa khóa; Cảnh Hành ở lớp sau dưới mái hiên, giữa họ là hồ sơ khép kín không chữ. Provider tự quyết typography. RENDER CHÍNH XÁC BA KHỐI CHỮ TIẾNG VIỆT, KHÔNG THÊM CHỮ KHÁC:
“Hạ Trâm Audio”
“u   ”
“Truyện được phát độc quyền tại Hạ Trâm Audio, nghiêm cấm sao chép dưới mọi hình thức”
Giữ nguyên dấu, dễ đọc, không cắt/che.uc  Tạo key art dọc tỷ lệ chính xác 656:1080, master 1080x1778. Dư An focal point trước cổng nhà gỗ ven kênh, chìa khóa trong tay; Cảnh Hành đứng dưới mưa ở lớp sau, không tiếp xúc. Provider tự quyết typography. RENDER CHÍNH XÁC BA KHỐI CHỮ TIẾNG VIỆT, KHÔNG THÊM CHỮ KHÁC:
“Hạ Trâm Audio”
“uc  Tạo branding panel điện ảnh dọc tỷ lệ chính xác 656:1080, master 1080x1778. Góc phòng thu ấm áp nhìn ra kênh Hàng Châu đêm mưa, microphone và tai nghe trơn, ánh hổ phách trên nền xanh ngọc xám; không nhân vật, không tên truyện, không dòng độc quyền, không layout giả. Mọi đạo cụ không chữ/số/logo/watermark. Provider render typography hoàn chỉnh. RENDER CHÍNH XÁC HAI KHỐI CHỮ TIẾNG VIỆT, KHÔNG THÊM CHỮ KHÁC:
“Hạ Trâm Audio”
“Like • Chia sẻ • Đăng ký”
Giữ nguyên dấu, dễ đọc, không cắt/che.)intro_posterright_panel
left_panelTr      026lockedztao-anhzcx/gpt-5.5-imageF)schema_version
project_idrun_idstatusr2   source_canon_sha256identity_registry_sha256reveal_ledger_sha256provider_skillprovider_modeltext_postprocessing_alloweditemsz.prompt.txt)prompt_pathprompt_sha256rC   zscript/image-prompts.json)r3   r5   r4   z-provider.pngz.generation.json
requestingrE   )r9   r:   r;   roler<   r2   r=   r>   r?   rE   outputr@   text_postprocessed
created_atz--promptrD   z--outputz--n1z--sizeautoz	--qualityz--backgroundz--detailhighz--formatpngz	--timeout600i  )stdoutstderrtexttimeoutfailedi)r<   error	generated)r<   technical_verifiedartifact_sha256artifact_bytescompleted_atgenerated_awaiting_visual_qa)r<   roles)r   )4pathlibr   r   r$   
subprocesssysr,   r&   ROOTRUNWORKhomeGENCANONTITLEr   r*   r-   loads	read_textIHRHsharedpromptsr    bundlerC   rG   promptppr#   strrelative_tooutrecitemattemptrun
executablePIPEr
returncodeexistsr   rQ   rP   RuntimeErrorstatst_sizeprintr%   listr1   r   r
   <module>r      s         . . . . . . . . . . . . . . . . . . . . . . . .	T
hii  oNjm  TX  Yg  Tg  OS  lu  lp  lu  lw  lw  x{  l{  hk  BD  |A  KJ  EJ  
Z Z Z I I I
s4!!""E))jdj$?T:T9_9_9a9a.b.bcm.n)))3t**++ss48R3R/S/SB {   P	  V[   P	   P	   P	  P	  _	e	  f	J  PU  f	J  f	J  f	J  _	J  XD  	E  	E 

4
 & & &u^aks  @D  [`  |~  VX  js  EW  v{  DF  /G  /Gv==?? L LKDD			bmmF333Y\Y\]_]k]klp]q]qYrYr  DG  DG  HJ  DK  DK  KL  KLF7OD4I4I t'' / / /7 j jD	T
 
 
  TT*C*C*C%CPWY]I^Dyz  IN  X[  cg  q}  IN  ej  FH  `b  sw  xG  sH  RU  RU  VY  Ve  Ve  fj  Vk  Vk  Rl  Rl  ~G  ]b  ps  ps  pu  pu  hv  hv_f  w}  w}  ~A  BI  wJ  wJ  wJ:>3>##c((:tD<O7O6Z6Z6\6\]ghkhklohphpqvwz  |D  EK  LW  X^  _m  nt  u  @F  GQ  RW  Xc  di  j  r|  rA  IS  IX  ^b  kn  o  o  oL  ]

  ]W^^hPQPXPd\]\dfkflflOm4n4n%o%o%opvpvwz  |C  qD  qD  qD  KW  KW  X\  K]  K]  E]+4RURUVYRZRZloltltlvlvl~  OR  OR  OT  OT  U  U  V  V  V  W]  W]  ^a  bi  Wj  Wj  Wj  Wj jdj9$$w--PP^cddd e e e e er   