Share the weights, not the installation
Keep one physical owner for each large model category. Connect Forge, A1111 and ComfyUI with their own supported path controls, then prove one file at a time. Environments, extensions, settings and outputs stay separate.
One owner per category. One explicit route per consumer.
If A1111 already owns your models, add --forge-ref-a1111-home to Forge and point ComfyUI’s official extra_model_paths.yaml at the same root. For a Comfy-first or neutral library, map compatible Forge categories individually.
Use junctions or symbolic links only when a needed category has no practical path control. Link one subfolder, never the complete models tree across different UIs.
Who owns the files today?
Choose the physical library you already trust. The safest route adds readers around that owner instead of moving every file into a new universal tree.
Use the Forge reference helper first.
Point --forge-ref-a1111-home at the A1111 root. The current helper conditionally maps seven known paths and leaves explicit directory flags untouched. Check every startup skip message; the helper is not a universal models switch.
Configure the helperLet Forge and ComfyUI reference the owner independently.
Use the Forge helper for the A1111-shaped library. In ComfyUI, rename the official example to extra_model_paths.yaml, enable its a1111 block and set base_path to the same root. Do not link the entire models directory.
Build the three-UI routeUse explicit Forge flags for a Comfy-first library.
Forge exposes individual paths for checkpoints, VAE, LoRA, text encoders and ControlNet. Point only a compatible category at its physical owner, then load one known file. A ComfyUI category name does not prove every file inside it works in Forge.
Review explicit pathsKeep the application tree native and the large assets external.
Path flags are easier to audit and survive source updates. If a category has no usable path control, create one directory junction or symbolic link after moving and validating that category. Never replace the complete cross-UI models tree.
Use the fallback safelySix records make “shared” reversible.
Check an item only when the evidence exists outside every application folder. This planner stores nothing and changes no model paths.
Complete the records to create the contract.
A shared library is data, not a shared runtime.
Forge, A1111 and ComfyUI may read the same compatible weights. They still execute different code and maintain different application state.
Share compatible weights
Checkpoints, selected VAE files, LoRAs, embeddings, ControlNet weights and some upscalers can have one physical owner when each consumer maps the correct category.
Keep application state separate
Never share venv, extensions, custom nodes, config.json, ui-config.json, outputs or an entire cross-UI models root.
A .safetensors file may be a checkpoint, LoRA, ControlNet model, text encoder or another weight type. The owner contract records its category and validates it inside each required workflow.
The A1111 helper maps seven paths—not an entire installation.
The helper checks each expected directory. Missing paths are skipped, and an explicit directory argument already on the Forge command line wins.
Inspect the exact function ↗Point at the folder containing the A1111 launcher, models and embeddings.
set COMMANDLINE_ARGS=--forge-ref-a1111-home "D:\AI\stable-diffusion-webui"Use an absolute A1111 root and preserve any existing Forge arguments.
export COMMANDLINE_ARGS="--forge-ref-a1111-home /home/user/stable-diffusion-webui"models/Stable-diffusion→ --ckpt-dirmodels/VAE→ --vae-dirmodels/hypernetworks→ --hypernetwork-dirembeddings→ --embeddings-dirmodels/lora→ --lora-dirmodels/ControlNet→ --controlnet-dirextensions/sd-webui-controlnet/annotator/downloads→ --controlnet-preprocessor-models-dirProbe 1 used an A1111-style tree with models/Lora: Forge appended checkpoints, VAE, embeddings and ControlNet, but skipped LoRA because it checked lowercase models/lora. Probe 2 used all seven expected paths plus an explicit --lora-dir: the explicit LoRA path remained and appeared only once.
Current Forge and A1111 preload code defaults to models/Lora, while the helper checks models/lora. Use the exact path that exists:
--lora-dir "/home/user/stable-diffusion-webui/models/Lora"Let ComfyUI add the A1111 owner as extra search paths.
ComfyUI already publishes an A1111-shaped profile. This preserves ComfyUI’s native model tree while adding the shared library as another reader.
Open the current official example ↗- 01Copy the current example
In the ComfyUI root you actually launch, copy
extra_model_paths.yaml.exampletoextra_model_paths.yaml. - 02Enable one top-level profile
Uncomment the A1111 block and change only
base_pathfirst. Preserve YAML indentation. - 03Keep only real categories
Delete or comment categories that do not exist in your owner tree. Add them later after the checkpoint test passes.
- 04Restart and read the log
The current parser normalizes each entry and logs
Adding extra search path. Verify the resolved paths before loading a workflow.
a1111:
base_path: D:/AI/stable-diffusion-webui/
checkpoints: models/Stable-diffusion
configs: models/Stable-diffusion
vae: models/VAE
loras: |
models/Lora
models/LyCORIS
upscale_models: |
models/ESRGAN
models/RealESRGAN
models/SwinIR
embeddings: embeddings
hypernetworks: models/hypernetworks
controlnet: models/ControlNetOur parser probe resolved eight entries from a reduced fixture, including two LoRA and two upscaler directories. No ComfyUI generation was run. Use forward slashes in the YAML example for readable Windows paths.
For a central or Comfy-first library, map categories individually.
This route is source-verified but not GPU-tested here. It is deliberate: each flag names one compatible category and can be removed without changing the others.
Windows central library
Place the line in Forge webui-user.bat. The physical folders can also be read by ComfyUI through its YAML.
set COMMANDLINE_ARGS=--ckpt-dir "D:\AI\Models\checkpoints" --vae-dir "D:\AI\Models\vae" --lora-dir "D:\AI\Models\loras" --text-encoder-dir "D:\AI\Models\text_encoders" --controlnet-dir "D:\AI\Models\controlnet"Linux / macOS central library
Quote every absolute path. Add only the categories required by the first real workflow.
export COMMANDLINE_ARGS="--ckpt-dir /mnt/ai/models/checkpoints --vae-dir /mnt/ai/models/vae --lora-dir /mnt/ai/models/loras --text-encoder-dir /mnt/ai/models/text_encoders --controlnet-dir /mnt/ai/models/controlnet"These flags exist in the inspected original Forge source. That proves path routing, not cross-UI model compatibility. Begin with --ckpt-dir alone, load one known checkpoint, then add one category per restart.
The category already has a path control.
Checkpoints, VAE, LoRA, embeddings, hypernetworks, text encoders, ControlNet and several upscaler families can be routed explicitly.
The UI taxonomies do not match.
ComfyUI has categories such as diffusion_models, text_encoders and clip_vision. A WebUI-shaped models base does not translate those meanings.
Link one category only after flags and config are exhausted.
A link makes a consumer path resolve to another physical directory. It does not translate folder taxonomies, validate formats or create a backup.
Close Forge, A1111, ComfyUI and model managers before moving or linking files.
Confirm the known model exists and its size/hash match before removing the old consumer folder.
The link path must not already be a normal directory. Link checkpoints to checkpoints—not models to models.
Know how to remove only the link and recreate the empty native folder before depending on it.
Run Command Prompt with the permissions required by the system. Microsoft syntax is link first, target second.
mklink /J "C:\AI\Forge\models\Stable-diffusion" "D:\AI\Models\checkpoints"Create the parent directory first. The final consumer path must not already exist as a normal folder.
ln -s "/mnt/ai/models/checkpoints" "/opt/forge/models/Stable-diffusion"A category symlink reached the owner’s test .safetensors file.
A second link pointed at a missing owner; the link remained identifiable while the target did not exist.
The command syntax comes from Microsoft; no Windows junction was created on this machine.
First identify the consumer link and its physical target. Remove only the link, never an unresolved target path. This page intentionally does not provide a recursive delete command.
Match semantics before matching folders.
The same physical category can use different names. Treat every row as an independent contract and validate the exact model family.
| Category | A1111-shaped owner | Forge control | ComfyUI key | Decision |
|---|---|---|---|---|
| Checkpoints | models/Stable-diffusion | --ckpt-dir | checkpoints | Share after one exact file loads |
| VAE | models/VAE | --vae-dir | vae | Share; verify selection separately |
| LoRA | models/Lora by default | --lora-dir | loras | Use explicit flag on case-sensitive systems |
| Embeddings | embeddings | --embeddings-dir | embeddings | Share only with compatible base family |
| Hypernetworks | models/hypernetworks | --hypernetwork-dir | hypernetworks | Legacy category; test actual use |
| ControlNet models | models/ControlNet | --controlnet-dir | controlnet | Share models, not extension code |
| ControlNet preprocessors | extension-specific downloads | --controlnet-preprocessor-models-dir | No direct A1111 template key | Keep consumer-specific unless proven |
| Text encoders | No common A1111 owner | --text-encoder-dir | text_encoders | Map only files required by the Forge model route |
| Upscalers | Several family folders | Family-specific *-models-path flags | upscale_models | Helper does not map these |
| FLUX diffusion / UNet files | Layout depends on route | Usually checkpoint path; verify guide | diffusion_models / unet | Do not merge categories by name |
| Configs, extensions, venv, outputs | Application-owned | Do not share | Application-owned | Keep separate |
For FLUX split files, GGUF and text encoders, use the Forge FLUX file checklist. Shared storage never replaces format-specific setup.
Change one reader and one category at a time.
The goal is not to make every dropdown large. It is to prove that the required application loads the intended physical file and can return to its native path.
- 01
Inventory before moving
List the current physical path, app owner, category, filename, byte size and hash. If two files only share a name, treat them as different until their hashes match.
- 02
Choose one write owner
Decide which application tree or central folder owns each category. Consumers may read the library, but one owner controls downloads, renames and deletion.
- 03
Prove every UI independently
Start Forge, A1111 and ComfyUI with their native folders before sharing anything. A broken clean install cannot validate a shared path.
- 04
Connect one consumer to one category
Start with one checkpoint directory. Use an official config or explicit flag. Do not add LoRA, VAE, ControlNet and upscalers in the same change.
- 05
Read startup evidence
For Forge, inspect appended or skipped paths. For ComfyUI, look for Adding extra search path messages or YAML errors. Stop if the resolved path is not the intended owner.
- 06
Load the known file
Refresh the model list, select the recorded asset and complete the smallest real load or generation. Matching the visible filename alone is insufficient when duplicates exist.
- 07
Add categories one at a time
Repeat the same check for VAE, LoRA, embeddings, ControlNet, text encoders and upscalers only when the workflow needs them.
- 08
Prove recovery
Stop the consumer, remove only its flag, YAML entry or link, restore the original empty folder if required, and confirm its native baseline still starts.
Partial discovery tells you which boundary failed.
A visible checkpoint proves one path. It says nothing about LoRA capitalization, ComfyUI YAML, ControlNet preprocessors or FLUX companion files.
01Forge shows no shared checkpoints
Confirm --forge-ref-a1111-home points to the A1111 root, not models. Quote paths with spaces and read every “does not exist. Skip setting” line.
02Checkpoints appear but LoRAs do not
The inspected helper checks models/lora, while the default LoRA folder is models/Lora. On a case-sensitive filesystem, add an explicit --lora-dir with the real capitalization.
03An explicit path seems ignored
Check whether the same flag appears more than once. The helper does not override a flag already present, but duplicate manual flags make ownership unclear. Keep one declaration.
04ComfyUI starts with a YAML TypeError
Begin from the current official example. Keep a top-level profile name, indent base_path and every category under it, and make each category value a string or | block.
05ComfyUI loads but adds no external paths
Confirm the file is named extra_model_paths.yaml in the ComfyUI root actually being launched. Read the startup log rather than editing another installation.
06The same model name appears twice
Search every configured category path and compare byte size or SHA-256. Remove one consumer path entry; do not delete either physical file until identity is proven.
07A junction or symlink is broken
Check the link target before touching the model library. Restore the target path or remove only the link and recreate the consumer folder. Forge code explicitly skips broken file links while scanning.
08A source update collides with a linked folder
Stop the UI and preserve the link target. Remove only the consumer link, update the source, then recreate a category-level link if the native folder remains appropriate.
09ControlNet preprocessors are still missing
Model weights and preprocessor downloads are separate inventories. The helper maps one historical extension download path; current integrated or third-party preprocessors may use another layout.
10A FLUX workflow reports missing encoders
A shared checkpoint folder does not map ComfyUI text_encoders or every Forge FLUX dependency. Verify the exact FLUX file route and each dropdown independently.
11Model discovery becomes slow
Count every configured directory and duplicate entry. Large libraries, slow external disks and network storage need a local measurement; this page makes no scan-time or NAS performance guarantee.
Questions that appear after the first duplicate disappears.
These answers separate storage reuse from environment sharing, format compatibility and performance.
Can Forge and AUTOMATIC1111 use the same models without copying them?
Yes. Original Forge provides --forge-ref-a1111-home for an existing A1111-shaped checkout and individual directory flags. Keep the source, virtual environments, settings and extensions separate.
Can Forge and ComfyUI share the same model folder?
They can read compatible files from the same physical category, but their complete models trees have different taxonomies. Use individual Forge flags and ComfyUI extra paths; do not point both complete models roots at each other.
What is the safest setup for Forge, A1111 and ComfyUI together?
If A1111 already owns the library, keep its tree unchanged. Point Forge at the A1111 root with --forge-ref-a1111-home and configure ComfyUI with the official a1111 block in extra_model_paths.yaml.
Where do I add --forge-ref-a1111-home on Windows?
Add it to COMMANDLINE_ARGS in the Forge webui-user.bat or the corresponding launcher configuration for the official package. Quote the A1111 root when it contains spaces.
Where do I add shared model paths on Linux or macOS?
Set or extend COMMANDLINE_ARGS in Forge webui-user.sh, or pass the arguments to ./webui.sh. Use absolute paths and preserve the existing arguments.
Why does --forge-ref-a1111-home find checkpoints but not LoRAs?
The inspected helper checks models/lora in lowercase. Forge and A1111 default LoRA preload code uses models/Lora. On case-sensitive filesystems, set --lora-dir to the exact existing folder.
Does the Forge A1111 helper include upscaler models?
No. Its seven mappings do not include ESRGAN, RealESRGAN or other upscaler family folders. Forge exposes several family-specific path flags; configure only the upscalers your workflow uses.
Can I use --models-dir instead of individual paths?
--models-dir changes the base models location for one WebUI-shaped tree. It does not translate ComfyUI category names and it can move more categories than intended. Individual paths are easier to verify for a cross-UI library.
Should I share --data-dir between Forge and A1111?
No. --data-dir covers user state beyond model weights. Sharing it can mix settings and other application-owned data. This guide shares model categories only.
Can Forge and A1111 share the same venv?
No. A model library contains data; venv contains executable Python packages. Keep a separate environment for every application.
Can I share extensions or ComfyUI custom nodes?
No. Extensions and custom nodes are executable integrations tied to their own host and dependency environment. Install and test them separately.
Is a Windows directory junction better than command-line flags?
No. A junction is a fallback when the application has no suitable path control. Flags and official configuration files show ownership directly and are easier to disable during diagnosis.
What is the correct mklink order?
Microsoft documents mklink /J <link> <target>. The link is the consumer path you are creating; the target is the existing physical owner. The link path must not already be a normal directory.
How do I remove a shared link without deleting models?
First verify which path is the link and which is the physical target. Remove only the consumer link, then recreate an empty native consumer folder if needed. Never run a recursive delete against an unresolved target.
Can two UIs run at the same time with shared models?
The files may be readable by both, but simultaneous GPU use and one process replacing a model while another scans it add unrelated risks. Stop all UIs while changing paths and use one write owner.
Will sharing models make loading faster?
It saves duplicate storage and maintenance. It does not guarantee faster loading; disk type, library size, hashing, file format and each application scanner still determine load and discovery time.
Can I keep shared models on a NAS?
Possibly, but this page did not test network storage, locking, disconnections or scan latency. Prove one read-only category and retain a local rollback before relying on a NAS.
Do compatible filenames prove a model works in every UI?
No. Category names and file extensions overlap, but loaders, model families and required companion files differ. Validate one exact file in each required workflow.
Code decides paths. Your load test decides compatibility.
Product claims come from the original Forge source and each external project’s own configuration. Community material supplied failure language and rejected shortcuts.
Primary and direct evidence · 15
Project identity and advanced A1111-related installation route.
Source snapshot used for all Forge claims: dfdcbab6.
Current general, model, encoder, upscaler and Forge-specific path flags.
Seven conditional mappings, skipped missing paths and explicit-argument precedence.
Default models/Lora capitalization used by the current LoRA extension.
Current broken-symlink skip behavior during model scans.
Origin and intended scope of the single A1111-root argument.
Published categories plus dated user limitations.
Official central and A1111-shaped path profiles and category keys.
Resolution of base_path, multiline categories and multiple physical paths.
Where extra_model_paths.yaml is discovered and loaded.
ComfyUI snapshot used for YAML checks: 95d755cd.
Upstream WebUI path controls and data/models boundary.
Default models/Lora capitalization in the upstream snapshot.
Authoritative link/target order and /D, /H and /J meanings.
Research-catalog and fresh-search evidence · 9
Selected from the local catalog; canonical product source.
Selected from the local catalog; separate owner and layout evidence.
Dated Windows/macOS helper examples; performance claims were not reused.
Full captions checked; whole-models-folder junction advice was rejected as too broad.
Community storage and link vocabulary; not used as a compatibility guarantee.
Community evidence that users retain multiple UIs and large shared libraries.
Direct user demand and maintainer redirect to the helper.
Real Windows/Linux quoting and root-path failure language.
Maintainer answer points users to the official YAML configuration.
What was executed
Forge’s helper ran against two disposable A1111-shaped trees. ComfyUI’s current parser resolved an eight-path YAML fixture. A live and broken Linux category symlink were inspected.
What was not executed
No Windows junction, GPU model load, simultaneous multi-UI run, package-manager route, network share or NAS performance test was performed on this machine.
Editorial protocol
One owner, read-only consumers, category-level routing and one-file acceptance tests are our reversible operating method; they are not an official cross-UI compatibility guarantee.