ComfyUI Extension: ComfyUI_IPAdapter_plus

Authored by cubiq

Created

Updated

4234 stars

ComfyUI reference implementation for IPAdapter models. The code is mostly taken from the original IPAdapter repository and laksjdjf's implementation, all credit goes to them. I just made the extension closer to ComfyUI philosophy.

README

ComfyUI IPAdapter plus

ComfyUI reference implementation for IPAdapter models.

The IPAdapter are very powerful models for image-to-image conditioning. The subject or even just the style of the reference image(s) can be easily transferred to a generation. Think of it as a 1-image lora.

Sponsorship

<div align="center">

:heart: Github Sponsor | :coin: Paypal

</div>

If you like my work and wish to see updates and new features please consider sponsoring my projects.

Not to mention the documentation and videos tutorials. Check my ComfyUI Advanced Understanding videos on YouTube for example, part 1 and part 2

The only way to keep the code open and free is by sponsoring its development. The more sponsorships the more time I can dedicate to my open source projects.

Please consider a Github Sponsorship or PayPal donation (Matteo "matt3o" Spinelli). For sponsorships of $50+, let me know if you'd like to be mentioned in this readme file, you can find me on Discord or matt3o :snail: gmail.com.

Important updates

2024/09/13: Fixed a nasty bug in the middle block patching that we are carrying around since the beginning. Unfortunately the generated images won't be exactly the same as before. Anyway the middle block doesn't have a huge impact, so it shouldn't be a big deal. It does not impact Style or Composition transfer, only linear generations. I do not generally report on small bug fixes but this one may cause different results so I thought it's worth mentioning.

2024/08/02: Support for Kolors FaceIDv2. Please check the example workflow for best practices.

2024/07/26: Added support for image batches and animation to the ClipVision Enhancer.

2024/07/18: Support for Kolors.

2024/07/17: Added experimental ClipVision Enhancer node. It was somehow inspired by the Scaling on Scales paper but the implementation is a bit different. The new IPAdapterClipVisionEnhancer tries to catch small details by tiling the embeds (instead of the image in the pixel space), the result is a slightly higher resolution visual embedding with no cost of performance.

2024/07/11: Added experimental Precise composition (layout) transfer. It's not as good as style. embeds_scaling has a huge impact. Start with strength 0.8 and boost 0.3 in SDXL and 0.6 boost 0.35 in SD1.5.

2024/06/28: Added the IPAdapter Precise Style Transfer node. Increase the style_boost option to lower the bleeding of the composition layer. Important: works better in SDXL, start with a style_boost of 2; for SD1.5 try to increase the weight a little over 1.0 and set the style_boost to a value between -1 and +1, starting with 0.

2024/06/22: Added style transfer precise, offers less bleeding of the embeds between the style and composition layers. It is sometimes better than the standard style transfer especially if the reference image is very different from the generated image. Works better in SDXL than SD1.5.

2024/05/21: Improved memory allocation when encode_batch_size. Useful mostly for very long animations.

2024/05/02: Add encode_batch_size to the Advanced batch node. This can be useful for animations with a lot of frames to reduce the VRAM usage during the image encoding. Please note that results will be slightly different based on the batch size.

2024/04/27: Refactored the IPAdapterWeights mostly useful for AnimateDiff animations.

2024/04/21: Added Regional Conditioning nodes to simplify attention masking and masked text conditioning.

2024/04/16: Added support for the new SDXL portrait unnorm model (link below). It's very strong and tends to ignore the text conditioning. Lower the CFG to 3-4 or use a RescaleCFG node.

(Older updates removed for readability)

Example workflows

The examples directory has many workflows that cover all IPAdapter functionalities.

IPAdapter Example workflow

Video Tutorials

<a href="https://youtu.be/_JzDcgKgghY" target="_blank"> <img src="https://img.youtube.com/vi/_JzDcgKgghY/hqdefault.jpg" alt="Watch the video" /> </a>

The following videos are about the previous version of IPAdapter, but they still contain valuable information.

:nerd_face: Basic usage video, :rocket: Advanced features video, :japanese_goblin: Attention Masking video, :movie_camera: Animation Features video

Installation

Download or git clone this repository inside ComfyUI/custom_nodes/ directory or use the Manager. IPAdapter always requires the latest version of ComfyUI. If something doesn't work be sure to upgrade. Beware that the automatic update of the manager sometimes doesn't work and you may need to upgrade manually.

There's now a Unified Model Loader, for it to work you need to name the files exactly as described below. The legacy loaders work with any file name but you have to select them manually. The models can be placed into sub-directories.

Remember you can also use any custom location setting an ipadapter entry in the extra_model_paths.yaml file.

FaceID models require insightface, you need to install it in your ComfyUI environment. Check this issue for help. Remember that most FaceID models also need a LoRA.

For the Unified Loader to work the files need to be named exactly as shown in the list below.

Most FaceID models require a LoRA. If you use the IPAdapter Unified Loader FaceID it will be loaded automatically if you follow the naming convention. Otherwise you have to load them manually, be careful each FaceID model has to be paired with its own specific LoRA.

All models can be found on huggingface.

Community's models

The community has baked some interesting IPAdapter models.

if you know of other models please let me know and I will add them to the unified loader.

Generic suggestions

There are many workflows included in the examples directory. Please check them before asking for support.

Usually it's a good idea to lower the weight to at least 0.8 and increase the number steps. To increase adherece to the prompt you may try to change the weight type in the IPAdapter Advanced node.

Nodes reference

I'm (slowly) documenting all nodes. Please check the Nodes reference.

Troubleshooting

Please check the troubleshooting before posting a new issue. Also remember to check the previous closed issues.

Current sponsors

It's only thanks to generous sponsors that the whole community can enjoy open and free software. Please join me in thanking the following companies and individuals!

:trophy: Gold sponsors

Kaiber.ai   InstaSD

:tada: Silver sponsors

OperArt.ai   Finetuners   Comfy.ICU

Other companies supporting my projects

Esteemed individuals

And all my public and private sponsors!

Credits