Nodes/ComfyUI-DonutNodes/Donut Save (No Workflow)
ComfyUI Node

Donut Save (No Workflow)

Bake a full checkpoint with no workflow embedded

By DonutsDelivery·Created about a year ago·Updated about 10 hours ago· 25
Donut Save (No Workflow)
  • model
  • clip
  • vae
    filename_prefixComfyUI
    dtypeoriginal

    When you finish a merge, a baked-in LoRA, or a tuned-up model in ComfyUI, the stock save nodes want to embed your entire workflow in the file's metadata - prompt, graph, everything. Sometimes that's the culture ("workflow included" is a community norm), and sometimes you want a clean export: a model you can share, upload, or hand to another tool without your full graph riding along. DonutSave is the pack's answer - a checkpoint save that strips the workflow metadata and adds an optional dtype conversion (fp8/fp16/bf16/fp32) so you can export the exact format you want. It's the current version of the family that started with the deprecated DonutModelSave, and it adds the two inputs that node lacked: CLIP and VAE.

    How it works

    The state-dict path mirrors ComfyUI's stock CheckpointSave / ModelSave exactly - it goes through ModelPatcher.state_dict_for_saving() and ComfyUI's lazy-casting machinery, which is what bakes LoRA and merge patches into the saved file. The difference is the metadata: the pack rebuilds the modelspec block (architecture tags and all) but deliberately leaves out prompt and extra_pnginfo, so the saved file is a bare checkpoint. Then, if you asked for a dtype other than original, it casts the state dict before writing.

    The inputs

    • model - the patched/merged MODEL to save.
    • filename_prefix (default ComfyUI) - output path and name base.
    • dtype - original, or fp8_e4m3fn, fp8_e5m2, fp16, bf16, fp32. fp8 variants are the size-savers; fp16/bf16 are the mainstream share formats.
    • clip (optional) - include the CLIP weights in the checkpoint.
    • vae (optional) - include the VAE. With both wired, you get a complete, self-contained checkpoint; without them, a model-only save.

    No outputs - it's a terminal node; the file appears in your output folder (under diffusion_models per the default prefix).

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/DonutsDelivery/ComfyUI-DonutNodes.git donutnodes
    cd donutnodes
    python -m pip install -r requirements.txt
    

    or ComfyUI Manager → "DonutNodes," restart.

    Where people get burned

    The metadata trade-off is the thing to internalize. No-workflow means your saved file can't be dragged back into ComfyUI to reconstruct the graph - which is a feature when sharing, but a trap if you were hoping to use this as a backup. Keep your workflow JSON separately. Second, original means "whatever dtype the model is in memory," which after ComfyUI's lazy casting is not always what you loaded - if exact dtype matters (a target runtime that only reads fp16), set it explicitly. And before you share the file, check the license on the models that went into it; no-workflow saves don't change what you're allowed to redistribute, and this is one of the few places a packaging decision touches the license question directly.

    Categoryadvanced/model_merging

    Inputs (5)

    NameTypeDefaultDescription
    modelMODEL
    filename_prefixSTRINGComfyUI
    dtypeCOMBOoriginalOutput floating-point dtype. 'original' preserves the loaded dtype, including fp8 if the model was loaded as fp8.
    clipoptCLIP
    vaeoptVAE

    Outputs (0)

    No outputs