Nodes/Comfyui-zhenzhen/zhenzhen-trellis-2-fal
ComfyUI Node

zhenzhen-trellis-2-fal

Drop an image in, get a .glb back — no GPU meltdown required

By T8mars·Created about a year ago·Updated 2 days ago· 740
zhenzhen-trellis-2-fal
  • image1
  • image2
  • image3
  • model_url
  • response
  • asset_urls
  • model_3d
image_url
api_key
seed0
resolution1024
ss_sampling_steps12
shape_slat_sampling_steps12
tex_slat_sampling_steps12
decimation_target500000
texture_size2048
remeshtrue
image_waybase64
poll_interval6
max_poll_attempts600
skip_errorfalse

Most image-to-3D in ComfyUI goes one of two ways: you fight ComfyUI-3D-Pack's compiled CUDA dependencies for an afternoon, or you rent somebody's A100. This node sidesteps both. It's a wrapper around Microsoft's TRELLIS 2 running on fal, from the Comfyui-zhenzhen pack - you feed it an image, it phones a cloud queue, and it hands you back a real 3D model as a FILE_3D output that plugs straight into the 3D viewer.

If the name rings a bell, good. TRELLIS is the MIT-licensed, image-to-3D model that the community spent 2026 shrinking into 8GB cards. Its trick is a single structured latent that decodes into a mesh, gaussians, or a radiance field - one generation, pick your format. The fal endpoint here serves TRELLIS 2, the 4B update that adds PBR materials. Running it in the cloud means you never touch the weights, the VRAM floor, or the nvdiffrast dependency hell. That's the whole point.

How it works

The node posts your image (as base64 or a URL) to the fal-ai/trellis-2 endpoint through Zhenzhen's own proxy, then polls every few seconds until the job's done. When it is, it downloads the GLB, wraps it as a FILE_3D, and returns it along with model_url, the raw response JSON, and asset_urls if the endpoint gave back more than one format. Under the hood it's a submit-and-poll HTTP client - there's no local inference happening, which is why this pack needs no model files at all.

The inputs that matter

You connect image1 (or image2/image3 for multi-view) and the node handles upload. Everything else has sane defaults, but three are worth touching:

  • resolution - 512 / 1024 / 1536. Higher is slower and costs more per credit; 1024 is the sweet spot for most props.
  • decimation_target - how aggressive the mesh cleanup is, default 500,000 triangles. Lower it for a lighter asset.
  • texture_size - 1024 / 2048 / 4096 for the baked texture. 2048 is fine unless you actually need to zoom in.

The seed here is a real FAL seed, capped at 65535 - 0 means random. The three sampling-step fields (ss_sampling_steps, shape_slat_sampling_steps, tex_slat_sampling_steps) are the TRELLIS internals; leave them at 12 unless you're chasing quality and are willing to wait.

Installing and setting up

Install via ComfyUI Manager (search Comfyui-zhenzhen) or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen

Then restart ComfyUI. No models download - this pack is pure API. You need an API key from the overseas "AI工坊" storefront (the FAL nodes all take the same key; paste it into api_key). FAL routes are pre-charged - the README says roughly 3.4 credits are held up front and the difference is refunded after the run, so don't panic at the number on the dashboard.

Troubleshooting

The two things that actually bite: 443/connection errors mean your machine can't reach Zhenzhen's overseas server - the README is blunt that you need a proxy with TUN mode enabled. And if the poll times out, check the node's max_poll_attempts (default 600 × 6s ≈ an hour) - TRELLIS 2 at 1536 can genuinely take a while. If a transient error hits, flip skip_error on and the node returns empty results instead of killing the whole workflow.

One honest caveat, straight from the KB: TRELLIS output is a starting point, not a game-ready asset. Expect to retopologize and re-UV by hand. But for a placeholder prop or a render block, you just saved yourself the worst install in the ecosystem.

Categoryzhenzhen/FAL

Inputs (17)

NameTypeDefaultDescription
image_urlSTRING
image1optIMAGE
image2optIMAGE
image3optIMAGE
api_keyoptSTRING
seedoptINT00–655350 = random seed. FAL seed max is 65535.
resolutionoptCOMBO10243 options: 512, 1024, 1536
ss_sampling_stepsoptINT121–50
shape_slat_sampling_stepsoptINT121–50
tex_slat_sampling_stepsoptINT121–50
decimation_targetoptINT50000020000–1000000
texture_sizeoptCOMBO20483 options: 1024, 2048, 4096
remeshoptBOOLEANtrue
image_wayoptCOMBObase642 options: base64, image_url
poll_intervaloptINT61–60
max_poll_attemptsoptINT60010–3600Default 600*6s = 3600s timeout.
skip_erroroptBOOLEANfalse

Outputs (4)

NameTypeDescription
model_urlSTRING
responseSTRING
asset_urlsSTRING
model_3dFILE_3D