hpoghos commited on
Commit
75aaff7
1 Parent(s): 1d1697e

add multi gpu logic

Browse files
Files changed (2) hide show
  1. app.py +12 -7
  2. t2v_enhanced/model_func.py +1 -1
app.py CHANGED
@@ -29,8 +29,11 @@ args = parser.parse_args()
29
  Path(args.where_to_log).mkdir(parents=True, exist_ok=True)
30
  result_fol = Path(args.where_to_log).absolute()
31
  device = args.device
32
-
33
-
 
 
 
34
  # --------------------------
35
  # ----- Configurations -----
36
  # --------------------------
@@ -40,15 +43,15 @@ cfg_v2v = {'downscale': 1, 'upscale_size': (1280, 720), 'model_id': 'damo/Video-
40
  # --------------------------
41
  # ----- Initialization -----
42
  # --------------------------
43
- ms_model = init_modelscope(device)
44
  # # zs_model = init_zeroscope(device)
45
- ad_model = init_animatediff(device)
46
- svd_model = init_svd(device)
47
- sdxl_model = init_sdxl(device)
48
 
49
  ckpt_file_streaming_t2v = Path("t2v_enhanced/checkpoints/streaming_t2v.ckpt").absolute()
50
  stream_cli, stream_model = init_streamingt2v_model(ckpt_file_streaming_t2v, result_fol)
51
- msxl_model = init_v2v_model(cfg_v2v, device)
52
 
53
 
54
 
@@ -91,6 +94,8 @@ def enhance(prompt, input_to_enhance, num_frames=None, image=None, model_name_st
91
  if input_to_enhance is None:
92
  input_to_enhance = generate(prompt, num_frames, image, model_name_stage1, model_name_stage2, seed, t, image_guidance)
93
  encoded_video = video2video(prompt, input_to_enhance, result_fol, cfg_v2v, msxl_model)
 
 
94
  return encoded_video
95
 
96
  def change_visibility(value):
 
29
  Path(args.where_to_log).mkdir(parents=True, exist_ok=True)
30
  result_fol = Path(args.where_to_log).absolute()
31
  device = args.device
32
+ n_devices = int(os.environ.get('NDEVICES', 4))
33
+ if n_devices == 4:
34
+ devices = [f"cuda:{idx}" for idx in range(4)]
35
+ else:
36
+ devices = ["cuda"] * 4
37
  # --------------------------
38
  # ----- Configurations -----
39
  # --------------------------
 
43
  # --------------------------
44
  # ----- Initialization -----
45
  # --------------------------
46
+ ms_model = init_modelscope(devices[1])
47
  # # zs_model = init_zeroscope(device)
48
+ ad_model = init_animatediff(devices[1])
49
+ svd_model = init_svd(devices[2])
50
+ sdxl_model = init_sdxl(devices[2])
51
 
52
  ckpt_file_streaming_t2v = Path("t2v_enhanced/checkpoints/streaming_t2v.ckpt").absolute()
53
  stream_cli, stream_model = init_streamingt2v_model(ckpt_file_streaming_t2v, result_fol)
54
+ msxl_model = init_v2v_model(cfg_v2v, devices[3])
55
 
56
 
57
 
 
94
  if input_to_enhance is None:
95
  input_to_enhance = generate(prompt, num_frames, image, model_name_stage1, model_name_stage2, seed, t, image_guidance)
96
  encoded_video = video2video(prompt, input_to_enhance, result_fol, cfg_v2v, msxl_model)
97
+ # for idx in range(4):
98
+ # print(f">>> cuda:{idx}", torch.cuda.max_memory_allocated(f"cuda:{idx}"))
99
  return encoded_video
100
 
101
  def change_visibility(value):
t2v_enhanced/model_func.py CHANGED
@@ -66,7 +66,7 @@ def svd_short_gen(image, prompt, svd_model, sdxl_model, inference_generator, t=2
66
  image = center_crop(image)
67
  image = add_margin(image, 0, 224, 0, 224, (0, 0, 0))
68
 
69
- frames = svd_model(image, decode_chunk_size=8, generator=inference_generator).frames[0]
70
  frames = torch.stack([transform(frame) for frame in frames])
71
  frames = frames.to(device).to(torch.float32)
72
  frames = frames[:16,:,:,224:-224]
 
66
  image = center_crop(image)
67
  image = add_margin(image, 0, 224, 0, 224, (0, 0, 0))
68
 
69
+ frames = svd_model(image, decode_chunk_size=4, generator=inference_generator).frames[0]
70
  frames = torch.stack([transform(frame) for frame in frames])
71
  frames = frames.to(device).to(torch.float32)
72
  frames = frames[:16,:,:,224:-224]