dotprogrammers / patch_wan_init.py
sayeed105236's picture
Fix: move generate.py patch into standalone Python script, remove inline -c
2c40a1b
Raw
History Blame Contribute Delete
1.36 kB
import os
# Patch wan/__init__.py
p = '/app/Wan2.2/wan/__init__.py'
with open(p) as f:
content = f.read()
lines = content.split('\n')
result = []
problematic = {'speech2video', 'animate', 'video2audio'}
for line in lines:
stripped = line.strip()
if stripped.startswith('from .') and 'import' in stripped:
parts = stripped.split()
module_ref = parts[1]
module_name = module_ref.lstrip('.')
if any(mod in module_name for mod in problematic):
indent = line[:len(line) - len(line.lstrip())]
result.append(f'{indent}try:')
result.append(f'{indent} {stripped}')
result.append(f'{indent}except ImportError:')
result.append(f'{indent} pass')
else:
result.append(line)
else:
result.append(line)
with open(p, 'w') as f:
f.write('\n'.join(result))
print('Patched wan/__init__.py')
# Patch generate.py
p = '/app/Wan2.2/generate.py'
with open(p) as f:
c = f.read()
c = c.replace(
'from wan.utils.prompt_extend import DashScopePromptExpander, QwenPromptExpander',
'try:\n from wan.utils.prompt_extend import DashScopePromptExpander, QwenPromptExpander\nexcept ImportError:\n DashScopePromptExpander = None\n QwenPromptExpander = None'
)
with open(p, 'w') as f:
f.write(c)
print('Patched generate.py')