yue2-models / sheetsage2 /setup_render.py
AEmotionStudio's picture
Add sheetsage2 lane (byte-identical mirror of the upstream release)
ec5d950 verified
Raw History Blame Contribute Delete
1.54 kB
"""Install the optional renderer and its matching headless browser."""
from pathlib import Path
import argparse
import subprocess
import sys
SCRIPT_DIR = Path(__file__).absolute().parent
sys.path.insert(0, str(SCRIPT_DIR))
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--with-deps", action="store_true", help="Also install Chromium OS libraries (may require sudo).")
args = parser.parse_args()
subprocess.run([sys.executable, "-m", "pip", "install", "-r", str(SCRIPT_DIR / "requirements-render.txt")], check=True)
command = [sys.executable, "-m", "playwright", "install", "--only-shell", "chromium"]
if args.with_deps:
command.append("--with-deps")
subprocess.run(command, check=True)
check = """from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True, args=['--disable-gpu'])
context = browser.new_context(offline=True)
page = context.new_page()
assert page.evaluate('typeof OfflineAudioContext') == 'function'
browser.close()
"""
result = subprocess.run([sys.executable, "-c", check], capture_output=True, text=True)
if result.returncode:
print("Chromium could not start. On Linux, run python setup_render.py --with-deps to install its system libraries.", file=sys.stderr)
return 1
print("Rendering is ready. Example: python render.py --input output --audio --score pdf")
return 0
if __name__ == "__main__":
raise SystemExit(main())