Civitai 3D Model Preview
Turn a 3D model into an image without a 3D viewer
- model
- api_config
- images
- workflow_id
- raw_json
Every polyGen node in this pack hands you a mesh URL and a thumbnail, and the thumbnail is usually the part you actually look at. This node is that idea made standalone: it renders a 3D model into images, on Civitai's cloud, so you can preview, check, and turn a model into assets without ever opening a 3D viewer. It's the least glamorous node in the pack and genuinely the most useful glue.
What it is
Civitai 3D Model Preview from civitai/civitai-comfy-nodes - a model3DPreview recipe. You give it a model and a set of camera poses, it renders stills, and returns them as a native IMAGE tensor. That's the whole job: cloud rendering of a 3D model into ComfyUI images. It's how you look at a mesh inside your graph, and how you grab a turntable of shots for documentation or model cards.
The model travels as a CIVITAI_AIR input - you pick it by wiring a Civitai Model Selector node (Browse button, pick your model) rather than typing a path. This is the same socket type the recipe nodes use for their model/vae/mesh inputs, so a mesh you generated with a polyGen node can flow into it the same way.
The inputs
model- required,CIVITAI_AIR. The model to render. Wire a Model Selector.camera_poses_json- required STRING (multiline). A JSON list of camera poses; this is what determines the angles rendered. Leave it empty (the default) and you get whatever the service's default camera does; fill it in and you control the orbit. This is the field that turns the node into a turntable renderer.width/height- render size, default 1024×1024, up to 4096.output_format-jpeg,png, orwebP(empty = service default).background- a hex color, default#D9D9D9. Set it to match your presentation or set it transparent-friendly if your downstream expects a clean backdrop.
The outputs
images- an IMAGE tensor. Wire it into Preview Image, Save Image, or anything that eats an image.workflow_idandraw_json- the pack's standard debugging/cost outputs.
Installing it
ComfyUI Manager → Civitai Comfy Nodes → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Only requests and python-socketio; no local 3D engine, no model files.
Gotchas
- The model comes from a Selector, not a file path. If you're hunting for a "load model" text box, there isn't one. Wire a Civitai Model Selector and pick the model there.
- Camera poses are JSON. If you're getting the default single angle every time, that's the empty
camera_poses_jsondoing its thing - that's expected, not a bug. Fill in poses to control the render. - It bills Buzz. Rendering is cheaper than generating, but it's metered.
raw_jsonhas the cost. - Credentials - Civitai Auth node,
CIVITAI_API_TOKEN, or the sidebar OAuth login. No token, no preview. - This node renders; it doesn't edit. For rotating or animating the model, the polyGen nodes are the ones with rigged/animated outputs.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | CIVITAI_AIR | — | |
| camera_poses_json | STRING | — | |
| widthopt | INT | 1024256–4096 | — |
| heightopt | INT | 1024256–4096 | — |
| output_formatopt | COMBO | 4 options: , jpeg, png, webP | |
| formatopt | STRING | — | |
| backgroundopt | STRING | #D9D9D9 | — |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |