fix fasthunyuan

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-01-27 15:39:59 -05:00
parent 6358276460
commit e90dfe7e0a
2 changed files with 16 additions and 4 deletions
+1 -1
View File
@@ -492,7 +492,7 @@ def check_diffusers():
t_start = time.time()
if args.skip_all or args.skip_git:
return
sha = '07860f991639f35f4b5a152676bd4d590c3e589e' # diffusers commit hash
sha = '8ceec90d76767035a63b879d659a2ed8e12c5bba' # diffusers commit hash
pkg = pkg_resources.working_set.by_key.get('diffusers', None)
minor = int(pkg.version.split('.')[1] if pkg is not None else 0)
cur = opts.get('diffusers_version', '') if minor > 0 else ''
+15 -3
View File
@@ -19,6 +19,8 @@ models = {
'HunyuanVideo': { 'repo': 'tencent/HunyuanVideo', 'revision': 'refs/pr/18' },
'FastHunyuan': { 'repo': 'FastVideo/FastHunyuan', 'revision': None },
}
loaded_model = None
def get_template(template: str = None):
# diffusers.pipelines.hunyuan_video.pipeline_hunyuan_video.DEFAULT_PROMPT_TEMPLATE
@@ -85,7 +87,8 @@ class Script(scripts.Script):
return [model, num_frames, tile_frames, override_scheduler, scheduler_shift, template, video_type, duration, gif_loop, mp4_pad, mp4_interpolate]
def load(self, model:str):
if shared.sd_model.__class__ != diffusers.HunyuanVideoPipeline:
global loaded_model # pylint: disable=global-statement
if shared.sd_model.__class__ != diffusers.HunyuanVideoPipeline or model != loaded_model:
sd_models.unload_model_weights()
t0 = time.time()
quant_args = {}
@@ -113,12 +116,20 @@ class Script(scripts.Script):
torch_dtype=devices.dtype,
**quant_args
)
text_encoder_2 = transformers.CLIPTextModel.from_pretrained(
pretrained_model_name_or_path=models.get(model)['repo'],
subfolder="text_encoder_2",
revision=models.get(model)['revision'],
cache_dir = shared.opts.hfcache_dir,
torch_dtype=devices.dtype,
)
shared.log.debug(f'Video: module={text_encoder.__class__.__name__}')
shared.sd_model = diffusers.HunyuanVideoPipeline.from_pretrained(
pretrained_model_name_or_path=models.get(model)['repo'],
pretrained_model_name_or_path='tencent/HunyuanVideo',
transformer=transformer,
text_encoder=text_encoder,
revision=models.get(model)['revision'],
text_encoder_2=text_encoder_2,
revision='refs/pr/18',
cache_dir = shared.opts.hfcache_dir,
torch_dtype=devices.dtype,
**quant_args
@@ -134,6 +145,7 @@ class Script(scripts.Script):
shared.sd_model.encode_prompt = hijack_encode_prompt
shared.sd_model.vae.enable_slicing()
shared.sd_model.vae.enable_tiling()
loaded_model = model
def run(self, p: processing.StableDiffusionProcessing, model, num_frames, tile_frames, override_scheduler, scheduler_shift, template, video_type, duration, gif_loop, mp4_pad, mp4_interpolate): # pylint: disable=arguments-differ, unused-argument
# set params