Nodes/Civitai Comfy Nodes/comfy / trellis2 / texGen
ComfyUI Node

comfy / trellis2 / texGen

The TRELLIS.2 texture pass, without a mesh in sight

By civitai·Created 4 months ago·Updated about a month ago· 55
comfy / trellis2 / texGen
  • image_url
  • model_air
  • api_config
  • model
  • fbx_model
  • thumbnail
  • rigged_model
  • rigged_fbx_model
  • animated_model
  • animated_fbx_model
  • basic_animations
  • workflow_id
  • raw_json
◄model_versionpixal3D►
◄structure_steps12►
◄shape_steps20►
◄upsample_steps12►
◄texture_steps12►
◄structure_cfg7.50►
◄shape_cfg7.50►
◄texture_cfg1.00►
◄target_resolution1536►
◄should_remeshtrue►
◄remesh_resolution768►
◄target_face_count700000►
◄texture_resolution2048►
◄seed0►
◄enable_pbrtrue►

Funny thing about the TRELLIS.2 texGen node compared to its Hunyuan3D counterpart: it doesn't ask for a mesh. The Hunyuan texGen wants an explicit CIVITAI_AIR mesh socket; the trellis texGen just wants your image. That tells you what it is - a hosted texture-generation pass that runs the paint side of TRELLIS.2 straight from a reference picture, no mesh juggling in between.

What it is

comfy / trellis2 / texGen from civitai/civitai-comfy-nodes, Civitai's official ComfyUI pack for its Orchestration API. Same architecture as every node here: submit a cloud job, poll it, get native Comfy outputs back. The recipe's discriminator marks it as the texturing operation, and the schema matches - should_texture is gone (texturing is the point), but enable_pbr and should_remesh are still there.

Because there's no mesh socket, you can't pipe a specific shapeGen output into it the way you'd expect. You feed it the reference image and the pipeline handles the rest - which makes it a much simpler drop-in for "I have a picture, give me a textured TRELLIS.2 result" than the staged workflow. If you need full control over geometry first, run the trellis imageTo3D or shapeGen nodes instead.

The inputs

  • image_url - required IMAGE socket. Your reference.
  • model_version - pixal3D or trellis2.
  • texture_steps (12) and texture_cfg (1) - the paint stage's sampling controls. Texture cfg at 1.0 is low for a diffusion model, which is the TRELLIS default and usually fine; bump it if textures come out washed out.
  • texture_resolution (2048) - output texture size. 8192 is available for hero assets and probably overkill for most runs.
  • should_remesh (true) and remesh_resolution (768) - texture can ride on remeshed geometry, which is why the cleanup controls appear here.
  • enable_pbr (true) - PBR channels on by default; keep it if the output might land in a game engine.
  • The structure_*/shape_* step and cfg knobs are also exposed, so you can still steer the geometry pass that feeds the texture.

The outputs

model (GLB URL), fbx_model, thumbnail (IMAGE → Preview Image), the rigged/animated slots that mostly stay empty, plus workflow_id and raw_json.

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

requests + python-socketio are the only dependencies; nothing gets downloaded to your models folder.

Gotchas

  • Credentials and Buzz. Wire a Civitai Auth node or set CIVITAI_API_TOKEN; every texture run is metered. raw_json shows the cost.
  • model is a URL string pointing at the hosted GLB, not a local file.
  • The texture quality ceiling is real. TRELLIS.2's PBR texturing is good for an open pipeline, but "good for an open pipeline" still means cleanup for anything you ship. Organic subjects - faces, animals, cloth - remain the weak spot across the whole 3D generation family.
  • If you were expecting to reskin your own existing mesh, remember this node takes an image, not a mesh - the Hunyuan texGen in the same pack is the one with a mesh input, if that's the job.
CategoryCivitai/Misc/comfy

Inputs (18)

NameTypeDefaultDescription
image_urlIMAGE—
model_versionoptCOMBOpixal3D2 options: pixal3D, trellis2
model_airoptCIVITAI_AIR—
structure_stepsoptINT121–100—
shape_stepsoptINT201–100—
upsample_stepsoptINT121–100—
texture_stepsoptINT121–100—
structure_cfgoptFLOAT7.500–30—
shape_cfgoptFLOAT7.500–30—
texture_cfgoptFLOAT1.000–30—
target_resolutionoptCOMBO15369 options: 1024, 1152, 1280, 1408, 1536, 1664, +3
should_remeshoptBOOLEANtrue—
remesh_resolutionoptINT76832–2048—
target_face_countoptINT7000001000–50000000—
texture_resolutionoptINT204864–8192—
seedoptINT00–4294967295—
enable_pbroptBOOLEANtrue—
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (10)

NameTypeDescription
modelSTRING—
fbx_modelSTRING—
thumbnailIMAGE—
rigged_modelSTRING—
rigged_fbx_modelSTRING—
animated_modelSTRING—
animated_fbx_modelSTRING—
basic_animationsSTRING—
workflow_idSTRING—
raw_jsonSTRING—