8.4 KiB
8.4 KiB
Documentation
- Class name: EditDetailerPipe
- Category: ImpactPack/Pipe
- Output node: False
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
EditDetailerPipe 是一个旨在通过整合各种模型和组件来增强文本细节级别的节点。它允许通过使用 LoRA 和通配符来定制文本生成过程,并通过可选参数如模型、clip 和 VAE 进一步细化。该节点的主要目标是提供一个灵活且详细的文本编辑框架,可以根据具体需求进行调整。
Input types
Required
- detailer_pipe
- detailer_pipe 参数对于 EditDetailerPipe 节点的运行至关重要,因为它代表了文本编辑管道的初始配置或状态。正是通过这个参数,节点接收到进一步处理和定制所需的基础组件。
- Comfy dtype: DETAILER_PIPE
- Python dtype: Tuple[Any, ...]
- wildcard
- wildcard 参数在文本编辑过程中起着关键作用,允许插入动态文本元素。它的 multiline 和 dynamicPrompts 属性表明可以生成的文本的灵活性和互动性,使其成为实现所需细节水平的关键组件。
- Comfy dtype: STRING
- Python dtype: str
Optional
- Select to add LoRA
- LoRA 选择参数使用户能够选择特定的 LoRA 模型来增强文本的细节和细微差别。这种选择可以显著影响生成文本的丰富度和深度,使其成为定制过程中的一个重要方面。
- Comfy dtype: COMBO[Select the LoRA to add to the text]
- Python dtype: str
- Select to add Wildcard
- 此参数允许选择要包含在文本中的通配符,为文本生成过程中引入变化性和不可预测性提供了一种机制。通配符的选择可以极大地影响最终结果,使其成为节点运行中的一个重要因素。
- Comfy dtype: COMBO[Select the Wildcard to add to the text]
- Python dtype: str
- model
- model 参数是一个可选输入,可用于指定文本编辑过程中的特定模型。这允许根据手头任务的具体要求定制节点的功能。
- Comfy dtype: MODEL
- Python dtype: Any
- clip
- clip 参数是另一个可选输入,可用于将特定的 CLIP 模型引入文本编辑管道。这可以改变文本的处理和详细化方式,为节点的输出提供额外的控制。
- Comfy dtype: CLIP
- Python dtype: Any
- vae
- vae 参数提供了一种可选的方式,将变分自编码器(VAE)包含在文本编辑过程中。这可以在节点的操作中引入抽象和表示学习的水平,可能提高生成文本的质量。
- Comfy dtype: VAE
- Python dtype: Any
- positive
- positive 参数用于指定正面条件输入,引导文本生成过程朝着期望的结果发展。这在引导节点行为生成具有特定特征的文本时特别有用。
- Comfy dtype: CONDITIONING
- Python dtype: Any
- negative
- negative 参数用于定义负面条件输入,阻止生成某些文本特征。这有助于通过过滤掉不需要的元素来细化节点的输出。
- Comfy dtype: CONDITIONING
- Python dtype: Any
- bbox_detector
- bbox_detector 参数是一个可选组件,可以集成到节点中以执行边界框检测,这对于涉及空间或几何文本分析的应用非常有用。
- Comfy dtype: BBOX_DETECTOR
- Python dtype: Any
- sam_model
- sam_model 参数允许包含一个 SAM(基于得分的对抗模型),可用于引导文本生成过程朝着更连贯和上下文相关的输出发展。
- Comfy dtype: SAM_MODEL
- Python dtype: Any
- segm_detector
- segm_detector 参数是将分割检测器纳入节点的可选输入,它可以协助识别和分离文本的不同部分或组件。
- Comfy dtype: SEGM_DETECTOR
- Python dtype: Any
- detailer_hook
- detailer_hook 参数提供了一种定制节点行为的方法,允许在文本编辑过程中插入自定义钩子或回调。这可以使得高级用户能够实现特定的功能或修改。
- Comfy dtype: DETAILER_HOOK
- Python dtype: Any
- refiner_model
- refiner_model 参数是一个可选输入,它通过指定一个次级模型来进一步细化文本编辑过程。这对于需要多阶段文本增强的应用特别有用。
- Comfy dtype: REFINER_MODEL
- Python dtype: Any
- refiner_clip
- refiner_clip 参数允许可选集成一个次级 CLIP 模型以增强文本的细节和连贯性。它为用户提供了一个额外的控制层,以微调节点的输出。
- Comfy dtype: REFINER_CLIP
- Python dtype: Any
- refiner_positive
- refiner_positive 参数用于为次级文本细化阶段提供正面条件输入。这有助于引导节点以更集中的方式产生具有所需属性的文本。
- Comfy dtype: CONDITIONING
- Python dtype: Any
- refiner_negative
- refiner_negative 参数用于指定次级文本细化过程的负面条件输入。它有助于在文本编辑的最后阶段避免不需要的文本特征。
- Comfy dtype: CONDITIONING
- Python dtype: Any
Output types
- detailer_pipe
- 输出的 detailer_pipe 代表通过 EditDetailerPipe 节点处理后的细化和定制的文本编辑管道。它封装了对初始管道所做的所有修改和增强,提供了一个详细且富有细微差别的文本生成框架。
- Comfy dtype: DETAILER_PIPE
- Python dtype: Tuple[Any, ...]
Usage tips
- Infra type: CPU
Source code
class EditDetailerPipe:
@classmethod
def INPUT_TYPES(s):
return {'required': {'detailer_pipe': ('DETAILER_PIPE',), 'wildcard': ('STRING', {'multiline': True, 'dynamicPrompts': False}), 'Select to add LoRA': (['Select the LoRA to add to the text'] + folder_paths.get_filename_list('loras'),), 'Select to add Wildcard': (['Select the Wildcard to add to the text'],)}, 'optional': {'model': ('MODEL',), 'clip': ('CLIP',), 'vae': ('VAE',), 'positive': ('CONDITIONING',), 'negative': ('CONDITIONING',), 'bbox_detector': ('BBOX_DETECTOR',), 'sam_model': ('SAM_MODEL',), 'segm_detector': ('SEGM_DETECTOR',), 'detailer_hook': ('DETAILER_HOOK',)}}
RETURN_TYPES = ('DETAILER_PIPE',)
RETURN_NAMES = ('detailer_pipe',)
FUNCTION = 'doit'
CATEGORY = 'ImpactPack/Pipe'
def doit(self, *args, **kwargs):
detailer_pipe = kwargs['detailer_pipe']
wildcard = kwargs['wildcard']
model = kwargs.get('model', None)
clip = kwargs.get('clip', None)
vae = kwargs.get('vae', None)
positive = kwargs.get('positive', None)
negative = kwargs.get('negative', None)
bbox_detector = kwargs.get('bbox_detector', None)
sam_model = kwargs.get('sam_model', None)
segm_detector = kwargs.get('segm_detector', None)
detailer_hook = kwargs.get('detailer_hook', None)
refiner_model = kwargs.get('refiner_model', None)
refiner_clip = kwargs.get('refiner_clip', None)
refiner_positive = kwargs.get('refiner_positive', None)
refiner_negative = kwargs.get('refiner_negative', None)
(res_model, res_clip, res_vae, res_positive, res_negative, res_wildcard, res_bbox_detector, res_segm_detector, res_sam_model, res_detailer_hook, res_refiner_model, res_refiner_clip, res_refiner_positive, res_refiner_negative) = detailer_pipe
if model is not None:
res_model = model
if clip is not None:
res_clip = clip
if vae is not None:
res_vae = vae
if positive is not None:
res_positive = positive
if negative is not None:
res_negative = negative
if bbox_detector is not None:
res_bbox_detector = bbox_detector
if segm_detector is not None:
res_segm_detector = segm_detector
if wildcard != '':
res_wildcard = wildcard
if sam_model is not None:
res_sam_model = sam_model
if detailer_hook is not None:
res_detailer_hook = detailer_hook
if refiner_model is not None:
res_refiner_model = refiner_model
if refiner_clip is not None:
res_refiner_clip = refiner_clip
if refiner_positive is not None:
res_refiner_positive = refiner_positive
if refiner_negative is not None:
res_refiner_negative = refiner_negative
pipe = (res_model, res_clip, res_vae, res_positive, res_negative, res_wildcard, res_bbox_detector, res_segm_detector, res_sam_model, res_detailer_hook, res_refiner_model, res_refiner_clip, res_refiner_positive, res_refiner_negative)
return (pipe,)