# 文件名 comfyui_v2.py import os import subprocess import modal image = ( modal.Image.debian_slim( python_version="3.10" ) .apt_install("git", "gcc", "libportaudio2", "ffmpeg") .pip_install("comfy_cli==0.0.0", index_url="https://packages-1747622887395:0ee15474ccd7b27b57ca63a9306327678e6c2631@g-ldyi2063-pypi.pkg.coding.net/dev/packages/simple") .run_commands( "comfy --skip-prompt install --fast-deps --nvidia --version 0.3.40" ) .pip_install_from_pyproject(os.path.join(os.path.dirname(__file__), "pyproject.toml")) .run_commands("comfy node install https://gitea.bowongai.com/Polaris/ComfyUI-CustomNode.git") .run_commands("comfy node install https://github.com/yolain/ComfyUI-Easy-Use.git") .run_commands("comfy node install https://github.com/kijai/ComfyUI-WanVideoWrapper.git") .run_commands("comfy node install https://github.com/christian-byrne/audio-separation-nodes-comfyui.git") .run_commands("comfy node install https://github.com/crystian/ComfyUI-Crystools.git") .run_commands("comfy node install https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git") .run_commands("comfy node install https://github.com/kijai/ComfyUI-KJNodes.git") .run_commands("comfy node install https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git") .run_commands("comfy node install https://github.com/WASasquatch/was-node-suite-comfyui.git") .run_commands("comfy node install https://github.com/cubiq/ComfyUI_essentials.git") .run_commands("comfy node install https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git") .run_commands("comfy node install https://github.com/jamesWalker55/comfyui-various.git") .pip_install("sageattention") .run_commands("rm -rf /root/comfy/ComfyUI/models&&ln -s /models /root/comfy/ComfyUI/models") .run_commands("rm -rf /root/comfy/ComfyUI/input&&ln -s /models/input /root/comfy/ComfyUI/input") .run_commands("rm -rf /root/comfy/ComfyUI/outputs&&ln -s /models/output /root/comfy/ComfyUI/output") ) app = modal.App(image=image) custom_secret = modal.Secret.from_name("comfyui-custom-secret", environment_name="dev") vol = modal.Volume.from_name("comfy_model", environment_name="dev", create_if_missing=True) @app.function( cpu=(4, 64), memory=(2048, 131072), min_containers=0, buffer_containers=0, max_containers=1, gpu="L40S", scaledown_window=600, secrets=[custom_secret], region="us", volumes={ "/models": vol } ) @modal.concurrent( max_inputs=20 ) @modal.web_server(8000, startup_timeout=120) def ui_1(): subprocess.Popen("comfy launch -- --listen 0.0.0.0 --port 8000", shell=True) # @app.function( # max_containers=1, # secrets=[custom_secret] # ) # @modal.concurrent( # max_inputs=10 # ) # @modal.web_server(8000, startup_timeout=60) # def ui_2(): # subprocess.Popen("comfy launch -- --cpu --listen 0.0.0.0 --port 8000", shell=True) # # @app.function( # max_containers=1, # secrets=[custom_secret] # ) # @modal.concurrent( # max_inputs=10 # ) # @modal.web_server(8000, startup_timeout=60) # def ui_3(): # subprocess.Popen("comfy launch -- --cpu --listen 0.0.0.0 --port 8000", shell=True) # # @app.function( # max_containers=1, # secrets=[custom_secret] # ) # @modal.concurrent( # max_inputs=10 # ) # @modal.web_server(8000, startup_timeout=60) # def ui_4(): # subprocess.Popen("comfy launch -- --cpu --listen 0.0.0.0 --port 8000", shell=True)