CraftsMan Generator (All-in-One)
The CraftsMan all-in-one
- pipeline
- image
- mesh_path
This is the node that got the pack made. Drop a picture of anything in, get a 3D mesh out - no staged pipeline to assemble, no fiddly intermediate sockets. "CraftsMan Generator (All-in-One)" runs the entire image-to-3D pass inside a single node, which makes it the natural first stop if you just want to see what the CraftsMan3D model does with one of your images.
One honest caveat before the hype: this wrapper implements only the coarse mesh stage of CraftsMan3D. No second-stage refinement with multi-view normal maps, and no texture painting - the README says so flat out. So what you get is a clean-but-untextured white mesh, the kind of thing that's genuinely useful for 3D printing, blockout, or a reference prop, and a long way from game-ready. That's consistent with where the whole field sits right now: image-to-3D output is impressive in silhouette and rough under the hood (triangle-soup topology, machine-made UVs). Know your destination before you queue the job.
How it works
Under the hood the all-in-one just chains the pack's four staged steps in one call: it preprocesses your image (background removal, crop, square padding), encodes it with a DINOv2 condition model, runs rectified-flow diffusion to sample the DoraVAE shape latents, then decodes those latents into a mesh at your chosen octree depth and saves the result. So every knob on this node maps to one stage, which means you can tune it without learning the staged graph.
The inputs that matter
pipeline- here's the wrinkle: "all-in-one" still needs aLoadCraftsManPipelinenode feeding it. The one-node workflow still starts with loading the checkpoint.image- anyIMAGEsocket. A transparent-background PNG works best; otherwise the node attemptsrembgbackground removal.seed(0),steps(50, 1–200),guidance_scale(7.5, 1–20) - standard diffusion knobs. Same seed + same settings = same shape, so bump the seed when a silhouette comes out wrong.octree_depth(8, 5–10) - the resolution dial for the decoded mesh. 8 means a 256³ occupancy grid; 7 is 128³. Higher = more detail and a much bigger memory bill.foreground_ratio(0.95),force_remove_bg(false),only_max_component(false),output_filename_prefix("craftsman_mesh") - the optional set.only_max_componentkeeps the largest connected blob of mesh, which quietly deletes floating debris.
The output
One output, mesh_path (a STRING): the full path to the saved .obj in your ComfyUI output directory. Wire it into a text display or into Preview3D to look at the result - the pack's own example workflow does exactly that.
Install
ComfyUI Manager, searching "CraftsMan3D", or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/hunzmusic/Comfyui-CraftsMan3DWrapper
cd ComfyUI-CraftsMan3DWrapper
pip install -r requirements.txt # portable: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt
Then drop a model into ComfyUI/models/checkpoints (see the Load CraftsMan Pipeline page for the download links). The dependency list is chunky - diffusers, transformers, rembg plus onnxruntime, trimesh, PyMCubes, numba pinned to 0.59.1 - so the install is a few hundred MB and the first run will also fetch a segmentation model for rembg from HuggingFace.
Common issues
- Unexpectedly light on detail: your input had no alpha and
rembgleft artifacts, oroctree_depthis at the low end. Feed it a proper cutout and lean on depth 8. - Out of memory: 3D generation is memory-hungry and the decode at depth 8–10 is the peak. Dial
octree_depthdown to 7 or 6 and close other things running on the card. - "CraftsMan library is not available": the node's dependencies aren't installed - you skipped the
pip install -r requirements.txtstep.
It's a niche wrapper from a small community author, so treat it as a tool for exploration, not a polished product. But for "photo to mesh in one click," it delivers.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | CRAFTSMAN_PIPELINE | — | |
| image | IMAGE | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 501–200 | — |
| guidance_scale | FLOAT | 7.51–20 | — |
| octree_depth | INT | 85–10 | — |
| foreground_ratioopt | FLOAT | 0.950.5–1 | — |
| force_remove_bgopt | BOOLEAN | false | — |
| only_max_componentopt | BOOLEAN | false | — |
| output_filename_prefixopt | STRING | craftsman_mesh | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh_path | STRING | — |