67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
# Documentation
|
|
- Class name: PixelKSampleHookCombine
|
|
- Category: image_processing
|
|
- Output node: False
|
|
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
|
|
|
|
PixelKSampleHookCombine 是一个节点,旨在将两个独立的钩子顺序应用于一系列图像处理操作。它协调钩子以特定顺序预处理、解码、放大和编码像素数据,确保图像操作任务的协同工作流程。
|
|
|
|
# Input types
|
|
## Required
|
|
- hook1
|
|
- 第一个要顺序应用的钩子。它在图像处理的初始阶段起着至关重要的作用,为后续操作奠定基础。
|
|
- Comfy dtype: PixelKSampleHook
|
|
- Python dtype: PixelKSampleHook
|
|
- hook2
|
|
- 第二个要顺序应用的钩子,它在第一个钩子应用后进一步细化图像处理流水线,提高整体输出质量。
|
|
- Comfy dtype: PixelKSampleHook
|
|
- Python dtype: PixelKSampleHook
|
|
|
|
# Output types
|
|
- processed_pixels
|
|
- PixelKSampleHookCombine 节点的输出是将两个钩子应用于输入像素数据后的结果。它代表了所有处理步骤完成后图像的最终状态。
|
|
- Comfy dtype: COMBO[str, torch.Tensor]
|
|
- Python dtype: Union[str, torch.Tensor]
|
|
|
|
# Usage tips
|
|
- Infra type: CPU
|
|
|
|
# Source code
|
|
```
|
|
class PixelKSampleHookCombine(PixelKSampleHook):
|
|
hook1 = None
|
|
hook2 = None
|
|
|
|
def __init__(self, hook1, hook2):
|
|
super().__init__()
|
|
self.hook1 = hook1
|
|
self.hook2 = hook2
|
|
|
|
def set_steps(self, info):
|
|
self.hook1.set_steps(info)
|
|
self.hook2.set_steps(info)
|
|
|
|
def pre_decode(self, samples):
|
|
return self.hook2.pre_decode(self.hook1.pre_decode(samples))
|
|
|
|
def post_decode(self, pixels):
|
|
return self.hook2.post_decode(self.hook1.post_decode(pixels))
|
|
|
|
def post_upscale(self, pixels):
|
|
return self.hook2.post_upscale(self.hook1.post_upscale(pixels))
|
|
|
|
def post_encode(self, samples):
|
|
return self.hook2.post_encode(self.hook1.post_encode(samples))
|
|
|
|
def post_crop_region(self, w, h, item_bbox, crop_region):
|
|
crop_region = self.hook1.post_crop_region(w, h, item_bbox, crop_region)
|
|
return self.hook2.post_crop_region(w, h, item_bbox, crop_region)
|
|
|
|
def touch_scaled_size(self, w, h):
|
|
(w, h) = self.hook1.touch_scaled_size(w, h)
|
|
return self.hook2.touch_scaled_size(w, h)
|
|
|
|
def pre_ksample(self, model, seed, steps, cfg, sampler_name, scheduler, positive, negative, upscaled_latent, denoise):
|
|
(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, upscaled_latent, denoise) = self.hook1.pre_ksample(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, upscaled_latent, denoise)
|
|
return self.hook2.pre_ksample(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, upscaled_latent, denoise)
|
|
``` |