Rodin - Gen 2.5 Fast Text-to-3D
No image? Type it — Rodin's Fast Text-to-3D
- api_key
- model_path
Most Rodin users feed it pictures, because a picture pins down the thing you want. Rodin - Gen 2.5 Fast Text-to-3D is the node for the cases where you don't have one: a prop from a novel, a generic "wizard's staff," an idea that only exists as a sentence. You type a prompt, the API hallucinates a whole 3D object from it, and you decide if it's close. It's the only text-to-3D node in the fast tier of this pack, and it inherits everything that makes the fast tier good: cheap jobs, fast turnaround, and a hard cap on mesh complexity.
What it is
Text-to-3D on Rodin's Gen 2.5 model, Fast mode. Mechanically it's the sibling of Fast Image-to-3D with the image input swapped for a prompt string: the node submits the prompt to https://api.hyper3d.com/api/v2/rodin with your key as a Bearer token, polls the status endpoint every five seconds, and downloads the finished mesh to ComfyUI/output/<timestamp>/ when the job clears. No tensors, no image preprocessing - the prompt goes straight to the API.
The inputs that matter
- prompt - the whole ballgame. This is a multiline string, so be specific the way you'd prompt an image model: "a chipped ceramic mug with a blue glaze and a handle on the left." Vague prompts get you vague blobs, and unlike image-to-3D there's no reference to keep the model honest.
- tier -
Gen-2.5-Extreme-LowthroughHigh, defaultLow. Same idea as the image version: Low is the cheap draft, High is when the concept earns it. - mesh_faces - 1,000 to 20,000, default 20,000. The fast-tier cap, and the thing that keeps jobs quick and cheap.
seed_, Material_Type (default Shaded), geometry_file_format (glb/usdz), texture_mode, and TAPose fill out the required set. Optional bbox and height_cm still apply - a "mug" at default dimensions is a giant mug, so set the size if it matters.
What comes out
One output, model_path - a string path to the downloaded GLB, ready for the core Preview3D node. That preview is non-negotiable here; text-to-3D results are the most surprising of any mode in this pack, and you don't want to find out what "a fantasy dagger" turned into after you've committed to it.
Honest expectations
Text-to-3D is inherently less controllable than image-to-3D. The model understands descriptions of shape and material, but it won't match an exact style, an existing character, or a specific prop from your IP - that's what the image nodes are for. Where this node shines is brainstorming: describe ten items, skim ten cheap previews, and only then spend real credits on the one that survived contact with reality. If your workflow has a text-prompting stage (a story outline, a game design doc), this node slots in as the "asset from a sentence" step.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/DeemosTech/ComfyUI-Rodin.git
pip install -r requirements.txt
or install "ComfyUI-Rodin" from ComfyUI Manager and restart. Light deps (aiohttp plus stdlib asyncio), no models to download, no local GPU work.
Troubleshooting
Same pack family as always: MISS_API_KEY means the key node isn't connected or the box is empty; an invalid or creditless key errors when the API rejects the job; a 30-minute polling timeout on the console means checking the Rodin dashboard - the job may have completed server-side without the download finishing. One text-specific gotcha: if the prompt box is empty, the job fails immediately with MISS_IMAGES_OR_PROMPT, so double-check you actually typed something before blaming Rodin.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | APIKEY | — | |
| prompt | STRING | — | |
| tier | COMBO | Gen-2.5-Low | 4 options: Gen-2.5-Extreme-Low, Gen-2.5-Low, Gen-2.5-Medium, Gen-2.5-High |
| seed_ | INT | 00–65535 | — |
| Material_Type | COMBO | Shaded | 4 options: PBR, Shaded, All, None |
| geometry_file_format | COMBO | glb | 2 options: glb, usdz |
| mesh_faces | INT | 200001000–20000 | — |
| texture_mode | COMBO | Default | 5 options: extreme-low, low, medium, high, Default |
| TAPose | BOOLEAN | false | — |
| bboxopt | STRING | — | |
| height_cmopt | INT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_path | STRING | — |