Nodes/GenAsset/Fork Asset From Version In GenAsset
ComfyUI Node

Fork Asset From Version In GenAsset

Fork Asset From Version In GenAsset — a new asset, born from an old version

By steliosot·Created 4 months ago·Updated 3 months ago· 1
Fork Asset From Version In GenAsset
    • image
    • asset_id
    • version_id
    • status_json
    base_urlhttps://genasset.xyz
    tokenComfyUI/user/genasset.json
    source_version_id
    new_asset_nameForked Asset
    prompt_suffixforked in comfyui
    negative_prompt_override
    tags_csvforked
    intentfork
    extra_metadata_json{ "fork": true }

    Branching keeps you inside one asset's history. Forking gets you a new asset whose first version is a copy of something you already made. Fork Asset From Version In GenAsset is the node for when a direction deserves to become its own thing instead of a footnote in an existing asset's lineage.

    Think of the difference this way: you've been iterating on a character portrait in one asset for weeks. Now you want to spin the whole thing into a different project - different prompt direction, different team, different asset name. A branch keeps it tied to the original asset; a fork gives it a fresh identity while preserving where it came from. For a team, forks are also how you hand an approved concept to a new owner without letting them touch the original's history.

    How it works

    You give it a source_version_id and a new_asset_name. The node fetches the source version, downloads its preview image, and - here's the neat part - rebuilds the recipe from the source: it takes the source's prompt (appending your prompt_suffix), its negative prompt (unless you override it with negative_prompt_override), its model name and seed, and its stored workflow_json. Then it uploads all of that as a brand-new generation with an empty asset_id, which creates a new asset whose first version is a faithful copy plus your suffix.

    It also stamps a fork block into the metadata recording from_version_id and from_asset_id, so even as a standalone asset, its ancestry is never lost. It's the same api/v1/generations endpoint the other save nodes use, just pre-fed with a source's data.

    Inputs and outputs that matter

    The two that drive everything:

    • source_version_id - which version to fork from. Required, and the whole source of the copy.
    • new_asset_name - the name of the new asset. Required, because a fork that doesn't become a named thing is just a clone.

    Everything else is optional flavor: prompt_suffix (defaults to forked in comfyui - change it or your forked assets will say that forever), negative_prompt_override, tags_csv (defaults to forked), intent (defaults to fork), and extra_metadata_json (defaults to {"fork": true}).

    Outputs: image (the forked preview, downloaded locally), asset_id, version_id, and status_json. Wire the new asset_id back into a save node later if you want to keep appending versions to the forked asset.

    Installation

    Same pack as all the others: ComfyUI Manager → search GenAsset → install, or

    cd ComfyUI/custom_nodes
    git clone https://github.com/steliosot/ComfyUI-GenAsset.git
    

    restart, and set a workspace token (widget, GENASSET_WORKSPACE_TOKEN, or ComfyUI/user/genasset.json). No extra dependencies.

    Common issues

    • "Source version missing signed_preview_url." - the version's preview URL didn't come back, so the node can't grab the image to fork. Server-side blip or a bad base URL; retry.
    • The forked prompt reads oddly - remember the node appends prompt_suffix to the source prompt with a comma. If you set a suffix that isn't comma-friendly, the result reads awkwardly. Keep it short, like "v2 direction" or leave it empty.
    • You expected the new asset to have the same versions - nope. A fork is one version (the copy). The new asset starts with a single version; you build its history from there. That's the definition of a fork.

    The mental model that clicks for most people: fork when the idea graduates, branch when it's still an experiment on the same asset. This node is the graduation ceremony.

    Categorygenasset

    Inputs (9)

    NameTypeDefaultDescription
    base_urlSTRINGhttps://genasset.xyz
    tokenSTRINGComfyUI/user/genasset.json
    source_version_idSTRINGExisting version id to fork from.
    new_asset_nameSTRINGForked Asset
    prompt_suffixSTRINGforked in comfyui
    negative_prompt_overrideSTRING
    tags_csvSTRINGforked
    intentSTRINGfork
    extra_metadata_jsonSTRING{ "fork": true }

    Outputs (4)

    NameTypeDescription
    imageIMAGE
    asset_idSTRING
    version_idSTRING
    status_jsonSTRING