ComfyUI-GenAsset
ComfyUI nodes for saving and loading GenAsset generation memory.
GenAsset treats generated images as cached previews and metadata as the source of truth. These nodes let ComfyUI save a generation with its prompt, seed, model, workflow JSON, image quality metrics, and version metadata, then load that version back later for continued editing.
Nodes
Nodes appear under the ComfyUI category:
genasset
Save To GenAsset
Input:
IMAGEbase_urlworkspace_tokenasset_name
Output:
- image passthrough
asset_idversion_idstatus_json
What it captures automatically when the graph exposes it:
- prompt and negative prompt
- checkpoint/model name
- seed, steps, cfg, sampler, scheduler, denoise
- image size and batch size
- upstream node ids
- ComfyUI API prompt and workflow JSON, with token-like fields redacted
- basic tags derived from the prompt/model
- image quality metrics
It refuses to save blank or near-black frames. In that case it returns a status JSON explaining the rejection instead of creating a bad version.
Test GenAsset Connection
Input:
base_urlworkspace_token
Output:
- workspace name
- status JSON
Use this tiny node first when helping a user. It checks that ComfyUI can reach GenAsset and that the token is valid before they run a full image workflow.
Load From GenAsset
Input:
base_urlworkspace_tokenversion_id
Output:
- preview image
- workflow JSON
- metadata JSON
- status JSON
Use this when you copied an exact version id from GenAsset.
Load Asset From GenAsset
Input:
base_urlworkspace_tokenasset_query
Output:
- current-version preview image
asset_idversion_id- workflow JSON
- metadata JSON
- status JSON
Use this as a lightweight asset browser. asset_query can be an exact asset id, an exact asset name, or search text.
Install
From your ComfyUI folder:
cd custom_nodes
git clone https://github.com/steliosot/ComfyUI-GenAsset.git
Restart ComfyUI. The nodes should appear under genasset.
No separate Python dependencies are required beyond the normal ComfyUI runtime.
Connect To GenAsset
In GenAsset:
- Open
Settings. - Select
Tokens. - Create a workspace token.
- Paste it into
Test GenAsset Connection. - If the test succeeds, paste the same token into
Save To GenAssetorLoad Asset From GenAsset.
For local testing:
base_url = http://127.0.0.1:3010
workspace_token = ga_...
asset_name = your reusable asset name
For deployed GenAsset, replace base_url with your hosted app URL.
Example Workflows
Example workflows are in workflows/:
genasset_sdxl_save_generation.json- Generate an image and save it to GenAsset.
genasset_load_version.json- Load an exact GenAsset version and preview it.
genasset_img2img_load_edit_save_woman_cafe.json- Load an asset, run img2img, and save the edit as the next version.
Typical round trip:
Generate in ComfyUI
-> Save To GenAsset
-> Browse asset/version in GenAsset
-> Load Asset From GenAsset
-> VAE Encode
-> KSampler
-> VAE Decode
-> Save To GenAsset
Security Notes
- Workspace tokens are sent only to the configured GenAsset API as bearer tokens.
- Saved workflow JSON redacts fields named like
workspace_token,token,authorization,api_key,secret, andservice_role_key. - Do not commit workflow files after pasting real workspace tokens into them.
- Example workflows in this repo use placeholders only.
Smoke Test
From this repo:
python scripts/smoke_import.py
Expected result:
Loaded GenAsset nodes: GenAssetLoadAsset, GenAssetLoadVersion, GenAssetSaveGeneration
License
MIT.