Diffusers IG MV Model Makeup
Getting the IG2MV adapter into your pipeline
- pipeline
- scheduler
- autoencoder
- PIPELINE
Let's get one thing straight up front: this node does nothing by itself. DiffusersIGMVModelMakeup won't render a single pixel. What it does is load the mvadapter_ig2mv_sdxl.safetensors adapter into the diffusion pipeline that ComfyUI-MVAdapter's loader nodes hand you, and wire the attention processor that adapter needs. It's the middleman that makes everything after it possible - the "makeup" is dressing up a bare pipeline until it's ready to sample.
Why you'd reach for it: you're doing image-guided multi-view generation. The workflow is the 3D-texture pipeline - Hunyuan3DWrapper renders a batch of position and normal maps from a mesh, and the MV-Adapter SDXL model repaints a consistent texture across all six views at once. It's the same family as ControlNet (spatial conditioning injected into attention) but aimed at keeping textures seam-free across viewpoints instead of controlling a single image's composition. The KB's ControlNet essay covers the conditioning-scale mental model you'll want here: the maps steer where detail goes, the prompt steers what it is.
How it works
The node takes the raw PIPELINE, SCHEDULER, and AUTOENCODER outputs from ComfyUI-MVAdapter's loaders and does three things (all in the source, nodes.py):
- Stuffs the VAE and scheduler into the pipeline object.
- Calls
init_custom_adapterwith theDecoupledMVRowColSelfAttnProcessor2_0attention processor - the "row/column self-attention across views" mechanism that lets the six views talk to each other and stay consistent. - Loads the adapter weights with
load_custom_adapter. If the file isn't already in your diffusers cache, it auto-downloads from the Hugging Face repo inadapter_path(defaulthuanngzh/mv-adapter). No API key, no extra account - the name is not a lie, it really does just fetch the file.
Then it moves everything to your GPU in fp16 and optionally enables VAE slicing/tiling to keep VRAM in check.
The inputs that matter
Most of these you can leave alone. The few worth touching:
load_mvadapter(default true) - the on/off for loading the adapter at all. Leave it on unless you're debugging the bare pipeline.adapter_path- where to fetch the weights. The defaulthuanngzh/mv-adapteris correct; only change it if you've mirrored the repo.num_views(default 6) - set it to 6 and don't get clever. The README is explicit that the adapter and its attention mechanism are hardcoded to exactly six views. The input technically lets you pick 1–12; the sampler ignores your cleverness and uses the batch size of the maps you feed it anyway.enable_vae_slicing(default true) - keep it on unless you're chasing max speed and have the VRAM to spare.
The single output is a PIPELINE - that's what you wire into the DiffusersIGMVSampler.
Installing it
Install the pack itself via ComfyUI Manager (search "ComfyUI-IG2MV") or:
cd ComfyUI/custom_nodes
git clone https://github.com/hunzmusic/ComfyUI-IG2MV
then restart ComfyUI. The pack ships no requirements.txt of its own, which is both convenient and a trap: the real dependencies - diffusers, einops, and PyTorch 2.0+ - all come from ComfyUI-MVAdapter, which you must install separately (the attention processor literally raises an ImportError on older PyTorch). You also need ComfyUI-Hunyuan3DWrapper for the position/normal maps later in the graph. Install those two first or every node in this pack will show up red.
Common issues
- Missing
PIPELINE/AUTOENCODERsocket types - that's the ComfyUI-MVAdapter dependency missing, not this node. Install the parent pack and reload. - PyTorch < 2.0 errors - the decoupled attention processor needs
scaled_dot_product_attention. Upgrade torch. - First run downloads the adapter - it's a couple hundred MB from Hugging Face; if it fails mid-download you get a load error on the next run. Re-run the node to retry; the diffusers cache resumes.
It's a fiddly little glue node, but it's the load-bearing one in the IG2MV workflow - get it green and the sampler is the easy half.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | PIPELINE | — | |
| scheduler | SCHEDULER | — | |
| autoencoder | AUTOENCODER | — | |
| load_mvadapter | BOOLEAN | true | — |
| adapter_path | STRING | huanngzh/mv-adapter | — |
| num_views | INT | 61–12 | — |
| enable_vae_slicingopt | BOOLEAN | true | — |
| enable_vae_tilingopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PIPELINE | PIPELINE | — |