Improve music activity reporting and preserve Comfy host fixes
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
"""Make YuE's HF token samplers honor Comfy's cancel flag. Run with the node directory."""
|
||||
import ast
|
||||
import pathlib
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
CHECK = ' from comfy.model_management import throw_exception_if_processing_interrupted\n throw_exception_if_processing_interrupted()\n'
|
||||
|
||||
def patch(source):
|
||||
tree = ast.parse(source)
|
||||
cls = next(n for n in tree.body if isinstance(n, ast.ClassDef) and n.name == 'BlockTokenRangeProcessor')
|
||||
method = next(n for n in cls.body if isinstance(n, ast.FunctionDef) and n.name == '__call__')
|
||||
if 'throw_exception_if_processing_interrupted' in ast.get_source_segment(source, method):
|
||||
return source
|
||||
lines = source.splitlines(keepends=True)
|
||||
lines.insert(method.body[0].lineno - 1, CHECK)
|
||||
result = ''.join(lines)
|
||||
ast.parse(result)
|
||||
return result
|
||||
|
||||
if __name__ == '__main__':
|
||||
root = pathlib.Path(sys.argv[1]).resolve(strict=True)
|
||||
plans = []
|
||||
for name in ('infer.py', 'common.py'):
|
||||
path = root / 'inference' / name
|
||||
source = path.read_text(encoding='utf-8')
|
||||
plans.append((path, source, patch(source)))
|
||||
for path, source, result in plans:
|
||||
if source == result:
|
||||
print(f'Already patched: {path.name}')
|
||||
continue
|
||||
backup = path.with_suffix('.py.before-aigen-cancel')
|
||||
if backup.exists():
|
||||
raise RuntimeError(f'Backup already exists: {backup}')
|
||||
shutil.copy2(path, backup)
|
||||
path.write_text(result, encoding='utf-8')
|
||||
print(f'Patched {path.name}; original backed up.')
|
||||
Reference in New Issue
Block a user