@@ -1020,48 +1020,53 @@ def init_library():
10201020 handle.set_environment_variable.restype = ctypes.c_int
10211021 handle.set_environment_variable.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
10221022
1023- def set_backend_props(inputs):
1024- # we must force an explicit tensor split
1025- # otherwise the default will divide equally and multigpu crap will slow it down badly
1026- inputs.kcpp_main_gpu = -1
1023+ def prepare_backend_visibility():
1024+ kcpp_main_gpu = -1
10271025 if(args.maingpu is not None and args.maingpu>=0):
1028- inputs. kcpp_main_gpu = args.maingpu
1026+ kcpp_main_gpu = args.maingpu
10291027
10301028 if args.usecuda:
10311029 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
10321030 if not args.tensor_split:
10331031 if (args.usecuda and "0" in args.usecuda):
10341032 os.environ["CUDA_VISIBLE_DEVICES"] = "0"
10351033 os.environ["HIP_VISIBLE_DEVICES"] = "0"
1036- inputs. kcpp_main_gpu = 0
1034+ kcpp_main_gpu = 0
10371035 elif (args.usecuda and "1" in args.usecuda):
10381036 os.environ["CUDA_VISIBLE_DEVICES"] = "1"
10391037 os.environ["HIP_VISIBLE_DEVICES"] = "1"
1040- inputs. kcpp_main_gpu = 0
1038+ kcpp_main_gpu = 0
10411039 elif (args.usecuda and "2" in args.usecuda):
10421040 os.environ["CUDA_VISIBLE_DEVICES"] = "2"
10431041 os.environ["HIP_VISIBLE_DEVICES"] = "2"
1044- inputs. kcpp_main_gpu = 0
1042+ kcpp_main_gpu = 0
10451043 elif (args.usecuda and "3" in args.usecuda):
10461044 os.environ["CUDA_VISIBLE_DEVICES"] = "3"
10471045 os.environ["HIP_VISIBLE_DEVICES"] = "3"
1048- inputs. kcpp_main_gpu = 0
1046+ kcpp_main_gpu = 0
10491047 else:
10501048 if(args.maingpu is None or args.maingpu<0):
10511049 if (args.usecuda and "0" in args.usecuda):
1052- inputs. kcpp_main_gpu = 0
1050+ kcpp_main_gpu = 0
10531051 elif (args.usecuda and "1" in args.usecuda):
1054- inputs. kcpp_main_gpu = 1
1052+ kcpp_main_gpu = 1
10551053 elif (args.usecuda and "2" in args.usecuda):
1056- inputs. kcpp_main_gpu = 2
1054+ kcpp_main_gpu = 2
10571055 elif (args.usecuda and "3" in args.usecuda):
1058- inputs. kcpp_main_gpu = 3
1056+ kcpp_main_gpu = 3
10591057
10601058 if "GGML_VK_VISIBLE_DEVICES" not in os.environ:
10611059 if args.usevulkan: # is an empty array if using vulkan without defined gpu
10621060 vulkangpus = ','.join([str(g) for g in args.usevulkan])
10631061 handle.set_environment_variable("GGML_VK_VISIBLE_DEVICES".encode("UTF-8"),vulkangpus.encode("UTF-8"))
10641062
1063+ return kcpp_main_gpu
1064+
1065+ def set_backend_props(inputs):
1066+ # we must force an explicit tensor split
1067+ # otherwise the default will divide equally and multigpu crap will slow it down badly
1068+ inputs.kcpp_main_gpu = prepare_backend_visibility()
1069+
10651070 # set universal flags
10661071 inputs.devices_override = (args.device if args.device else "").encode("UTF-8")
10671072 inputs.quiet = args.quiet
@@ -11965,6 +11970,7 @@ def kcpp_main_process(launch_args, g_memory=None, gui_launcher=False):
1196511970 friendlysdmodelname = os.path.basename(imgmodel)
1196611971 friendlysdmodelname = os.path.splitext(friendlysdmodelname)[0]
1196711972 friendlysdmodelname = sanitize_string(friendlysdmodelname)
11973+ prepare_backend_visibility()
1196811974 cached_sd_info = sd_get_info()
1196911975 loadok = sd_load_model(imgmodel,imgvae,imgt5xxl,imgclip1,imgclip2,imgphotomaker,imgupscaler,imgaudiovae)
1197011976 print("Load Image Model OK: " + str(loadok))
0 commit comments