FIX 旧分支保留heygem server 并修复
This commit is contained in:
parent
651e3ec4c1
commit
8b3acd82b3
|
|
@ -1,4 +1,4 @@
|
||||||
import modal.cli.run
|
import modal.cli.run
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
modal.cli.run.deploy(app_ref='.\\server_cluster\\app.py', name="server-bundle-deploy", tag="initialDeploy", env="main", use_module_mode=False)
|
modal.cli.run.deploy(app_ref='.\\server_cluster\\app.py', name="heygem-server", tag="initialDeploy", env="main", use_module_mode=False)
|
||||||
|
|
@ -22,8 +22,7 @@ heygem_base_image = (
|
||||||
.run_commands("ln -s /usr/local/lib/python3.8/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2 /usr/local/lib/python3.8/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so")
|
.run_commands("ln -s /usr/local/lib/python3.8/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2 /usr/local/lib/python3.8/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so")
|
||||||
.run_commands("python3.8 -m pip install https://github.com/pydata/numexpr/releases/download/v2.8.6/numexpr-2.8.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
.run_commands("python3.8 -m pip install https://github.com/pydata/numexpr/releases/download/v2.8.6/numexpr-2.8.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
||||||
.add_local_file("heygem.py", "/root/heygem.py", copy=True)
|
.add_local_file("heygem.py", "/root/heygem.py", copy=True)
|
||||||
.add_local_file("../config/config.yaml", "/root/config.yaml", copy=True)
|
.pip_install("boto3").pip_install("requests").workdir("/root").add_local_python_source("HeyGem_Base")
|
||||||
.pip_install("boto3").pip_install("PyYAML").pip_install("requests").workdir("/root").add_local_python_source("HeyGem_Base")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
heygem_base_app = modal.App(name="HeyGem-Base", image=heygem_base_image, include_source=False)
|
heygem_base_app = modal.App(name="HeyGem-Base", image=heygem_base_image, include_source=False)
|
||||||
|
|
@ -43,12 +42,13 @@ with heygem_base_image.imports():
|
||||||
import httpx
|
import httpx
|
||||||
import loguru
|
import loguru
|
||||||
import requests
|
import requests
|
||||||
|
import starlette
|
||||||
from fastapi import Depends, HTTPException, status, UploadFile
|
from fastapi import Depends, HTTPException, status, UploadFile
|
||||||
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
|
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
|
||||||
|
|
||||||
secret = modal.Secret.from_name("aws-s3-secret")
|
secret = modal.Secret.from_name("aws-s3-secret")
|
||||||
auth_scheme = HTTPBearer()
|
auth_scheme = HTTPBearer()
|
||||||
bucket_output = "bw-heygem-output"
|
bucket_output = "modal-media-cache"
|
||||||
|
|
||||||
@heygem_base_app.cls(
|
@heygem_base_app.cls(
|
||||||
max_containers=25, # limit interactive session to 1 container
|
max_containers=25, # limit interactive session to 1 container
|
||||||
|
|
@ -66,13 +66,13 @@ bucket_output = "bw-heygem-output"
|
||||||
bucket_name=bucket_output,
|
bucket_name=bucket_output,
|
||||||
# bucket_endpoint_url="https://s3.%s.amazonaws.com" % os.environ["AWS_REGION"],
|
# bucket_endpoint_url="https://s3.%s.amazonaws.com" % os.environ["AWS_REGION"],
|
||||||
secret=secret,
|
secret=secret,
|
||||||
key_prefix="/"
|
key_prefix="/heygem/"
|
||||||
),
|
),
|
||||||
"/root/logs": modal.CloudBucketMount(
|
"/root/logs": modal.CloudBucketMount(
|
||||||
bucket_name=bucket_output,
|
bucket_name=bucket_output,
|
||||||
# bucket_endpoint_url="https://s3.%s.amazonaws.com" % os.environ["AWS_REGION"],
|
# bucket_endpoint_url="https://s3.%s.amazonaws.com" % os.environ["AWS_REGION"],
|
||||||
secret=secret,
|
secret=secret,
|
||||||
key_prefix="/logs/"
|
key_prefix="/heygem_logs/"
|
||||||
)
|
)
|
||||||
}, # mounts our cached models
|
}, # mounts our cached models
|
||||||
)
|
)
|
||||||
|
|
@ -240,7 +240,7 @@ class HeyGemBase:
|
||||||
with open(path, 'wb') as f:
|
with open(path, 'wb') as f:
|
||||||
shutil.copyfileobj(r.raw, f)
|
shutil.copyfileobj(r.raw, f)
|
||||||
|
|
||||||
@modal.fastapi_endpoint(method="POST")
|
@modal.fastapi_endpoint(method="POST", docs=True)
|
||||||
async def api(self, video_file: Optional[Union[UploadFile, str]], audio_file: Optional[Union[UploadFile, str]], token: HTTPAuthorizationCredentials = Depends(auth_scheme)):
|
async def api(self, video_file: Optional[Union[UploadFile, str]], audio_file: Optional[Union[UploadFile, str]], token: HTTPAuthorizationCredentials = Depends(auth_scheme)):
|
||||||
if token.credentials != os.environ["AUTH_TOKEN"]:
|
if token.credentials != os.environ["AUTH_TOKEN"]:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -250,7 +250,7 @@ class HeyGemBase:
|
||||||
)
|
)
|
||||||
code = str(uuid.uuid4())
|
code = str(uuid.uuid4())
|
||||||
try:
|
try:
|
||||||
if isinstance(video_file, UploadFile):
|
if isinstance(video_file, starlette.datastructures.UploadFile):
|
||||||
video_path = "/root/%s" % video_file.filename
|
video_path = "/root/%s" % video_file.filename
|
||||||
with open(video_path, "wb") as f:
|
with open(video_path, "wb") as f:
|
||||||
data = await video_file.read()
|
data = await video_file.read()
|
||||||
|
|
@ -261,7 +261,7 @@ class HeyGemBase:
|
||||||
else:
|
else:
|
||||||
return {"status": "fail", "msg": "video file save failed: Not a valid input"}
|
return {"status": "fail", "msg": "video file save failed: Not a valid input"}
|
||||||
|
|
||||||
if isinstance(audio_file, UploadFile):
|
if isinstance(audio_file, starlette.datastructures.UploadFile):
|
||||||
audio_path = "/root/%s" % audio_file.filename
|
audio_path = "/root/%s" % audio_file.filename
|
||||||
with open(audio_path, "wb") as f:
|
with open(audio_path, "wb") as f:
|
||||||
data = await audio_file.read()
|
data = await audio_file.read()
|
||||||
|
|
@ -285,16 +285,12 @@ class HeyGemBase:
|
||||||
print("Try move file to S3 manually")
|
print("Try move file to S3 manually")
|
||||||
# S3 Fallback
|
# S3 Fallback
|
||||||
import boto3
|
import boto3
|
||||||
import yaml
|
awss3 = boto3.resource('s3', aws_access_key_id=os.environ.get("AWS_ACCESS_KEY_ID"),
|
||||||
with open("/root/config.yaml", encoding="utf-8",
|
aws_secret_access_key=os.environ.get("AWS_SECRET_ACCESS_KEY"))
|
||||||
mode="r+") as config:
|
|
||||||
yaml_config = yaml.load(config, Loader=yaml.FullLoader)
|
|
||||||
awss3 = boto3.resource('s3', aws_access_key_id=yaml_config["aws_key_id"],
|
|
||||||
aws_secret_access_key=yaml_config["aws_access_key"])
|
|
||||||
awss3.meta.client.upload_file(file_path, bucket_output, file_path.split(os.path.sep)[-1])
|
awss3.meta.client.upload_file(file_path, bucket_output, file_path.split(os.path.sep)[-1])
|
||||||
except:
|
except:
|
||||||
return {"status": "fail", "msg": "Failed to move file to S3 manually: " + str(e)}
|
return {"status": "fail", "msg": "Failed to move file to S3 manually: " + str(e)}
|
||||||
return {"status": "success", "msg":f"{file_path.split(os.path.sep)[-1]}"}
|
return {"status": "success", "url":f"https://cdn.roasmax.cn/heygem/{file_path.split(os.path.sep)[-1]}"}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return {"status": "fail", "msg": "Inference module failed: "+str(e)}
|
return {"status": "fail", "msg": "Inference module failed: "+str(e)}
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ from ComfyUI_Auth_HeyGem.web.worker import comfyui_auth_heygem_app
|
||||||
from ComfyUI_Auth_LatentSync1_5.web.worker import comfyui_auth_latentsync_1_5_app
|
from ComfyUI_Auth_LatentSync1_5.web.worker import comfyui_auth_latentsync_1_5_app
|
||||||
from HeyGem_Base.web.worker import heygem_base_app
|
from HeyGem_Base.web.worker import heygem_base_app
|
||||||
|
|
||||||
app = modal.App(name="Server-Bundle")
|
app = modal.App(name="HeyGem-server")
|
||||||
app.include(comfyui_base_app)
|
# app.include(comfyui_base_app)
|
||||||
app.include(comfyui_auth_app)
|
# app.include(comfyui_auth_app)
|
||||||
app.include(comfyui_auth_heygem_app)
|
# app.include(comfyui_auth_heygem_app)
|
||||||
app.include(comfyui_auth_latentsync_1_5_app)
|
# app.include(comfyui_auth_latentsync_1_5_app)
|
||||||
app.include(heygem_base_app)
|
app.include(heygem_base_app)
|
||||||
Loading…
Reference in New Issue