Generated reference · ComfyUI workflow · 3D reconstruction

Stable Zero123 Multi-View Generator

Generate consistent multi-view images from a single reference for 3D reconstruction

3D reconstruction10nodesGPU A6000out unspecified~180sv1.0.0

On this page
10Graph nodes
9Node classes
10Inputs
1Models

Tags: 3dmultiviewzero123reconstructionnovel-view

Inputs (10)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

reference_imageimagerequired
Reference image to generate views from
view_configurationenumdefault orbital_8
Configuration of output views
options: cardinal_4orbital_8hemisphere_12full_sphere_24custom
custom_view_countintegerdefault 12min 2max 36
Number of views to generate when view_configuration is 'custom' (evenly spaced around the azimuth at elevation 0)
elevation_rangeenumdefault slight_variation
Range of vertical viewing angles
options: level_onlyslight_variationfull_hemispherefull_sphere
object_typeenumdefault general
Type of object for optimized processing
options: generalcharacterstatueartifactsacred_objectcrystalnatural_objectarchitectural
consistency_levelenumdefault high
Level of view consistency
options: standardhighmaximum
detail_preservationenumdefault high_detail
Detail preservation in generated views
options: balancedhigh_detailsmooth
background_handlingenumdefault remove
How to handle background in outputs
options: preserveremoveneutral_graytransparent
output_resolutionenumdefault 512x512
Resolution of output views
options: 256x256512x512768x768
seedintegerdefault -1
Random seed for reproducibility

ComfyUI node graph (10)#

The executable ComfyUI prompt graph: 10 nodes across 9 distinct node classes, wired by 14 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: LoadImage"] n1["2: ImageScale"] n2["3: BackgroundRemover"] n3["4: ImageOnlyCheckpointLoader"] n4["5: StableZero123_Conditioning_Batched"] n5["6: KSampler"] n6["7: VAEDecode"] n7["8: SaveImage"] n8["9: CreateViewGrid"] n9["10: SaveImage"] n0 -->|image| n1 n1 -->|image| n2 n3 -->|clip_vision| n4 n2 -->|init_image| n4 n3 -->|vae| n4 n3 -->|model| n5 n4 -->|positive| n5 n4 -->|negative| n5 n4 -->|latent_image| n5 n5 -->|samples| n6 n3 -->|vae| n6 n6 -->|images| n7 n6 -->|images| n8 n8 -->|images| n9 classDef custom fill:#12b886,stroke:#0b6b4f,color:#04110c; class n2,n8 custom;
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (10)#

1LoadImagecore
image = {{reference_image}} tmpl
outputs: IMAGEMASK
2ImageScalecore
image = ◂ node 1 · out[0]upscale_method = lanczoswidth = 256height = 256crop = center
outputs: IMAGE
3BackgroundRemovercustom pack
image = ◂ node 2 · out[0]mode = {{background_handling}} tmpl
outputs: IMAGEMASK
4ImageOnlyCheckpointLoadercore
ckpt_name = stable_zero123.ckpt
outputs: MODELCLIP_VISIONVAE
5StableZero123_Conditioning_Batchedcore
clip_vision = ◂ node 4 · out[1]init_image = ◂ node 3 · out[0]vae = ◂ node 4 · out[2]width = 256height = 256batch_size = {{custom_view_count if view_configuration == 'custom' else view_configurations[view_configuration].count}} tmplelevation = {{0.0 if view_configuration == 'custom' else view_configurations[view_configuration].elevation}} tmplazimuth = 0.0elevation_batch_increment = 0.0azimuth_batch_increment = {{round(360.0 / custom_view_count, 2) if view_configuration == 'custom' else view_configurations[view_configuration].azimuth_increment}} tmpl
outputs: positivenegativelatent
6KSamplercore
model = ◂ node 4 · out[0]positive = ◂ node 5 · out[0]negative = ◂ node 5 · out[1]latent_image = ◂ node 5 · out[2]seed = {{seed}} tmplsteps = 20cfg = 4.0sampler_name = eulerscheduler = sgm_uniformdenoise = 1.0
outputs: LATENT
7VAEDecodecore
samples = ◂ node 6 · out[0]vae = ◂ node 4 · out[2]
outputs: IMAGE
8SaveImagecore
images = ◂ node 7 · out[0]filename_prefix = multiview
9CreateViewGridcustom pack
images = ◂ node 7 · out[0]columns = 4caption = {{view_configuration}} multiview tmpl
outputs: IMAGE
10SaveImagecore
images = ◂ node 9 · out[0]filename_prefix = multiview_grid

Prompt construction#

template
Multi-view consistent 3D object rendering, {object_prompt}, same object from different angles, consistent lighting, consistent materials, {detail} detail, professional 3D asset views

Variables (2)#

object_prompt
{{object_type_prompts[object_type]}} tmpl
detail
{{detail_preservation}} tmpl

Parameter banks (4)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

view_configurations (4)#

cardinal_4
{"views": 4, "azimuths": [0, 90, 180, 270], "elevations": [0, 0, 0, 0], "description": "Front, right, back, left views", "count": 4, "azimuth_increment": 90.0, "elevation": 0.0}
orbital_8
{"views": 8, "azimuths": [0, 45, 90, 135, 180, 225, 270, 315], "elevations": [0, 0, 0, 0, 0, 0, 0, 0], "description": "8 views around the object", "count": 8, "azimuth_increment": 45.0, "elevation": 0.0}
hemisphere_12
{"views": 12, "azimuths": [0, 60, 120, 180, 240, 300, 0, 60, 120, 180, 240, 300], "elevations": [0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30], "description": "12 views covering upper hemisphere", "count": 12, "azimuth_increment": 30.0, "elevation": 0.0}
full_sphere_24
{"views": 24, "description": "24 views covering full sphere", "count": 24, "azimuth_increment": 15.0, "elevation": 0.0}

object_type_prompts (8)#

general
3D object, consistent appearance from all angles
character
3D character, figure, consistent anatomy and clothing from all views
statue
3D statue, sculpture, consistent material and form from all angles
artifact
3D artifact, relic, consistent details and textures from all views
sacred_object
3D sacred object, spiritual item, consistent symbolic details
crystal
3D crystal, gem, consistent facets and reflections from all angles
natural_object
3D natural object, organic form, consistent texture from all views
architectural
3D architectural element, building detail, consistent structure

resolution_map (3)#

256x256
{"width": 256, "height": 256}
512x512
{"width": 512, "height": 512}
768x768
{"width": 768, "height": 768}

usage_notes (2)#

best_results
Use clean, well-lit reference imagesCenter object in frame with some paddingRemove or use neutral background for best consistencyHigher consistency may reduce view variety
3d_reconstruction
Output views can be used with NeRF, 3D Gaussian Splatting, or photogrammetry tools

Models & dependencies#

Custom node packs (2)#

The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.

BackgroundRemoverCreateViewGrid

Models required (1)#

stable_zero123.ckpt

Output contract#

What a successful run of this workflow returns.

primary
{"type": "image_sequence", "format": "png", "description": "Individual view images with angle metadata"}
secondary
{"type": "image", "format": "png", "description": "Grid overview of all views"}

Taxonomy & routing#

How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.

assetFamily
game-character-game-ready-bundle
outputPackageProfile
game-ready-3d-profile
controlModalities
camera-lockcontrolnet-depthcontrolnet-normaldepth-constraintidentity-adapterlatent-reuselens-profile-lockmodel-lockpalette-lockpose-constraintreference-ensemblesampler-scheduler-lockscene-lockseed-lockstyle-anchortemporal-lock +1 more
consistencyDimensions
propenvironmentlightinglens
notes
Multi-view generation aligned to game-ready character bundle.