TL;DR: This UPDATED workflow works with current versions of IPAdapter, and is significantly simpler and faster than v1.0, thanks to IPAdapter's new layer filtering feature that allows you to ignore the IPAdapter's content layers and focus on style alone. It can be used both for generating new images and restyling existing ones.
YOU NEED CONTROLNET++ PROMAX FOR IMAGE STYLE TRANSFER.
I'm retaining v1.0 here mostly as a curiosity, in case you're running an old version of IPAdapter and ComfyUI for whatever reason. v1.0 will not work on current ComfyUI IPAdapter versions.
Description
FAQ
Comments (5)
amazing work!
Somehow it doesn't work.
Any pre-requisites to use the workflow? A short guide on inputs usage, maybe?
PS: Also I get this error I couldn't figure out how to handle:
Error occurred when executing IPAdapterApplyEncoded: Error(s) in loading state_dict for ImageProjModel: size mismatch for proj.weight: copying a param with shape torch.Size([8192, 1024]) from checkpoint, the shape in current model is torch.Size([8192, 1280]). File "C:\ComfyUI_windows_portable\ComfyUI\execution.py", line 151, in recursive_execute output_data, output_ui = get_output_data(obj, input_data_all) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\ComfyUI_windows_portable\ComfyUI\execution.py", line 81, in get_output_data return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\ComfyUI_windows_portable\ComfyUI\execution.py", line 74, in map_node_over_list results.append(getattr(obj, func)(**slice_dict(input_data_all, i))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_IPAdapter_plus\IPAdapterPlus.py", line 769, in apply_ipadapter self.ipadapter = IPAdapter( ^^^^^^^^^^ File "C:\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_IPAdapter_plus\IPAdapterPlus.py", line 369, in init self.image_proj_model.load_state_dict(ipadapter_model["image_proj"]) File "C:\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 2153, in load_state_dict raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
A couple things have to be set correctly for this to work. Make sure that if you've got an IP Adapter PLUS model selected, that the ipadapter_plus setting on the "encode ipadapter image" is set to true (or vice-versa, if it's not an ipadapter plus model, make sure it's false). Also, make sure you have the correct clip_vision model selected as well. There should be one for SDXL and one for SD1.5, although there's an ipadapter model for SDXL that uses the SD1.5 clip_vision model. I don't always remember which is which, so if I get an error message, I switch to the other one, and often times that will resolve it.
@_Envy_ OK, basically, this IP-Adapter styling functionality is built-in now out of the box.
Anyway, it's still interesting to study your workflow.
I've updated this workflow.















