This Idol ComfyUI workflow takes a single image and creates three outputs: a 3D Gaussian splat in SPZ format, a GLB mesh and a turntable video. The supplied graph uses Idol model files through ComfyUI’s TripoSplat nodes, with optional BiRefNet background removal before reconstruction.

Output example: ceramic fox

We ran this workflow on a PC with an RTX 3090 using a ceramic fox image generated for Synthetic Labs with FLUX.3 Klein Distilled. All three branches completed. This is one input and seed, not a general quality benchmark.

The Gaussian splat turntable: 75 frames at 25 fps, 1024 × 1024. This previews the splat, not the converted mesh.

Download example SPZ splat (3.4 MB) · Download example GLB mesh (58.9 MB) · Download turntable video

Generated input: orange and cream ceramic fox figurine on a light grey background
Input image generated for this example with FLUX.3 Klein Distilled. 3D reconstruction uses speridlabs Idol, repackaged for ComfyUI by Comfy-Org.

The splat contains 262144 points and preserves the fox’s ears, muzzle, paws and curled tail through the orbit. The back is inferred and glaze detail softens. The converted GLB has 2516792 triangles and visibly rough or fragmented surface areas; it needs further inspection and cleanup before production use.

The example uses reconstruction seed 567203942042; the original downloadable workflow retains its supplied settings.

Inside the image-to-Gaussian-splat subgraph, showing model loading, conditioning, sampling and splat decoding
Inside the reconstruction subgraph in ComfyUI.

Download and load the workflow

Download workflow (JSON)

Drag the downloaded JSON onto the ComfyUI canvas. Select your own image in Load Image: the filename saved in the workflow is a reference to a local input, and the image itself is not bundled in the JSON.

What the workflow creates

OutputBranchUse
Gaussian splat (.spz)SplatToFile3D → SaveGLBThe reconstructed scene as Gaussian points. Open it in software that supports SPZ splats.
Mesh (.glb)SplatToMesh → SaveGLBA mesh derived from the splat for inspection or further editing in compatible 3D tools.
Turntable videoRenderSplat → CreateVideo → SaveVideoAn orbit around the splat, rendered at 1024 × 1024 with 75 frames at 25 fps: three seconds.

The splat and mesh are different representations. A Gaussian splat is not a conventional polygon mesh; the GLB branch explicitly converts the splat to a mesh. Although the SPZ branch ends in a node called SaveGLB, its upstream format selector is set to spz.

Model files and setup

The graph records the following model downloads. Put each file in the corresponding folder under your ComfyUI installation, then refresh the model lists or restart ComfyUI.

FileFolder
birefnet.safetensorsmodels/background_removal
dino_v3_vit_h_bf16.safetensorsmodels/clip_vision
idol_decoder_fp16.safetensorsmodels/vae
flux2-vae.safetensorsmodels/vae
idol_fp16.safetensorsmodels/diffusion_models

Use a ComfyUI version that includes the TripoSplat, Gaussian splat rendering, mesh conversion and background removal nodes used by this graph. Its node metadata identifies these as comfy-core. If nodes appear missing, update ComfyUI and check its startup log before looking for similarly named third-party extensions.

How to use it

  1. Choose an image with one clearly visible subject and a clean background. An isolated character or prop makes the intended object easier to identify.
  2. Open Image to Gaussian Splat and check the five model selectors against the files above.
  3. Leave auto_remove_background enabled for an opaque background. Disable it when your input already has a suitable alpha channel.
  4. Start with num_gaussians at 262144. Keep the supplied settings for the first run so you have a baseline.
  5. Queue the workflow. All three output branches are active in the supplied JSON.
  6. Inspect the full turntable, then open the SPZ and GLB in compatible viewers. Check the sides, back and thin parts before using the result in another project.

Settings in the supplied graph

SettingSaved value
Background removalEnabled, BiRefNet
Gaussian count262144
Exposed seed46
Sampling20 steps, CFG 3, dpmpp_2m, simple scheduler, denoise 1
Splat rendering1024 × 1024, 75 frames, colour mode
Video frame rate25 fps
Mesh conversion resolution384
3D filename prefix3d/3d_idol_image_to_gaussian_splat
Video filename prefixvideo/3d_idol_image_to_gaussian_splat

The subgraph exposes seed 46, while its internal KSampler also stores a randomize control. Check the seed behaviour in your ComfyUI version when comparing repeat runs. Record the effective seed and settings rather than assuming every queue submission is identical.

What to inspect in the result

A single image cannot show every surface. The sides and back are inferred, so a convincing front view does not establish accurate geometry. Look closely at thin objects, gaps, hair or fur, instrument strings and edges where background removal may have affected the subject.

The workflow note warns that increasing the Gaussian count above the supplied density can oversample existing points rather than add detail. Its mesh branch can also produce a heavy mesh at resolution 384. Check the resulting file size and geometry before importing it into a larger scene; lower the mesh resolution if you need a lighter first pass.

Troubleshooting

  • Missing model: check the exact filename and folder, including both VAE files.
  • Input image missing: select a local file in Load Image. The JSON does not include the original pixels.
  • Subject edges disappear: inspect the background-removal preview and try an input with cleaner separation or an existing alpha channel.
  • Memory error or slow mesh export: reduce mesh conversion resolution and test output branches separately to identify the expensive stage.
  • SPZ will not open: use a viewer with Gaussian splat and SPZ support. A generic GLB mesh viewer may not support this representation.

Sources and related workflows

The supplied workflow links to Comfy-Org/Idol, speridlabs/idol and TripoSplat. Check the applicable model and dependency licences before distributing outputs or integrating them into a product.

To prepare an input, try FLUX 3 Klein image editing or Z-Image-Turbo image generation. Browse more guides in the ComfyUI archive.