Documentation / Node reference / geo nodes
geo/GenerativeModel
Generates a model from a text prompt or from photos, through a hosted generative API.
Files
Press generate to send the prompt (and the images, in IMAGE and IMAGES mode) to the provider. A generation costs the provider's own credits and takes minutes: nothing is ever sent by a cook, only by the button. While the provider works the node shows an amber placeholder box and the button carries a progress bar.
The node is a subnet: the result arrives as a geo/SceneGLTF child, whose Build turns the downloaded GLB into an editable sub-graph with its materials and textures. The GLB is kept under the assets root at generative/<fingerprint>.glb, and a second press with nothing changed re-uses it instead of spending credits again.
On a native build the provider is called directly and its API key is read from ~/.config/polygon/keys/<provider> (one line, mode 0600); it is never a param and never saved in the scene. The generation costs the credits of whoever owns that key, which is you.
On polygonjs.com the browser never talks to a provider at all: the request goes to Polygon's own server, which holds the keys, meters the credits and hands back a URL. That needs a Polygon Web subscription, and the button says so if the account does not have one. Two things are narrower there than on native: a reference image cannot be sent yet (the server takes the image bytes and a browser build has no encoder for them, so only TEXT mode generates), and the progress bar is indeterminate, because the provider reports a state and never a number.
Parameters
| Name | Type | What it does |
|---|---|---|
| provider | UInt8 RODIN | Which hosted API generates the model. Its key is read from ~/.config/polygon/keys/<provider>. |
| mode | UInt8 TEXT · IMAGE · IMAGES | What the provider is given: a text prompt alone, one image, or up to four views of the same subject. |
| prompt | String | What to generate. Required in TEXT mode; optional beside images, where the provider writes its own when this is empty. |
| image1 | NodePath | The tex node holding the first input image. A tex/Image sends its file as it is; any other tex node is encoded to PNG first. |
| image2 | NodePath | A second view of the same subject, in IMAGES mode. |
| image3 | NodePath | A third view of the same subject, in IMAGES mode. |
| image4 | NodePath | A fourth view of the same subject, in IMAGES mode. |
| quality | UInt8 MINIMUM · LOW · MEDIUM · HIGH · EXTREME_HIGH | How much the provider should spend on the result. Higher rungs cost more credits and take longer. |
| textured | Bool | Ask for a textured result. Rodin ignores it: no setting of its produces an untextured model. |
| targetPolygonCount | UInt32 | How many polygons to aim for, up to 300000. 0 leaves it to the provider, and Rodin has no recorded field for it. |
| seed | SInt32 | The provider's random seed, 0 to 65535. Below zero leaves it unseeded, so two presses give two different models. |
| regenerateMode | UInt8 REPLACE · KEEP_UNTIL_READY | What a second press does to the model already there: replace it with the placeholder at once, or keep it up until the new one lands. |
| generate | Button | Send the request. Costs credits (the provider's on native, the account's Polygon Web credits on polygonjs.com), takes minutes, and is disabled while a generation is running. |
| placeholderSize | Float | The size of the box shown in place of the model while the provider works. |
| _resultFingerprint | String | Bookkeeping, hidden: the fingerprint of the request whose result this node is holding, which is what makes a second identical press free. |
See also
- geo/SceneGLTF
- geo/FileGLTF
This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.