Rodin Gen-2
Rodin Gen-2 puts a 3D modeler in your ComfyUI graph
- images
- file_path
Most of the Runware pack's nodes hand you an image or a video. This one hands you a 3D model. Rodin Gen-2 is Hyper3D's (Deemos) image-to-3D and text-to-3D model, and through this node it turns a photo or a prompt into a proper GLB mesh with PBR materials - no Blender, no photogrammetry rig, no local GPU. You get a usable asset for game prototyping, product shots, or just seeing what your favorite 2D character looks like in the round.
A couple of honest caveats before you get excited. First, the output is a file_path string, not something ComfyUI can render in the viewport - the model saves to your output folder and the node hands you the path. That's the tradeoff for putting 3D in a 2D-first tool. Second, "Gen-2" quality on a 500-poly budget is a rough model; the detail settings exist for a reason.
How it works
The node posts an image (or just a prompt) to Runware's cloud, which runs Rodin's generation pipeline and saves the result as a GLB to your ComfyUI output folder. The request is assembled from the images input, the prompt, and a pile of mesh/texture settings, and the returned file_path string points at the saved file. Because it's an API call, quality is a parameter rather than a hardware problem - crank it and pay, or keep it light.
The inputs that matter
- images (
IMAGE) - the reference. Image-to-3D is where Rodin genuinely shines: feed it a product photo or a character render and it reconstructs the shape, including alpha if you keepsettings.useOriginalAlphaon. - positivePrompt - text-to-3D fallback, and useful for nudging the image result ("sneakers, detailed soles").
- settings.quality -
extra-lowtohigh. This sets the preset polygon budget, and it's the first knob you should touch. - settings.polyCount / settings.polyCount_value - the manual override, 500 to 1,000,000. The tooltip is blunt: 150k+ recommended for real detail. That's the difference between a usable asset and a lump.
- settings.material -
PBR,Shaded, orAll. PBR gets you the textured, game-ready output; All returns both. - settings.meshMode -
RaworQuad. Quad topologies rig and animate better; pick it if the model's going into a game engine or character pipeline. - settings.hdTexture - on for clean close-ups, off to save cost.
- settings.taPose - forces a T/A-pose on humanoids, which you want if you're rigging.
There's also seed (max 65535 here), numberResults (max 4), outputFormat (GLB only - not much of a dropdown), and an advanced_json escape hatch documented for settings.addons and settings.boundingBox.
Installing
Same pack, same drill:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI (or ComfyUI Manager → search Runware). Needs a Runware API key via Settings, RUNWARE_API_KEY, or runware auth login.
Where people get burned
The most common stumble is expecting the node to show you the model. It won't - the file_path output is a string. Point it at a Save/Preview text node or just check your output/ folder for the GLB and open it in any 3D viewer. Next: polygon count. Default quality is medium and the default budget is far below what looks good; if your result looks melted, that's the poly budget, not the model. And riggers, don't skip taPose - retopologizing a non-T-pose humanoid by hand is nobody's idea of a fun afternoon.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| imagesopt | IMAGE | — | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| seedopt | INT | 00–65535 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.hdTextureopt | BOOLEAN | false | Enables high-quality texture generation. |
| settings.materialopt | COMBO | PBR | Rendering material type for the output model. |
| settings.meshModeopt | COMBO | Quad | Mesh topology for the output model. |
| settings.polyCountopt | BOOLEAN | false | Enable to set settings.polyCount. Off uses the model's default. |
| settings.polyCount_valueopt | INT | 500500–1000000 | Custom polygon count for the output mesh. Values of 150,000 or higher are recommended for the best detail. |
| settings.qualityopt | COMBO | medium | Preset polygon count for the output mesh. |
| settings.taPoseopt | BOOLEAN | false | Forces a T-pose or A-pose for humanoid models. |
| settings.useOriginalAlphaopt | BOOLEAN | false | Preserves the original image transparency channel. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | GLB | File format for the generated 3D model. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: settings.addons, settings.boundingBox |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |