diffsynth-engine 0.4.3.dev2__py3-none-any.whl → 0.4.3.dev4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,7 +17,13 @@ from .pipelines import (
17
17
  from .models.flux import FluxControlNet, FluxIPAdapter, FluxRedux
18
18
  from .models.sd import SDControlNet
19
19
  from .models.sdxl import SDXLControlNetUnion
20
- from .utils.download import fetch_model, fetch_modelscope_model, fetch_civitai_model
20
+ from .utils.download import (
21
+ fetch_model,
22
+ fetch_modelscope_model,
23
+ fetch_civitai_model,
24
+ register_fetch_modelscope_model,
25
+ reset_fetch_modelscope_model,
26
+ )
21
27
  from .utils.video import load_video, save_video
22
28
  from .tools import (
23
29
  FluxInpaintingTool,
@@ -52,6 +58,8 @@ __all__ = [
52
58
  "ControlType",
53
59
  "fetch_model",
54
60
  "fetch_modelscope_model",
61
+ "register_fetch_modelscope_model",
62
+ "reset_fetch_modelscope_model",
55
63
  "fetch_civitai_model",
56
64
  "load_video",
57
65
  "save_video",
@@ -20,6 +20,31 @@ logger = logging.get_logger(__name__)
20
20
 
21
21
  MODEL_SOURCES = ["modelscope", "civitai"]
22
22
 
23
+ # Global registry for custom fetch function
24
+ _CUSTOM_MODELSCOPE_FETCHER = None
25
+
26
+
27
+ def register_fetch_modelscope_model(fetch_func):
28
+ """
29
+ Register a global custom fetch function for ModelScope models.
30
+
31
+ Args:
32
+ fetch_func (callable): Custom fetch function that should accept the same parameters
33
+ as fetch_modelscope_model and return the model path(s)
34
+ """
35
+ global _CUSTOM_MODELSCOPE_FETCHER
36
+ _CUSTOM_MODELSCOPE_FETCHER = fetch_func
37
+ logger.info("Registered global custom ModelScope fetcher")
38
+
39
+
40
+ def reset_fetch_modelscope_model():
41
+ """
42
+ Reset the global custom fetch function for ModelScope models.
43
+ """
44
+ global _CUSTOM_MODELSCOPE_FETCHER
45
+ _CUSTOM_MODELSCOPE_FETCHER = None
46
+ logger.info("Reset global custom ModelScope fetcher")
47
+
23
48
 
24
49
  def fetch_model(
25
50
  model_uri: str,
@@ -43,6 +68,11 @@ def fetch_modelscope_model(
43
68
  access_token: Optional[str] = None,
44
69
  fetch_safetensors: bool = True,
45
70
  ) -> str:
71
+ # Check if there's a global custom fetcher registered
72
+ if _CUSTOM_MODELSCOPE_FETCHER is not None:
73
+ logger.info(f"Using global custom fetcher for model: {model_id}")
74
+ return _CUSTOM_MODELSCOPE_FETCHER(model_id, revision, path, access_token, fetch_safetensors)
75
+
46
76
  lock_file_name = f"modelscope.{model_id.replace('/', '--')}.{revision if revision else '__version'}.lock"
47
77
  lock_file_path = os.path.join(DIFFSYNTH_FILELOCK_DIR, lock_file_name)
48
78
  ensure_directory_exists(lock_file_path)
@@ -1,7 +1,7 @@
1
1
  import torch
2
2
  import torch.nn as nn
3
3
  from typing import Dict
4
-
4
+ import platform
5
5
 
6
6
  def enable_sequential_cpu_offload(module: nn.Module, device: str = "cuda"):
7
7
  module = module.to("cpu")
@@ -26,13 +26,14 @@ def add_cpu_offload_hook(module: nn.Module, device: str = "cuda", recurse: bool
26
26
  for name, buffer in module.named_buffers(recurse=recurse):
27
27
  buffer.data = buffer.data.to(device=device)
28
28
  return tuple(x.to(device=device) if isinstance(x, torch.Tensor) else x for x in input_)
29
-
30
- for name, param in module.named_parameters(recurse=recurse):
31
- param.data = param.data.pin_memory()
29
+ for name, param in module.named_parameters(recurse=recurse):
30
+ if platform.system() == 'Linux':
31
+ param.data = param.data.pin_memory()
32
32
  offload_param_dict[name] = param.data
33
33
  param.data = param.data.to(device=device)
34
34
  for name, buffer in module.named_buffers(recurse=recurse):
35
- buffer.data = buffer.data.pin_memory()
35
+ if platform.system() == 'Linux':
36
+ buffer.data = buffer.data.pin_memory()
36
37
  offload_param_dict[name] = buffer.data
37
38
  buffer.data = buffer.data.to(device=device)
38
39
  setattr(module, "_offload_param_dict", offload_param_dict)
@@ -58,10 +59,12 @@ def offload_model_to_dict(module: nn.Module) -> Dict[str, torch.Tensor]:
58
59
  module = module.to("cpu")
59
60
  offload_param_dict = {}
60
61
  for name, param in module.named_parameters(recurse=True):
61
- param.data = param.data.pin_memory()
62
+ if platform.system() == 'Linux':
63
+ param.data = param.data.pin_memory()
62
64
  offload_param_dict[name] = param.data
63
65
  for name, buffer in module.named_buffers(recurse=True):
64
- buffer.data = buffer.data.pin_memory()
66
+ if platform.system() == 'Linux':
67
+ buffer.data = buffer.data.pin_memory()
65
68
  offload_param_dict[name] = buffer.data
66
69
  return offload_param_dict
67
70
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.4.3.dev2
3
+ Version: 0.4.3.dev4
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -1,4 +1,4 @@
1
- diffsynth_engine/__init__.py,sha256=bY_ekp0--kriKjSDdXmppjOahdoL1DlAc22_kDh7b7g,1423
1
+ diffsynth_engine/__init__.py,sha256=tXaLuKje4NQ3zARAvqBUdj1pGLjP0ttkXKE6ysuzsOc,1586
2
2
  diffsynth_engine/algorithm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  diffsynth_engine/algorithm/noise_scheduler/__init__.py,sha256=YvcwE2tCNua-OAX9GEPm0EXsINNWH4XvJMNZb-uaZMM,745
4
4
  diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py,sha256=WICrLEh7b2TdZMMEN14NqiYydj7dxXT6RolXymKiMk8,188
@@ -153,7 +153,7 @@ diffsynth_engine/tools/flux_replace_tool.py,sha256=M_q8KnsBEwNi4w8NOK-F2Bmj7cKUN
153
153
  diffsynth_engine/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
154
  diffsynth_engine/utils/cache.py,sha256=Ivef22pCuhEq-4H00gSvkLS8ceVZoGis7OSitYL6gH4,2101
155
155
  diffsynth_engine/utils/constants.py,sha256=W9znMP8O7td3RF_2ykeIARCWVtIxfro9ytmlXR_GG2c,3121
156
- diffsynth_engine/utils/download.py,sha256=NCgfL9tUca-sOhT41k6w4o__Ktbw-1aDwFTR4JDkT28,5639
156
+ diffsynth_engine/utils/download.py,sha256=8O56zQr2taY4BnCBEKVk3YGorTqTTCqTblf7tI9otXA,6721
157
157
  diffsynth_engine/utils/env.py,sha256=43x-kBjt5zI2cwZ9G4BOeTbedi2k6TuBzHGOBeFbFvU,280
158
158
  diffsynth_engine/utils/flag.py,sha256=6zQLnoEaU69pBEyhavCgydQfP0khw5ppCU7sue4yRqg,1370
159
159
  diffsynth_engine/utils/fp8_linear.py,sha256=NosnWMoAr_IpFcLn-OYbAx-vXySphjxutDZqmXLNjJI,4064
@@ -162,14 +162,14 @@ diffsynth_engine/utils/image.py,sha256=_46CVs1Qe7GdZNulWWJISnR_Y6FotC2tZGLKtr04g
162
162
  diffsynth_engine/utils/loader.py,sha256=Z5v1WNDWFY0OrVubB70j5VU3zeaAfEK_j8c1KrGI4yM,1240
163
163
  diffsynth_engine/utils/lock.py,sha256=1Ipgst9eEFfFdViAvD5bxdB6HnHHBcqWYOb__fGaPUI,1601
164
164
  diffsynth_engine/utils/logging.py,sha256=XB0xTT8PBN6btkOjFtOvjlrOCRVgDGT8PFAp1vmse28,467
165
- diffsynth_engine/utils/offload.py,sha256=qEiqbeMQqeV1DtHF-6OuUO8Akdr1enfpPYwF0OBpx98,3500
165
+ diffsynth_engine/utils/offload.py,sha256=8dHMEzAQcE-GNbFYotGQg2YBBB0eywoRTIffVmK4A0k,3746
166
166
  diffsynth_engine/utils/onnx.py,sha256=jeWUudJHnESjuiEAHyUZYUZz7dCj34O9aGjHCe8yjWo,1149
167
167
  diffsynth_engine/utils/parallel.py,sha256=TtB6FzP2qo4VQqSenVnV-ZaKmp9xHaIWJ8D1ZjHtukE,17064
168
168
  diffsynth_engine/utils/platform.py,sha256=2lXdw6YkqcRONCeT98n4cyg1Ii8Ybbyj2Ns72Se9tlk,496
169
169
  diffsynth_engine/utils/prompt.py,sha256=YItMchoVzsG6y-LB4vzzDUWrkhKRVlt1HfVhxZjSxMQ,280
170
170
  diffsynth_engine/utils/video.py,sha256=Ne0rd2lb59UT1q5EotpjlY7OT8F9oTCFDyo1ST77uoQ,1004
171
- diffsynth_engine-0.4.3.dev2.dist-info/licenses/LICENSE,sha256=x7aBqQuVI0IYnftgoTPI_A0I_rjdjPPQkjnU6N2nikM,11346
172
- diffsynth_engine-0.4.3.dev2.dist-info/METADATA,sha256=wv13KwkzgW7iGL29CfOU1C2CsLrLM_2_tNOxhBIXwFQ,1110
173
- diffsynth_engine-0.4.3.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
174
- diffsynth_engine-0.4.3.dev2.dist-info/top_level.txt,sha256=6zgbiIzEHLbhgDKRyX0uBJOV3F6VnGGBRIQvSiYYn6w,17
175
- diffsynth_engine-0.4.3.dev2.dist-info/RECORD,,
171
+ diffsynth_engine-0.4.3.dev4.dist-info/licenses/LICENSE,sha256=x7aBqQuVI0IYnftgoTPI_A0I_rjdjPPQkjnU6N2nikM,11346
172
+ diffsynth_engine-0.4.3.dev4.dist-info/METADATA,sha256=4D5ubLDy1tWA_n94e0QPdgTHQHOjFxEp-FM7mzS_ClE,1110
173
+ diffsynth_engine-0.4.3.dev4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
174
+ diffsynth_engine-0.4.3.dev4.dist-info/top_level.txt,sha256=6zgbiIzEHLbhgDKRyX0uBJOV3F6VnGGBRIQvSiYYn6w,17
175
+ diffsynth_engine-0.4.3.dev4.dist-info/RECORD,,