horde-engine 3.3.0__tar.gz → 3.3.2__tar.gz

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.
Files changed (239) hide show
  1. {horde_engine-3.3.0 → horde_engine-3.3.2}/PKG-INFO +1 -1
  2. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/_version.py +2 -2
  3. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/api.py +2 -0
  4. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/feature_impact.py +68 -3
  5. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/constants.py +41 -0
  6. {horde_engine-3.3.0 → horde_engine-3.3.2}/.gitignore +0 -0
  7. {horde_engine-3.3.0 → horde_engine-3.3.2}/LICENSE +0 -0
  8. {horde_engine-3.3.0 → horde_engine-3.3.2}/README.md +0 -0
  9. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/__init__.py +0 -0
  10. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/__pyinstaller.py +0 -0
  11. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/benchmark.py +0 -0
  12. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/beta_models.py +0 -0
  13. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/comfy_horde.py +0 -0
  14. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/config_path.py +0 -0
  15. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/consts.py +0 -0
  16. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/exceptions.py +0 -0
  17. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/__init__.py +0 -0
  18. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/comfy_patches.py +0 -0
  19. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/graph_utils.py +0 -0
  20. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/in_process.py +0 -0
  21. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/interface.py +0 -0
  22. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/phase_timing.py +0 -0
  23. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/progress_hook.py +0 -0
  24. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/execution/sampling_lease.py +0 -0
  25. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/feature_requirements.py +0 -0
  26. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/horde.py +0 -0
  27. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/initialisation.py +0 -0
  28. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/installation/__init__.py +0 -0
  29. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/installation/__main__.py +0 -0
  30. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/installation/installer.py +0 -0
  31. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/installation/manifest.json +0 -0
  32. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/installation/manifest.py +0 -0
  33. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/integrations/__init__.py +0 -0
  34. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/integrations/logfire_comfy_internals.py +0 -0
  35. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/integrations/logfire_setup.py +0 -0
  36. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/metrics.py +0 -0
  37. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_database/db_dep.json +0 -0
  38. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_database/db_embeds.json +0 -0
  39. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_database/diffusers.json +0 -0
  40. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_database/med_config.json +0 -0
  41. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/__init__.py +0 -0
  42. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/base.py +0 -0
  43. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/civitai_adhoc.py +0 -0
  44. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/civitai_provider.py +0 -0
  45. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/civitai_records.py +0 -0
  46. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/codeformer.py +0 -0
  47. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/compvis.py +0 -0
  48. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/controlnet.py +0 -0
  49. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/diffusers.py +0 -0
  50. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/esrgan.py +0 -0
  51. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/gfpgan.py +0 -0
  52. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/hyper.py +0 -0
  53. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/lora.py +0 -0
  54. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/miscellaneous.py +0 -0
  55. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/safety_checker.py +0 -0
  56. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/model_manager/ti.py +0 -0
  57. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/__init__.py +0 -0
  58. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/LICENSE +0 -0
  59. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/README.md +0 -0
  60. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/__init__.py +0 -0
  61. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_example.json +0 -0
  62. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_fg_all.json +0 -0
  63. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_bg.json +0 -0
  64. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_fg.json +0 -0
  65. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg.json +0 -0
  66. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg_stop_at.json +0 -0
  67. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_fg.json +0 -0
  68. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example.json +0 -0
  69. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example_rgba.json +0 -0
  70. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_joint.json +0 -0
  71. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/layered_diffusion.py +0 -0
  72. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/__init__.py +0 -0
  73. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/attention_sharing.py +0 -0
  74. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/enums.py +0 -0
  75. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/models.py +0 -0
  76. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/utils.py +0 -0
  77. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/pyproject.toml +0 -0
  78. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/comfyui_layerdiffuse/requirements.txt +0 -0
  79. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/LICENSE +0 -0
  80. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/README.md +0 -0
  81. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/__init__.py +0 -0
  82. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/VERSION +0 -0
  83. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/__init__.py +0 -0
  84. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/__init__.py +0 -0
  85. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/arcface_arch.py +0 -0
  86. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/arch_util.py +0 -0
  87. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/codeformer_arch.py +0 -0
  88. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/rrdbnet_arch.py +0 -0
  89. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/vgg_arch.py +0 -0
  90. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/archs/vqgan_arch.py +0 -0
  91. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/data/__init__.py +0 -0
  92. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/data/data_sampler.py +0 -0
  93. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/data/data_util.py +0 -0
  94. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/data/prefetch_dataloader.py +0 -0
  95. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/data/transforms.py +0 -0
  96. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/losses/__init__.py +0 -0
  97. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/losses/loss_util.py +0 -0
  98. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/losses/losses.py +0 -0
  99. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/metrics/__init__.py +0 -0
  100. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/metrics/metric_util.py +0 -0
  101. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/metrics/psnr_ssim.py +0 -0
  102. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/models/__init__.py +0 -0
  103. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/__init__.py +0 -0
  104. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/__init__.py +0 -0
  105. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/deform_conv.py +0 -0
  106. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda.cpp +0 -0
  107. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda_kernel.cu +0 -0
  108. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_ext.cpp +0 -0
  109. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/__init__.py +0 -0
  110. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/fused_act.py +0 -0
  111. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act.cpp +0 -0
  112. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act_kernel.cu +0 -0
  113. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/__init__.py +0 -0
  114. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d.cpp +0 -0
  115. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d_kernel.cu +0 -0
  116. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/upfirdn2d.py +0 -0
  117. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/setup.py +0 -0
  118. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/train.py +0 -0
  119. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/__init__.py +0 -0
  120. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/dist_util.py +0 -0
  121. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/download_util.py +0 -0
  122. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/file_client.py +0 -0
  123. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/img_util.py +0 -0
  124. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/lmdb_util.py +0 -0
  125. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/logger.py +0 -0
  126. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/matlab_functions.py +0 -0
  127. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/misc.py +0 -0
  128. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/options.py +0 -0
  129. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/realesrgan_utils.py +0 -0
  130. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/utils/registry.py +0 -0
  131. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/basicsr/version.py +0 -0
  132. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/__init__.py +0 -0
  133. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/__init__.py +0 -0
  134. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/align_trans.py +0 -0
  135. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/matlab_cp2tform.py +0 -0
  136. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface.py +0 -0
  137. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_net.py +0 -0
  138. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_utils.py +0 -0
  139. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/__init__.py +0 -0
  140. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/face_detector.py +0 -0
  141. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/__init__.py +0 -0
  142. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/common.py +0 -0
  143. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/experimental.py +0 -0
  144. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolo.py +0 -0
  145. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5l.yaml +0 -0
  146. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5n.yaml +0 -0
  147. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/__init__.py +0 -0
  148. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/autoanchor.py +0 -0
  149. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/datasets.py +0 -0
  150. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/extract_ckpt.py +0 -0
  151. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/general.py +0 -0
  152. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/torch_utils.py +0 -0
  153. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/parsing/__init__.py +0 -0
  154. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/parsing/bisenet.py +0 -0
  155. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/parsing/parsenet.py +0 -0
  156. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/parsing/resnet.py +0 -0
  157. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/utils/__init__.py +0 -0
  158. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/utils/face_restoration_helper.py +0 -0
  159. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/utils/face_utils.py +0 -0
  160. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/facelib/utils/misc.py +0 -0
  161. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/README.md +0 -0
  162. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/__init__.py +0 -0
  163. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/gfpganv1_clean_arch.py +0 -0
  164. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/model_loading.py +0 -0
  165. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/stylegan2_clean_arch.py +0 -0
  166. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/facerestore_cf/r_chainner/types.py +0 -0
  167. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_controlnet_model_loader.py +0 -0
  168. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_image_loader.py +0 -0
  169. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_image_output.py +0 -0
  170. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_lora_loader.py +0 -0
  171. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_model_loader.py +0 -0
  172. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/nodes/node_upscale_model_loader.py +0 -0
  173. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/__init__.py +0 -0
  174. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/context.py +0 -0
  175. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/families/__init__.py +0 -0
  176. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/families/image.py +0 -0
  177. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/families/post_processing.py +0 -0
  178. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/graph.py +0 -0
  179. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/horde_compat.py +0 -0
  180. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/patches.py +0 -0
  181. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/payload.py +0 -0
  182. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/payload_pp.py +0 -0
  183. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/registry.py +0 -0
  184. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/resolution.py +0 -0
  185. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline/template.py +0 -0
  186. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_controlnet.json +0 -0
  187. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_controlnet_annotator.json +0 -0
  188. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_controlnet_hires_fix.json +0 -0
  189. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_flux.json +0 -0
  190. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_image_facefix.json +0 -0
  191. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_image_upscale.json +0 -0
  192. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_qr_code.json +0 -0
  193. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_qwen.json +0 -0
  194. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_cascade.json +0 -0
  195. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_cascade_2pass.json +0 -0
  196. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_cascade_remix.json +0 -0
  197. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_diffusion.json +0 -0
  198. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_diffusion_hires_fix.json +0 -0
  199. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_diffusion_img2img_mask.json +0 -0
  200. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipeline_designs/pipeline_stable_diffusion_paint.json +0 -0
  201. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_controlnet.json +0 -0
  202. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_controlnet_annotator.json +0 -0
  203. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_controlnet_hires_fix.json +0 -0
  204. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_flux.json +0 -0
  205. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_image_facefix.json +0 -0
  206. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_image_upscale.json +0 -0
  207. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_qr_code.json +0 -0
  208. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_qwen.json +0 -0
  209. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_cascade.json +0 -0
  210. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_cascade_2pass.json +0 -0
  211. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_cascade_remix.json +0 -0
  212. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_diffusion.json +0 -0
  213. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_diffusion_hires_fix.json +0 -0
  214. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_diffusion_img2img_mask.json +0 -0
  215. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pipelines/pipeline_stable_diffusion_paint.json +0 -0
  216. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/preload.py +0 -0
  217. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/py.typed +0 -0
  218. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pyinstaller_hooks/__init__.py +0 -0
  219. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/pyinstaller_hooks/hook-hordelib.horde.py +0 -0
  220. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/safety.py +0 -0
  221. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/safety_checker.py +0 -0
  222. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/settings.py +0 -0
  223. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/shared_model_manager.py +0 -0
  224. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/train.py +0 -0
  225. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/__init__.py +0 -0
  226. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/distance.py +0 -0
  227. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/dynamicprompt.py +0 -0
  228. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/gpuinfo.py +0 -0
  229. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/image_utils.py +0 -0
  230. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/ioredirect.py +0 -0
  231. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/logger.py +0 -0
  232. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/nvml.py +0 -0
  233. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/optional_deps.py +0 -0
  234. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/sanitizer.py +0 -0
  235. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/switch.py +0 -0
  236. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/torch_build.py +0 -0
  237. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/utils/torch_memory.py +0 -0
  238. {horde_engine-3.3.0 → horde_engine-3.3.2}/hordelib/vram_planning.py +0 -0
  239. {horde_engine-3.3.0 → horde_engine-3.3.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: horde-engine
3
- Version: 3.3.0
3
+ Version: 3.3.2
4
4
  Summary: A wrapper around ComfyUI to allow use by AI Horde.
5
5
  Project-URL: Homepage, https://github.com/Haidra-Org/hordelib
6
6
  Project-URL: Bug Tracker, https://github.com/Haidra-Org/hordelib/issues
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '3.3.0'
22
- __version_tuple__ = version_tuple = (3, 3, 0)
21
+ __version__ = version = '3.3.2'
22
+ __version_tuple__ = version_tuple = (3, 3, 2)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -23,6 +23,7 @@ from hordelib.execution.sampling_lease import (
23
23
  )
24
24
  from hordelib.feature_impact import (
25
25
  FEATURE_KIND,
26
+ FEATURE_PHASE,
26
27
  BaselineBurden,
27
28
  BurdenEstimate,
28
29
  CalibrationSample,
@@ -98,6 +99,7 @@ if TYPE_CHECKING:
98
99
  __all__ = [
99
100
  "CONTROLNET_ANNOTATOR_DOWNLOAD_BYTES",
100
101
  "FEATURE_KIND",
102
+ "FEATURE_PHASE",
101
103
  "AcceleratorInfo",
102
104
  "AcceleratorKind",
103
105
  "BaselineBurden",
@@ -37,6 +37,20 @@ class FEATURE_KIND(StrEnum):
37
37
  strip_background = auto()
38
38
 
39
39
 
40
+ class FEATURE_PHASE(StrEnum):
41
+ """When in a job's lifecycle a feature's VRAM is consumed.
42
+
43
+ A consumer that schedules several jobs on one device needs this distinction: the ``sampling`` cost
44
+ is co-resident with the checkpoint while it denoises, whereas a ``post_processing`` cost (an upscaler
45
+ or face-fixer) is claimed *after* sampling completes and the checkpoint may already have been evicted.
46
+ Summing both into a single per-job figure hides that the post-processing peaks of distinct in-flight
47
+ jobs can align in time and over-commit the card, so the estimate is reported per phase.
48
+ """
49
+
50
+ sampling = auto()
51
+ post_processing = auto()
52
+
53
+
40
54
  class DownloadTrigger(BaseModel):
41
55
  """Whether using a feature/model can trigger an ad-hoc network download."""
42
56
 
@@ -54,6 +68,8 @@ class FeatureImpact(BaseModel):
54
68
  """Activation-scaling component, applied per output megapixel."""
55
69
  ram_delta_mb: int
56
70
  download: DownloadTrigger
71
+ phase: FEATURE_PHASE = FEATURE_PHASE.sampling
72
+ """The job phase this feature's VRAM is consumed in; drives the per-phase split of the estimate."""
57
73
  applies_to_baselines: list[str] | None = None
58
74
  """Baseline values this feature is available for (None = all)."""
59
75
  notes: str = ""
@@ -91,6 +107,17 @@ class BurdenEstimate(BaseModel):
91
107
  """The estimated total burden of one job configuration."""
92
108
 
93
109
  vram_mb: int
110
+ """Total peak VRAM (``vram_sampling_mb + vram_post_processing_mb``); kept for back-compat callers."""
111
+ vram_sampling_mb: int = 0
112
+ """VRAM resident during sampling: the baseline plus every sampling-phase feature delta.
113
+
114
+ Defaults to 0 so a ``BurdenEstimate`` deserialized from an older producer is still constructible; live
115
+ estimates from :func:`estimate_job_burden` always populate it."""
116
+ vram_post_processing_mb: int = 0
117
+ """Marginal VRAM peak of the post-processing phase (upscalers/face-fixers), claimed after sampling.
118
+
119
+ This is the figure a scheduler reserves against concurrent dispatch, since it lands while the slot has
120
+ already been released for the next job. Zero when the job has no post-processing features."""
94
121
  ram_mb: int
95
122
  disk_bytes_needed: int
96
123
  downloads_expected: list[DownloadTrigger]
@@ -299,6 +326,7 @@ _FEATURE_SEEDS: list[FeatureImpact] = [
299
326
  vram_delta_per_megapixel_mb=300,
300
327
  ram_delta_mb=2000,
301
328
  download=DownloadTrigger(triggered=True, typical_size_mb=70),
329
+ phase=FEATURE_PHASE.post_processing,
302
330
  notes="ESRGAN-family upscalers; model is small but activations on large outputs are not.",
303
331
  ),
304
332
  FeatureImpact(
@@ -306,6 +334,7 @@ _FEATURE_SEEDS: list[FeatureImpact] = [
306
334
  vram_delta_mb=1500,
307
335
  ram_delta_mb=2000,
308
336
  download=DownloadTrigger(triggered=True, typical_size_mb=350),
337
+ phase=FEATURE_PHASE.post_processing,
309
338
  notes="GFPGAN/CodeFormer weights.",
310
339
  ),
311
340
  FeatureImpact(
@@ -313,6 +342,7 @@ _FEATURE_SEEDS: list[FeatureImpact] = [
313
342
  vram_delta_mb=1000,
314
343
  ram_delta_mb=1500,
315
344
  download=DownloadTrigger(triggered=True, typical_size_mb=170),
345
+ phase=FEATURE_PHASE.post_processing,
316
346
  ),
317
347
  ]
318
348
 
@@ -340,9 +370,28 @@ def estimate_job_burden(
340
370
  batch: int = 1,
341
371
  features: list[FEATURE_KIND] | None = None,
342
372
  model_record: ImageGenerationModelRecord | None = None,
373
+ aux_model_weights_mb: dict[FEATURE_KIND, float] | None = None,
374
+ post_processing_upscale_factor: float = 1.0,
343
375
  ) -> BurdenEstimate:
344
376
  """Estimate the total resource burden of one job configuration.
345
377
 
378
+ The VRAM total is reported both as a single ``vram_mb`` (back-compat) and split by
379
+ :class:`FEATURE_PHASE`: ``vram_sampling_mb`` (baseline plus sampling-phase features) and
380
+ ``vram_post_processing_mb`` (the marginal upscaler/face-fixer peak that lands after sampling). A
381
+ scheduler reserves the post-processing figure against concurrent dispatch because it is claimed once
382
+ the inference slot has already been released for the next job.
383
+
384
+ ``aux_model_weights_mb`` lets a caller that has resolved a specific auxiliary model (e.g. a particular
385
+ ESRGAN upscaler or controlnet) supply its real resident weight (MB), replacing that feature's flat
386
+ ``vram_delta_mb`` term while keeping the activation (per-megapixel) term. Unsupplied features keep the
387
+ conservative seed.
388
+
389
+ ``post_processing_upscale_factor`` is the linear scale of the requested upscaler (see
390
+ :func:`hordelib.pipeline.constants.max_upscale_factor`). The upscale activation peak scales with the
391
+ *output* megapixels, so the ``post_processing_upscale`` feature's per-megapixel term is applied against
392
+ ``factor**2`` the generation megapixels: a 4x upscale of a 1 MP image works a 16 MP tensor, the dominant
393
+ cost of the post-processing phase. The default of 1.0 leaves the activation at generation resolution.
394
+
346
395
  Never raises on unknown baselines: pre-flight callers need an answer for every
347
396
  job, so unknown baselines use a heavy fallback seed and are flagged via
348
397
  ``baseline_known=False``.
@@ -354,7 +403,8 @@ def estimate_job_burden(
354
403
 
355
404
  megapixels = (width * height) / 1_000_000
356
405
 
357
- vram_mb = burden.vram_base_mb + round(burden.vram_per_megapixel_mb * megapixels * batch)
406
+ vram_sampling_mb = burden.vram_base_mb + round(burden.vram_per_megapixel_mb * megapixels * batch)
407
+ vram_post_processing_mb = 0
358
408
  ram_mb = burden.ram_base_mb
359
409
  downloads_expected: list[DownloadTrigger] = []
360
410
 
@@ -364,7 +414,20 @@ def estimate_job_burden(
364
414
  continue
365
415
  if impact.applies_to_baselines is not None and baseline not in impact.applies_to_baselines:
366
416
  continue
367
- vram_mb += impact.vram_delta_mb + round(impact.vram_delta_per_megapixel_mb * megapixels)
417
+ if aux_model_weights_mb is not None and kind in aux_model_weights_mb:
418
+ weight_mb = round(aux_model_weights_mb[kind])
419
+ else:
420
+ weight_mb = impact.vram_delta_mb
421
+ # The upscaler enlarges the image, so its activation peak scales with the *output* megapixels
422
+ # (factor**2 the generation megapixels); every other feature works at generation resolution.
423
+ activation_megapixels = megapixels
424
+ if kind == FEATURE_KIND.post_processing_upscale and post_processing_upscale_factor > 1.0:
425
+ activation_megapixels = megapixels * (post_processing_upscale_factor**2)
426
+ vram_delta = weight_mb + round(impact.vram_delta_per_megapixel_mb * activation_megapixels)
427
+ if impact.phase == FEATURE_PHASE.post_processing:
428
+ vram_post_processing_mb += vram_delta
429
+ else:
430
+ vram_sampling_mb += vram_delta
368
431
  ram_mb += impact.ram_delta_mb
369
432
  if impact.download.triggered:
370
433
  downloads_expected.append(impact.download)
@@ -376,7 +439,9 @@ def estimate_job_burden(
376
439
  disk_bytes += sum((trigger.typical_size_mb or 0) * 1024 * 1024 for trigger in downloads_expected)
377
440
 
378
441
  return BurdenEstimate(
379
- vram_mb=vram_mb,
442
+ vram_mb=vram_sampling_mb + vram_post_processing_mb,
443
+ vram_sampling_mb=vram_sampling_mb,
444
+ vram_post_processing_mb=vram_post_processing_mb,
380
445
  ram_mb=ram_mb,
381
446
  disk_bytes_needed=disk_bytes,
382
447
  downloads_expected=downloads_expected,
@@ -93,6 +93,47 @@ def controlnet_annotator_download_bytes(control_types: Iterable[str | None]) ->
93
93
  return sum(CONTROLNET_ANNOTATOR_DOWNLOAD_BYTES.get(control_type, 0) for control_type in distinct)
94
94
 
95
95
 
96
+ # Horde upscaler name (KNOWN_UPSCALERS value) to its linear scale factor. The upscaler enlarges the
97
+ # generated image by this factor on each axis, so the post-processing activation peak scales with the
98
+ # *output* megapixels (factor**2 the generation megapixels), not the generation resolution. A 4x upscale
99
+ # of a 1 MP image produces a 16 MP tensor, which is the dominant VRAM cost of the post-processing phase
100
+ # (the model weights themselves are tens of MB). Used by the feature-impact estimate to size that peak.
101
+ UPSCALER_SCALE_FACTORS = {
102
+ "BACKEND_DEFAULT": 4, # the worker's default upscaler is a 4x ESRGAN; assume the larger factor
103
+ "RealESRGAN_x4plus": 4,
104
+ "RealESRGAN_x2plus": 2,
105
+ "RealESRGAN_x4plus_anime_6B": 4,
106
+ "NMKD_Siax": 4,
107
+ "4x_AnimeSharp": 4,
108
+ }
109
+ """Horde upscaler name to its linear (per-axis) scale factor (ROM)."""
110
+
111
+ _DEFAULT_UPSCALE_FACTOR = 4
112
+ """Assumed factor for an upscaler absent from the ROM: err high so the activation peak is not under-sized."""
113
+
114
+
115
+ def upscaler_scale_factor(name: str | None) -> int:
116
+ """Return the linear scale factor for upscaler *name*, or the conservative default when unknown.
117
+
118
+ ``None`` returns 1 (no upscaler, no enlargement). An unrecognised upscaler returns
119
+ :data:`_DEFAULT_UPSCALE_FACTOR` rather than 1, so a new upscaler the ROM has not learned yet
120
+ over-reserves rather than under-reserving the post-processing activation peak.
121
+ """
122
+ if name is None:
123
+ return 1
124
+ return UPSCALER_SCALE_FACTORS.get(name, _DEFAULT_UPSCALE_FACTOR)
125
+
126
+
127
+ def max_upscale_factor(names: Iterable[str | None]) -> int:
128
+ """Return the largest linear scale factor among *names*, or 1 when none enlarge the image.
129
+
130
+ A job may request several upscalers; the output size (and thus the activation peak) is driven by the
131
+ largest factor. ``None`` entries and an empty iterable contribute the no-op factor of 1.
132
+ """
133
+ factors = [upscaler_scale_factor(name) for name in names if name is not None]
134
+ return max(factors) if factors else 1
135
+
136
+
96
137
  SOURCE_IMAGE_PROCESSING_OPTIONS = ["img2img", "inpainting", "outpainting", "remix"]
97
138
 
98
139
  SCHEDULERS = ["normal", "karras", "simple", "ddim_uniform", "sgm_uniform", "exponential"]
File without changes
File without changes
File without changes