ColabWan / plugins /wan2gp-configuration /defaults_migration.py
1ripon1's picture
Upload folder using huggingface_hub
7344bef verified
Raw
History Blame Contribute Delete
5.53 kB
import json
from decimal import Decimal, InvalidOperation
from shared.deepy.config import DEEPY_ENABLED_KEY
LEGACY_EXTENSIONS_DEFAULTS_MIGRATED_KEY = "_extensions_defaults_migrated"
EXTENSIONS_DEFAULTS_VERSION_KEY = "extensions_defaults_version"
EXTENSIONS_DEFAULTS_TARGET_VERSION = Decimal("1.11")
EXTENSIONS_DEFAULTS_TARGET_VERSION_TEXT = str(EXTENSIONS_DEFAULTS_TARGET_VERSION)
MMAUDIO_MODE_CHOICES = [("Standard", 1), ("NSFW", 2)]
SEEDVC_MODE_CHOICES = [("v1.0 Speech", 1), ("v1.0 Singing / F0 44k", 2), ("v2 Speech", 3)]
FLASHVSR_MODE_CHOICES = [
("FlashVSR v1.1 Tiny (Slightly Lower Quality, Faster VAE Decoding, Needs Less RAM)", 1),
("FlashVSR v1.1 Full (Best Quality, Slower VAE Decoding, Needs More RAM)", 2),
]
PROMPT_ENHANCER_CHOICES = [
("Florence 2 (image captioning) + LLama 3.2 3B (text generation)", 1),
("Florence 2 (image captioning) + Llama Joy 8B (uncensored, richer)", 2),
("Qwen3.5VL Abliterated 4B (recommended, captioning + uncensored text enhancement, vllm accelerated if available)", 3),
("Qwen3.5VL Abliterated 9B (captioning + uncensored high end text enhancement, vllm accelerated if available)", 4),
]
MMAUDIO_DEFAULT_MODE = MMAUDIO_MODE_CHOICES[0][1]
SEEDVC_DEFAULT_MODE = 2
FLASHVSR_DEFAULT_MODE = FLASHVSR_MODE_CHOICES[0][1]
PROMPT_ENHANCER_LOW_VRAM_DEFAULT_MODE = PROMPT_ENHANCER_CHOICES[0][1]
PROMPT_ENHANCER_HIGH_VRAM_DEFAULT_MODE = 3
PROMPT_ENHANCER_DEFAULT_MODE = PROMPT_ENHANCER_HIGH_VRAM_DEFAULT_MODE
PROMPT_ENHANCER_QWEN_MIN_VRAM_GB = 10
DEEPY_DEFAULT_ENABLED = 1
def _to_int(value, default=0):
try:
return int(value or default)
except (TypeError, ValueError):
return default
def _is_off(value) -> bool:
return _to_int(value, 0) == 0
def _cuda_vram_gb() -> float:
try:
import torch
if not torch.cuda.is_available():
return 0.0
return torch.cuda.get_device_properties(torch.cuda.current_device()).total_memory / (1024 ** 3)
except Exception:
return 0.0
def get_prompt_enhancer_default_mode() -> int:
return PROMPT_ENHANCER_HIGH_VRAM_DEFAULT_MODE if _cuda_vram_gb() >= PROMPT_ENHANCER_QWEN_MIN_VRAM_GB else PROMPT_ENHANCER_LOW_VRAM_DEFAULT_MODE
def _write_config(config, config_filename):
if not config_filename:
return
with open(config_filename, "w", encoding="utf-8") as writer:
writer.write(json.dumps(config, indent=4))
def _set_missing_persistence(config, key):
if key not in config or _to_int(config.get(key), 1) not in (1, 2):
config[key] = 1
def _extension_defaults_version(config) -> Decimal:
version = config.get(EXTENSIONS_DEFAULTS_VERSION_KEY, None)
if version is not None:
try:
return Decimal(str(version))
except (InvalidOperation, ValueError):
return Decimal("1.0")
return Decimal("1.1") if config.get(LEGACY_EXTENSIONS_DEFAULTS_MIGRATED_KEY, False) else Decimal("1.0")
def migrate_extension_defaults(server_config, server_config_filename="") -> bool:
if not isinstance(server_config, dict):
return False
version = _extension_defaults_version(server_config)
prompt_enhancer_default_mode = get_prompt_enhancer_default_mode()
changed = False
if version < Decimal("1.1"):
mmaudio_mode = server_config.get("mmaudio_mode", None)
if mmaudio_mode is None:
mmaudio_mode = 0 if _is_off(server_config.get("mmaudio_enabled", 0)) else MMAUDIO_DEFAULT_MODE
if _is_off(mmaudio_mode):
server_config["mmaudio_mode"] = MMAUDIO_DEFAULT_MODE
changed = True
else:
server_config["mmaudio_mode"] = _to_int(mmaudio_mode, MMAUDIO_DEFAULT_MODE)
_set_missing_persistence(server_config, "mmaudio_persistence")
server_config["mmaudio_enabled"] = server_config["mmaudio_persistence"]
if _is_off(server_config.get("seedvc_mode", 0)):
server_config["seedvc_mode"] = SEEDVC_DEFAULT_MODE
changed = True
_set_missing_persistence(server_config, "seedvc_persistence")
if _is_off(server_config.get("flashvsr_mode", 0)):
server_config["flashvsr_mode"] = FLASHVSR_DEFAULT_MODE
changed = True
_set_missing_persistence(server_config, "flashvsr_persistence")
if _is_off(server_config.get("enhancer_enabled", 0)):
server_config["enhancer_enabled"] = prompt_enhancer_default_mode
changed = True
if _is_off(server_config.get(DEEPY_ENABLED_KEY, 0)):
server_config[DEEPY_ENABLED_KEY] = DEEPY_DEFAULT_ENABLED
changed = True
if version < EXTENSIONS_DEFAULTS_TARGET_VERSION:
if server_config.get("seedvc_mode") != SEEDVC_DEFAULT_MODE:
server_config["seedvc_mode"] = SEEDVC_DEFAULT_MODE
changed = True
_set_missing_persistence(server_config, "seedvc_persistence")
if server_config.pop(LEGACY_EXTENSIONS_DEFAULTS_MIGRATED_KEY, None) is not None:
changed = True
if server_config.get(EXTENSIONS_DEFAULTS_VERSION_KEY) != EXTENSIONS_DEFAULTS_TARGET_VERSION_TEXT:
server_config[EXTENSIONS_DEFAULTS_VERSION_KEY] = EXTENSIONS_DEFAULTS_TARGET_VERSION_TEXT
changed = True
if changed:
_write_config(server_config, server_config_filename)
return changed
def enabled_choice_value(value, choices, default):
allowed = {choice_value for _, choice_value in choices}
value = _to_int(value, default)
return value if value in allowed else default