diff --git a/CHANGELOG.md b/CHANGELOG.md index fb797f9e3..15f336018 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ - **SDNQ** support for NPU during quantization and inference - add option: force dtype on load use to force model components to override loading with desired dtype regardless of component config +- **Internal** + - delay init of video models - **Fixes** - `sdnq` warn instead of error for triton - `insightface` missing dependencies diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index 083925b85..e22ae2d79 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -555,7 +555,10 @@ def validate_pipeline(p: processing.StableDiffusionProcessing): for family in video_models: for m in video_models[family]: if m.repo_cls is not None: - models_cls.append(m.repo_cls.__name__) + if isinstance(m.repo_cls, str): + models_cls.append(m.repo_cls) + else: + models_cls.append(m.repo_cls.__name__) if m.custom is not None: models_cls.append(m.custom) is_video_model = shared.sd_model.__class__.__name__ in models_cls diff --git a/modules/sd_hijack_te.py b/modules/sd_hijack_te.py index 172b3f863..a9f7f9d29 100644 --- a/modules/sd_hijack_te.py +++ b/modules/sd_hijack_te.py @@ -40,8 +40,8 @@ def hijack_encode_prompt(*args, **kwargs): timer.process.add('te', t1-t0) shared.sd_model = sd_models.apply_balanced_offload(shared.sd_model) shared.state.end(jobid) - from modules import memstats - log.debug(f'Encode: memory={memstats.memory_stats()}') + # from modules import memstats + # log.debug(f'Encode: memory={memstats.memory_stats()}') return res diff --git a/modules/video_models/models_def.py b/modules/video_models/models_def.py index b1d4d34eb..d0dd115c6 100644 --- a/modules/video_models/models_def.py +++ b/modules/video_models/models_def.py @@ -59,91 +59,91 @@ try: url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2v', - repo_cls=getpipe(diffusers, 'HunyuanVideo15Pipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15Pipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 I2V 720p', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_i2v', - repo_cls=getpipe(diffusers, 'HunyuanVideo15ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15ImageToVideoPipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 I2V 720p Distilled', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_i2v_distilled', - repo_cls=getpipe(diffusers, 'HunyuanVideo15ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15ImageToVideoPipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 T2V 480p', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-480p_t2v', - repo_cls=getpipe(diffusers, 'HunyuanVideo15Pipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15Pipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 T2V 480p Distilled', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-480p_t2v_distilled', - repo_cls=getpipe(diffusers, 'HunyuanVideo15Pipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15Pipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 I2V 480p', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-480p_i2v', - repo_cls=getpipe(diffusers, 'HunyuanVideo15ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15ImageToVideoPipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.5 I2V 480p Distilled', url='https://huggingface.co/tencent/HunyuanVideo-1.5', vae_remote=False, repo='hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-480p_i2v_distilled', - repo_cls=getpipe(diffusers, 'HunyuanVideo15ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLTextModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideo15Transformer3DModel', None)), + repo_cls='HunyuanVideo15ImageToVideoPipeline', + te_cls='Qwen2_5_VLTextModel', + dit_cls='HunyuanVideo15Transformer3DModel'), Model(name='Hunyuan Video 1.0 T2V', url='https://huggingface.co/tencent/HunyuanVideo', vae_remote=True, repo='hunyuanvideo-community/HunyuanVideo', - repo_cls=getpipe(diffusers, 'HunyuanVideoPipeline', None), - te_cls=getpipe(transformers, 'LlamaModel', None), - dit_cls=getpipe(diffusers, 'HunyuanVideoTransformer3DModel', None)), + repo_cls='HunyuanVideoPipeline', + te_cls='LlamaModel', + dit_cls='HunyuanVideoTransformer3DModel'), Model(name='Hunyuan Video 1.0 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=getpipe(diffusers, 'HunyuanVideoImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'LlavaForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'HunyuanVideoTransformer3DModel', None)), + repo_cls='HunyuanVideoImageToVideoPipeline', + te_cls='LlavaForConditionalGeneration', + dit_cls='HunyuanVideoTransformer3DModel'), Model(name='SkyReels Hunyuan 1.0 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=getpipe(diffusers, 'HunyuanVideoPipeline', None), - te_cls=getpipe(transformers, 'LlamaModel', None), + repo_cls='HunyuanVideoPipeline', + te_cls='LlamaModel', dit='Skywork/SkyReels-V1-Hunyuan-T2V', dit_folder=None, - dit_cls=getpipe(diffusers, 'HunyuanVideoTransformer3DModel', None)), + dit_cls='HunyuanVideoTransformer3DModel'), Model(name='SkyReels Hunyuan 1.0 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=getpipe(diffusers, 'HunyuanSkyreelsImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'LlamaModel', None), + repo_cls='HunyuanSkyreelsImageToVideoPipeline', + te_cls='LlamaModel', dit='Skywork/SkyReels-V1-Hunyuan-I2V', dit_folder=None, - dit_cls=getpipe(diffusers, 'HunyuanVideoTransformer3DModel', None)), + dit_cls='HunyuanVideoTransformer3DModel'), Model(name='Fast Hunyuan 1.0 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=getpipe(diffusers, 'HunyuanVideoPipeline', None), - te_cls=getpipe(transformers, 'LlamaModel', None), + repo_cls='HunyuanVideoPipeline', + te_cls='LlamaModel', dit='FastVideo/FastHunyuan-diffusers', - dit_cls=getpipe(diffusers, 'HunyuanVideoTransformer3DModel', None)), + dit_cls='HunyuanVideoTransformer3DModel'), ], 'LTX Video': [ Model(name='None'), @@ -152,485 +152,485 @@ try: Model(name='LTXVideo 2.3-1.1 22B T2V Distilled', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-1.1', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3-1.1 22B I2V Distilled', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-1.1', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3-1.1 22B T2V Distilled SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-1.1-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3-1.1 22B I2V Distilled SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-1.1-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='─────── LTX-2.3 v1.0 ───────'), Model(name='─── Base ───'), Model(name='LTXVideo 2.3 22B T2V', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B I2V', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B Condition', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3', - repo_cls=getpipe(diffusers, 'LTX2ConditionPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ConditionPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B T2V SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B I2V SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B Condition SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2ConditionPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ConditionPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='─── Distilled ───'), Model(name='LTXVideo 2.3 22B T2V Distilled', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B I2V Distilled', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B Condition Distilled', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled', - repo_cls=getpipe(diffusers, 'LTX2ConditionPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ConditionPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B T2V Distilled SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B I2V Distilled SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.3 22B Condition Distilled SDNQ-4Bit', url='https://huggingface.co/Lightricks/LTX-2.3', repo='OzzyGT/LTX-2.3-Distilled-sdnq-dynamic-int4', - repo_cls=getpipe(diffusers, 'LTX2ConditionPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ConditionPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='─────── LTX-2.0 ───────'), Model(name='LTXVideo 2.0 19B T2V Dev', url='https://huggingface.co/Lightricks/LTX-2', repo='Lightricks/LTX-2', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.0 19B I2V Dev', url='https://huggingface.co/Lightricks/LTX-2', repo='Lightricks/LTX-2', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.0 19B T2V Dev SDNQ-4Bit', url='https://huggingface.co/Disty0/LTX-2-SDNQ-4bit-dynamic', repo='Disty0/LTX-2-SDNQ-4bit-dynamic', - repo_cls=getpipe(diffusers, 'LTX2Pipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2Pipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='LTXVideo 2.0 19B I2V Dev SDNQ-4Bit', url='https://huggingface.co/Disty0/LTX-2-SDNQ-4bit-dynamic', repo='Disty0/LTX-2-SDNQ-4bit-dynamic', - repo_cls=getpipe(diffusers, 'LTX2ImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma3ForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'LTX2VideoTransformer3DModel', None)), + repo_cls='LTX2ImageToVideoPipeline', + te_cls='Gemma3ForConditionalGeneration', + dit_cls='LTX2VideoTransformer3DModel'), Model(name='─────── LTX-0.9.x ───────'), Model(name='─── Base ───'), Model(name='LTXVideo 0.9.7 13B Dev', 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=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='LTXVideoTransformer3DModel'), Model(name='LTXVideo 0.9.6 2B T2V', url='https://huggingface.co/Lightricks/LTX-Video', repo='Lightricks/LTX-Video', - repo_cls=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='LTXVideoTransformer3DModel'), Model(name='LTXVideo 0.9.6 2B I2V', url='https://huggingface.co/Lightricks/LTX-Video', repo='Lightricks/LTX-Video', - repo_cls=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='LTXVideoTransformer3DModel'), Model(name='─── Distilled ───'), Model(name='LTXVideo 0.9.8 13B Distilled', url='https://huggingface.co/Lightricks/LTX-Video-0.9.8-13B-distilled', repo='Lightricks/LTX-Video-0.9.8-13B-distilled', - repo_cls=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LTXConditionPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LTXVideoTransformer3DModel', None)), + repo_cls='LTXConditionPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None), + repo_cls='WanPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='WanTransformer3DModel', dit_folder=("transformer", "transformer_2")), Model(name='WAN 2.2 A14B SDNQ T2V', url='https://huggingface.co/Disty0/Wan2.2-T2V-A14B-SDNQ-uint4-svd-r32', repo='Disty0/Wan2.2-T2V-A14B-SDNQ-uint4-svd-r32', - repo_cls=getpipe(diffusers, 'WanPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None), + repo_cls='WanPipeline', + te_cls='UMT5EncoderModel', + dit_cls='WanTransformer3DModel', dit_folder=("transformer", "transformer_2")), Model(name='WAN 2.2 A14B SDNQ I2V', url='https://huggingface.co/Disty0/Wan2.2-I2V-A14B-SDNQ-uint4-svd-r32', repo='Disty0/Wan2.2-I2V-A14B-SDNQ-uint4-svd-r32', - repo_cls=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanVACEPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanVACETransformer3DModel', None), + repo_cls='WanVACEPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanTransformer3DModel', None)), + repo_cls='WanImageToVideoPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanVACEPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanVACETransformer3DModel', None)), + repo_cls='WanVACEPipeline', + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'WanVACEPipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanVACETransformer3DModel', None)), + repo_cls='WanVACEPipeline', + te_cls='UMT5EncoderModel', + dit_cls='WanVACETransformer3DModel'), Model(name='WAN 2.2 Animate 14B', url='https://huggingface.co/Wan-AI/Wan2.2-Animate-14B-Diffusers', repo='Wan-AI/Wan2.2-Animate-14B-Diffusers', - repo_cls=getpipe(diffusers, 'WanAnimatePipeline', None), - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'WanAnimateTransformer3DModel', None)), + repo_cls='WanAnimatePipeline', + te_cls='UMT5EncoderModel', + dit_cls='WanAnimateTransformer3DModel'), ], '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=getpipe(diffusers, 'SkyReelsV2DiffusionForcingPipeline', None), + repo_cls='SkyReelsV2DiffusionForcingPipeline', repo_revision='refs/pr/1', - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'SkyReelsV2Transformer3DModel', None)), + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'SkyReelsV2DiffusionForcingPipeline', None), + repo_cls='SkyReelsV2DiffusionForcingPipeline', repo_revision='refs/pr/1', - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'SkyReelsV2Transformer3DModel', None)), + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'SkyReelsV2DiffusionForcingImageToVideoPipeline', None), + repo_cls='SkyReelsV2DiffusionForcingImageToVideoPipeline', repo_revision='refs/pr/1', - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'SkyReelsV2Transformer3DModel', None)), + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'SkyReelsV2Pipeline', None), + repo_cls='SkyReelsV2Pipeline', repo_revision='refs/pr/1', - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'SkyReelsV2Transformer3DModel', None)), + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'SkyReelsV2ImageToVideoPipeline', None), + repo_cls='SkyReelsV2ImageToVideoPipeline', repo_revision='refs/pr/1', - te_cls=getpipe(transformers, 'UMT5EncoderModel', None), - dit_cls=getpipe(diffusers, 'SkyReelsV2Transformer3DModel', None)), + te_cls='UMT5EncoderModel', + dit_cls='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=getpipe(diffusers, 'MochiPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'MochiTransformer3DModel', None)), + repo_cls='MochiPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'LattePipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'LatteTransformer3DModel', None)), + repo_cls='LattePipeline', + te_cls='T5EncoderModel', + dit_cls='LatteTransformer3DModel'), ], 'Allegro Video': [ Model(name='None'), Model(name='Allegro T2V', url='https://huggingface.co/rhymes-ai/Allegro', repo='rhymes-ai/Allegro', - repo_cls=getpipe(diffusers, 'AllegroPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'AllegroTransformer3DModel', None)), + repo_cls='AllegroPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'CogVideoXPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXPipeline', + te_cls='T5EncoderModel', + dit_cls='CogVideoXTransformer3DModel'), Model(name='CogVideoX 1.0 5B T2V', url='https://huggingface.co/THUDM/CogVideoX-5b', repo='THUDM/CogVideoX-5b', - repo_cls=getpipe(diffusers, 'CogVideoXPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXPipeline', + te_cls='T5EncoderModel', + dit_cls='CogVideoXTransformer3DModel'), Model(name='CogVideoX 1.0 5B I2V', url='https://huggingface.co/THUDM/CogVideoX-5b-I2V', repo='THUDM/CogVideoX-5b-I2V', - repo_cls=getpipe(diffusers, 'CogVideoXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='CogVideoXTransformer3DModel'), Model(name='CogVideoX 1.5 5B T2V', url='https://huggingface.co/THUDM/CogVideoX1.5-5B', repo='THUDM/CogVideoX1.5-5B', - repo_cls=getpipe(diffusers, 'CogVideoXPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'CogVideoXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'CogVideoXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'CogVideoXImageToVideoPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CogVideoXTransformer3DModel', None)), + repo_cls='CogVideoXImageToVideoPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'Cosmos2VideoToWorldPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CosmosTransformer3DModel', None)), + repo_cls='Cosmos2VideoToWorldPipeline', + te_cls='T5EncoderModel', + dit_cls='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=getpipe(diffusers, 'Cosmos2VideoToWorldPipeline', None), - te_cls=getpipe(transformers, 'T5EncoderModel', None), - dit_cls=getpipe(diffusers, 'CosmosTransformer3DModel', None)), + repo_cls='Cosmos2VideoToWorldPipeline', + te_cls='T5EncoderModel', + dit_cls='CosmosTransformer3DModel'), ], 'nVidia SANA': [ Model(name='SANA Video 2B 480p T2V', url='https://huggingface.co/Efficient-Large-Model/SANA-Video_2B_480p_diffusers', repo='Efficient-Large-Model/SANA-Video_2B_480p_diffusers', - repo_cls=getpipe(diffusers, 'SanaVideoPipeline', None), - te_cls=getpipe(transformers, 'Gemma2Model', None), - dit_cls=getpipe(diffusers, 'SanaVideoTransformer3DModel', None)), + repo_cls='SanaVideoPipeline', + te_cls='Gemma2Model', + dit_cls='SanaVideoTransformer3DModel'), ], 'Kandinsky': [ Model(name='Kandinsky 5.0 Lite 5s SFT T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Lite 5s CFG-distilled T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Lite 5s Steps-distilled T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Lite 10s SFT T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-sft-10s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-sft-10s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Lite 10s CFG-distilled T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-10s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-10s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Lite 10s Steps-distilled T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-10s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-10s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Pro 5s SFT T2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers', repo='kandinskylab/Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5T2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5T2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), Model(name='Kandinsky 5.0 Pro 5s SFT I2V', url='https://huggingface.co/kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers', repo='kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers', - repo_cls=getpipe(diffusers, 'Kandinsky5I2VPipeline', None), - te_cls=getpipe(transformers, 'Qwen2_5_VLForConditionalGeneration', None), - dit_cls=getpipe(diffusers, 'Kandinsky5Transformer3DModel', None)), + repo_cls='Kandinsky5I2VPipeline', + te_cls='Qwen2_5_VLForConditionalGeneration', + dit_cls='Kandinsky5Transformer3DModel'), ], 'Google Veo': [ Model(name='Google Veo 3.1 T2V', diff --git a/modules/video_models/video_load.py b/modules/video_models/video_load.py index b214ef6bb..a1ccdcd5b 100644 --- a/modules/video_models/video_load.py +++ b/modules/video_models/video_load.py @@ -2,6 +2,7 @@ import os import sys import copy import time +import transformers import diffusers from modules import shared, errors, sd_models, sd_checkpoint, model_quant, devices, sd_hijack_te, sd_hijack_vae from modules.logger import log @@ -33,6 +34,13 @@ def load_model(selected: models_def.Model): from modules import sdnq # pylint: disable=unused-import if selected is None or selected.repo is None: return '' + if isinstance(selected.repo_cls, str): + selected.repo_cls=models_def.getpipe(diffusers, selected.repo_cls, None) + if isinstance(selected.dit_cls, str): + selected.dit_cls=models_def.getpipe(diffusers, selected.dit_cls, None) + if isinstance(selected.te_cls, str): + selected.te_cls=models_def.getpipe(transformers, selected.te_cls, None) + global loaded_model # pylint: disable=global-statement if not shared.sd_loaded: loaded_model = None