Skip to content

Using assets

Attaching assets to a Pod, injecting into a running Pod, feeding tasks, and getting data back out — download, export, and publish.

In the Pod create form, Input assets lets you pick assets and choose a role for each — dataset, lora, model, or one of the finer-grained roles a template may declare: checkpoint, diffusion model, VAE, text encoder, ControlNet, embedding, and upscale model. The role decides where the files land inside the container, using the template’s declared semantic paths.

  • The files are fetched when the Pod starts, before your container does, so your training script sees them on the first line it runs.
  • There’s nothing to pin. Attaching (or later editing) a Pod’s input assets only records which assets to use — the files themselves are resolved at that start, not when you submit the form. Whatever the asset holds at that moment is what the Pod gets; adding files to the asset afterward doesn’t change what’s already fetched, only what the next start would pick up.
  • Storage is expanded ahead of the fetch, so a large dataset doesn’t fill the disk on arrival.
  • If a required input can’t be fetched, the Pod fails to start rather than running without its inputs.
  • Attached assets are marked in use; the Pod releases them when it is deleted.

Only roles the template actually declares are offered. If a template offers no roles, add them under Semantic Paths in the template form.

Files not in Assets yet? Upload them without leaving the form: drop files or a folder on Input assets, or use Upload new in the Add assets dialog. The new asset is attached straight away — see Upload and attach in one step.

You don’t have to recreate a Pod to give it more data. The Pod’s Assets tab has Inject assets: pick assets and roles the same way, and the files are placed into the running container.

  • No restart, no interruption to what’s already running.
  • Each injection shows its own state, and a failed one can be retried.
  • Injected assets count as in use exactly like ones attached at creation.
  • Files can be aimed at a subfolder of the destination path — type it on the staging row and they land there instead of the folder root.
  • Upload as you inject. Drop files or a folder on the staging table, or use Upload new in the picker, and the new asset is added to the table. Inject waits until it has finished uploading — see Upload and attach in one step.
  • Linked assets can be injected too — Hugging Face and CivitAI imports and direct-link registrations are downloaded from their source straight into the Pod (see below). Bucket references still can’t be injected: nothing was copied, so there is nothing to place — fetch a subset into a normal asset first.

How linked injections run. Linked downloads run one at a time per Pod. Each shows its place in the queue, then live progress — size, percentage, and, once the transfer speed settles, time remaining — and an in-progress download can be canceled. If the source rejects the download (an expired link, a missing or revoked token), the entry shows the reason and a retry action that matches the fix.

Attached assets can also be removed from a running Pod without a restart: Remove deletes that asset’s files from the Pod and frees its place, and Swap replaces the asset with another one in the same location. A removal shows its own state while it runs; one that stalls returns to its attached state automatically in about 15–20 minutes, so the Pod never gets stuck (thresholds are tuned and may change).

A stopped Pod accepts new assets in advance: they appear as Scheduled and are downloaded and placed automatically the next time the Pod starts — no need to start the Pod first just to add files. Staging applies to assets held in storage; linked assets are fetched by the running Pod itself, so inject those once the Pod is up.

Wherever you attach assets, you can add files that aren’t in Assets yet without leaving the form. This works on a Pod’s Input assets in the create and edit forms (and in template details), on Inject assets for a running Pod, and on a task’s Input assets card.

  • Drop on the section. Drag files or folders from your computer onto the Input assets section (the staging table, when injecting).
  • Or use the Upload new strip. Open Add assets (or Browse all assets). At the top of the My assets tab, and in its empty state, Upload new takes files or a folder dropped on it, or Choose files and Choose folder. If you opened the dialog from a specific slot or path, the strip says where the upload will go.

What you drop decides how many assets you get:

You dropYou get
A folderOne asset named after the folder, with its structure kept
One fileOne asset named after the file
Several loose files togetherOne asset holding all of them, so a handful of files doesn’t use up a task’s input slots
A folder and loose filesOne asset per folder, plus one for the loose files

A name that is already taken gets -2, -3, and so on, and the type (model, dataset, …) is picked from the files, like a web upload. Empty files are skipped, and the console tells you how many.

  • The row appears right away. The asset is attached as soon as the upload starts and shows Uploading 42%. The × on the row cancels the upload and removes the row. A failed upload shows Upload failed with Retry. A row that says Upload not finished isn’t being uploaded from this tab any more — resume it from the Assets page, or remove it and upload it again.
  • Deploy, submit and inject wait for the upload. Saving or deploying a Pod, Submit task and Inject won’t go ahead while an attached asset is still uploading or has failed; they name the asset and how far it got. Nothing continues by itself when the upload ends — click the button again. Closing the Inject assets dialog while something is uploading asks you to confirm: the upload keeps going into Assets, but it isn’t injected into the Pod.
  • A drop that can’t fit is refused whole. On a task, files that would pass the task’s limits — 20 inputs, counting its project, and about 500 files in total — are refused before anything uploads, so you don’t end up with half the assets attached.
  • Same rules as web upload. It needs the same permission — workspace admin or billing — so viewers don’t see the upload controls. The limits are the same. Files go from your browser straight to managed storage, are billed as storage like any other asset, and stay in Assets after the Pod or task is gone. Keep the tab open: closing it stops the upload, and the Assets page offers to resume it. While an unpaid storage balance locks uploads, the strip says so.

Official model sets can ship a workflow, not just weights. Attach a complete set to a ComfyUI Pod and the graph is waiting for you in ComfyUI’s Workflows sidebar — open it and hit Run.

Nearly every set ships one, so the card stays quiet about it. The exceptions are called out: a set with no workflow says No workflow in this set before you attach, so you know you will be building the graph yourself.

The whole set has to be attached. A workflow is delivered only once every model in its set is connected. A graph missing one of its models opens as a wall of red nodes, so a partial attach delivers nothing rather than something broken. Attaching the set from its card connects everything at once; picking pieces individually from Browse all may not.

Some workflows are pre-wired to a speed LoRA. Where the model has an official one — Qwen-Image, Qwen-Image Edit 2509, WAN 2.2 text-to-video and image-to-video — the LoRA is part of the set and the graph is already configured for it, generating in 4 to 8 sampling steps instead of the usual twenty or more.

Sets can be completed while the Pod runs. Official set members are linked assets, so they can be injected into a running Pod. Inject the last missing member and the bundled workflow arrives on its own within a few minutes — no restart needed. Members added from the Pod’s asset settings instead are fetched when the Pod next starts, and the workflow arrives with them.

A wiped folder repairs itself. If the whole workflows folder is lost — most often because the Pod moved to another machine — the shipped workflows come back on their own within about a minute, with no restart and nothing to click. Deleting a single workflow is different: that is a choice, and it is respected (see below).

Once a workflow is on the Pod, Meshive treats it as your file.

What you doWhat happens on the next restart
Leave it aloneStays as shipped
Edit and save itYour version is kept — never overwritten
Delete itStays deleted — it is not put back

Anything you save into the workflows folder — an edited copy of a shipped graph, or one you built from scratch — is also harvested as an asset of type config, so it survives the Pod. Workflows still exactly as shipped are skipped, so your asset list stays yours.

The task submit form has the same picker. Tasks have no semantic path declarations, so inputs land under a predictable path instead:

  • Each asset is placed at /inputs/<asset name> (you can override the directory name per asset).
  • Up to 20 assets per task; each run fetches the files as they are when it starts. A project runs from an input too, so it counts as one of the 20.
  • A task fetches about 500 files in total at run time, across its project and the input assets you attach. Linked sources and bucket references aren’t counted.
  • Inputs are fetched before your script starts, and the download time is billed at the task’s normal rate. If any input is missing, the run aborts instead of starting without it.
  • Files that aren’t in Assets yet can be uploaded from the form: drop them on the Input assets card, or use Upload new in the Add assets dialog. Submit task waits until the upload has finished — see Upload and attach in one step.
  • Works identically whether the task runs on internal capacity or burst capacity.

The download button gives you every file in the asset, and picks the delivery method by size:

SituationWhat happens
A single fileA direct signed link
Several files, under 2 GiB totalYour browser streams them into one zip
Larger than 2 GiB, or the zip can’t be builtA list of per-file links

To download several at once, select them and choose Download in the selection bar. This works with assets in the list, with files in a file view such as Outputs or Models, and with files in a collection. The selection is delivered the same way, by its total size. Files that can’t be downloaded right now, such as linked sources, are left out, and the console tells you how many.

  • Links are short-lived and re-signed on demand — a tab left open overnight may need a refresh.
  • Download stays available to every workspace member, including viewers.
  • Downloading is always allowed when your balance runs out — see Billing. It is blocked only while an asset is frozen for abuse review.

An asset in managed storage can be copied into a bucket you have connected under Settings → Integrations. The transfer runs on the platform, so you don’t have to keep a tab open, and large assets are streamed rather than buffered.

  • The destination bucket and prefix are yours; we write only where you point us.
  • Export remains available when your balance is depleted, so your data is never held hostage.
  • Once the objects are in your bucket, their lifecycle is entirely yours — we don’t manage or delete them.

An asset in managed storage can be uploaded to a Hugging Face repository using a token you connected under Settings → Integrations.

  • The upload happens under your account with your token — the repository, its visibility, and its contents are yours. Meshive relays the bytes and is not the publisher.
  • You are responsible for the licence. Re-publishing weights that came from a gated or restricted source may violate the original licence or the source’s terms; Meshive does not check this for you.
  • Assets that live in your own bucket or are prefix references cannot be published this way — upload from your own storage directly.
  • Publishing is blocked while your balance is depleted. Downloading and exporting stay open; publishing to a third party does not.