horde-engine 7.2.2__tar.gz → 7.2.4__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.
- {horde_engine-7.2.2 → horde_engine-7.2.4}/PKG-INFO +1 -1
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/_version.py +2 -2
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/horde.py +20 -8
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/comfy_node_inputs.json +9 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/post_processing.py +5 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/horde_compat.py +16 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/payload_pp.py +27 -6
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_image_facefix.json +68 -5
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_image_facefix.json +19 -1
- {horde_engine-7.2.2 → horde_engine-7.2.4}/.gitignore +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/LICENSE +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/README.md +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/__pyinstaller.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/api.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/benchmark.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/beta_models.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/comfy_horde.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/config_path.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/consts.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/exceptions.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/adaptive_sampler_bound.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/comfy_events.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/comfy_patches.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/component_cache.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/component_materialize.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/component_restore.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/component_stability_probe.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/cpu_weight_retention.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/graph_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/in_process.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/interface.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/model_dirs.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/phase_timing.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/progress_hook.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/results.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/sampler_options.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/sampling_lease.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/server_shim.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/shared_components.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/sigma_schedules.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/stage_graph.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/stage_payloads.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/standalone_vae.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/weight_prefetch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/execution/zero_copy_load.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/feature_impact.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/feature_requirements.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/initialisation.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/installation/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/installation/__main__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/installation/installer.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/installation/manifest.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/installation/manifest.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/integrations/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/integrations/logfire_comfy_internals.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/integrations/logfire_setup.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/metrics.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_database/db_dep.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_database/db_embeds.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_database/diffusers.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_database/med_config.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/annotator_provider.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/base.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/civitai_adhoc.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/civitai_provider.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/civitai_records.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/codeformer.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/compvis.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/controlnet.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/controlnet_annotator.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/diffusers.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/esrgan.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/gfpgan.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/hyper.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/lora.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/miscellaneous.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/safety_checker.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/model_manager/ti.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/LICENSE +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/README.md +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_example.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_fg_all.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_bg.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_cond_joint_fg.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_bg_stop_at.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_diff_fg.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_fg_example_rgba.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/examples/layer_diffusion_joint.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/layered_diffusion.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/attention_sharing.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/enums.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/models.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/lib_layerdiffusion/utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/pyproject.toml +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/requirements.txt +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/LICENSE +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/README.md +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/VERSION +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/arcface_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/arch_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/codeformer_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/rrdbnet_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/vgg_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/vqgan_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/data/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/data/data_sampler.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/data/data_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/data/prefetch_dataloader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/data/transforms.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/losses/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/losses/loss_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/losses/losses.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/metrics/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/metrics/metric_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/metrics/psnr_ssim.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/models/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/deform_conv.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda.cpp +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_cuda_kernel.cu +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/dcn/src/deform_conv_ext.cpp +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/fused_act.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act.cpp +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/fused_act/src/fused_bias_act_kernel.cu +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d.cpp +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/src/upfirdn2d_kernel.cu +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/ops/upfirdn2d/upfirdn2d.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/setup.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/train.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/dist_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/download_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/file_client.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/img_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/lmdb_util.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/logger.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/matlab_functions.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/misc.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/options.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/realesrgan_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/utils/registry.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/version.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/align_trans.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/matlab_cp2tform.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_net.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/retinaface/retinaface_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/face_detector.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/common.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/experimental.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolo.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5l.yaml +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/models/yolov5n.yaml +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/autoanchor.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/datasets.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/extract_ckpt.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/general.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/detection/yolov5face/utils/torch_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/parsing/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/parsing/bisenet.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/parsing/parsenet.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/parsing/resnet.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/utils/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/utils/face_restoration_helper.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/utils/face_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/facelib/utils/misc.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/README.md +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/gfpganv1_clean_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/model_loading.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/stylegan2_clean_arch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/r_chainner/types.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_controlnet_model_loader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_image_loader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_image_output.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_lora_loader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_model_loader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_stage_io.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_upscale_model_loader.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/node_v3_canary.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/constants.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/context.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/definition.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/baselines.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/bindings.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/cascade.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/controlnet.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/creative_upscale.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/features.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/flux.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/qr_code.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/qwen.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/stable_diffusion.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/steps.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/families/image_gen/z_image.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/graph.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/identifiers.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/node_schemas.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/patches.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/payload.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/registry.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/resolution.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline/sdk_adapter.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_controlnet.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_controlnet_annotator.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_controlnet_hires_fix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_flux.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_image_upscale.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_qr_code.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_qwen.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_cascade.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_cascade_2pass.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_cascade_remix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_diffusion.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_diffusion_hires_fix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_diffusion_img2img_mask.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_stable_diffusion_paint.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_controlnet.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_controlnet_annotator.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_controlnet_hires_fix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_creative_upscale.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_flux.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_image_upscale.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_qr_code.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_qwen.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_cascade.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_cascade_2pass.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_cascade_remix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_diffusion.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_diffusion_hires_fix.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_diffusion_img2img_mask.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_stable_diffusion_paint.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipelines/pipeline_z_image.json +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/preload.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/profiling.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/py.typed +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pyinstaller_hooks/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pyinstaller_hooks/hook-hordelib.horde.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/safety.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/safety_checker.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/settings.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/shared_model_manager.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/train.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/__init__.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/device_pinning.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/distance.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/dynamicprompt.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/fd_limits.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/gpuinfo.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/image_utils.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/ioredirect.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/logger.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/memory_trim.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/nvml.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/optional_deps.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/sanitizer.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/switch.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/torch_build.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/utils/torch_memory.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/vram_planning.py +0 -0
- {horde_engine-7.2.2 → horde_engine-7.2.4}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: horde-engine
|
|
3
|
-
Version: 7.2.
|
|
3
|
+
Version: 7.2.4
|
|
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.
|
|
22
|
-
__version_tuple__ = version_tuple = (7, 2,
|
|
21
|
+
__version__ = version = '7.2.4'
|
|
22
|
+
__version_tuple__ = version_tuple = (7, 2, 4)
|
|
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
|
|
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)
|
|
@@ -789,13 +794,14 @@ class HordeLib:
|
|
|
789
794
|
strength=payload.get("facefixer_strength", 1.0),
|
|
790
795
|
image_index=img_idx,
|
|
791
796
|
):
|
|
792
|
-
# facefixer_strength
|
|
793
|
-
#
|
|
794
|
-
#
|
|
797
|
+
# facefixer_strength blends the restored image back over the
|
|
798
|
+
# pre-fix one; absent, it is 1.0 (full restoration), which is
|
|
799
|
+
# what the graph produced before the knob was honored.
|
|
795
800
|
image_ret = self.post_process(
|
|
796
801
|
FacefixPayload(
|
|
797
802
|
model=post_processing,
|
|
798
803
|
source_image=final_image,
|
|
804
|
+
strength=payload.get("facefixer_strength", 1.0),
|
|
799
805
|
),
|
|
800
806
|
)
|
|
801
807
|
single_image_faults += image_ret.faults
|
|
@@ -1002,13 +1008,18 @@ class HordeLib:
|
|
|
1002
1008
|
RuntimeError: If the model cannot be resolved (unknown to the reference or
|
|
1003
1009
|
missing from disk).
|
|
1004
1010
|
"""
|
|
1005
|
-
from hordelib.pipeline.horde_compat import
|
|
1011
|
+
from hordelib.pipeline.horde_compat import (
|
|
1012
|
+
apply_model_compat,
|
|
1013
|
+
disable_hires_fix_for_masked_img2img,
|
|
1014
|
+
resize_sources_to_request,
|
|
1015
|
+
)
|
|
1006
1016
|
from hordelib.pipeline.resolution import resolve_image_generation, resolve_image_model
|
|
1007
1017
|
from hordelib.pipeline.sdk_adapter import to_image_gen_payload
|
|
1008
1018
|
|
|
1009
1019
|
typed, _conversion_faults = to_image_gen_payload(params)
|
|
1010
1020
|
context = resolve_image_model(typed.model)
|
|
1011
1021
|
typed, _compat_faults = apply_model_compat(typed, context)
|
|
1022
|
+
typed = disable_hires_fix_for_masked_img2img(typed)
|
|
1012
1023
|
typed = resize_sources_to_request(typed)
|
|
1013
1024
|
typed, context, _resolution_faults = resolve_image_generation(typed, context)
|
|
1014
1025
|
|
|
@@ -1110,14 +1121,15 @@ class HordeLib:
|
|
|
1110
1121
|
def image_facefix(self, payload: dict) -> ResultingImageReturn:
|
|
1111
1122
|
"""Fix faces in an image (legacy dict surface; prefer :meth:`post_process`).
|
|
1112
1123
|
|
|
1113
|
-
``facefixer_strength``
|
|
1114
|
-
|
|
1115
|
-
callers
|
|
1124
|
+
``facefixer_strength`` blends the restored image back over the input (1.0, the default when
|
|
1125
|
+
absent, is full restoration). CodeFormer's ``codeformer_fidelity`` is a separate knob with
|
|
1126
|
+
different meaning; typed callers set it through :attr:`FacefixPayload.fidelity`.
|
|
1116
1127
|
"""
|
|
1117
1128
|
logger.debug("image_facefix called")
|
|
1118
1129
|
return self.post_process(
|
|
1119
1130
|
FacefixPayload(
|
|
1120
1131
|
model=payload["model"],
|
|
1121
1132
|
source_image=payload["source_image"],
|
|
1133
|
+
strength=payload.get("facefixer_strength", 1.0),
|
|
1122
1134
|
),
|
|
1123
1135
|
)
|
|
@@ -66,6 +66,11 @@ IMAGE_FACEFIX_DEFINITION: PostProcessingDefinition = PipelineDefinition(
|
|
|
66
66
|
bindings=(
|
|
67
67
|
*node("image_loader", "HordeImageLoader").bind(image="source_image"),
|
|
68
68
|
*node("face_restore_with_model", "FaceRestoreCFWithModel").bind(codeformer_fidelity="fidelity"),
|
|
69
|
+
# The restorer replaces every detected face outright, so requested strength is honored as a
|
|
70
|
+
# blend of its output back over the untouched input: at 1.0 the blend returns the restored
|
|
71
|
+
# image bit-for-bit, at 0.0 the original. Doing it in the graph keeps one image encode and
|
|
72
|
+
# works for GFPGAN too, whose architecture takes no strength of its own.
|
|
73
|
+
*node("facefix_blend", "ImageBlend").bind(blend_factor="strength"),
|
|
69
74
|
),
|
|
70
75
|
outputs=(OutputSpec(node="output_image"),),
|
|
71
76
|
patch_steps=(_apply_model_file,),
|
|
@@ -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
|
|
|
@@ -61,7 +61,15 @@ class FacefixPayload(_PostProcessingPayloadBase):
|
|
|
61
61
|
|
|
62
62
|
model: str
|
|
63
63
|
fidelity: float = 0.5
|
|
64
|
-
"""CodeFormer fidelity weight (0 = strongest restoration, 1 = closest to input).
|
|
64
|
+
"""CodeFormer fidelity weight (0 = strongest restoration, 1 = closest to input).
|
|
65
|
+
|
|
66
|
+
This is CodeFormer-specific and unrelated to :attr:`strength`: it steers the restoration
|
|
67
|
+
itself (identity versus quality) and GFPGAN's architecture ignores it entirely."""
|
|
68
|
+
strength: float = 1.0
|
|
69
|
+
"""How much of the restored image is blended back over the input (1 = fully restored, 0 = untouched).
|
|
70
|
+
|
|
71
|
+
Fixer-agnostic by construction: the blend happens in image space after the restorer runs, so it
|
|
72
|
+
means the same thing for GFPGAN (which has no strength input of its own) and CodeFormers."""
|
|
65
73
|
|
|
66
74
|
@field_validator("fidelity", mode="before")
|
|
67
75
|
@classmethod
|
|
@@ -72,6 +80,15 @@ class FacefixPayload(_PostProcessingPayloadBase):
|
|
|
72
80
|
return 0.5
|
|
73
81
|
return min(max(value, 0.0), 1.0)
|
|
74
82
|
|
|
83
|
+
@field_validator("strength", mode="before")
|
|
84
|
+
@classmethod
|
|
85
|
+
def _clamp_strength(cls, value: Any) -> float:
|
|
86
|
+
try:
|
|
87
|
+
value = float(value)
|
|
88
|
+
except (TypeError, ValueError):
|
|
89
|
+
return 1.0
|
|
90
|
+
return min(max(value, 0.0), 1.0)
|
|
91
|
+
|
|
75
92
|
|
|
76
93
|
class StripBackgroundPayload(_PostProcessingPayloadBase):
|
|
77
94
|
"""Remove the image background (pure-Python rembg; not a ComfyUI graph)."""
|
|
@@ -90,10 +107,10 @@ def post_processing_payload_from_horde_dict(data: dict[str, Any]) -> PostProcess
|
|
|
90
107
|
``model``, ``source_image``, and (for upscales) optional ``width``/``height`` meaning
|
|
91
108
|
"shrink the result back to this size".
|
|
92
109
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
``facefixer_strength`` maps onto ``FacefixPayload.strength`` (the blend of the restored image
|
|
111
|
+
over the input), not onto ``fidelity``: fidelity is CodeFormer's identity/quality tradeoff and
|
|
112
|
+
means nothing to GFPGAN. Absent, strength defaults to 1.0, which is full restoration and leaves
|
|
113
|
+
output identical to a request that never named the knob.
|
|
97
114
|
"""
|
|
98
115
|
model = data.get("model")
|
|
99
116
|
if not isinstance(model, str):
|
|
@@ -113,7 +130,11 @@ def post_processing_payload_from_horde_dict(data: dict[str, Any]) -> PostProcess
|
|
|
113
130
|
rescale_height=data.get("height"),
|
|
114
131
|
)
|
|
115
132
|
case PostProcessorKind.facefixer:
|
|
116
|
-
return FacefixPayload(
|
|
133
|
+
return FacefixPayload(
|
|
134
|
+
model=model,
|
|
135
|
+
source_image=source_image,
|
|
136
|
+
strength=data.get("facefixer_strength", 1.0),
|
|
137
|
+
)
|
|
117
138
|
case PostProcessorKind.strip_background:
|
|
118
139
|
return StripBackgroundPayload(source_image=source_image)
|
|
119
140
|
case _:
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/pipeline_designs/pipeline_image_facefix.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"last_node_id":
|
|
3
|
-
"last_link_id":
|
|
2
|
+
"last_node_id": 12,
|
|
3
|
+
"last_link_id": 16,
|
|
4
4
|
"nodes": [
|
|
5
5
|
{
|
|
6
6
|
"id": 6,
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"1": 416.33331298828125
|
|
15
15
|
},
|
|
16
16
|
"flags": {},
|
|
17
|
-
"order":
|
|
17
|
+
"order": 4,
|
|
18
18
|
"mode": 0,
|
|
19
19
|
"inputs": [
|
|
20
20
|
{
|
|
21
21
|
"name": "images",
|
|
22
22
|
"type": "IMAGE",
|
|
23
|
-
"link":
|
|
23
|
+
"link": 16
|
|
24
24
|
}
|
|
25
25
|
],
|
|
26
26
|
"title": "output_image",
|
|
@@ -81,7 +81,8 @@
|
|
|
81
81
|
"name": "IMAGE",
|
|
82
82
|
"type": "IMAGE",
|
|
83
83
|
"links": [
|
|
84
|
-
13
|
|
84
|
+
13,
|
|
85
|
+
15
|
|
85
86
|
],
|
|
86
87
|
"slot_index": 0
|
|
87
88
|
},
|
|
@@ -145,6 +146,52 @@
|
|
|
145
146
|
"retinaface_resnet50",
|
|
146
147
|
0.5
|
|
147
148
|
]
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": 12,
|
|
152
|
+
"type": "ImageBlend",
|
|
153
|
+
"pos": [
|
|
154
|
+
397,
|
|
155
|
+
331
|
|
156
|
+
],
|
|
157
|
+
"size": {
|
|
158
|
+
"0": 315,
|
|
159
|
+
"1": 102
|
|
160
|
+
},
|
|
161
|
+
"flags": {},
|
|
162
|
+
"order": 3,
|
|
163
|
+
"mode": 0,
|
|
164
|
+
"inputs": [
|
|
165
|
+
{
|
|
166
|
+
"name": "image1",
|
|
167
|
+
"type": "IMAGE",
|
|
168
|
+
"link": 15
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "image2",
|
|
172
|
+
"type": "IMAGE",
|
|
173
|
+
"link": 14
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"outputs": [
|
|
177
|
+
{
|
|
178
|
+
"name": "IMAGE",
|
|
179
|
+
"type": "IMAGE",
|
|
180
|
+
"links": [
|
|
181
|
+
16
|
|
182
|
+
],
|
|
183
|
+
"shape": 3,
|
|
184
|
+
"slot_index": 0
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"title": "facefix_blend",
|
|
188
|
+
"properties": {
|
|
189
|
+
"Node name for S&R": "ImageBlend"
|
|
190
|
+
},
|
|
191
|
+
"widgets_values": [
|
|
192
|
+
1,
|
|
193
|
+
"normal"
|
|
194
|
+
]
|
|
148
195
|
}
|
|
149
196
|
],
|
|
150
197
|
"links": [
|
|
@@ -168,6 +215,22 @@
|
|
|
168
215
|
14,
|
|
169
216
|
11,
|
|
170
217
|
0,
|
|
218
|
+
12,
|
|
219
|
+
1,
|
|
220
|
+
"IMAGE"
|
|
221
|
+
],
|
|
222
|
+
[
|
|
223
|
+
15,
|
|
224
|
+
1,
|
|
225
|
+
0,
|
|
226
|
+
12,
|
|
227
|
+
0,
|
|
228
|
+
"IMAGE"
|
|
229
|
+
],
|
|
230
|
+
[
|
|
231
|
+
16,
|
|
232
|
+
12,
|
|
233
|
+
0,
|
|
171
234
|
6,
|
|
172
235
|
0,
|
|
173
236
|
"IMAGE"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"inputs": {
|
|
14
14
|
"filename_prefix": "ComfyUI",
|
|
15
15
|
"images": [
|
|
16
|
-
"
|
|
16
|
+
"12",
|
|
17
17
|
0
|
|
18
18
|
]
|
|
19
19
|
},
|
|
@@ -48,5 +48,23 @@
|
|
|
48
48
|
"_meta": {
|
|
49
49
|
"title": "face_restore_with_model"
|
|
50
50
|
}
|
|
51
|
+
},
|
|
52
|
+
"12": {
|
|
53
|
+
"inputs": {
|
|
54
|
+
"blend_factor": 1,
|
|
55
|
+
"blend_mode": "normal",
|
|
56
|
+
"image1": [
|
|
57
|
+
"1",
|
|
58
|
+
0
|
|
59
|
+
],
|
|
60
|
+
"image2": [
|
|
61
|
+
"11",
|
|
62
|
+
0
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"class_type": "ImageBlend",
|
|
66
|
+
"_meta": {
|
|
67
|
+
"title": "facefix_blend"
|
|
68
|
+
}
|
|
51
69
|
}
|
|
52
70
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/layered_diffusion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/pyproject.toml
RENAMED
|
File without changes
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/comfyui_layerdiffuse/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{horde_engine-7.2.2 → horde_engine-7.2.4}/hordelib/nodes/facerestore_cf/basicsr/archs/arch_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|