Control Image Preprocessor
Assemble six scribbles into one control
- front_view
- front_right_view
- right_view
- back_view
- left_view
- front_left_view
- IMAGE
This node takes the six per-view control images you want to guide a multi-view generation - one sketch or map per camera angle - and packs them into the single batched control image the Diffusers MV Sampler expects. It's the front door to MV-Adapter's scribble-to-multiview feature: you draw (or generate) a rough guide for each of the six standard views, feed them in here, and this node lines them up and resizes them into the shape the ControlNet path can consume.
Without it, you'd have six loose images and a sampler that wants one. This node is the adapter between those two facts.
How it works
MV-Adapter generates a fixed ring of views, and when you're driving that with ControlNet, each generated view needs its own control signal. This node collects the six control images in view order, resizes them all to a common size, and stacks them into the batch the sampler's controlnet_image input takes. The actual conditioning happens later - this node just prepares the input.
The inputs that matter
Six of the inputs are the views themselves, and their names are the ring, in order:
front_view,front_right_view,right_view,back_view,left_view,front_left_view(all IMAGE)
These correspond to the default azimuths [0, 45, 90, 180, 270, 315]. Each one is the control image (typically a scribble) for that angle, so the order matters - put the front sketch in front_view, not somewhere else, or your control and your output won't align.
Then two sizing inputs:
widthandheight(INT, both default 768) - match these to thewidth/heighton the sampler and on any other preprocessing in the graph. Keep the whole pipeline on one size.
The output is a single IMAGE - the assembled, batched control image, which wires straight into the sampler's controlnet_image slot.
Installing the pack
ComfyUI Manager, search ComfyUI-MVAdapter, install, restart. Or: cd ComfyUI/custom_nodes && git clone https://github.com/huanngzh/ComfyUI-MVAdapter, then pip install -r requirements.txt, then restart. The workflow that shows this node wired up is t2mv_sdxl_ldm_controlnet.json.
Where people get burned
You need all six views, in the right slots. This isn't a "give it one image and it figures out the rest" node - it wants a control image per angle, ordered to match the ring. Mismatched order is the classic mistake: your back sketch drives the front view and the result looks scrambled. Line them up deliberately.
Second, this is only half of the ControlNet setup. Assembling the control image does nothing unless you've also loaded a ControlNet into the pipeline (via ControlNet Model Loader) and set a sensible controlnet_conditioning_scale on the sampler. All three pieces have to be present.
Third, don't expect pixel-perfect obedience. SDXL ControlNets are the weaker cousins of SD 1.5's, and scribble control in particular is finicky - layered under multi-view generation, it's guidance, not a guarantee. Expect to iterate on your sketches and the conditioning scale. Keep the scribbles clean and unambiguous (clear silhouettes, not busy scratch) and you'll get more out of it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| front_view | IMAGE | — | |
| front_right_view | IMAGE | — | |
| right_view | IMAGE | — | |
| back_view | IMAGE | — | |
| left_view | IMAGE | — | |
| front_left_view | IMAGE | — | |
| width | INT | 7681–2048 | — |
| height | INT | 7681–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |