A ComfyUI workflow fails during loading, upscaling, or a custom-node pass even though the checkpoint file appears small.
Test the complete workflow on an Apple silicon Mac with Metal acceleration, record peak unified memory and stage-by-stage timing, then choose local hardware or a remote Mac from the pass rate—not from the size of one model file.
This guide is for:
- Individual creators who want ComfyUI on an M-series Mac.
- Design teams reusing complex workflows and custom nodes.
- People estimating unified memory needs or short-term remote compute demand.
Last updated September 4, 2026. Facts checked against ComfyUI installation, macOS, system requirement, settings, custom-node, and Registry documentation. Re-run the test after ComfyUI, PyTorch, macOS, or key node updates.
Start with the real memory question
The useful question is not “How large is the checkpoint?” It is “What stays in memory at the same time?”
A typical image workflow can involve:
- A base diffusion model or checkpoint.
- One or more text encoders.
- A VAE for decoding or encoding.
- Control models, adapters, LoRAs, or other conditioning assets.
- A second model for refinement or upscaling.
- Intermediate latent tensors created at the selected resolution and batch size.
- Custom-node dependencies and temporary data.
The checkpoint may load successfully and still fail later when the workflow reaches an upscaler or control branch. A workflow can also complete once and fail on the next run because the first run leaves cached assets, another application consumes memory, or a node handles cleanup poorly.
ComfyUI’s official system requirements should be treated as a software baseline, not as a promise that a particular graph will run. They do not replace a workflow acceptance test.
What unified memory changes
Apple silicon uses shared memory for the CPU and GPU. That avoids the separate VRAM-versus-system-RAM decision found on some other systems, but it does not make memory unlimited. The operating system, ComfyUI, model weights, node processes, caches, and image tensors compete for the same pool.
This creates three purchasing risks.
First, a model that fits during loading may not fit when a control model and an upscaler are active together. Second, reducing image dimensions may allow a workflow to start but change the output quality or composition enough to make the workaround unacceptable. Third, closing the application may be required after a failed run if a node does not release resources cleanly.
A practical ComfyUI Mac model configuration therefore records the workflow’s peak state. It does not assign a fixed model-size limit to a Mac based on one download.
Separate weights from working memory
Model files consume disk space. They are not the same as runtime memory.
Keep these categories separate in your estimate:
- Application and Python environment.
- Downloaded model files.
- Custom-node code and dependencies.
- Generated images, previews, and exported workflow files.
- Cache and temporary files.
- Free space reserved for updates and failed or interrupted downloads.
A workflow may use several model assets without loading every asset at once. Another workflow may keep multiple branches resident. Only the execution graph and runtime observation can tell you which case applies.
Measure the workflow in stages
Step one: freeze the test definition
Before choosing a Mac, save the exact workflow JSON and define the output that counts as a pass. Record the model filenames, node versions, sampler settings, image dimensions, batch setting, output format, and software versions.
Do not change several variables between runs. If resolution, sampling steps, precision, or node versions change together, you will not know what caused a memory or timing change.
ComfyUI’s first-generation guide is useful for confirming that the basic installation works. It is not a substitute for validating your production graph.
Step two: install the Apple silicon path
Use the official ComfyUI macOS installation documentation and confirm that the application is running natively on Apple silicon where applicable. Avoid assuming that a package installed without an error is using the expected execution path.
Record:
- ComfyUI version.
- macOS version.
- Python and PyTorch versions where exposed by the environment.
- Active device or acceleration setting.
- Custom-node versions.
- Model directory locations.
Metal is Apple’s graphics and compute framework. ComfyUI workflows on Mac may use the MPS path exposed through the software stack, but node-level support still matters. Apple’s Metal documentation explains the platform layer; it does not certify every third-party ComfyUI operation.
Step three: test the base graph
Run the smallest complete version of the target graph. Keep the same model family, text-encoding path, VAE path, sampler, resolution, and batch setting that your team expects to use.
Record three separate events:
- First load, including model loading and graph initialization.
- Subsequent generation after the assets are available.
- Upscaling, refinement, or post-processing after the base image is created.
Do not report one generation-time number without these conditions. First-load time is affected by storage and model loading. Later runs are affected by caching. Upscaling may create a different memory peak from the initial sample.
Step four: add branches one at a time
Add the control model, adapter, LoRA, refiner, or upscaler separately. After each addition, run the same prompt or input and check:
- Whether the node executes successfully.
- Whether the output remains visually valid.
- Whether the expected model is actually being used.
- Whether memory pressure rises during loading or execution.
- Whether the application remains responsive after completion.
This isolates the component that changes the result. It also exposes workflows that technically finish but silently skip a node, fall back to another device, or produce an invalid output.
Step five: repeat the workload
Run the target batch continuously rather than stopping after the first successful image. Watch for failed jobs, memory pressure, output corruption, session instability, and the need to restart ComfyUI.
The acceptance result should include:
- Completed jobs divided by submitted jobs.
- The stage where failures occur.
- Whether a restart restores normal operation.
- Whether the same workflow can resume after a disconnected session.
- Whether output files have the expected names, formats, and permissions.
These are operational metrics, not cosmetic extras. A Mac that produces one successful sample but needs manual cleanup after every few jobs is not an adequate production configuration.
Validate Metal and custom nodes separately
The phrase “supports Apple silicon” can mean different things. A node may install on macOS, import successfully, and still fail when it reaches a compiled extension or an operation designed around another acceleration path.
Use the custom-node overview to understand the role of third-party nodes, then inspect the node’s own repository and release notes for platform requirements. Treat these cases as high risk:
- CUDA-only code paths.
- Packages that require a platform-specific binary.
- Nodes with compiled extensions but no macOS or Apple silicon build.
- Operations that depend on unsupported operators in the active PyTorch or MPS path.
- Nodes that have not been updated for your ComfyUI version.
- Nodes that install dependencies globally and alter another workflow.
Follow ComfyUI’s custom-node installation guidance, but add a production control: pin the tested commit or release and keep a copy of the dependency list. An automatic update can make a previously validated graph fail without changing the visible workflow.
A successful install is only an installation result. A valid image from the intended graph is the compatibility result.
Use this acceptance checklist before buying memory
Copy this list into the project record. Every unchecked item is a reason to delay a hardware decision.
- [ ] Save the exact workflow JSON and a known-good input.
- [ ] Record the ComfyUI, macOS, Python, and PyTorch versions.
- [ ] List every model asset loaded by the graph.
- [ ] Record custom-node names and tested versions.
- [ ] Confirm the application uses the intended Apple silicon and Metal or MPS path.
- [ ] Run the base workflow without optional branches.
- [ ] Add control, adapter, refinement, and upscale branches separately.
- [ ] Record peak memory during loading, sampling, decoding, and upscaling.
- [ ] Record first-load time separately from later generation time.
- [ ] Keep resolution, batch setting, sampler, and model combination fixed during comparison.
- [ ] Repeat the target workload instead of accepting one successful image.
- [ ] Check the output directory, file ownership, and export format.
- [ ] Restart ComfyUI and confirm the workflow can be restored.
- [ ] Disconnect and reconnect the remote session if remote delivery is being considered.
- [ ] Back up the workflow, node list, versions, and key configuration before upgrades.
Organize models and storage before the graph grows
Do not mix application resources with the model library. Separate directories make upgrades, rollback, migration, and remote synchronization easier.
ComfyUI’s settings and model directory documentation should be the reference for configuring model locations. Use a structure that lets you identify:
- Which files are shared by several workflows.
- Which files are experimental.
- Which model versions are approved for production.
- Which outputs can be deleted or archived.
- Which custom-node dependencies belong to a specific project.
Before upgrading, back up the workflow files, custom-node inventory, pinned versions, prompts, input assets, and configuration changes. Backing up only the model files is not enough. The graph may depend on a node version or parameter that is no longer available after an update.
Storage planning also affects remote use. Uploading the same model library for every user wastes transfer time and creates inconsistent versions. A shared read-only model area with separate user output directories is easier to audit, provided the remote environment supports the required permissions.
Choose local or remote Mac by workload behavior
A local Mac is usually the cleaner choice when:
- The workflow is stable and used frequently.
- The model set changes rarely.
- You need direct access to local files, displays, or connected devices.
- One creator owns the environment.
- Your measured peak fits with operating headroom.
A remote Mac becomes more attractive when:
- Your model combinations change from project to project.
- Demand rises for a short campaign or delivery window.
- Local unified memory is consistently the limiting factor.
- A team needs a persistent environment rather than repeated local setup.
- You need to validate a workflow before purchasing hardware.
- A node or model must remain available while users work elsewhere.
Remote deployment introduces its own failure modes. Test file upload and download, session disconnects, job persistence, queue behavior, user directories, output permissions, and recovery after a browser or client closes. A graph that runs locally may still be unsuitable for a team if users overwrite each other’s outputs or lose a long-running task after a session break.
For a short validation project, compare the full transfer and operations process, not only the generation stage. If you need to compare a remote environment with your current setup, review the Mac mini rental options alongside the local acceptance results. For teams that need a specific regional access point during testing, the US East Mac mini rental page provides another deployment option to evaluate. The relevant question is whether the environment delivers repeatable completed jobs with acceptable handoff effort.
Keep a version timeline for every milestone
Use a simple change record:
- Baseline: approved ComfyUI version, macOS version, model set, node list, and workflow file.
- Workflow change: new model, branch, resolution, batch setting, or output stage.
- Software change: ComfyUI, PyTorch, macOS, or custom-node update.
- Acceptance run: peak memory, first load, later generation, upscale timing, failures, and recovery result.
- Decision: keep local, test remotely, roll back, or reject the change.
The ComfyUI Registry guidance can help with node discovery and version handling. It should be part of a controlled update process rather than a reason to update every dependency immediately.
This timeline gives a procurement team evidence for the next decision. It also prevents a common argument: “The workflow worked last month.” Without the exact versions and model combination, that statement cannot identify what changed.
FAQ: ComfyUI Mac model configuration
How large a model can ComfyUI load on a Mac?
There is no dependable cutoff based only on checkpoint size. ComfyUI may also load text encoders, a VAE, control models, adapters, upscalers, and intermediate tensors. Test the complete graph at its production resolution and batch setting. The result depends on unified memory pressure, precision, node behavior, caching, and whether several assets remain resident.
How much unified memory should a ComfyUI Mac have?
Measure the peak of the complete workflow first. Then leave room for macOS, other applications, caching, and variation between runs. A graph with optional control and upscale branches needs more headroom than a fixed base graph. If the workflow changes often, test a higher-memory remote environment before committing to a local purchase.
Which custom nodes are risky on Apple silicon?
Nodes using CUDA-only code, unsupported compiled extensions, missing Apple silicon packages, or operators unavailable through the active MPS path deserve extra testing. Check the node repository and release notes, pin the tested version, and run the real graph. Installation success proves only that files were installed; it does not prove that the node can generate the intended output.
Should a design team use local or remote ComfyUI?
Use local hardware for a stable, frequent, single-user workflow that passes the memory and recovery tests. Use a remote Mac for temporary peaks, changing model combinations, shared access, or pre-purchase validation. Confirm file transfer, persistent jobs, queue ownership, user permissions, and output delivery before moving production work to a remote environment.
Turn the acceptance result into a purchase decision
Do not choose a Mac because a particular model file appears to fit. Choose it after the complete workflow passes at the target resolution, batch setting, node versions, output requirements, and repeated workload.
If the workflow is fixed and you use it every week, buying a local Mac can be easier to manage. If the graph changes quickly, several users need access, or memory pressure appears only during short project peaks, rent first and validate the actual workflow before purchasing.
Your current setup may still be the wrong long-term option if it requires repeated model downloads, has no reliable job recovery, or leaves team members sharing unmanaged output folders. A local machine can also become a bottleneck when one creator occupies the environment for a long run. In those cases, renting a Mac from Kvmkit gives you a controlled place to test the workflow, keep a session available, and decide from completed-job evidence rather than assumptions.
List your full workflow, model combination, node versions, target resolution, and delivery method before contacting Kvmkit. That information is more useful than a request based on model size alone, and it makes the remote trial easier to judge against your local baseline.
FAQ
How large a model can ComfyUI load on a Mac?
There is no reliable model-size cutoff based only on the checkpoint file. ComfyUI may also keep text encoders, a VAE, control models, adapters, upscalers, and intermediate tensors in memory. Test the complete workflow at its target resolution and batch setting. The usable limit depends on unified memory pressure, precision, node behavior, and available storage.
How much unified memory should I choose for ComfyUI?
Choose memory from the workflow’s measured peak, not from the size of one model. Start with a fixed workflow, record the highest memory pressure during loading, sampling, and upscaling, then leave operating headroom for macOS and other applications. If workflows change often or several models remain loaded, a higher-memory Mac or remote test environment is safer.
Which custom nodes do not support Apple silicon?
Compatibility changes by node version and dependency. Nodes that rely on unsupported Python packages, CUDA-specific code, compiled extensions, or operators unavailable through the active Metal or MPS path can install yet fail during execution. Review the node repository, pin the tested version, and run the actual workflow rather than treating a successful installation as proof of compatibility.
Should I run ComfyUI locally or use a remote Mac?
Use a local Mac when the workflow is stable, used frequently, and fits the measured memory envelope. Use a remote Mac when model combinations change quickly, demand is seasonal, local memory is insufficient, or a node must stay available for a team. Before relying on remote delivery, test uploads, session recovery, job persistence, permissions, queue behavior, and result download.
Run CI/CD on M4 Mac mini — the hassle-free way
Xcode, Fastlane, CocoaPods, and SPM are first-class on macOS. Mac mini M4 unified memory keeps signing and archiving smooth; ~4W standby power suits 24/7 build nodes.