o >gw@sddlZddlZddlZddlZddlZddlZGdddZGdddZ GdddZ Gdd d Z Gd d d ej j Zee e e ed Zdd iZdS)Nc@s.eZdZeddZdZdZdZd ddZd S) ImageOnlyCheckpointLoadercCsddtdfiiS)Nrequired ckpt_name checkpoints) folder_pathsget_filename_listsr H/home/comdoleger1/zen-flux-style-shape/comfy_extras/nodes_video_model.py INPUT_TYPES sz%ImageOnlyCheckpointLoader.INPUT_TYPES)MODEL CLIP_VISIONVAEload_checkpointzloaders/video_modelsTcCs>td|}tjj|dddtdd}|d|d|dfS) NrTF embeddings) output_vae output_clipoutput_clipvisionembedding_directoryr)rget_full_path_or_raisecomfysdload_checkpoint_guess_configget_folder_paths)selfrrr ckpt_pathoutr r r rs z)ImageOnlyCheckpointLoader.load_checkpointN)TT) __name__ __module__ __qualname__ classmethodr RETURN_TYPESFUNCTIONCATEGORYrr r r r r s rc@s0eZdZeddZdZdZdZdZddZ d S) SVD_img2vid_ConditioningcCsndddddddtjdd fdd dtjdd fdd d d dfddd ddfddd ddfdddddd fd iS)Nrr)IMAGErINTi)defaultminmaxstepi@i)r.r/r0iFLOATg$@{Gz?) clip_vision init_imagevaewidthheight video_framesmotion_bucket_idfpsaugmentation_level)nodesMAX_RESOLUTIONrr r r r sz$SVD_img2vid_Conditioning.INPUT_TYPES) CONDITIONINGrDLATENT)positivenegativelatentencodezconditioning/video_modelsc Cs||} | jd} tj|dd||dddd} | ddddddddf} | dkr:| t| | 7} | | }| ||| |dgg}t | ||| t |dgg}t |d|d |d g}||d |ifS) Nrr3bilinearcenterr)r?r@rAconcat_latent_imager-samples) encode_image image_embeds unsqueezerutilscommon_upscalemovedimtorch randn_likerI zeros_likezeros)rr9r:r;r<r=r>r?r@rAoutputpooledpixelsZ encode_pixelstrFrGrHr r r rI-s  $   zSVD_img2vid_Conditioning.encodeN) r r!r"r#r r$ RETURN_NAMESr%r&rIr r r r r's   r'c@,eZdZeddZdZdZdZddZdS) VideoLinearCFGGuidancec Cddddddddd fd iS Nrr r6?r7gY@?r8)r.r/r0r1round)modelmin_cfgr rr r r r ;z"VideoLinearCFGGuidance.INPUT_TYPESrcpatchsampling/video_modelsc$fdd}|}|||fS)NcsV|d}|d}|d}tj||jd|jd|jddddf}||||S)Nconduncond cond_scalerdevicer3)rVlinspaceshaperqreshape)argsrmrnroscalerhr r linear_cfgFs .z0VideoLinearCFGGuidance.patch..linear_cfgcloneset_model_sampler_cfg_functionrrgrhrxmr rwr rjEs  zVideoLinearCFGGuidance.patchN r r!r"r#r r$r%r&rjr r r r r`:  r`c@r_) VideoTriangleCFGGuidancec Crarbr rr r r r Sriz$VideoTriangleCFGGuidance.INPUT_TYPESrcrjrkcrl)Ncs|d}|d}|d}d}tjdd|jd|jd}d||t||d }|||jddddf}||||S) Nrmrnrordrr3rprre)rVrrrsrqfloorabsrt)rurmrnroperiodvaluesrvrwr r rx^s"$z2VideoTriangleCFGGuidance.patch..linear_cfgryr|r rwr rj]s  zVideoTriangleCFGGuidance.patchNr~r r r r rRrrc@s&eZdZdZeddZdddZdS)ImageOnlyCheckpointSavezadvanced/model_mergingcCs"ddddddifddd d d S) Nrcr(r*STRINGr.zcheckpoints/ComfyUI)rgr9r;filename_prefixPROMPT EXTRA_PNGINFO)prompt extra_pnginfo)rhiddenr rr r r r ps z#ImageOnlyCheckpointSave.INPUT_TYPESNc Cs tjj|||||j||diS)N)r9r;r output_dirrr) comfy_extrasnodes_model_mergingsave_checkpointr)rrgr9r;rrrr r r savexszImageOnlyCheckpointSave.save)NN)r r!r"r&r#r rr r r r rms  r)rr'r`rrz,Image Only Checkpoint Loader (img2vid model))rBrV comfy.utilsrcomfy.sdrZ comfy_extras.nodes_model_mergingrrr'r`rrCheckpointSaverNODE_CLASS_MAPPINGSNODE_DISPLAY_NAME_MAPPINGSr r r r s&!