horde-engine 7.2.1__tar.gz → 7.2.3__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 (284) hide show
  1. {horde_engine-7.2.1 → horde_engine-7.2.3}/PKG-INFO +1 -1
  2. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/_version.py +2 -2
  3. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/horde.py +12 -2
  4. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/installation/installer.py +65 -2
  5. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/horde_compat.py +16 -0
  6. {horde_engine-7.2.1 → horde_engine-7.2.3}/.gitignore +0 -0
  7. {horde_engine-7.2.1 → horde_engine-7.2.3}/LICENSE +0 -0
  8. {horde_engine-7.2.1 → horde_engine-7.2.3}/README.md +0 -0
  9. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/__init__.py +0 -0
  10. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/__pyinstaller.py +0 -0
  11. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/api.py +0 -0
  12. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/benchmark.py +0 -0
  13. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/beta_models.py +0 -0
  14. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/comfy_horde.py +0 -0
  15. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/config_path.py +0 -0
  16. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/consts.py +0 -0
  17. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/exceptions.py +0 -0
  18. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/__init__.py +0 -0
  19. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/adaptive_sampler_bound.py +0 -0
  20. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/comfy_events.py +0 -0
  21. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/comfy_patches.py +0 -0
  22. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/component_cache.py +0 -0
  23. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/component_materialize.py +0 -0
  24. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/component_restore.py +0 -0
  25. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/component_stability_probe.py +0 -0
  26. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/cpu_weight_retention.py +0 -0
  27. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/graph_utils.py +0 -0
  28. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/in_process.py +0 -0
  29. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/interface.py +0 -0
  30. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/model_dirs.py +0 -0
  31. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/phase_timing.py +0 -0
  32. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/progress_hook.py +0 -0
  33. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/results.py +0 -0
  34. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/sampler_options.py +0 -0
  35. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/sampling_lease.py +0 -0
  36. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/server_shim.py +0 -0
  37. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/shared_components.py +0 -0
  38. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/sigma_schedules.py +0 -0
  39. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/stage_graph.py +0 -0
  40. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/stage_payloads.py +0 -0
  41. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/standalone_vae.py +0 -0
  42. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/weight_prefetch.py +0 -0
  43. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/execution/zero_copy_load.py +0 -0
  44. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/feature_impact.py +0 -0
  45. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/feature_requirements.py +0 -0
  46. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/initialisation.py +0 -0
  47. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/installation/__init__.py +0 -0
  48. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/installation/__main__.py +0 -0
  49. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/installation/manifest.json +0 -0
  50. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/installation/manifest.py +0 -0
  51. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/integrations/__init__.py +0 -0
  52. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/integrations/logfire_comfy_internals.py +0 -0
  53. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/integrations/logfire_setup.py +0 -0
  54. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/metrics.py +0 -0
  55. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_database/db_dep.json +0 -0
  56. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_database/db_embeds.json +0 -0
  57. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_database/diffusers.json +0 -0
  58. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_database/med_config.json +0 -0
  59. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/__init__.py +0 -0
  60. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/annotator_provider.py +0 -0
  61. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/base.py +0 -0
  62. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/civitai_adhoc.py +0 -0
  63. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/civitai_provider.py +0 -0
  64. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/civitai_records.py +0 -0
  65. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/codeformer.py +0 -0
  66. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/compvis.py +0 -0
  67. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/controlnet.py +0 -0
  68. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/controlnet_annotator.py +0 -0
  69. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/diffusers.py +0 -0
  70. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/esrgan.py +0 -0
  71. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/gfpgan.py +0 -0
  72. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/hyper.py +0 -0
  73. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/lora.py +0 -0
  74. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/miscellaneous.py +0 -0
  75. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/safety_checker.py +0 -0
  76. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/model_manager/ti.py +0 -0
  77. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/__init__.py +0 -0
  78. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/LICENSE +0 -0
  79. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/README.md +0 -0
  80. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/__init__.py +0 -0
  81. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_example.json +0 -0
  82. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_fg_all.json +0 -0
  83. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_bg.json +0 -0
  84. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_fg.json +0 -0
  85. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg.json +0 -0
  86. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg_stop_at.json +0 -0
  87. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_fg.json +0 -0
  88. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example.json +0 -0
  89. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example_rgba.json +0 -0
  90. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_joint.json +0 -0
  91. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/layered_diffusion.py +0 -0
  92. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/__init__.py +0 -0
  93. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/attention_sharing.py +0 -0
  94. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/enums.py +0 -0
  95. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/models.py +0 -0
  96. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/utils.py +0 -0
  97. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/pyproject.toml +0 -0
  98. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/comfyui_layerdiffuse/requirements.txt +0 -0
  99. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/LICENSE +0 -0
  100. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/README.md +0 -0
  101. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/__init__.py +0 -0
  102. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/VERSION +0 -0
  103. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/__init__.py +0 -0
  104. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/__init__.py +0 -0
  105. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/arcface_arch.py +0 -0
  106. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/arch_util.py +0 -0
  107. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/codeformer_arch.py +0 -0
  108. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/rrdbnet_arch.py +0 -0
  109. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/vgg_arch.py +0 -0
  110. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/archs/vqgan_arch.py +0 -0
  111. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/data/__init__.py +0 -0
  112. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/data/data_sampler.py +0 -0
  113. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/data/data_util.py +0 -0
  114. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/data/prefetch_dataloader.py +0 -0
  115. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/data/transforms.py +0 -0
  116. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/losses/__init__.py +0 -0
  117. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/losses/loss_util.py +0 -0
  118. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/losses/losses.py +0 -0
  119. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/metrics/__init__.py +0 -0
  120. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/metrics/metric_util.py +0 -0
  121. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/metrics/psnr_ssim.py +0 -0
  122. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/models/__init__.py +0 -0
  123. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/__init__.py +0 -0
  124. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/__init__.py +0 -0
  125. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/deform_conv.py +0 -0
  126. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda.cpp +0 -0
  127. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda_kernel.cu +0 -0
  128. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_ext.cpp +0 -0
  129. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/__init__.py +0 -0
  130. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/fused_act.py +0 -0
  131. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act.cpp +0 -0
  132. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act_kernel.cu +0 -0
  133. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/__init__.py +0 -0
  134. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d.cpp +0 -0
  135. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d_kernel.cu +0 -0
  136. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/upfirdn2d.py +0 -0
  137. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/setup.py +0 -0
  138. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/train.py +0 -0
  139. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/__init__.py +0 -0
  140. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/dist_util.py +0 -0
  141. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/download_util.py +0 -0
  142. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/file_client.py +0 -0
  143. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/img_util.py +0 -0
  144. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/lmdb_util.py +0 -0
  145. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/logger.py +0 -0
  146. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/matlab_functions.py +0 -0
  147. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/misc.py +0 -0
  148. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/options.py +0 -0
  149. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/realesrgan_utils.py +0 -0
  150. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/utils/registry.py +0 -0
  151. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/basicsr/version.py +0 -0
  152. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/__init__.py +0 -0
  153. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/__init__.py +0 -0
  154. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/align_trans.py +0 -0
  155. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/matlab_cp2tform.py +0 -0
  156. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface.py +0 -0
  157. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_net.py +0 -0
  158. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_utils.py +0 -0
  159. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/__init__.py +0 -0
  160. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/face_detector.py +0 -0
  161. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/__init__.py +0 -0
  162. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/common.py +0 -0
  163. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/experimental.py +0 -0
  164. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolo.py +0 -0
  165. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5l.yaml +0 -0
  166. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5n.yaml +0 -0
  167. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/__init__.py +0 -0
  168. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/autoanchor.py +0 -0
  169. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/datasets.py +0 -0
  170. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/extract_ckpt.py +0 -0
  171. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/general.py +0 -0
  172. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/torch_utils.py +0 -0
  173. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/parsing/__init__.py +0 -0
  174. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/parsing/bisenet.py +0 -0
  175. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/parsing/parsenet.py +0 -0
  176. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/parsing/resnet.py +0 -0
  177. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/utils/__init__.py +0 -0
  178. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/utils/face_restoration_helper.py +0 -0
  179. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/utils/face_utils.py +0 -0
  180. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/facelib/utils/misc.py +0 -0
  181. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/README.md +0 -0
  182. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/__init__.py +0 -0
  183. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/gfpganv1_clean_arch.py +0 -0
  184. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/model_loading.py +0 -0
  185. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/stylegan2_clean_arch.py +0 -0
  186. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/facerestore_cf/r_chainner/types.py +0 -0
  187. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_controlnet_model_loader.py +0 -0
  188. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_image_loader.py +0 -0
  189. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_image_output.py +0 -0
  190. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_lora_loader.py +0 -0
  191. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_model_loader.py +0 -0
  192. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_stage_io.py +0 -0
  193. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_upscale_model_loader.py +0 -0
  194. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/nodes/node_v3_canary.py +0 -0
  195. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/__init__.py +0 -0
  196. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/comfy_node_inputs.json +0 -0
  197. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/constants.py +0 -0
  198. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/context.py +0 -0
  199. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/definition.py +0 -0
  200. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/__init__.py +0 -0
  201. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image.py +0 -0
  202. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/__init__.py +0 -0
  203. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/baselines.py +0 -0
  204. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/bindings.py +0 -0
  205. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/cascade.py +0 -0
  206. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/controlnet.py +0 -0
  207. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/creative_upscale.py +0 -0
  208. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/features.py +0 -0
  209. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/flux.py +0 -0
  210. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/qr_code.py +0 -0
  211. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/qwen.py +0 -0
  212. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/stable_diffusion.py +0 -0
  213. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/steps.py +0 -0
  214. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/image_gen/z_image.py +0 -0
  215. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/families/post_processing.py +0 -0
  216. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/graph.py +0 -0
  217. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/identifiers.py +0 -0
  218. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/node_schemas.py +0 -0
  219. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/patches.py +0 -0
  220. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/payload.py +0 -0
  221. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/payload_pp.py +0 -0
  222. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/registry.py +0 -0
  223. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/resolution.py +0 -0
  224. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline/sdk_adapter.py +0 -0
  225. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_controlnet.json +0 -0
  226. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_controlnet_annotator.json +0 -0
  227. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_controlnet_hires_fix.json +0 -0
  228. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_flux.json +0 -0
  229. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_image_facefix.json +0 -0
  230. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_image_upscale.json +0 -0
  231. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_qr_code.json +0 -0
  232. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_qwen.json +0 -0
  233. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_cascade.json +0 -0
  234. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_cascade_2pass.json +0 -0
  235. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_cascade_remix.json +0 -0
  236. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_diffusion.json +0 -0
  237. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_diffusion_hires_fix.json +0 -0
  238. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_diffusion_img2img_mask.json +0 -0
  239. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipeline_designs/pipeline_stable_diffusion_paint.json +0 -0
  240. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_controlnet.json +0 -0
  241. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_controlnet_annotator.json +0 -0
  242. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_controlnet_hires_fix.json +0 -0
  243. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_creative_upscale.json +0 -0
  244. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_flux.json +0 -0
  245. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_image_facefix.json +0 -0
  246. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_image_upscale.json +0 -0
  247. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_qr_code.json +0 -0
  248. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_qwen.json +0 -0
  249. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_cascade.json +0 -0
  250. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_cascade_2pass.json +0 -0
  251. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_cascade_remix.json +0 -0
  252. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_diffusion.json +0 -0
  253. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_diffusion_hires_fix.json +0 -0
  254. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_diffusion_img2img_mask.json +0 -0
  255. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_stable_diffusion_paint.json +0 -0
  256. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pipelines/pipeline_z_image.json +0 -0
  257. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/preload.py +0 -0
  258. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/profiling.py +0 -0
  259. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/py.typed +0 -0
  260. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pyinstaller_hooks/__init__.py +0 -0
  261. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/pyinstaller_hooks/hook-hordelib.horde.py +0 -0
  262. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/safety.py +0 -0
  263. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/safety_checker.py +0 -0
  264. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/settings.py +0 -0
  265. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/shared_model_manager.py +0 -0
  266. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/train.py +0 -0
  267. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/__init__.py +0 -0
  268. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/device_pinning.py +0 -0
  269. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/distance.py +0 -0
  270. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/dynamicprompt.py +0 -0
  271. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/fd_limits.py +0 -0
  272. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/gpuinfo.py +0 -0
  273. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/image_utils.py +0 -0
  274. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/ioredirect.py +0 -0
  275. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/logger.py +0 -0
  276. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/memory_trim.py +0 -0
  277. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/nvml.py +0 -0
  278. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/optional_deps.py +0 -0
  279. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/sanitizer.py +0 -0
  280. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/switch.py +0 -0
  281. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/torch_build.py +0 -0
  282. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/utils/torch_memory.py +0 -0
  283. {horde_engine-7.2.1 → horde_engine-7.2.3}/hordelib/vram_planning.py +0 -0
  284. {horde_engine-7.2.1 → horde_engine-7.2.3}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: horde-engine
3
- Version: 7.2.1
3
+ Version: 7.2.3
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 = '7.2.1'
22
- __version_tuple__ = version_tuple = (7, 2, 1)
21
+ __version__ = version = '7.2.3'
22
+ __version_tuple__ = version_tuple = (7, 2, 3)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -263,9 +263,14 @@ class HordeLib:
263
263
  tuple[OutputSpec, ...],
264
264
  ]:
265
265
  """The shared typed tail of the pipeline flow: resize -> resolve -> select -> materialize."""
266
- from hordelib.pipeline.horde_compat import enforce_schedule_constraints, resize_sources_to_request
266
+ from hordelib.pipeline.horde_compat import (
267
+ disable_hires_fix_for_masked_img2img,
268
+ enforce_schedule_constraints,
269
+ resize_sources_to_request,
270
+ )
267
271
  from hordelib.pipeline.resolution import resolve_image_generation
268
272
 
273
+ typed = disable_hires_fix_for_masked_img2img(typed)
269
274
  typed = resize_sources_to_request(typed)
270
275
  typed, context, resolution_faults = resolve_image_generation(typed, context)
271
276
  typed, schedule_faults = enforce_schedule_constraints(typed)
@@ -1002,13 +1007,18 @@ class HordeLib:
1002
1007
  RuntimeError: If the model cannot be resolved (unknown to the reference or
1003
1008
  missing from disk).
1004
1009
  """
1005
- from hordelib.pipeline.horde_compat import apply_model_compat, resize_sources_to_request
1010
+ from hordelib.pipeline.horde_compat import (
1011
+ apply_model_compat,
1012
+ disable_hires_fix_for_masked_img2img,
1013
+ resize_sources_to_request,
1014
+ )
1006
1015
  from hordelib.pipeline.resolution import resolve_image_generation, resolve_image_model
1007
1016
  from hordelib.pipeline.sdk_adapter import to_image_gen_payload
1008
1017
 
1009
1018
  typed, _conversion_faults = to_image_gen_payload(params)
1010
1019
  context = resolve_image_model(typed.model)
1011
1020
  typed, _compat_faults = apply_model_compat(typed, context)
1021
+ typed = disable_hires_fix_for_masked_img2img(typed)
1012
1022
  typed = resize_sources_to_request(typed)
1013
1023
  typed, context, _resolution_faults = resolve_image_generation(typed, context)
1014
1024
 
@@ -4,6 +4,8 @@ import enum
4
4
  import hashlib
5
5
  import json
6
6
  import os
7
+ import shutil
8
+ import stat
7
9
  import subprocess
8
10
  import time
9
11
  import uuid
@@ -92,11 +94,72 @@ def _head_commit(repo_path: Path) -> str | None:
92
94
  return None
93
95
 
94
96
 
97
+ def _remove_tree_best_effort(path: Path) -> None:
98
+ """Recursively delete ``path``, clearing the read-only flag git sets on object files on Windows.
99
+
100
+ Failures are swallowed: every caller is discarding a staging directory whose survival is only
101
+ cosmetic, and must not turn a completed install into an error.
102
+ """
103
+
104
+ def _clear_readonly_and_retry(func: object, failed_path: str, _exc_info: object) -> None:
105
+ try:
106
+ os.chmod(failed_path, stat.S_IWRITE)
107
+ func(failed_path) # type: ignore[operator]
108
+ except OSError:
109
+ pass
110
+
111
+ shutil.rmtree(path, onexc=_clear_readonly_and_retry)
112
+
113
+
95
114
  def _clone_at_ref(repo_url: str, ref: str, target: Path) -> None:
115
+ """Clone ``repo_url`` at ``ref`` so a finished checkout appears at ``target`` all at once.
116
+
117
+ The clone lands in a process-unique staging directory beside the target and is renamed into
118
+ place only once the checkout is complete. The install locks serialise installers where the
119
+ filesystem honours them, but they are advisory: on filesystems that ignore them (network and
120
+ FUSE-backed mounts among others) concurrent installers otherwise clone into one directory and
121
+ sweep each other's half-written trees aside mid-clone. With the rename, a partial tree is never
122
+ visible under the final name: a concurrent installer sees either nothing or a complete clone,
123
+ and if another installer finishes the same target first, its clone stands and the caller's HEAD
124
+ verification judges it.
125
+ """
96
126
  target.parent.mkdir(parents=True, exist_ok=True)
127
+ _remove_dead_staging_dirs(target)
128
+ staging = target.parent / f".{target.name}.staging-{os.getpid()}-{uuid.uuid4().hex[:8]}"
97
129
  logger.info("Cloning repository: url={}, target={}", repo_url, target)
98
- _run_git(["clone", repo_url, target.name], target.parent)
99
- _run_git(["checkout", "--force", ref], target)
130
+ try:
131
+ _run_git(["clone", repo_url, staging.name], target.parent)
132
+ _run_git(["checkout", "--force", ref], staging)
133
+ try:
134
+ staging.rename(target)
135
+ except OSError:
136
+ if not target.exists():
137
+ raise
138
+ logger.info(
139
+ "Target appeared while cloning (another installer finished it first); "
140
+ "keeping the existing checkout: target={}",
141
+ target,
142
+ )
143
+ finally:
144
+ if staging.exists():
145
+ _remove_tree_best_effort(staging)
146
+
147
+
148
+ def _remove_dead_staging_dirs(target: Path) -> None:
149
+ """Delete staging directories for ``target`` whose owning installer is certainly gone.
150
+
151
+ A killed installer leaves its staging directory behind. Only directories untouched for longer
152
+ than the lock timeout are removed: a younger one may belong to a live installer this process
153
+ cannot see holding the lock (the same advisory-lock caveat that motivates staging in the first
154
+ place), and deleting it would recreate the mid-clone sweep the staging scheme exists to prevent.
155
+ """
156
+ cutoff = time.time() - LOCK_TIMEOUT_SECONDS
157
+ for stale in target.parent.glob(f".{target.name}.staging-*"):
158
+ try:
159
+ if stale.is_dir() and stale.stat().st_mtime < cutoff:
160
+ _remove_tree_best_effort(stale)
161
+ except OSError:
162
+ continue
100
163
 
101
164
 
102
165
  def _target_lock(target: Path) -> FileLock:
@@ -24,6 +24,7 @@ from hordelib.pipeline.constants import (
24
24
  )
25
25
  from hordelib.pipeline.context import ModelContext
26
26
  from hordelib.pipeline.families.image_gen.baselines import align_your_steps_model_type
27
+ from hordelib.pipeline.families.image_gen.features import IMG2IMG_MASK
27
28
  from hordelib.pipeline.payload import ImageGenPayload
28
29
  from hordelib.utils.image_utils import ImageUtils
29
30
 
@@ -273,6 +274,21 @@ def apply_model_compat(
273
274
  return payload, faults
274
275
 
275
276
 
277
+ def disable_hires_fix_for_masked_img2img(payload: ImageGenPayload) -> ImageGenPayload:
278
+ """Disable hires fix when img2img carries a mask (explicit, or an alpha channel acting as one).
279
+
280
+ The masked img2img graph is single-pass, so the hires-fix first-pass shrink would become the
281
+ final output size. Masked payloads with a controlnet keep hires fix: the controlnet hires
282
+ graph has a real second pass. Must run before :func:`resize_sources_to_request`, which merges
283
+ the mask into the source alpha channel and makes every masked payload look alpha-masked.
284
+ """
285
+ if not payload.hires_fix or payload.control_type or not IMG2IMG_MASK.is_set(payload):
286
+ return payload
287
+ payload = payload.model_copy(deep=False)
288
+ payload.hires_fix = False
289
+ return payload
290
+
291
+
276
292
  def resize_sources_to_request(payload: ImageGenPayload) -> ImageGenPayload:
277
293
  """Ensure the source image and mask match the requested generation size.
278
294
 
File without changes
File without changes
File without changes