TinyTerra / ComfyUI_tinyterraNodes

A selection of nodes for Stable Diffusion ComfyUI
GNU General Public License v3.0
332 stars 39 forks source link

'SDXLClipModel' object has no attribute 'clip_layer' after updating ComfyUI #87

Closed slavasav closed 4 months ago

slavasav commented 4 months ago

`Error occurred when executing ttN pipeLoader:

'SDXLClipModel' object has no attribute 'clip_layer'

File "E:\Stable Diffusion\ComfyUI\ComfyUI\execution.py", line 152, in recursive_execute output_data, output_ui = get_output_data(obj, input_data_all) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\execution.py", line 82, in get_output_data return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\execution.py", line 75, in map_node_over_list results.append(getattr(obj, func)(**slice_dict(input_data_all, i))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\custom_nodes\ComfyUI_tinyterraNodes\tinyterraNodes.py", line 1172, in adv_pipeloader positive_embeddings_final, positive_pooled = advanced_encode(clipped, positive, positive_token_normalization, positive_weight_interpretation, w_max=1.0, apply_to_pooled='enable') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\custom_nodes\ComfyUI_tinyterraNodes\adv_encode.py", line 246, in advanced_encode embsl, = advanced_encode_from_tokens(tokenized['l'], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\custom_nodes\ComfyUI_tinyterraNodes\adv_encode.py", line 183, in advanced_encode_from_tokens weighted_emb, pooled_base = encode_func(weighted_tokens) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\custom_nodes\ComfyUI_tinyterraNodes\adv_encode.py", line 249, in lambda x: encode_token_weights(clip, x, encode_token_weights_l), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\ComfyUI\custom_nodes\ComfyUI_tinyterraNodes\adv_encode.py", line 226, in encode_token_weights model.cond_stage_model.clip_layer(model.layer_idx) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Stable Diffusion\ComfyUI\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1695, in getattr raise AttributeError(f"'{type(self).name}' object has no attribute '{name}'")`

RaemyS commented 4 months ago

According to recent changes (https://github.com/comfyanonymous/ComfyUI/commit/c2cb8e889b6a6d45eba26a534bf57aff86b320eb) it seems, that the clip_layer function does no longer exist in this form. They set the layer now via the clip_options function: self.set_clip_options({"layer": layer_idx})

TinyTerra commented 4 months ago

This should be fixed in the latest push

RaemyS commented 4 months ago

yes, works👍 Thx for the quick fix (and the nice lib, btw.)