Nodes/ComfyUI_MieNodes/Save Scene Asset ๐Ÿ‘
ComfyUI Node

Save Scene Asset ๐Ÿ‘

Pinning Down the Room Before It Drifts

By MieMieeeeeยทCreated 2 years agoยทUpdated 2 days agoยท 269
Save Scene Asset ๐Ÿ‘
  • image
  • name
  • description
  • image
  • status
  • asset
โ—„library_dirโ–บ
โ—„name๏ผˆไธ‹ๆ‹‰้€‰ๆ‹ฉ่ต„ไบง๏ผ‰โ–บ
โ—„descriptionโ–บ
โ—„new_nameโ–บ
โ—„image_uploadโ–บ

Save Scene Asset ๐Ÿ‘ is a hidden legacy node - one of the per-kind asset nodes the pack retired when it merged everything into Save Asset ๐Ÿ‘ with a kind dropdown. It still loads old workflows and still writes the same folders; it just doesn't appear in the node menu anymore. New graphs want Save Asset set to scene.

It's still the clearest illustration of what a scene asset is for, so it's worth a read either way.

A scene is a picture plus an argument

Characters drift because faces are the hardest thing to hold constant, but rooms drift for a dumber reason: nobody writes down the room. You prompt "cozy living room" in shot one and "cozy living room" in shot six, and you get two different apartments because the words carry almost no spatial information.

Saving a scene fixes that by attaching authored text and a picture to a name. The description field wants 60โ€“100 words of English about space and layout: the sofa against the left wall, the floor lamp in the corner, warm light from the kitchen doorway, the low table cluttered with magazines. Not mood words - facts an image reference must preserve. The image is the anchor that shows those facts to the video model while it generates.

On disk it's scenes/<name>/scene.json and scenes/<name>/images/01.png. One image, one description, no audio. That's the whole model.

Inputs and outputs

name is a mode toggle, not two widgets: ๐Ÿ“‹ ๅทฒๆœ‰่ต„ไบง Existing gives you a dropdown of existing scenes and picking one means overwrite, while โœ๏ธ ๆ–ฐๅปบ New reveals new_name and typing there creates a new scene. Execution reports which in status - created or overwritten.

description is the 60โ€“100 word English text. There is no voice and no audio socket on this node - the merge explicitly popped those so the widget order matched the pre-merge scene node. image (IMAGE) is the picture, and image_upload is the file picker over ComfyUI's input directory; a wired socket beats a picked file, and if both are empty on an overwrite the existing picture on disk is kept, so you can revise just the description.

Outputs: name, description, image, status, asset. The image is read back from the PNG on disk, so it's the 8-bit quantised version - exactly what a Load will hand you later. asset is the MIE_ASSET bundle for the generator's scene_N sockets or Asset โ†’ Assets ๐Ÿ‘.

Saves only happen on execution. It's an output node; the on-node save button queues the graph for you, and afterwards every asset node on the canvas refreshes its list.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/MieMieeeee/ComfyUI-MieNodes
pip install -r ComfyUI-MieNodes/requirements.txt

Or ComfyUI Manager, search ComfyUI_MieNodes. No models to download. library_dir is ignored at execution - the library root is fixed per machine (the plugin's asset_library/, or $MIE_ASSET_LIBRARY), reachable via the ๐Ÿ“‚ button.

Things that go wrong

You can't find the node: expected, it's hidden. Use Save Asset ๐Ÿ‘ with kind = scene.

Flipping to โœ๏ธ ๆ–ฐๅปบ and saving without typing a name gives a bilingual error telling you to type one or switch back to Existing - the concrete message begins (New-asset mode is on but new_name is emptyโ€ฆ).

An image batch wired into image writes multiple PNGs, and the matching Load node then refuses the asset (does not fit the simple model (one image)). One picture per scene, always.

And the one that isn't an error at all: a scene that saves fine and still doesn't hold across clips usually means the description is doing atmosphere instead of layout. Say where things are. The model can follow "the window is behind the desk"; it can't follow "a scholarly ambience."

Categoryhidden

Inputs (6)

NameTypeDefaultDescription
library_dirSTRINGโ€”
nameCOMBO๏ผˆไธ‹ๆ‹‰้€‰ๆ‹ฉ่ต„ไบง๏ผ‰่ต„ไบงๅ๏ผš๐Ÿ“‹ ๅทฒๆœ‰่ต„ไบง Existing ๆจกๅผไธ‹ๆ‹‰้€‰ๅๅญ— = ่ฆ†็›–่ฏฅ่ต„ไบง๏ผ›โœ๏ธ ๆ–ฐๅปบ New ๆจกๅผ่พ“ๅ…ฅๅๅญ— = ๆ–ฐๅปบ๏ผˆไธค่€…ไบ’ๆ–ฅไบŒ้€‰ไธ€๏ผ‰ใ€‚ Asset name: ๐Ÿ“‹ Existing mode picks an asset to overwrite; โœ๏ธ New mode types a name to create โ€” the two are mutually exclusive.
descriptionSTRING่ต„ไบง็š„่‹ฑๆ–‡ๆ่ฟฐ๏ผˆ60โ€“100 ่ฏ๏ผ‰ใ€‚่ง’่‰ฒ = ๅค–่ง‚ไบ‹ๅฎž๏ผˆๅนด้พ„/ๅ‘ๅž‹/่„ธๅž‹/็€่ฃ…๏ผ‰๏ผŒๅœบๆ™ฏ = ็ฉบ้—ด/้™ˆ่ฎพ/ๅ…‰็บฟ/ๆฐ›ๅ›ดใ€‚ English description (60-100 words). Character = looks only; scene = space, furniture, lighting, atmosphere.
new_nameSTRINGโ€”
imageoptIMAGEโ€”
image_uploadoptSTRINGโ€”

Outputs (5)

NameTypeDescription
nameSTRINGโ€”
descriptionSTRINGโ€”
imageIMAGEโ€”
statusSTRINGโ€”
assetMIE_ASSETโ€”