How to use IPAdapter in ComfyUI on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install ComfyUI from the official repository, then install ComfyUI_IPAdapter_plus with ComfyUI-Manager or a git clone into custom_nodes, and download the model files into the folders that README names. Load a workflow from that repository’s examples directory, run it, and copy the output folder off the instance before you destroy it. Destroying the instance deletes its disk.

The node README points at tencent-ailab/IP-Adapter as the models this node implements. Other ComfyUI pages: How to run FLUX.1-dev in ComfyUI on a cloud GPU, How to run InstantID on a cloud GPU, and How to run AnimateDiff in ComfyUI on a cloud GPU. How published FLUX and SDXL weight sizes are read: How much VRAM do I need for FLUX and SDXL. The tunnel for ComfyUI is How to use SSH port forwarding on a cloud GPU.

The node LICENSE file is the GNU General Public License, Version 3, 29 June 2007 (read 2026-11-13). The GitHub license field the same day was GPL-3.0. pyproject.toml sets license to GPL-3.0 license, version to 2.0.0, DisplayName to ComfyUI_IPAdapter_plus, and PublisherId to matteo. The tencent-ailab LICENSE is the Apache License, Version 2.0, January 2004, and its appendix copyright line is still the unfilled template Copyright [yyyy] [name of copyright owner]. The GitHub license field for that repository the same day was Apache-2.0. The model card for h94/IP-Adapter the same day had license apache-2.0 and gated false. The model card for h94/IP-Adapter-FaceID the same day had gated false and no license field in the card metadata this page read. Those are separate files. This page does not merge them into one license. Read each file before you redistribute the program or the weights.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README and the model card say about memory

The ComfyUI_IPAdapter_plus README does not print a GPU GB figure. IPAdapterPlus.py and utils.py on the commit below do not contain the string vram. NODES.md says “For low spec GPUs it is adviced to average the embeds if you send multiple images.” That sentence prints no GB figure, and the spelling is the file’s. The tencent-ailab README says the project switched to CLIP-ViT-H and that “the smaller model can reduce the memory usage in the inference phase.” That sentence prints no GB figure. The h94/IP-Adapter model card says “An IP-Adapter with only 22M parameters” and lists the image encoders as OpenCLIP-ViT-H-14 “with 632.08M parameter” and OpenCLIP-ViT-bigG-14 “with 1844.9M parameter”. Those are parameter counts on the model card, not a VRAM measurement. This page did not convert them into GB and did not re-measure a run.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T00:01:03.458Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T00:01:04.537Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every vram_gb below is 8 or higher. This page does not mark a row as enough, because the README publishes no GB figure to compare. Which listing you can start is on Deploy.

The catalog template named ComfyUI has id flux-1-dev, category image-gen, recommended_gpu RTX 4090 48G, and min_vram_gb 24. Those are template fields. The template list had no IPAdapter template. This page installs the node into a ComfyUI checkout. The ComfyUI README’s own memory clause is on the install guide linked above. This page does not treat that clause as an IPAdapter figure.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install the ComfyUI node

On Deploy, choose Raw GPU if you are installing ComfyUI yourself. The deploy page says “SSH access and root within a dedicated container”. The ComfyUI template is a different option. Its id and min_vram_gb are the template fields above, not a line in the IPAdapter README. The ComfyUI install, including Manager, is How to install ComfyUI and ComfyUI-Manager on a cloud GPU. This page does not repeat that install.

The README installation section says: “Download or git clone this repository inside ComfyUI/custom_nodes/ directory or use the Manager.” It also says IPAdapter requires the latest ComfyUI, and that the Manager’s automatic update sometimes does not work. It does not print the Manager search text and it does not print a git command. pyproject.toml is where DisplayName and PublisherId are set, as quoted above. This page adds the clone, and it was not run:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus

The commits API on 2026-11-13 listed a0f451a5113cf9becb0847b92884cb10cbdec0ef on the default branch main, committed 2025-04-14T07:29:11Z, message “wording”. The README’s important note dated 2025.04.14 says the repository is in “maintenance only” mode. The repository has no requirements.txt.

Model files and folders

The README says there is a Unified Model Loader, and that for it to work you need to name the files exactly as the list. Legacy loaders work with any file name and you select them manually. Models can be placed in sub-directories. An ipadapter entry in extra_model_paths.yaml can point at another location. IPAdapterPlus.py registers the folder id ipadapter as models_dir joined with ipadapter when that id is not already registered. ComfyUI folder_paths.py on commit c1eece62cbf1805d4f64286d7f5592e6a215e6ba (2026-11-12T20:46:52Z) already registers clip_vision and loras under models_dir. It does not register ipadapter in that file. models_dir is --models-directory when that argument is set, otherwise base_path joined with models.

CLIP vision files go in /ComfyUI/models/clip_vision. The README says to download and rename:

  • CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors, from h94/IP-Adapter file models/image_encoder/model.safetensors
  • CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors, from h94/IP-Adapter file sdxl_models/image_encoder/model.safetensors
  • clip-vit-large-patch14-336.bin, from Kwai-Kolors/Kolors-IP-Adapter-Plus file image_encoder/pytorch_model.bin, and the README says this one is only for Kolors models

IPAdapter weights go in /ComfyUI/models/ipadapter, which the README says to create if it is not present. The filenames it lists, with the note on each bullet:

  • ip-adapter_sd15.safetensors, basic model
  • ip-adapter_sd15_light_v11.bin, light impact model
  • ip-adapter-plus_sd15.safetensors, plus model
  • ip-adapter-plus-face_sd15.safetensors, face model
  • ip-adapter-full-face_sd15.safetensors, stronger face model
  • ip-adapter_sd15_vit-G.safetensors, base model, and the README says it requires the bigG CLIP vision encoder
  • ip-adapter_sdxl_vit-h.safetensors, SDXL model
  • ip-adapter-plus_sdxl_vit-h.safetensors, SDXL plus model
  • ip-adapter-plus-face_sdxl_vit-h.safetensors, SDXL face model
  • ip-adapter_sdxl.safetensors, vit-G SDXL model, and the README says it requires the bigG CLIP vision encoder
  • ip-adapter_sd15_light.safetensors, which the README marks Deprecated

Each of those bullets is a resolve URL under h94/IP-Adapter. This page does not repeat every URL. Copy the URL from the bullet you download.

FaceID models go in the same ipadapter folder. The README says they require insightface, that you install it in the ComfyUI environment, and that most FaceID models also need a LoRA. It points at issue 162 and does not print a pip command. This page does not copy comments from that issue. How to install onnxruntime-gpu on a cloud GPU is the provider install. The InsightFace README’s model terms are stated on How to run InstantID on a cloud GPU. The FaceID filenames the README lists:

  • ip-adapter-faceid_sd15.bin
  • ip-adapter-faceid-plusv2_sd15.bin
  • ip-adapter-faceid-portrait-v11_sd15.bin
  • ip-adapter-faceid_sdxl.bin
  • ip-adapter-faceid-plusv2_sdxl.bin
  • ip-adapter-faceid-portrait_sdxl.bin
  • ip-adapter-faceid-portrait_sdxl_unnorm.bin, which the README calls very strong style transfer, SDXL only
  • ip-adapter-faceid-plus_sd15.bin and ip-adapter-faceid-portrait_sd15.bin, which the README marks Deprecated

Those bullets are resolve URLs under h94/IP-Adapter-FaceID. The LoRAs go in /ComfyUI/models/loras:

  • ip-adapter-faceid_sd15_lora.safetensors
  • ip-adapter-faceid-plusv2_sd15_lora.safetensors
  • ip-adapter-faceid_sdxl_lora.safetensors
  • ip-adapter-faceid-plusv2_sdxl_lora.safetensors
  • ip-adapter-faceid-plus_sd15_lora.safetensors, which the README marks Deprecated and pairs with the deprecated FaceID plus v1 model

The README says the Unified Loader FaceID loads the matching LoRA when the names follow that convention. Otherwise you load the LoRA manually, and each FaceID model has to be paired with its own LoRA. utils.py insightface_loader joins folder_paths.models_dir with insightface, calls FaceAnalysis(name=model_name, root=path, ...), and defaults model_name to buffalo_l. IPAdapterInsightFaceLoader offers buffalo_l and antelopev2.

The community list in the same README adds ip_plus_composition_sd15.safetensors and ip_plus_composition_sdxl.safetensors under ostris/ip-composition-adapter, plus Kolors-IP-Adapter-Plus.bin and Kolors-IP-Adapter-FaceID-Plus.bin. The Kolors FaceID note says Kolors is trained on the InsightFace antelopev2 model and that you manually download it and place it inside the models/inisghtface directory. That spelling is the README’s. utils.py uses insightface, as above. The download link the README prints for that manual file is the tree MonsterMMORPG/tools. This page does not pick a file inside that tree.

How to download a Hugging Face model is the token reference. The README does not print an HF_ENDPOINT line.

Load an example workflow

The README says the examples directory has many workflows that cover the IPAdapter functions, and it embeds examples/demo_workflow.jpg. It also says to check that directory before asking for support. The directory listing on the commit above includes ipadapter_simple.json, ipadapter_advanced.json, ipadapter_portrait.json, ipadapter_faceid.json, ipadapter_faceid_batch.json, ipadapter_weights.json, ipadapter_weight_types.json, ipadapter_style_composition.json, ipadapter_precise_composition.json, ipadapter_regional_conditioning.json, ipadapter_tiled.json, ipadapter_kolors.json, and IPAdapter_FaceIDv2_Kolors.json, plus the other JSON files in that folder and demo_workflow.jpg. The README does not print a drag instruction. This page did not load a workflow.

The suggestions section says it is usually a good idea to lower the weight to at least 0.8 and to increase the number of steps. NODES.md says that for the linear weight type, which it calls the default, a good starting point is 0.8. Those are the documents’ figures. This page did not run them.

The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this node. The latest commit on that repository was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. This page does not treat another example directory as an IPAdapter install.

Where files are saved

IPAdapterSaveEmbeds sets output_dir from folder_paths.get_output_directory(). Its filename_prefix default is IP_embeds. The save method writes {filename}_{counter:05}.ipadpt with torch.save. The apply nodes return a model or an image tensor. They do not call save on an image file. A ComfyUI save-image node writes under the output directory. folder_paths.py on the commit above sets output_directory to base_path joined with output. base_path is --base-directory when that argument is set, otherwise the directory of folder_paths.py. The latest release tag fetched the same day was v0.45.0, published 2026-11-10T21:42:42Z.

ComfyUI’s own page is the web UI for this node. The install guide documents 127.0.0.1 port 8188 and the tunnel. This repository does not ship a second web server. This page does not add a port command.

When it fails

CUDA out of memory. The README and NODES.md do not print an out-of-memory flag or a GB target. NODES.md says to average embeds for multiple images on a low spec GPU and does not give a further procedure. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. This repository does not pin torch. The README does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this node on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

FaceID without insightface. ipadapter_execute raises insightface model is required for FaceID models when a FaceID model is selected and insightface is missing. A later branch raises InsightFace: No face detected. The README’s install line for insightface is the sentence above, not a printed pip command.

Save the images, then destroy

Copy the ComfyUI output directory, including any .ipadpt files from IPAdapterSaveEmbeds, off the instance before you destroy it. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

How much VRAM does the IPAdapter README publish?

The ComfyUI_IPAdapter_plus README, IPAdapterPlus.py, and utils.py publish no GB figure. NODES.md says to average embeds for multiple images on a low spec GPU and prints no GB figure. The tencent-ailab README says the smaller CLIP-ViT-H model can reduce memory usage and prints no GB figure. The h94/IP-Adapter model card says “An IP-Adapter with only 22M parameters” and lists the ViT-H encoder at 632.08M parameter and the ViT-bigG encoder at 1844.9M parameter. Those are parameter counts, not a VRAM figure. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T00:01:03.458Z) is 8 or higher. This page does not mark a row as enough. The catalog template named ComfyUI has id flux-1-dev, recommended_gpu RTX 4090 48G, and min_vram_gb 24. Those are template fields. Which listing you can start is on https://cloudgpu.app/deploy.

Where do the IPAdapter files go?

The README says CLIP vision files go in /ComfyUI/models/clip_vision, under the renamed filenames it prints, and IPAdapter weights go in /ComfyUI/models/ipadapter. FaceID LoRAs go in /ComfyUI/models/loras. The Unified Loader needs those filenames exactly. utils.py joins models_dir with insightface for the face models. The Kolors note in the README prints the directory models/inisghtface. That spelling is the README’s. The code path is insightface.

How do I open the ComfyUI page for this node?

This repository does not ship a separate web server. ComfyUI is the page. The install guide documents 127.0.0.1 port 8188 and the SSH tunnel. The README says to install with the Manager or by cloning into ComfyUI/custom_nodes, and it does not print the git command. The examples directory holds the workflow JSON files, including ipadapter_simple.json, and the README embeds demo_workflow.jpg. This page did not run a workflow.

Do the images stay on the instance after I destroy it?

No. IPAdapterSaveEmbeds writes an .ipadpt file under folder_paths.get_output_directory(), with filename_prefix IP_embeds. A ComfyUI save-image node writes under the output directory, which folder_paths.py joins to base_path. Copy that directory off before you destroy the instance. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

Sources (read 2026-11-13, Asia/Shanghai)


Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).