You click Install in ComfyUI-Manager and get a red message saying the action is not allowed with this security level configuration. Or “Install via Git URL” is greyed out, or every install is blocked after an update.
All of these come from one setting: security_level in the Manager’s config.ini file, plus a few newer flags that sit next to it.
This guide explains what each ComfyUI security level allows, where the config file lives in current ComfyUI builds, how to change it safely step by step, and how to fix the most common “not allowed” errors.
Everything here is checked against the ComfyUI-Manager README and its V3.38 security migration guide (Manager 3.42 at the time of writing, November 2026).
- The file:
ComfyUI/user/__manager/config.inion ComfyUI v0.3.76 and newer. Older builds useComfyUI/user/default/ComfyUI-Manager/config.ini. - The line:
security_level = normalunder[default]. Options are strong, normal, normal- and weak. - Use normal for everyday use. It is the default and lets you install, update and remove registered custom nodes.
- Install via Git URL and pip install are no longer unlocked by “weak”. You now need
allow_git_url_install = trueand/orallow_pip_install = true, and they only work when ComfyUI listens on 127.0.0.1. - Everything blocked? Your ComfyUI core is probably too old, which forces “strong”. Update ComfyUI first.
- Restart ComfyUI after every change. There is no hot reload.
What the Security Level Does
ComfyUI-Manager can install custom nodes, run pip, download models, restart the server and restore snapshots. Those are powerful actions. A custom node is Python code that runs with the same rights as ComfyUI, so a malicious node or a tampered download can do real damage to your PC.
The security level is a gate in front of those actions. Each Manager feature has a risk rating (high, middle or low), and the level you choose decides which ratings are allowed.
It matters most when ComfyUI is reachable from other devices, for example when you start it with --listen 0.0.0.0 so a phone or a second PC can use it, or when it runs on a rented cloud GPU.
If you only ever use ComfyUI on the same PC at 127.0.0.1:8188, the default level is fine and you will rarely need to touch it.
The Four Security Levels Compared
| Level | High-risk features | Middle-risk features | Who it is for |
|---|---|---|---|
| strong | Blocked | Blocked | Shared or public servers where nobody should install anything from the UI. Also forced automatically on outdated ComfyUI. |
| normal (default) | Blocked | Allowed | Almost everyone. Install, update and remove registered nodes as usual. |
| normal- | Blocked only if --listen is set to an address that does not start with 127. |
Allowed | People who run locally most of the time and want high-risk actions on localhost. |
| weak | Allowed | Allowed | Throwaway test machines or containers only. |
The migration guide describes “normal” as the default and the recommended level for most users, and says “weak” should only be used in isolated development environments.
Which Actions Count as High, Middle and Low Risk
This is the list from the current ComfyUI-Manager README.
| Risk | Actions |
|---|---|
| High | Downloading models that are not in .safetensors format and are not in the default channel model list. |
| Middle | Uninstall and update nodes, install custom nodes registered in the default channel, Fix custom nodes, restore or remove snapshots, restart. |
| Low | Update ComfyUI. |
| Separate flags | Install via Git URL, pip install, and installing nodes that are not in the default channel. These are no longer controlled by security_level at all. |
So if your problem is “I can’t install a node from a GitHub link”, changing the level will not help. Jump to Step 3.
Step 1: Find Your config.ini
Since Manager V3.38, settings live in a protected folder that the ComfyUI web API cannot read or write. Which folder you have depends on your ComfyUI version.
| ComfyUI version | Manager config path |
|---|---|
| v0.3.76 and newer | ComfyUI/user/__manager/config.ini |
| Older versions | ComfyUI/user/default/ComfyUI-Manager/config.ini |
The easiest way to be sure is to read your startup log. ComfyUI prints both paths when it starts.
- Start ComfyUI the way you normally do (run_nvidia_gpu.bat on the Windows portable build, or
python main.py). - In the terminal, look for the line that starts with
** ComfyUI-Manager config path:. - Copy that path. On the Windows portable build it usually looks like
ComfyUI_windows_portable\ComfyUI\user\__manager\config.ini. - If you started ComfyUI with
--user-directory, the file is inside that folder instead ofComfyUI/user.
Note the two underscores in __manager. A folder named _manager or manager is not the one Manager reads.
Step 2: Change the Security Level
- Stop ComfyUI by closing the terminal window or pressing Ctrl + C in it.
- Open
config.iniin a plain text editor such as Notepad, VS Code or nano. Do not use Word. - Find the
[default]section. Look for a line that starts withsecurity_level. - Change the value, for example
security_level = normal. If the line does not exist, add it under[default]. - Save the file. Keep the name exactly
config.ini(Windows sometimes adds .txt). - Start ComfyUI again and watch the terminal for a Manager warning about the security level.
A minimal file looks like this:
[default]
security_level = normal
network_mode = public
The other common keys are network_mode (public, private or offline), use_uv for faster installs, file_logging, and downgrade_blacklist to stop pip from downgrading packages such as diffusers.
Step 3: Allow Install via Git URL or pip (New Flags)
This is the change that trips up most people in late 2026. Older tutorials say “set security_level to weak to use Install via Git URL”. That no longer works.
The current README says these two features are decoupled from security_level: a weak level cannot allow them and a strict level cannot block them on their own endpoints.
Instead there are two yes/no flags. Both default to false.
| Flag | What it unlocks |
|---|---|
allow_git_url_install |
Install via Git URL, and installing any node from a Git URL that is not in the default channel, including its pip dependencies. |
allow_pip_install |
Only the standalone pip install feature in Manager. |
- Stop ComfyUI.
- Open
config.iniand add the flags you need under[default]:[default] security_level = normal allow_git_url_install = true allow_pip_install = true - Make sure ComfyUI listens only on your own PC. Start it without
--listen, or with--listen 127.0.0.1. - Save and restart ComfyUI.
- Open Manager and try Install via Git URL again.
Three rules to remember:
- Loopback only. The flags only work when ComfyUI listens on a loopback address such as 127.0.0.1. With
--listen 0.0.0.0these installs stay blocked whatever the flags say. - Exact value. Only the word
true(any case) turns a flag on. A typo reads as false. - Batch installs still need the level. When a Git URL install goes through the batch install queue, the normal security_level gate also applies. At
strong, those stay denied even with the flag on.
If you prefer not to open a hole at all, you can install the node by hand instead: open a terminal in ComfyUI/custom_nodes, run git clone with the repo link, install its requirements with ComfyUI’s own Python, and restart. Our ComfyUI-Manager install guide shows the same steps for the Manager itself.
Using ComfyUI Over a Network or in the Cloud
When ComfyUI is reachable from other devices, treat the security level as a real lock.
- Keep normal or strong on any machine started with
--listen 0.0.0.0, a port forward, a tunnel or a cloud GPU template. - Never use weak on a public address. Anyone who reaches the page could install code on the machine.
- Install nodes before you expose the server. Run locally, install what you need, then restart with your network flags.
- Flagged registry versions (node versions the Comfy Registry has flagged) only install when every
--listenaddress is loopback. On a trusted private LAN an admin can setallow_flagged_nodepack_install = true, but that does not bypass any other check. - Offline or closed networks: set
network_mode = offlineorprivateso Manager does not reach out to the internet and uses its cache instead.
What Changed in Manager V3.38
If your settings seemed to reset after an update, this is why. Manager V3.38 moved its data to the protected user/__manager/ folder, using a system user protection feature added to ComfyUI core.
- Only config.ini is moved automatically. Snapshots are not, because files in the old folder could have been tampered with if you ever ran ComfyUI with
--listen. - Weak and normal- are raised to normal during the move. You will see a “Security level adjusted” warning in the terminal. Edit the new config if you really need the lower level back.
- Old data is kept in
user/__manager/.legacy-manager-backup/, and Manager reminds you on every start until you delete that folder. - To recover snapshots, copy the contents of
.legacy-manager-backup/snapshots/intouser/__manager/snapshots/after checking them.
Newer ComfyUI builds can also run the Manager as a built-in feature. You install manager_requirements.txt and start ComfyUI with --enable-manager (or --enable-manager-legacy-ui for the old look). The same security ideas apply. See our ComfyUI update guide if your build is older than v0.3.76.
Troubleshooting
| Message or symptom | Cause | Fix |
|---|---|---|
| “This action is not allowed with this security level configuration” | The action’s risk rating is above your level. | For normal installs, set security_level = normal. For Git URL or pip, use the flags in Step 3. |
| “comfyui_outdated” (HTTP 403) or “ComfyUI version is outdated!” in the terminal | ComfyUI core lacks the System User Protection API, so Manager forces strong. | Update ComfyUI to v0.3.76 or newer. Updating ComfyUI is still allowed in this state. |
| “security_level” (HTTP 403) | Your level blocks the request, for example strong blocks all installs. | Lower the level in config.ini if it is safe for your setup. |
| Install via Git URL still blocked after setting weak | Git URL installs are now governed by allow_git_url_install. |
Add allow_git_url_install = true and run on 127.0.0.1. |
| Flags set but still blocked | ComfyUI started with --listen 0.0.0.0, a typo, or no restart. |
Remove the listen flag or use 127.0.0.1, check spelling, restart. |
| My edits do nothing | You edited the old default/ComfyUI-Manager file. |
Edit the path printed in the startup log, usually user/__manager/config.ini. |
| “Suspicious path detected!” | A __manager folder with a low level exists on an older ComfyUI that should not create it. |
Check that file by hand before updating ComfyUI. Delete it if you did not create it. |
| “Legacy backup exists” on every start | The V3.38 backup folder is still there. | Check it, copy any snapshots you need, then delete .legacy-manager-backup. |
| Snapshots disappeared | Snapshots are not migrated automatically. | Copy them from the legacy backup folder. |
If a node installs but then fails to load, the problem is usually a missing Python package or a version clash, not the security level. Our ComfyUI guide and ComfyUI install guide cover the basics of the portable Python and custom_nodes folder.
My Take
Leave the level on normal and forget about it. For the occasional node that is only on GitHub, turn on allow_git_url_install while you work locally, install it, then switch it back to false if you ever expose ComfyUI to your network. That gives you flexibility without leaving a door open.
If every install is suddenly blocked, do not reach for “weak”. Update ComfyUI first. Nine times out of ten that is the real cause.
FAQ
What is the default ComfyUI security level?
normal. It blocks high-risk actions and allows normal installs, updates and removals of registered custom nodes.
Where is the ComfyUI-Manager config.ini file?
On ComfyUI v0.3.76 and newer it is ComfyUI/user/__manager/config.ini. On older builds it is ComfyUI/user/default/ComfyUI-Manager/config.ini. The startup log prints the exact path.
How do I set the security level to weak in ComfyUI?
Stop ComfyUI, open config.ini, set security_level = weak under [default], save and restart. Only do this on an isolated test machine, and note that it no longer unlocks Install via Git URL.
Why is Install via Git URL disabled?
Since the newer Manager releases, it needs allow_git_url_install = true in config.ini, and ComfyUI must listen on a loopback address like 127.0.0.1.
Is it safe to use the weak security level?
Only on a machine nobody else can reach, such as a disposable container. On a networked or cloud machine it lets anyone with access run installs.
Why did my security level change back to normal?
The V3.38 migration raises weak and normal- to normal when it moves your config, because the old setting could have been tampered with. You can edit the new file if you need a lower level.
Do I need to restart ComfyUI after changing config.ini?
Yes. Manager reads the file at startup, so changes only apply after a restart.
Does the security level affect image generation speed or quality?
No. It only controls Manager actions like installing, updating and downloading. Your workflows run the same.




