From eb3fcac55a1e2196019af3f59f0471765082034f Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 25 Oct 2025 12:35:27 -0400 Subject: [PATCH] video pipeline import exception handler Signed-off-by: Vladimir Mandic --- modules/ltx/ltx_ui.py | 2 +- modules/video_models/models_def.py | 696 +++++++++++++++-------------- 2 files changed, 354 insertions(+), 344 deletions(-) diff --git a/modules/ltx/ltx_ui.py b/modules/ltx/ltx_ui.py index 6ac23bf86..ade98132a 100644 --- a/modules/ltx/ltx_ui.py +++ b/modules/ltx/ltx_ui.py @@ -14,7 +14,7 @@ def create_ui(prompt, negative, styles, overrides, init_image, init_strength, la with gr.Row(): generate = gr.Button('Generate', elem_id="ltx_generate_btn", variant='primary', visible=False) with gr.Row(): - ltx_models = [m.name for m in models['LTX Video']] + ltx_models = [m.name for m in models['LTX Video']] if 'LTX Video' in models else ['None'] model = gr.Dropdown(label='LTX model', choices=ltx_models, value=ltx_models[0]) with gr.Accordion(open=False, label="Condition", elem_id='ltx_condition_accordion'): with gr.Tabs(): diff --git a/modules/video_models/models_def.py b/modules/video_models/models_def.py index f3b64b40c..0b97935d0 100644 --- a/modules/video_models/models_def.py +++ b/modules/video_models/models_def.py @@ -1,6 +1,8 @@ from dataclasses import dataclass +import time import diffusers import transformers +from installer import log @dataclass @@ -27,346 +29,354 @@ class Model(): return f'name="{self.name}" url="{self.url}" repo="{self.repo}" repo_cls="{self.repo_cls}" dit="{self.dit}" dit_cls="{self.dit_cls}" dit_folder="{self.dit_folder}" te="{self.te}" te_cls="{self.te_cls}" te_folder="{self.te_folder}" te_hijack={self.te_hijack} vae_hijack={self.vae_hijack} vae_remote={self.vae_remote}' -models = { - 'None': [], - 'Hunyuan Video': [ - Model(name='None'), - Model(name='Hunyuan Video T2V', - url='https://huggingface.co/tencent/HunyuanVideo', - vae_remote=True, - repo='hunyuanvideo-community/HunyuanVideo', - repo_cls=diffusers.HunyuanVideoPipeline, - te_cls=transformers.LlamaModel, - dit_cls=diffusers.HunyuanVideoTransformer3DModel), - Model(name='Hunyuan Video I2V', # https://github.com/huggingface/diffusers/pull/10983 - url='https://huggingface.co/tencent/HunyuanVideo-I2V', - vae_remote=True, - repo='hunyuanvideo-community/HunyuanVideo-I2V', - repo_cls=diffusers.HunyuanVideoImageToVideoPipeline, - te_cls=transformers.LlavaForConditionalGeneration, - dit_cls=diffusers.HunyuanVideoTransformer3DModel), - Model(name='SkyReels Hunyuan T2V', # https://github.com/huggingface/diffusers/pull/10837 - url='https://huggingface.co/Skywork/SkyReels-V1-Hunyuan-T2V', - vae_remote=True, - repo='hunyuanvideo-community/HunyuanVideo', - repo_cls=diffusers.HunyuanVideoPipeline, - te_cls=transformers.LlamaModel, - dit='Skywork/SkyReels-V1-Hunyuan-T2V', - dit_folder=None, - dit_cls=diffusers.HunyuanVideoTransformer3DModel), - Model(name='SkyReels Hunyuan I2V', # https://github.com/huggingface/diffusers/pull/10837 - url='https://huggingface.co/Skywork/SkyReels-V1-Hunyuan-I2V', - vae_remote=True, - repo='hunyuanvideo-community/HunyuanVideo', - repo_cls=diffusers.HunyuanSkyreelsImageToVideoPipeline, - te_cls=transformers.LlamaModel, - dit='Skywork/SkyReels-V1-Hunyuan-I2V', - dit_folder=None, - dit_cls=diffusers.HunyuanVideoTransformer3DModel), - Model(name='Fast Hunyuan T2V', # https://github.com/hao-ai-lab/FastVideo/blob/8a77cf22c9b9e7f931f42bc4b35d21fd91d24e45/fastvideo/models/hunyuan/inference.py#L213 - url='https://huggingface.co/FastVideo/FastHunyuan', - vae_remote=True, - repo='hunyuanvideo-community/HunyuanVideo', - repo_cls=diffusers.HunyuanVideoPipeline, - te_cls=transformers.LlamaModel, - dit='FastVideo/FastHunyuan-diffusers', - dit_cls=diffusers.HunyuanVideoTransformer3DModel), - ], - 'LTX Video': [ - Model(name='None'), - Model(name='LTXVideo 0.9.8 13B', - url='https://huggingface.co/Lightricks/LTX-Video-0.9.8-13B-distilled', - repo='Lightricks/LTX-Video-0.9.8-13B-distilled', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.7 13B', - url='https://huggingface.co/Lightricks/LTX-Video-0.9.7-dev', - repo='a-r-r-o-w/LTX-Video-0.9.7-diffusers', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.6 2B T2V', - url='https://huggingface.co/Lightricks/LTX-Video', - repo='Lightricks/LTX-Video', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.6 2B I2V', - url='https://huggingface.co/Lightricks/LTX-Video', - repo='Lightricks/LTX-Video', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.6 2B T2V Distilled', - url='https://huggingface.co/Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', - repo='Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.6 2B I2V Distilled', - url='https://huggingface.co/Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', - repo='Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.5 T2V', # https://github.com/huggingface/diffusers/pull/10968 - url='https://huggingface.co/Lightricks/LTX-Video-0.9.5', - repo='Lightricks/LTX-Video-0.9.5', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.5 I2V', - url='https://huggingface.co/Lightricks/LTX-Video-0.9.5', - repo='Lightricks/LTX-Video-0.9.5', - repo_cls=diffusers.LTXConditionPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.1 T2V', - url='https://huggingface.co/a-r-r-o-w/LTX-Video-0.9.1-diffusers', - repo='a-r-r-o-w/LTX-Video-0.9.1-diffusers', - repo_cls=diffusers.LTXPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.1 I2V', - url='https://huggingface.co/a-r-r-o-w/LTX-Video-0.9.1-diffusers', - repo='a-r-r-o-w/LTX-Video-0.9.1-diffusers', - repo_cls=diffusers.LTXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.0 T2V', - url='https://huggingface.co/a-r-r-o-w/LTX-Video-diffusers', - repo='a-r-r-o-w/LTX-Video-diffusers', - repo_cls=diffusers.LTXPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - Model(name='LTXVideo 0.9.0 I2V', - url='https://huggingface.co/a-r-r-o-w/LTX-Video-diffusers', - repo='a-r-r-o-w/LTX-Video-diffusers', - repo_cls=diffusers.LTXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LTXVideoTransformer3DModel), - ], - 'WAN Video': [ - Model(name='None'), - Model(name='WAN 2.2 5B T2V', - url='https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B-Diffusers', - repo='Wan-AI/Wan2.2-TI2V-5B-Diffusers', - repo_cls=diffusers.WanPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.2 5B I2V', - url='https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B-Diffusers', - repo='Wan-AI/Wan2.2-TI2V-5B-Diffusers', - repo_cls=diffusers.WanImageToVideoPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.2 A14B T2V', - url='https://huggingface.co/Wan-AI/Wan2.2-T2V-A14B-Diffusers', - repo='Wan-AI/Wan2.2-T2V-A14B-Diffusers', - repo_cls=diffusers.WanPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel, - dit_folder=("transformer", "transformer_2")), - Model(name='WAN 2.2 A14B I2V', - url='https://huggingface.co/Wan-AI/Wan2.2-I2V-A14B-Diffusers', - repo='Wan-AI/Wan2.2-I2V-A14B-Diffusers', - repo_cls=diffusers.WanImageToVideoPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel, - dit_folder=("transformer", "transformer_2")), - Model(name='WAN 2.2 14B VACE', - url='https://huggingface.co/linoyts/Wan2.2-VACE-Fun-14B-diffusers', - repo='linoyts/Wan2.2-VACE-Fun-14B-diffusers', - repo_cls=diffusers.WanVACEPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanVACETransformer3DModel, - dit_folder=("transformer", "transformer_2")), - Model(name='WAN 2.1 1.3B T2V', - url='https://huggingface.co/Wan-AI/Wan2.1-T2V-1.3B-Diffusers', - repo='Wan-AI/Wan2.1-T2V-1.3B-Diffusers', - repo_cls=diffusers.WanPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.1 14B T2V', - url='https://huggingface.co/Wan-AI/Wan2.1-T2V-14B-Diffusers', - repo='Wan-AI/Wan2.1-T2V-14B-Diffusers', - repo_cls=diffusers.WanPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.1 14B I2V 480p', - url='https://huggingface.co/Wan-AI/Wan2.1-I2V-14B-480P-Diffusers', - repo='Wan-AI/Wan2.1-I2V-14B-480P-Diffusers', - repo_cls=diffusers.WanImageToVideoPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.1 14B I2V 720p', - url='https://huggingface.co/Wan-AI/Wan2.1-I2V-14B-720P-Diffusers', - repo='Wan-AI/Wan2.1-I2V-14B-720P-Diffusers', - repo_cls=diffusers.WanImageToVideoPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.1 14B FLF2V 720p', - url='https://huggingface.co/Wan-AI/Wan2.1-FLF2V-14B-720P', - repo='Wan-AI/Wan2.1-FLF2V-14B-720P-diffusers', - repo_cls=diffusers.WanImageToVideoPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanTransformer3DModel), - Model(name='WAN 2.1 VACE 1.3B', - url='https://huggingface.co/Wan-AI/Wan2.1-VACE-1.3B-diffusers', - repo='Wan-AI/Wan2.1-VACE-1.3B-diffusers', - repo_cls=diffusers.WanVACEPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanVACETransformer3DModel), - Model(name='WAN 2.1 VACE 14B', - url='https://huggingface.co/Wan-AI/Wan2.1-VACE-14B-diffusers', - repo='Wan-AI/Wan2.1-VACE-14B-diffusers', - repo_cls=diffusers.WanVACEPipeline, - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.WanVACETransformer3DModel), - ], - 'SkyReels V2': [ - Model(name='None'), - Model(name='SkyReels-V2 T2V-DF 1.3B-540P', - url='https://huggingface.co/Skywork/SkyReels-V2-DF-1.3B-540P-Diffusers', - repo='Skywork/SkyReels-V2-DF-1.3B-540P-Diffusers', - repo_cls=diffusers.SkyReelsV2DiffusionForcingPipeline, - repo_revision='refs/pr/1', - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.SkyReelsV2Transformer3DModel), - Model(name='SkyReels-V2 T2V-DF 14B-720P', - url='https://huggingface.co/Skywork/SkyReels-V2-DF-14B-720P-Diffusers', - repo='Skywork/SkyReels-V2-DF-14B-720P-Diffusers', - repo_cls=diffusers.SkyReelsV2DiffusionForcingPipeline, - repo_revision='refs/pr/1', - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.SkyReelsV2Transformer3DModel), - Model(name='SkyReels-V2 I2V-DF 14B-720P', - url='https://huggingface.co/Skywork/SkyReels-V2-DF-14B-720P-Diffusers', - repo='Skywork/SkyReels-V2-DF-14B-720P-Diffusers', - repo_cls=diffusers.SkyReelsV2DiffusionForcingImageToVideoPipeline, - repo_revision='refs/pr/1', - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.SkyReelsV2Transformer3DModel), - Model(name='SkyReels-V2 T2V 14B-720P', - url='https://huggingface.co/Skywork/SkyReels-V2-T2V-14B-720P-Diffusers', - repo='Skywork/SkyReels-V2-T2V-14B-720P-Diffusers', - repo_cls=diffusers.SkyReelsV2Pipeline, - repo_revision='refs/pr/1', - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.SkyReelsV2Transformer3DModel), - Model(name='SkyReels-V2 I2V 14B-720P', - url='https://huggingface.co/Skywork/SkyReels-V2-I2V-14B-720P-Diffusers', - repo='Skywork/SkyReels-V2-I2V-14B-720P-Diffusers', - repo_cls=diffusers.SkyReelsV2ImageToVideoPipeline, - repo_revision='refs/pr/1', - te_cls=transformers.UMT5EncoderModel, - dit_cls=diffusers.SkyReelsV2Transformer3DModel), - ], - 'Mochi Video': [ - Model(name='None'), - Model(name='Mochi 1 T2V', - url='https://huggingface.co/genmo/mochi-1-preview', - repo='genmo/mochi-1-preview', - repo_cls=diffusers.MochiPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.MochiTransformer3DModel), - ], - 'Latte Video': [ - Model(name='None'), - Model(name='Latte 1 T2V', - url='https://huggingface.co/maxin-cn/Latte-1', - repo='maxin-cn/Latte-1', - repo_cls=diffusers.LattePipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.LatteTransformer3DModel), - ], - 'Allegro Video': [ - Model(name='None'), - Model(name='Allegro T2V', - url='https://huggingface.co/rhymes-ai/Allegro', - repo='rhymes-ai/Allegro', - repo_cls=diffusers.AllegroPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.AllegroTransformer3DModel), - ], - 'Cog Video': [ - Model(name='None'), - Model(name='CogVideoX 1.0 2B T2V', - url='https://huggingface.co/THUDM/CogVideoX-2b', - repo='THUDM/CogVideoX-2b', - repo_cls=diffusers.CogVideoXPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='CogVideoX 1.0 5B T2V', - url='https://huggingface.co/THUDM/CogVideoX-5b', - repo='THUDM/CogVideoX-5b', - repo_cls=diffusers.CogVideoXPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='CogVideoX 1.0 5B I2V', - url='https://huggingface.co/THUDM/CogVideoX-5b-I2V', - repo='THUDM/CogVideoX-5b-I2V', - repo_cls=diffusers.CogVideoXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='CogVideoX 1.5 5B T2V', - url='https://huggingface.co/THUDM/CogVideoX1.5-5B', - repo='THUDM/CogVideoX1.5-5B', - repo_cls=diffusers.CogVideoXPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='CogVideoX 1.5 5B I2V', - url='https://huggingface.co/THUDM/CogVideoX1.5-5B-I2V', - repo='THUDM/CogVideoX1.5-5B-I2V', - repo_cls=diffusers.CogVideoXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='Index Anisora 1.0 5B I2V', - url='https://huggingface.co/Disty0/Index-anisora-5B-diffusers', - repo='Disty0/Index-anisora-5B-diffusers', - repo_cls=diffusers.CogVideoXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - Model(name='Index Anisora 1.0 5B RL I2V', - url='https://huggingface.co/Disty0/Index-anisora-5B_RL-diffusers', - repo='Disty0/Index-anisora-5B_RL-diffusers', - repo_cls=diffusers.CogVideoXImageToVideoPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CogVideoXTransformer3DModel), - ], - 'nVidia Cosmos': [ - Model(name='nvidia Cosmos Predict2 2B I2V', - url='https://huggingface.co/nvidia/Cosmos-Predict2-2B-Text2Image', - repo='nvidia/Cosmos-Predict2-2B-Video2World', - repo_cls=diffusers.Cosmos2VideoToWorldPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CosmosTransformer3DModel), - Model(name='nvidia Cosmos Predict2 2B I2V', - url='https://huggingface.co/nvidia/Cosmos-Predict2-2B-Text2Image', - repo='nvidia/Cosmos-Predict2-2B-Video2World', - repo_cls=diffusers.Cosmos2VideoToWorldPipeline, - te_cls=transformers.T5EncoderModel, - dit_cls=diffusers.CosmosTransformer3DModel), - ], - 'Kandinsky': [ - Model(name='Kandinsky 5.0 Lite SFT T2V', - url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', - repo='ai-forever/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', - repo_cls=diffusers.Kandinsky5T2VPipeline, - te_cls=transformers.Qwen2_5_VLForConditionalGeneration, - dit_cls=diffusers.Kandinsky5Transformer3DModel), - Model(name='Kandinsky 5.0 Lite CFG-distilled T2V', - url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', - repo='ai-forever/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', - repo_cls=diffusers.Kandinsky5T2VPipeline, - te_cls=transformers.Qwen2_5_VLForConditionalGeneration, - dit_cls=diffusers.Kandinsky5Transformer3DModel), - Model(name='Kandinsky 5.0 Lite Steps-distilled T2V', - url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', - repo='ai-forever/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', - repo_cls=diffusers.Kandinsky5T2VPipeline, - te_cls=transformers.Qwen2_5_VLForConditionalGeneration, - dit_cls=diffusers.Kandinsky5Transformer3DModel), - ], -} +try: + t0 = time.time() + models = { + 'None': [], + 'Hunyuan Video': [ + Model(name='None'), + Model(name='Hunyuan Video T2V', + url='https://huggingface.co/tencent/HunyuanVideo', + vae_remote=True, + repo='hunyuanvideo-community/HunyuanVideo', + repo_cls=diffusers.HunyuanVideoPipeline, + te_cls=transformers.LlamaModel, + dit_cls=diffusers.HunyuanVideoTransformer3DModel), + Model(name='Hunyuan Video I2V', # https://github.com/huggingface/diffusers/pull/10983 + url='https://huggingface.co/tencent/HunyuanVideo-I2V', + vae_remote=True, + repo='hunyuanvideo-community/HunyuanVideo-I2V', + repo_cls=diffusers.HunyuanVideoImageToVideoPipeline, + te_cls=transformers.LlavaForConditionalGeneration, + dit_cls=diffusers.HunyuanVideoTransformer3DModel), + Model(name='SkyReels Hunyuan T2V', # https://github.com/huggingface/diffusers/pull/10837 + url='https://huggingface.co/Skywork/SkyReels-V1-Hunyuan-T2V', + vae_remote=True, + repo='hunyuanvideo-community/HunyuanVideo', + repo_cls=diffusers.HunyuanVideoPipeline, + te_cls=transformers.LlamaModel, + dit='Skywork/SkyReels-V1-Hunyuan-T2V', + dit_folder=None, + dit_cls=diffusers.HunyuanVideoTransformer3DModel), + Model(name='SkyReels Hunyuan I2V', # https://github.com/huggingface/diffusers/pull/10837 + url='https://huggingface.co/Skywork/SkyReels-V1-Hunyuan-I2V', + vae_remote=True, + repo='hunyuanvideo-community/HunyuanVideo', + repo_cls=diffusers.HunyuanSkyreelsImageToVideoPipeline, + te_cls=transformers.LlamaModel, + dit='Skywork/SkyReels-V1-Hunyuan-I2V', + dit_folder=None, + dit_cls=diffusers.HunyuanVideoTransformer3DModel), + Model(name='Fast Hunyuan T2V', # https://github.com/hao-ai-lab/FastVideo/blob/8a77cf22c9b9e7f931f42bc4b35d21fd91d24e45/fastvideo/models/hunyuan/inference.py#L213 + url='https://huggingface.co/FastVideo/FastHunyuan', + vae_remote=True, + repo='hunyuanvideo-community/HunyuanVideo', + repo_cls=diffusers.HunyuanVideoPipeline, + te_cls=transformers.LlamaModel, + dit='FastVideo/FastHunyuan-diffusers', + dit_cls=diffusers.HunyuanVideoTransformer3DModel), + ], + 'LTX Video': [ + Model(name='None'), + Model(name='LTXVideo 0.9.8 13B', + url='https://huggingface.co/Lightricks/LTX-Video-0.9.8-13B-distilled', + repo='Lightricks/LTX-Video-0.9.8-13B-distilled', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.7 13B', + url='https://huggingface.co/Lightricks/LTX-Video-0.9.7-dev', + repo='a-r-r-o-w/LTX-Video-0.9.7-diffusers', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.6 2B T2V', + url='https://huggingface.co/Lightricks/LTX-Video', + repo='Lightricks/LTX-Video', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.6 2B I2V', + url='https://huggingface.co/Lightricks/LTX-Video', + repo='Lightricks/LTX-Video', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.6 2B T2V Distilled', + url='https://huggingface.co/Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', + repo='Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.6 2B I2V Distilled', + url='https://huggingface.co/Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', + repo='Lightricks/LTX-Video-2B-0.9.6-Distilled-04-25', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.5 T2V', # https://github.com/huggingface/diffusers/pull/10968 + url='https://huggingface.co/Lightricks/LTX-Video-0.9.5', + repo='Lightricks/LTX-Video-0.9.5', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.5 I2V', + url='https://huggingface.co/Lightricks/LTX-Video-0.9.5', + repo='Lightricks/LTX-Video-0.9.5', + repo_cls=diffusers.LTXConditionPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.1 T2V', + url='https://huggingface.co/a-r-r-o-w/LTX-Video-0.9.1-diffusers', + repo='a-r-r-o-w/LTX-Video-0.9.1-diffusers', + repo_cls=diffusers.LTXPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.1 I2V', + url='https://huggingface.co/a-r-r-o-w/LTX-Video-0.9.1-diffusers', + repo='a-r-r-o-w/LTX-Video-0.9.1-diffusers', + repo_cls=diffusers.LTXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.0 T2V', + url='https://huggingface.co/a-r-r-o-w/LTX-Video-diffusers', + repo='a-r-r-o-w/LTX-Video-diffusers', + repo_cls=diffusers.LTXPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + Model(name='LTXVideo 0.9.0 I2V', + url='https://huggingface.co/a-r-r-o-w/LTX-Video-diffusers', + repo='a-r-r-o-w/LTX-Video-diffusers', + repo_cls=diffusers.LTXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LTXVideoTransformer3DModel), + ], + 'WAN Video': [ + Model(name='None'), + Model(name='WAN 2.2 5B T2V', + url='https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B-Diffusers', + repo='Wan-AI/Wan2.2-TI2V-5B-Diffusers', + repo_cls=diffusers.WanPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.2 5B I2V', + url='https://huggingface.co/Wan-AI/Wan2.2-TI2V-5B-Diffusers', + repo='Wan-AI/Wan2.2-TI2V-5B-Diffusers', + repo_cls=diffusers.WanImageToVideoPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.2 A14B T2V', + url='https://huggingface.co/Wan-AI/Wan2.2-T2V-A14B-Diffusers', + repo='Wan-AI/Wan2.2-T2V-A14B-Diffusers', + repo_cls=diffusers.WanPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel, + dit_folder=("transformer", "transformer_2")), + Model(name='WAN 2.2 A14B I2V', + url='https://huggingface.co/Wan-AI/Wan2.2-I2V-A14B-Diffusers', + repo='Wan-AI/Wan2.2-I2V-A14B-Diffusers', + repo_cls=diffusers.WanImageToVideoPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel, + dit_folder=("transformer", "transformer_2")), + Model(name='WAN 2.2 14B VACE', + url='https://huggingface.co/linoyts/Wan2.2-VACE-Fun-14B-diffusers', + repo='linoyts/Wan2.2-VACE-Fun-14B-diffusers', + repo_cls=diffusers.WanVACEPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanVACETransformer3DModel, + dit_folder=("transformer", "transformer_2")), + Model(name='WAN 2.1 1.3B T2V', + url='https://huggingface.co/Wan-AI/Wan2.1-T2V-1.3B-Diffusers', + repo='Wan-AI/Wan2.1-T2V-1.3B-Diffusers', + repo_cls=diffusers.WanPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.1 14B T2V', + url='https://huggingface.co/Wan-AI/Wan2.1-T2V-14B-Diffusers', + repo='Wan-AI/Wan2.1-T2V-14B-Diffusers', + repo_cls=diffusers.WanPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.1 14B I2V 480p', + url='https://huggingface.co/Wan-AI/Wan2.1-I2V-14B-480P-Diffusers', + repo='Wan-AI/Wan2.1-I2V-14B-480P-Diffusers', + repo_cls=diffusers.WanImageToVideoPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.1 14B I2V 720p', + url='https://huggingface.co/Wan-AI/Wan2.1-I2V-14B-720P-Diffusers', + repo='Wan-AI/Wan2.1-I2V-14B-720P-Diffusers', + repo_cls=diffusers.WanImageToVideoPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.1 14B FLF2V 720p', + url='https://huggingface.co/Wan-AI/Wan2.1-FLF2V-14B-720P', + repo='Wan-AI/Wan2.1-FLF2V-14B-720P-diffusers', + repo_cls=diffusers.WanImageToVideoPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanTransformer3DModel), + Model(name='WAN 2.1 VACE 1.3B', + url='https://huggingface.co/Wan-AI/Wan2.1-VACE-1.3B-diffusers', + repo='Wan-AI/Wan2.1-VACE-1.3B-diffusers', + repo_cls=diffusers.WanVACEPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanVACETransformer3DModel), + Model(name='WAN 2.1 VACE 14B', + url='https://huggingface.co/Wan-AI/Wan2.1-VACE-14B-diffusers', + repo='Wan-AI/Wan2.1-VACE-14B-diffusers', + repo_cls=diffusers.WanVACEPipeline, + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.WanVACETransformer3DModel), + ], + 'SkyReels V2': [ + Model(name='None'), + Model(name='SkyReels-V2 T2V-DF 1.3B-540P', + url='https://huggingface.co/Skywork/SkyReels-V2-DF-1.3B-540P-Diffusers', + repo='Skywork/SkyReels-V2-DF-1.3B-540P-Diffusers', + repo_cls=diffusers.SkyReelsV2DiffusionForcingPipeline, + repo_revision='refs/pr/1', + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.SkyReelsV2Transformer3DModel), + Model(name='SkyReels-V2 T2V-DF 14B-720P', + url='https://huggingface.co/Skywork/SkyReels-V2-DF-14B-720P-Diffusers', + repo='Skywork/SkyReels-V2-DF-14B-720P-Diffusers', + repo_cls=diffusers.SkyReelsV2DiffusionForcingPipeline, + repo_revision='refs/pr/1', + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.SkyReelsV2Transformer3DModel), + Model(name='SkyReels-V2 I2V-DF 14B-720P', + url='https://huggingface.co/Skywork/SkyReels-V2-DF-14B-720P-Diffusers', + repo='Skywork/SkyReels-V2-DF-14B-720P-Diffusers', + repo_cls=diffusers.SkyReelsV2DiffusionForcingImageToVideoPipeline, + repo_revision='refs/pr/1', + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.SkyReelsV2Transformer3DModel), + Model(name='SkyReels-V2 T2V 14B-720P', + url='https://huggingface.co/Skywork/SkyReels-V2-T2V-14B-720P-Diffusers', + repo='Skywork/SkyReels-V2-T2V-14B-720P-Diffusers', + repo_cls=diffusers.SkyReelsV2Pipeline, + repo_revision='refs/pr/1', + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.SkyReelsV2Transformer3DModel), + Model(name='SkyReels-V2 I2V 14B-720P', + url='https://huggingface.co/Skywork/SkyReels-V2-I2V-14B-720P-Diffusers', + repo='Skywork/SkyReels-V2-I2V-14B-720P-Diffusers', + repo_cls=diffusers.SkyReelsV2ImageToVideoPipeline, + repo_revision='refs/pr/1', + te_cls=transformers.UMT5EncoderModel, + dit_cls=diffusers.SkyReelsV2Transformer3DModel), + ], + 'Mochi Video': [ + Model(name='None'), + Model(name='Mochi 1 T2V', + url='https://huggingface.co/genmo/mochi-1-preview', + repo='genmo/mochi-1-preview', + repo_cls=diffusers.MochiPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.MochiTransformer3DModel), + ], + 'Latte Video': [ + Model(name='None'), + Model(name='Latte 1 T2V', + url='https://huggingface.co/maxin-cn/Latte-1', + repo='maxin-cn/Latte-1', + repo_cls=diffusers.LattePipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.LatteTransformer3DModel), + ], + 'Allegro Video': [ + Model(name='None'), + Model(name='Allegro T2V', + url='https://huggingface.co/rhymes-ai/Allegro', + repo='rhymes-ai/Allegro', + repo_cls=diffusers.AllegroPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.AllegroTransformer3DModel), + ], + 'Cog Video': [ + Model(name='None'), + Model(name='CogVideoX 1.0 2B T2V', + url='https://huggingface.co/THUDM/CogVideoX-2b', + repo='THUDM/CogVideoX-2b', + repo_cls=diffusers.CogVideoXPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='CogVideoX 1.0 5B T2V', + url='https://huggingface.co/THUDM/CogVideoX-5b', + repo='THUDM/CogVideoX-5b', + repo_cls=diffusers.CogVideoXPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='CogVideoX 1.0 5B I2V', + url='https://huggingface.co/THUDM/CogVideoX-5b-I2V', + repo='THUDM/CogVideoX-5b-I2V', + repo_cls=diffusers.CogVideoXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='CogVideoX 1.5 5B T2V', + url='https://huggingface.co/THUDM/CogVideoX1.5-5B', + repo='THUDM/CogVideoX1.5-5B', + repo_cls=diffusers.CogVideoXPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='CogVideoX 1.5 5B I2V', + url='https://huggingface.co/THUDM/CogVideoX1.5-5B-I2V', + repo='THUDM/CogVideoX1.5-5B-I2V', + repo_cls=diffusers.CogVideoXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='Index Anisora 1.0 5B I2V', + url='https://huggingface.co/Disty0/Index-anisora-5B-diffusers', + repo='Disty0/Index-anisora-5B-diffusers', + repo_cls=diffusers.CogVideoXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + Model(name='Index Anisora 1.0 5B RL I2V', + url='https://huggingface.co/Disty0/Index-anisora-5B_RL-diffusers', + repo='Disty0/Index-anisora-5B_RL-diffusers', + repo_cls=diffusers.CogVideoXImageToVideoPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CogVideoXTransformer3DModel), + ], + 'nVidia Cosmos': [ + Model(name='nvidia Cosmos Predict2 2B I2V', + url='https://huggingface.co/nvidia/Cosmos-Predict2-2B-Text2Image', + repo='nvidia/Cosmos-Predict2-2B-Video2World', + repo_cls=diffusers.Cosmos2VideoToWorldPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CosmosTransformer3DModel), + Model(name='nvidia Cosmos Predict2 2B I2V', + url='https://huggingface.co/nvidia/Cosmos-Predict2-2B-Text2Image', + repo='nvidia/Cosmos-Predict2-2B-Video2World', + repo_cls=diffusers.Cosmos2VideoToWorldPipeline, + te_cls=transformers.T5EncoderModel, + dit_cls=diffusers.CosmosTransformer3DModel), + ], + 'Kandinsky': [ + Model(name='Kandinsky 5.0 Lite SFT T2V', + url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', + repo='ai-forever/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', + repo_cls=diffusers.Kandinsky5T2VPipeline, + te_cls=transformers.Qwen2_5_VLForConditionalGeneration, + dit_cls=diffusers.Kandinsky5Transformer3DModel), + Model(name='Kandinsky 5.0 Lite CFG-distilled T2V', + url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', + repo='ai-forever/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', + repo_cls=diffusers.Kandinsky5T2VPipeline, + te_cls=transformers.Qwen2_5_VLForConditionalGeneration, + dit_cls=diffusers.Kandinsky5Transformer3DModel), + Model(name='Kandinsky 5.0 Lite Steps-distilled T2V', + url='https://huggingface.co/ai-forever/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', + repo='ai-forever/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', + repo_cls=diffusers.Kandinsky5T2VPipeline, + te_cls=transformers.Qwen2_5_VLForConditionalGeneration, + dit_cls=diffusers.Kandinsky5Transformer3DModel), + ], + } + t1 = time.time() + total = sum([len(models[model]) for model in models.keys()]) + log.info(f'Networks: type="video" engines={len(models)} models={total} time={t1 - t0:.2f}') +except Exception as e: + models = {} + log.error(f'Networks: type="video" {e}')