RAM2106 commited on
Commit
e7c3580
·
1 Parent(s): ba3689d

fix: patch Transformers registry to allow duplicate registrations on Hugging Face

Browse files
Files changed (1) hide show
  1. app.py +35 -0
app.py CHANGED
@@ -336,6 +336,41 @@ def get_model():
336
  # Set optimal thread count to prevent resource contention and logical core thrashing
337
  torch.set_num_threads(4)
338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  print(f"[VibeVoice] Loading model '{MODEL_ID}' on CPU... This may take a while on first run.", flush=True)
340
  from vibevoice.processor.vibevoice_processor import VibeVoiceProcessor
341
  from vibevoice.modular.modeling_vibevoice_inference import VibeVoiceForConditionalGenerationInference
 
336
  # Set optimal thread count to prevent resource contention and logical core thrashing
337
  torch.set_num_threads(4)
338
 
339
+ # Monkey patch Transformers registry to prevent registration duplicate errors
340
+ try:
341
+ from transformers.models.auto.auto_factory import _LazyAutoMapping, _BaseAutoModelClass
342
+
343
+ # 1. Patch _LazyAutoMapping.register to force exist_ok=True
344
+ if not hasattr(_LazyAutoMapping, "_original_register"):
345
+ _original_register = _LazyAutoMapping.register
346
+ def patched_register(self, key, value, exist_ok=False):
347
+ return _original_register(self, key, value, exist_ok=True)
348
+ _LazyAutoMapping.register = patched_register
349
+ _LazyAutoMapping._original_register = _original_register
350
+
351
+ # 2. Patch _BaseAutoModelClass.register classmethod to force exist_ok=True
352
+ if not hasattr(_BaseAutoModelClass, "_original_register"):
353
+ _original_model_register = _BaseAutoModelClass.register
354
+ @classmethod
355
+ def patched_model_register(cls, config_class, model_class, exist_ok=False):
356
+ return _original_model_register.__func__(cls, config_class, model_class, exist_ok=True)
357
+ _BaseAutoModelClass.register = patched_model_register
358
+ _BaseAutoModelClass._original_register = _original_model_register
359
+
360
+ # 3. Patch AutoConfig.register to force exist_ok=True
361
+ from transformers import AutoConfig
362
+ if not hasattr(AutoConfig, "_original_register"):
363
+ _original_config_register = AutoConfig.register
364
+ @classmethod
365
+ def patched_config_register(cls, key, value, exist_ok=False):
366
+ return _original_config_register.__func__(cls, key, value, exist_ok=True)
367
+ AutoConfig.register = patched_config_register
368
+ AutoConfig._original_register = _original_config_register
369
+
370
+ print("[VibeVoice-Patch] Applied comprehensive dynamic Transformers duplicate registration patches.", flush=True)
371
+ except Exception as patch_err:
372
+ print(f"[VibeVoice-Patch] Warning: Failed to apply dynamic patch: {patch_err}", flush=True)
373
+
374
  print(f"[VibeVoice] Loading model '{MODEL_ID}' on CPU... This may take a while on first run.", flush=True)
375
  from vibevoice.processor.vibevoice_processor import VibeVoiceProcessor
376
  from vibevoice.modular.modeling_vibevoice_inference import VibeVoiceForConditionalGenerationInference