SadTalker API调用生成视频
from fastapi import FastAPI import uvicorn import nest_asyncio from fastapi.middleware.cors import CORSMiddleware from datetime import datetime app = FastAPI() origins = ["*"] app.add_middleware(CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"]) preset = "fast" @app.get("/sync") def lip_sync(audio:str, image:str, tmpdir:str): #dir = datetime.now().strftime('%Y%m%d%H%M%S%f') dir = "/data/digital/files/videos/" + tmpdir print("start....audio=" + audio + ", image=" + image + ", tmpdir=" + tmpdir) #os.system("python inference.py --driven_audio %s --source_image %s --enhancer gfpgan --result_dir %s --size 256 --preprocess crop" %(audio,image,dir)) os.system("python inference.py --driven_audio %s --source_image %s --result_dir %s --size 256 --preprocess full --still" %(audio,image,dir)) #os.system("python inference.py --driven_audio %s --source_image %s --enhancer gfpgan --result_dir %s --size 256 --preprocess full --still" %(audio,image,dir)) resultVideo = os.listdir(dir)[0] print("end....return video: " + resultVideo) os.system("chown -R $group:$user " + dir) os.system("ffmpeg -i " + dir + "/" + resultVideo + " -vcodec h264 " + dir + "/temp.mp4") os.system("rm -rf " + dir + "/" + resultVideo) os.system("mv " + dir + "/temp.mp4 " + dir + "/" + resultVideo) return resultVideo; if __name__ == "__main__": PORT = 37860 nest_asyncio.apply() uvicorn.run(app, host="0.0.0.0", port=PORT)