+
    I}i|;                    F   ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHtH	t	H
t
Ht  ! R R]4      tRR	.R
RR	.RR	.RRR	.RR	./tR0 R*mR
0 R+mR0 R,mR0 R-mR0 R.m/tRRR0R0 R/m/tR R ltR R ltR R ltRR/R R lltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR# )0    )annotationsN)Path)Any)	V1_MODELSALLOWED_30_MODELSOMNI_MODEL_ENDPOINTSPRODUCTION_30_ENDPOINTSc                      ] tR t^
tRtR# )ValidationError N)__name__
__module____qualname____firstlineno____static_attributes__r       H/Users/moon/.openclaw/workspace/youtube-automation/scripts/validators.pyr   r   
   s    r   r   
text2videopromptimage2videoimageomnireference2video
image_listextenddurationmodeaspect_ratiostdproc               $    V ^8  d   QhRRRRRR/# )   endpoint_typestrpayloaddict[str, Any]returnNoner   )formats   "r   __annotate__r*   *   s+     @~ @~C @~. @~T @~r   c           
        \        VP                  R 4      4      p\        P                  V . 4      pV Uu. uF&  qDV9  g   VP                  V4      RR. 39   g   K$  VNK(  	  ppV'       d    V R&9   d   RV9   d   VP                  R4       V'       d   \	        RV  RV 24      h\
        P                  V 4      pVeC   \        \        VP                  4       4      V,
          4      pV'       d   \	        RV  RV 24      hVP                  R4      pVe   V \        9  d   V \        9  d   \	        R	V  R
24      hV\        9  d   \	        RV R\        \        4       24      h\        \        P                  ! V . 4      4      p	V	'       d$   W9  d   \	        RV RV  R\        V	4       24      hVP                  R4      p
V
e8   V
\        R,          9  d&   \	        RV
 R\        \        R,          4       24      hVP                  R4      pVe8   V\        R,          9  d&   \	        RV R\        \        R,          4       24      hVP                  R4      pVe   \        V4       V R8X  d:   VP                  R4      '       g#   VP                  R4      '       g   \	        R4      hVP                  R 4      '       d"   V R'9  d   \	        RV  24      h\        W4       M<VP                  R4      e   \	        R4      hVP                  R4      e   \	        R4      hV R8X  d   RV9   d   \!        V4       V R 8X  d   RV9   d   \#        V4       V R8X  d   R!V9   d   \%        V4       V R"8X  d   \'        V4       V R8X  d   R#V9   d   \)        V4       V R"8X  dP   R$V9   dG   R#V9   d>   VP                  R$4      '       d%   VP                  R#4      '       d   \	        R%4      hR# R# R# R# R# u upi )(
multi_shotN r   r   zMissing required fields for z: zUnknown fields for 
model_namez)model_name is not supported for endpoint z in the current scaffold policyzUnsupported model_name: zM. Only synchronized 3.0/3.0 Omni models are allowed in the current scaffold: zModel z is not allowed for endpoint z. Allowed: r   zInvalid mode: z. Expected one of r   zInvalid aspect_ratio: r   r   video_id	video_urlz,Extend requires either video_id or video_urlz4multi_shot is not supported in current scaffold for 	shot_typez2shot_type must be omitted when multi_shot is falsemulti_promptz5multi_prompt must be omitted when multi_shot is falser   r   
video_listr   element_list
voice_listzXimage2video element_list and voice_list are mutually exclusive in current preserved docs)r   r   )r   r   )boolgetREQUIRED_FIELDSremover   ALLOWED_FIELDSsortedsetkeysr   r	   r   r   ALLOWED_ENUMS_validate_duration_validate_multi_shot_validate_omni_image_list$_validate_reference2video_image_list_validate_omni_video_list_validate_image2video_inputs_validate_omni_element_list)r#   r%   multi_shot_activereqkmissingallowedunknownmodelallowed_modelsr   arduration_strs   &&           r   validate_payloadrP   *   s   W[[67


mR
0CV#Q'!1W[[^bRT~5Uqq#GV].DDU\I\x  <]O2gYWXX  /GW\\^,w67!$7b	"RSSKK%E 44Ne9e!;M?Jij  ))!$<UG  DQ  RX  Yj  Rk  Ql  #m  n  nY]]="=>e9!F5'1N}o]hiop~i  iA  #B  C  C;;vDDf(==tf4Fvm\bNcGdFefgg	^	$B	~"M.$AA 6rd:LVTabpTqMrLstuu;;z*L<( '++j*A*AW[[Q\E]E]LMM{{<   66!$XYfXg"hiiW4;;{#/!"VWW;;~&2!"YZZ<7#:!'*))lg.E,W5<7#:!'*%$W->W#<#G,%,'*AnX_F_;;|$$^)D)D!"|}} *E$ G`*A%w Ws   !O&O&c                    V ^8  d   QhRRRR/# )r"   r   r   r'   r(   r   )r)   s   "r   r*   r*   m   s     e e e er   c                   \        V \        4      '       d#   V P                  4       '       d   \        V 4      pM(\        V \        4      '       d   T pM\	        R V : 24      h^Tu;8:  d   ^8:  g   M \	        RV 24      hR# )z.duration must be a numeric string or int, got z9duration must be between 3 and 15 seconds inclusive, got N)
isinstancer$   isdigitintr   )r   secondss   & r   r?   r?   m   sr    (C  X%5%5%7%7h-	Hc	"	" Nxl[\\2 YZaYbcdd r   c               $    V ^8  d   QhRRRRRR/# )r"   r%   r&   r#   r$   r'   r(   r   )r)   s   "r   r*   r*   x   s&     'Y 'Y. 'Y 'Y 'Yr   c                   V P                  R 4      pVR9  d   \        V R24      hV P                  R4      p\        V\        4      '       d	   V'       g   \        V R24      h\	        V4      ^8  d   \        V R24      h\        V P                  R4      4      p^ p\        4       p\        V^R7       EF  w  rx\        V\        4      '       g   \        V RV R24      h\        \        VP                  4       4      0 Rm,
          4      p	V	'       d   \        V RV RV	 24      hVP                  R	4      p
\        V
\        4      '       d   V
^8  d   \        V RV R24      hW9   d   \        V RV
 R24      hVP                  V
4       VP                  R
4      p\        V\        4      '       d   VP                  4       '       g   \        V RV R24      h\	        V4      R8  d   \        V RV R24      h\        VP                  R4      V RV R2R7      pV^8  d   \        V RV R24      hW8  d   \        V RV RV 24      hW\,          pEK  	  WT8w  d   \        V RV RV 24      hR# )r1   zQ multi_shot currently requires shot_type="customize" in the synchronized scaffoldr2   z2 multi_shot requires a non-empty multi_prompt listz3 multi_prompt supports at most 6 storyboard entriesr   startz multi_prompt[] must be an objectindexr   ] has unknown keys: z"] index must be a positive integerz6 multi_prompt indexes must be unique; duplicate index z foundz] requires a non-empty prompti   z'] prompt must not exceed 512 charactersz
] durationlabelz$] duration must be at least 1 secondz/] duration must not exceed total task duration z3 multi_prompt durations must sum to total duration z; got N>   	customize>   r\   r   r   )r7   r   rS   listlen_coerce_duration_secondsr<   	enumeratedictr;   r=   rU   addr$   strip)r%   r#   r1   r2   declared_durationtotal_storyboard_durationseen_indexesiitemunknown_item_keysr\   r   item_durations   &&           r   r@   r@   x   s   K(I%  0A  B  C  	C;;~.LlD))/abcc
<1/bcdd0Z1HI ! UL\33$%%!]O>!DW"XYY"3tyy{#36U#UV!]O>!DXYjXk"lmm!%%%!]O>!Df"ghh !]O3ijoippv"wxx(#&#&&fllnn!]O>!Da"bccv;!]O>!Dk"lmm0*1EP]^lmnlooyMz{1!]O>!Dh"ijj,!]O>!Ds  uF  tG  #H  I  I!2!- 40 !5/bctbuu{  }V  |W  X  Y  	Y 6r   r_   c               $    V ^8  d   QhRRRRRR/# )r"   valuer   r_   r$   r'   rU   r   )r)   s   "r   r*   r*      s&     U UC U3 U Ur   c                   \        V \        4      '       d   V # \        V \        4      '       d"   V P                  4       '       d   \        V 4      # \	        V R V : 24      h)z& must be a numeric string or int, got )rS   rU   r$   rT   r   )rp   r_   s   &$r   rc   rc      sL    %%%--//5z
UG#I%S
TTr   c                    V ^8  d   QhRRRR/# r"   r%   r&   r'   r(   r   )r)   s   "r   r*   r*      s     Y Y. YT Yr   c                    \        V P                  R 4      RR7       V P                  R4      e   \        V P                  R4      RR7       R# R# )r   zimage2video imager^   
image_tailNzimage2video image_tail)_validate_image_valuer7   )r%   s   &r   rD   rD      s>    '++g.6IJ{{< ,gkk,7?WX -r   c                    V ^8  d   QhRRRR/# rs   r   )r)   s   "r   r*   r*      s     h h~ h$ hr   c                   V P                  R 4      ;'       g    . p\        V\        4      '       g   \        R4      h^ p^ p\	        V^R7       EF  w  rE\        V\
        4      '       g   \        RV R24      hRR0p\        \        VP                  4       4      V,
          4      pV'       d   \        RV RV 24      hVP                  R4      '       g   \        RV R24      h\        VR,          RV R	2R
7       VP                  R4      pVe#   VR9  d   \        RP                  VR7      4      hVR8X  d
   V^,          pVR8X  g   K  V^,          pEK  	  V^8  d   \        R4      hV^8  d   \        R4      hV'       d   V'       g   \        R4      hV'       d   \        V4      ^8  d   \        R4      hR# R# )r   zomni image_list must be a listrY   zomni image_list[r[   	image_urltyper]   z] requires image_url].image_urlr^   Nfirst_frame	end_framezHomni image_list[{i}] type must be first_frame or end_frame when provided)rk   z[omni image_list supports at most one first_frame entry in the current synchronized scaffoldzYomni image_list supports at most one end_frame entry in the current synchronized scaffoldz5omni end_frame is not supported without a first_framezFomni end_frame is not supported when more than two images are supplied>   r}   r|   )r7   rS   ra   r   rd   re   r;   r<   r=   rv   r)   rb   )	r%   r   first_frame_countend_frame_countrk   rl   allowed_item_keysrm   
image_types	   &        r   rA   rA      s   \*00bJj$''>??OZq11$%%!$4QC7J"KLL(&1"3tyy{#36G#GH!$4QC7KL]K^"_``xx$$!$4QC7K"LMMd;/9I!K7XYXXf%
!j8T&T!"l"s"svw"s"xyy&"$q O! 2" 1{||yzz0UVV3z?Q.fgg /r   c                    V ^8  d   QhRRRR/# rs   r   )r)   s   "r   r*   r*      s     b b. bT br   c                n   V P                  R 4      ;'       g    . p\        V\        4      '       d	   V'       g   \        R4      h\	        V^R7       F  w  r#\        V\
        4      '       g   \        RV R24      hRR0p\        \        VP                  4       4      V,
          4      pV'       d   \        RV RV 24      hVP                  R4      '       d   \        VR,          RV R2R	7       K  VP                  R4      '       d   \        VR,          RV R
2R	7       K  \        RV R24      h	  R# )r   z3reference2video image_list must be a non-empty listrY   zreference2video image_list[r[   r   ry   r]   r{   r^   z].imagez] requires image_url or imageN)
r7   rS   ra   r   rd   re   r;   r<   r=   rv   )r%   r   rk   rl   r   rm   s   &     r   rB   rB      s   \*00bJj$''zSTTZq1$%%!$?sBU"VWW$k2"3tyy{#36G#GH!$?sBVWhVi"jkk88K  !${"3=XYZX[[f;ghXXg!$w-9TUVTWW^7_`!$?sB_"`aa 2r   c               $    V ^8  d   QhRRRRRR/# )r"   rp   r   r_   r$   r'   r(   r   )r)   s   "r   r*   r*      s&     v v v v vr   c                  \        V \        4      '       d   V P                  4       '       g   \        V R 24      hV P                  4       pVP	                  R4      '       g   VP	                  R4      '       d   R# VP	                  R4      '       d   VP                  R4      w   r2VP	                  R4      '       d9   \        VR,          4      P                  4       '       g   \        V RV 24      hR# \        V4      P                  4       '       d   R#  \        P                  ! VR	R
7       R#   \         d   p\        T R24      ThRp?ii ; i)z must be a non-empty stringzhttp://zhttps://Nzdata:,zfile://:   NNz file path does not exist: T)validatezC must be a reachable URL, local file path, or raw base64 image data)rS   r$   rg   r   
startswith	partitionr   is_filebase64	b64decode	Exception)rp   r_   raw_excs   &$   r   rv   rv      s   eS!!'BCDD
++-C
~~i  CNN:$>$>
~~gMM#&	1
~~i  CG}$$&&!UG+Fse"LMMCyvt, v'jklruuvs   D1 1E<EEc                    V ^8  d   QhRRRR/# rs   r   )r)   s   "r   r*   r*      s     ^ ^~ ^$ ^r   c                   V P                  R 4      ;'       g    . p\        V\        4      '       g   \        R4      h\	        V4      ^8  d   \        R4      h\        V^R7       F  w  r#\        V\        4      '       g   \        RV R24      h0 Rmp\        \        VP                  4       4      V,
          4      pV'       d   \        RV R	V 24      hVP                  R4      '       g   \        RV R
24      hVP                  R4      R9  d   \        RV R24      hVP                  R4      R9  g   K  \        RV R24      h	  V P                  R4      R9  d   \        R4      hR# )r3   zomni video_list must be a listz7omni video_list currently supports only one video entryrY   zomni video_list[r[   r0   
refer_typekeep_original_soundr]   z] requires video_urlNz$] refer_type must be base or featurez'] keep_original_sound must be yes or nosoundz<omni sound must be omitted or off when video_list is present>   r0   r   r   >   Nbasefeature>   Nnoyes)Noff)
r7   rS   ra   r   rb   rd   re   r;   r<   r=   )r%   r3   rk   rl   r   rm   s   &     r   rC   rC      sZ   \*00bJj$''>??
:WXXZq1$%%!$4QC7J"KLLN"3tyy{#36G#GH!$4QC7KL]K^"_``xx$$!$4QC7K"LMM88L!)BB!$4QC7["\]]88)*2EE!$4QC7^"_`` 2 {{7=0\]] 1r   c                    V ^8  d   QhRRRR/# rs   r   )r)   s   "r   r*   r*     s     [ [ [D [r   c                   V P                  R 4      ;'       g    . p\        V\        4      '       g   \        R4      h\	        V^R7       F  w  r#\        V\
        4      '       g   \        RV R24      hR0p\        \        VP                  4       4      V,
          4      pV'       d   \        RV RV 24      hRV9  d   \        RV R24      h\        VR,          \        4      '       d   K  \        RV R24      h	  R	# )
r4   z omni element_list must be a listrY   zomni element_list[r[   
element_idr]   z] requires element_idz] element_id must be an integerN)
r7   rS   ra   r   rd   re   r;   r<   r=   rU   )r%   r4   rk   rl   r   rm   s   &     r   rE   rE     s    ;;~.44"LlD))@AA\3$%%!$6qc9L"MNN)N"3tyy{#36G#GH!$6qc9MN_M`"abbt#!$6qc9N"OPP$|,c22!$6qc9X"YZZ 4r   >   r   r   r   r   	cfg_scaler1   r.   r,   r   callback_urlr2   camera_controlwatermark_infonegative_promptexternal_task_id>   r   r   r   r   r   r   r1   ru   r.   r,   r5   static_maskr   r   r4   r2   dynamic_masksr   r   r   r   >   r   r   r   r   r1   r   r.   r,   r3   r   r   r4   r2   r   >	   r   r   r   r   r.   r   r   r   r   >   r   r/   r0   r   r   r   >   1:116:99:16)
__future__r   r   pathlibr   typingr   configs.klingr   r   r   r	   
ValueErrorr   r8   r:   r>   rP   r?   r@   rc   rD   rA   rB   rv   rC   rE   r   r   r   <module>r      s    "    e e	j 	
 8*GX&
XJh/xj   k  A
  M  Yh UEN+@~Fe'YTU UYhBb&v(^.[r   