Files

280 lines
8.1 KiB
Markdown
Raw Permalink Normal View History

0.39.0 (#274) - **Help Agent** — A new agent that answers questions about Talemate itself — settings, agents, clients, the world editor — grounded in the bundled documentation, and able to change agent and application settings on request. - **Timeline Rollback** — Scrub a slider across a scene's automatic version history, preview the message history at any revision, then roll the scene back in place or fork the revision into a new save. - **Pi Bridge Client** — A new client type that drives generations through the pi coding agent's headless RPC mode, making any model pi can reach usable in Talemate. - **Application Settings** — Settings move out of their modal into an always-available Settings tab, with a single topic-grouped sidebar, a settings search, all API keys on one page, and unsaved-change tracking. - **Scene Library** — The home screen is rebuilt as a full-page landing view with a file-tree scene library, cover thumbnails and per-save metadata, scene and save deletion, and a drag-and-drop import dropzone. - **Fast Character Creation** — Generate a character in a single request instead of one prompt per aspect, with a Consolidate multi-select, a token budget, and a Fill in misses pass. Off by default. - **Scene Backdrop** — Set any scene illustration as a backdrop filling the scene view behind the messages, saved with the scene, with configurable text legibility and an Immersive quick-toggle. - **Scene Visual Manager** — World Editor → Scene gains a Visuals tab to browse, upload, generate and delete the scene's backgrounds and illustrations, and set the cover image and backdrop. - **Visual Prompt Finalization** — Post-processing actions — match and replace, or a free-form AI instruction — rewrite image prompts right before they reach the image backend, with per-scene and per-character overrides and reusable template sets. - fixes #271 - fixes #275 Plus 25 improvements and 39 bug fixes — see [CHANGELOG.md](https://github.com/vegu-ai/talemate/blob/prep-0.39.0/CHANGELOG.md#0390) for the full list.
2026-08-29 13:21:22 +03:00
# Asset Nodes
Manage scene assets (images and other files): add, fetch, list, remove and update them, and set cover and avatar images.
<!-- glossary:generated - everything below this line is generated by `python -m talemate.game.engine.nodes.tools glossary --write` - do not edit -->
_9 nodes._
| Node | Registry path |
| --- | --- |
| [Add Asset](#add-asset) | `assets/AddAsset` |
| [Asset Exists](#asset-exists) | `assets/AssetExists` |
| [Get Asset](#get-asset) | `assets/GetAsset` |
| [Get Assets](#get-assets) | `assets/GetAssets` |
| [List Assets](#list-assets) | `assets/ListAssets` |
| [Remove Asset](#remove-asset) | `assets/RemoveAsset` |
| [Set Avatar Image](#set-avatar-image) | `assets/SetAvatarImage` |
| [Set Cover Image](#set-cover-image) | `assets/SetCoverImage` |
| [Update Message Assets](#update-message-assets) | `assets/UpdateMessageAsset` |
## Add Asset
`assets/AddAsset`
Add an asset to the scene from image data (base64 data URL).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state (required) |
| `image_data` | `str` | (optional) base64 data URL (e.g., "data:image/png;base64,...") |
| `meta` | `asset_meta` | asset metadata (optional) |
| `asset_attachment_context` | `asset_attachment_context` | controls automatic asset attachment behavior (optional) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state |
| `asset` | `asset` | the created asset object |
| `asset_id` | `str` | the asset ID |
| `image_data` | `str` | the image data (passed through) |
| `meta` | `asset_meta` | the asset metadata (passed through) |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `image_data` | `str` | `""` | Base64 data URL (e.g., 'data:image/png;base64,...') |
## Asset Exists
`assets/AssetExists`
Check if an asset exists by ID.
Routes to 'yes' output if the asset exists, 'no' output if it doesn't.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `asset_id` | `str` | (optional) the asset ID to check |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `yes` | `any` | activated if asset exists (contains asset_id) |
| `no` | `any` | activated if asset does not exist (contains asset_id) |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `asset_id` | `str` | `""` | The asset ID to check |
| `return_bool` | `bool` | `False` | If True, return True instead of asset_id |
| `allow_partial` | `bool` | `False` | If True, match assets whose ID starts with the given asset_id |
## Get Asset
`assets/GetAsset`
Get an asset by ID.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `asset_id` | `str` | (optional) the asset ID |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `asset` | `asset` | the asset object |
| `asset_id` | `str` | the asset ID (passed through) |
| `file_type` | `str` | the file type |
| `media_type` | `str` | the media type |
| `meta` | `asset_meta` | the asset metadata |
| `asset_bytes` | `any` | the asset bytes (only set if connected) |
| `base64_data` | `str` | the asset bytes as base64 (only set if connected) |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `asset_id` | `str` | `""` | The asset ID |
## Get Assets
`assets/GetAssets`
Get multiple assets by their IDs.
Asset IDs that don't exist are skipped rather than raising an error.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `asset_ids` | `list` | (optional) list of asset IDs |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `assets` | `list` | list of asset objects |
| `asset_ids` | `list` | list of asset IDs that were found (missing assets are skipped) |
| `asset_count` | `int` | number of assets retrieved |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `asset_ids` | `list` | `[]` | List of asset IDs |
## List Assets
`assets/ListAssets`
List all asset IDs in the scene.
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `asset_ids` | `list` | list of asset IDs |
| `asset_count` | `int` | number of assets |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `reference_only` | `bool` | `False` | If True, only return reference assets |
## Remove Asset
`assets/RemoveAsset`
Remove an asset from the scene.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state (required) |
| `asset_id` | `str` | (optional) the asset ID to remove |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state |
| `asset_id` | `str` | the asset ID (passed through) |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `asset_id` | `str` | `""` | The asset ID to remove |
## Set Avatar Image
`assets/SetAvatarImage`
Set the avatar image for a character (default or current).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state (required) |
| `asset_id` | `str` | the asset ID to set as avatar |
| `character` | `character` | the character to set the avatar for |
| `avatar_type` | `str` | (optional) "default" or "current" (defaults to "default") |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state |
| `asset_id` | `str` | the asset ID (passed through) |
| `character` | `character` | the character (passed through) |
| `avatar_type` | `str` | the avatar type (passed through) |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `avatar_type` | `str` | `"default"` | Type of avatar to set: 'default' or 'current'. Choices: `default`, `current`. |
## Set Cover Image
`assets/SetCoverImage`
Set the cover image for the scene and/or a character from an existing scene asset.
If `set_on_scene` is true the asset becomes the scene cover image; if a
character is provided the asset becomes that character's cover image. The
override flags control whether an existing cover image is replaced.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | The graph state |
| `asset_id` | `str` | The id of the asset to use as the cover image |
| `set_on_scene` | `bool` | Whether to set the cover image on the scene (optional) |
| `override_scene` | `bool` | Whether to override an existing scene cover image (optional) |
| `override_character` | `bool` | Whether to override an existing character cover image (optional) |
| `character` | `character` | The character to set the cover image for (optional) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | The state input, passed through |
| `asset_id` | `str` | The asset id, passed through |
| `set_on_scene` | `bool` | The set_on_scene input, passed through |
| `override_scene` | `bool` | The override_scene input, passed through |
| `override_character` | `bool` | The override_character input, passed through |
| `character` | `character` | The character input, passed through |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `asset_id` | `str` | `""` | asset_id |
| `set_on_scene` | `bool` | `False` | Whether to set the cover image on the scene |
| `override_scene` | `bool` | `False` | Whether to override the scene cover image |
| `override_character` | `bool` | `False` | Whether to override the character cover image |
## Update Message Assets
`assets/UpdateMessageAsset`
Update the asset_id of messages in the scene history
Messages that aren't found are skipped rather than raising an error.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state (required) |
| `message_ids` | `list` | (optional) List of message IDs to update |
| `asset_id` | `str` | The new asset ID |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | graph state |
| `messages` | `list` | List of updated message objects |
| `message_ids` | `list` | List of message IDs (passthrough) |
| `asset_id` | `str` | The asset ID (passthrough) |