3.4 KiB
3.4 KiB
Documentation
- Class name: AdvancedCLIPTextEncode
- Category: conditioning/advanced
- Output node: False
- Repo Ref: https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb
AdvancedCLIPTextEncode节点旨在将文本输入处理和编码成可用于高级条件任务的形式。它利用CLIP模型的能力生成捕获文本语义属性的嵌入。该节点特别适用于需要对输入文本有更深入理解的应用,如生成模型或需要对输入文本有更深入理解的自然语言处理任务。
Input types
Required
- text
- 'text'参数是节点的主要输入,代表需要编码的文本。它应该是一个字符串,并且可以包含多行文本,允许处理更复杂和更长的文本输入。此参数至关重要,因为编码的质量在很大程度上取决于所提供文本的准确性和丰富性。
- Comfy dtype: STRING
- Python dtype: str
- clip
- 'clip'参数指定用于文本编码的CLIP模型。它是一个必需的输入,因为节点依赖于CLIP模型的架构和能力,从文本输入生成有意义的嵌入。
- Comfy dtype: CLIP
- Python dtype: Any
- token_normalization
- 'token_normalization'参数确定在编码之前文本中的标记是如何规范化的。它可以采用不同的策略,如'none'、'mean'、'length'或'length+mean',这会影响标记嵌入的分布和尺度。这个参数对于控制嵌入中的方差很重要,并且可以影响条件性能。
- Comfy dtype: COMBO[none, mean, length, length+mean]
- Python dtype: str
- weight_interpretation
- 'weight_interpretation'参数影响编码过程中标记权重的解释方式。它提供各种选项,如'comfy'、'A1111'、'compel'、'comfy++'或'down_weight',每种选项都可能导致对文本某些方面的不同强调。此参数对于微调编码以符合下游任务的具体要求至关重要。
- Comfy dtype: COMBO[comfy, A1111, compel, comfy++, down_weight]
- Python dtype: str
Optional
- affect_pooled
- 'affect_pooled'参数是一个可选输入,用于控制是否应通过编码过程影响CLIP模型的池化输出。它接受'enable'或'disable'的值,这决定了池化输出是否包含在最终嵌入中。
- Comfy dtype: STRING
- Python dtype: str
Output types
- CONDITIONING
- AdvancedCLIPTextEncode节点的输出是一个张量,代表编码后的文本。这个张量用作进一步处理或生成任务的条件输入。它包含了从文本中提取的语义信息,提供了丰富和细致的表示,可以指导工作流程中的后续步骤。
- Comfy dtype: TENSOR
- Python dtype: torch.Tensor
Usage tips
- Infra type: CPU
Source code
class AdvancedCLIPTextEncode:
@classmethod
def INPUT_TYPES(s):
return {'required': {'text': ('STRING', {'multiline': True}), 'clip': ('CLIP',), 'token_normalization': (['none', 'mean', 'length', 'length+mean'],), 'weight_interpretation': (['comfy', 'A1111', 'compel', 'comfy++', 'down_weight'],)}}
RETURN_TYPES = ('CONDITIONING',)
FUNCTION = 'encode'
CATEGORY = 'conditioning/advanced'
def encode(self, clip, text, token_normalization, weight_interpretation, affect_pooled='disable'):
(embeddings_final, pooled) = advanced_encode(clip, text, token_normalization, weight_interpretation, w_max=1.0, apply_to_pooled=affect_pooled == 'enable')
return ([[embeddings_final, {'pooled_output': pooled}]],)