swap_face.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import os
  2. import time
  3. import requests
  4. from PIL import Image
  5. import threading
  6. class swap_face():
  7. def __init__(self, imgurl):
  8. self.imgurl = imgurl
  9. def run(self):
  10. name_hash = str(time.time()).replace('.','')
  11. src_img = 'FaceSwap/src_img/'+name_hash+'.jpg'
  12. sv_path = '../html/swap_save'+name_hash+'.avi'
  13. try:
  14. im = Image.open(requests.get(self.imgurl, stream=True).raw)
  15. im= im.convert("RGB")
  16. im.save(src_img)
  17. except:
  18. return '圖片錯誤'
  19. x = threading.Thread(target=runthreadswap, args=(src_img,sv_path))
  20. x.start()
  21. return '生成中請稍候'
  22. def runthreadswap(self.src_img,sv_path):
  23. os.system('python3 FaceSwap/main_video.py --src_img '+src_img+' --video_path FaceSwap/nina_noGesture_adj.mp4 --correct_color --save_path '+sv_path)
  24. while True:
  25. print('waiting...')
  26. if os.path.exists(sv_path):
  27. break
  28. time.sleep(5)
  29. print('waiting...')
  30. notify_group('成功,影片在:www.choozmo.com:8168/swap_save/'+name_hash+'.avi')
  31. def notify_group(self,msg):
  32. headers = {
  33. "Authorization": "Bearer " + "WekCRfnAirSiSxALiD6gcm0B56EejsoK89zFbIaiZQD",
  34. "Content-Type": "application/x-www-form-urlencoded"
  35. }
  36. params = {"message": msg}
  37. r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params=params)
  38. #print(r)