Will Miao 130fb5d2d5 fix: batch URL download dedup by modelId+modelVersionId composite key (#936)
When batch-downloading different versions of the same model, dedup by
modelId alone discards the second URL. Use modelId:modelVersionId as
the dedup key so users can download, e.g., latest + a specific version.
2026-06-09 07:02:56 +08:00
2026-03-29 08:28:00 +08:00
2026-03-27 19:26:13 +08:00
2025-04-30 16:04:41 +08:00
2026-04-15 23:07:36 +08:00

ComfyUI LoRA Manager

Revolutionize your workflow with the ultimate LoRA companion for ComfyUI!

Discord Release Release Date

A comprehensive toolset that streamlines organizing, downloading, and applying LoRA models in ComfyUI. With powerful features like recipe management, checkpoint organization, and one-click workflow integration, working with models becomes faster, smoother, and significantly easier. Access the interface at: http://localhost:8188/loras

Interface Preview

📺 Tutorial: One-Click LoRA Integration

Watch this quick tutorial to learn how to use the new one-click LoRA integration feature:

One-Click LoRA Integration Tutorial

🌐 Browser Extension

Enhance your Civitai browsing experience with our companion browser extension! See which models you already have, download new ones with a single click, and manage your downloads efficiently.

LM Civitai Extension Preview

📚 Learn More: Complete Tutorial


🤝 Supporter Recognition

I'm incredibly grateful to everyone who has supported the development of this project. Seeing so many people value my work is the best motivation I could ask for. Your trust and support have played a vital role in shaping this tool into what it is today, and I want to personally recognize those who have helped make it possible.

🌟 Special Thanks

dispenser, EbonEagle, DanielMagPizza, Scott R

💖 Supporters (784)

Click to view all awesome supporters

Insomnia Art Designs, 2018cfh, megakirbs, Brennok, W+K+White, wackop, Phil, Carl G., Arlecchino Shion, Charles Blakemore, Rob Williams, stone9k, itismyelement, $MetaSamsara, onesecondinosaur, Rosenthal, Francisco Tatis, Tobi_Swagg, Andrew Wilson, Greybush, Ricky Carter, JongWon Han, VantAI, runte3221, FreelancerZ, Edgar Tejeda, Fraser Cross, Liam MacDougal, Polymorphic Indeterminate, Marc Whiffen, Skalabananen, Birdy, Kiba, Mozzel, Gingko Biloba, Reno Lam, sig, Christian Byrne, DM, Sen314, Estragon, J\B/ 8r0wns0n, Snaggwort, Takkan, Matt+J, ClockDaemon, KD, Omnidex, Tyler Trebuchon, Release Cabrakan, SG, carozzz, James Dooley, zenbound, Buzzard, jmack, Adam Shaw, Mark Corneglio, SarcasticHashtag, Anthony Rizzo, iamresist, RedrockVP, Wolffen, James Todd, Steven Pfeiffer, Tim, Timmy, Johnny, Lisster, Michael Wong, Illrigger, whudunit, Tom Corrigan, JackieWang, fnkylove, Yushio, Vik71it, Echo, Lilleman, Robert Stacey, PM, Todd Keck, Briton Heilbrun, Jorge Hussni, Sterilized, BadassArabianMofo, Pascal Dahle, quarz, Greg, JSST, lmsupporter, zounic, wfpearl, Baekdoosixt, Jonathan Ross, Jack B Nimble, Nazono_hito, Melville Parrish, daniel dove, Lustre, JW Sin, contrite831, Alex, bh, Marlon Daniels, Starkselle, Aaron Bleuer, LacesOut!, greebles, M Postkasse, Gooohokrbe, Wicked Choices by ASLPro3D, OldBones, Jacob Hoehler, FinalyFree, Weasyl, Lex Song, Cory Paza, Tak, Gonzalo Andre Allendes Lopez, Zach Gonser, Big Red, Jimmy Ledbetter, Luc Job, dl0901dm, Philip Hempel, corde, Nick Walker, Bishoujoker, aai, Tori, wildnut, jean jahren, Aleksander Wujczyk, AM Kuro, Ran C, ViperC, Penfore, Sangheili460, MagnaInsomnia, Karl P., Akira_HentAI, Gordon Cole, AbstractAss, andrew.tappan, N/A, The Spawn, graysock, Greenmoustache, fancypants, Eldithor, Joboshy, Digital, JaxMax, takyamtom, Bohemian Corporal, Dan, Jwk0205, Bro Xie, yer fey, batblue, carey6409, Olive, 太郎 ゲーム, Some Guy Named Barry, jinxedx, Cosmosis, AELOX, Dankin, Nicfit23, FloPro4Sho, wamekukyouzin, drum matthieu, Dogmaster, Matt Wenzel, Frank Nitty, Christopher Michel, Serge Bekenkamp, LeoZero, Antonio Pontes, ApathyJones, Julian V, Steven Owens, nahinahi9, Dustin Chen, dan, Blackfish95, Mouthlessman, Paul Kroll, otaku fra, MiraiKuriyamaSy, Bas Imagineer, yuxz69, Adam Taylor, Weird_With_A_Beard, esthe, Pozadine1, Qarob, AIGooner, Luc, ProtonPrince, DiffDuck, elu3199, Hasturkun, Jon Sandman, Ubivis, CloudValley, thesoftwaredruid, wundershark, mr_dinosaur, Tyrswood, linnfrey, IamAyam, skaterb949, Josef Lanzl, confiscated Zyra, Error_Rule34_Not_found, Gerald Welly, Roslynd, Tee Gee, Geolog, tarek helmi, Neco28, Max Marklund, David Ortega, Cristian Vazquez, Magic Noob, Pronredn, DougPeterson, Jeff, Bruce, lh qwe, Kevin John Duck, conner, Kevin Christopher, dd, Princess Bright Eyes, Dušan Ryban, Felipe dos Santos, John Statham, Douglas Gaspar, Metryman55, AlexDuKaNa, George, dw, decoy, Ray Wing, Ranzitho, Gus, 地獄の禄, MJG, David LaVallee, ae, Tr4shP4nda, Gamalonia, WRL_SPR, capn, Joseph, Mirko Katzula, dan, Piccio08, kumakichi, cppbel, Moon Knight, 몽타주, Kland, Hailshem, 奚明 刘, Brian M, Nerezza, sanborondon, 준희 김, Taylor Funk, aezin, Thought2Form, jcay015, Kevin Picco, Erik Lopez, Mateo Curić, Eris3D, Tomohiro Baba, m, Noora, Pierce McBride, Joshua Gray, Mattssn, Mikko Hemilä, Jamie Ogletree, a _, James Coleman, Martial, Emil Andersson, Ouro Boros, Chad Idk, Steam Steam, CryptoTraderJK, Yuji Kaneko, Davaitamin, Rops Alot, tedcor, Sam, Fotek Design, sjon kreutz, Ace Ventura, MadSpin, inbijiburu, Nick “Loadstone” D, momokai, starbugx, kudari, Naomi Hale Danchi, dc7431, ken, epicgamer0020690, Joshua Porrata, keemun, SuBu, RedPIXel, Wind, Nexus, Ramneek“Guy”Ashok, squid_actually, Nat_20, Edward Weeks, kyoumei, RadStorm04, JohnDoe42054, BillyHill, emyth, chriphost, KitKatM, socrasteeze, OrganicArtifact, Vir, gzmzmvp, Richard, Andrew, Robert Wegemund, Littlehuggy, Gregory Kozhemiak, Draven T, mrjuan, Brian Buie, Sadlip, Eric Whitney, Joey Callahan, Aquatic Coffee, Ivan Tadic, Mike Simone, ethanfel, Elliot E, Morgandel, Theerat Jiramate, Focuschannel, Noah, Jacob McDaniel, X, Sloan Steddy, Temikus, Artokun, Michael Taylor, Derek Baker, Anthony Faxlandez, battu, Michael Anthony Scott, Atilla Berke Pekduyar, Nathan, Decx _, Pat Hen, Jordan Shaw, Srdb, 四糸凜音, Nihongasuki, LarsesFPC, JC, Prompt Pirate, uwutismxd, FrxzenSnxw, zenobeus, Crocket, Jackthemind, ryoma, Stryker, ResidentDeviant, MudkipMedkitz, deanbrian, Alex Wortman, Cody, Raku, smart.edge5178, InformedViewz, CHKeeho80, Bubbafett, leaf, Menard, Skyfire83, Adam Rinehart, Pitpe11, TheD1rtyD03, moonpetal, SomeDude, g9p0o, Pkrsky, TheHolySheep, raf8osz, Monte Won, SpringBootisTrash, carsten, ikok, ElitaSSJ4, David Schenck, Wolfe7D1, blikkies, Chris, elleshar666, Shock Shockor, ACTUALLY_the_Real_Willem_Dafoe, Goldwaters, Kauffy, Zude, John J Linehan, Kyler, Edward Kennedy, Justin Blaylock, aRtFuL_DodGeR, Nick Kage, Vane Holzer, psytrax, Cyrus Fett, hexxish, notedfakes, Billy Gladky, NICHOLAS BAXLEY, Michael Scott, Probis, Ed Wang, Wes Sims, ItsGeneralButtNaked, Donor4115, g unit, Distortik, Filippo Ferrari, Youguang, Saya, andrewzpong, BossGame, lrdchs, Tree Tagger, Inversity, AIVORY3D, Kevinj, Mitchell Robson, Whitepinetrader, POPPIN, Ginnie, emadsultan, nanana, g, J, Alan+Cano, FeralOpticsAI, Pavlaki, Doug+Rintoul, Noor, Yorunai, quantenmecha, Jason+Nash, BillyBoy84, DarkRoast, letzte, Nasty+Hobbit, Sora+Yori, lrdchs2, Duk3+Rand0m, Nathen+Choi, T, cocona, Buecyb99, Welkor, John Martin, Ink Temptation, JBsuede, moranqianlong, Kalli Core, Time Valentine, Михал Михалыч, Matt, Frogmilk, SPJ, Kyron Mahan, Bryan Rutkowski, TBitz33, Anonym dkjglfleeoeldldldlkf, Ezokewn, SendingRavens, Xenon Xue, JackJohnnyJim, Edward Ten Eyck, Michael Docherty, Paul Hartsuyker, Henrique Faiolli, elitassj, Solixer, Jacob Winter, Ryan Presley Ng, jinksta187, Andrew Wilkinson, Manu Thetug, Karlanx, Lyavph, David, Meilo, operationancut, shinonomeiro, Snille, MaartenAlbers, khanh duy, xybrightsummer, jreedatchison, PhilW, Marcus thronico, Janik, Cruel, MRBlack, Kiyoe, humptynutz, michael.isaza, Kalnei, Scott, Muratoraccio, D, low9, Winged, YassineKhaled, Y, MatteKey, Flob, ShiroSenpai, Inkognito, G, Tan+Huynh, D, Dark_Pest, Alex, Jacky+Ho, Karru, ghoulars, ChaChanoKo, null, Beau, redcarrot, powerbot99, Fthehappy, generic404, abattoirblues, zounik, 4IXplr0r3r, hayden, ahoystan, Bob Barker, edk, Tú Nguyễn Lý Hoàng, Ronan Delevacq, Christian Schäfer, りん あめ, ja s, Doug Mason, Jeremy Townsend, Dave Abraham, Joaquin Hierrezuelo, Locrospiel, Sean voets, Owen Gwosdz, Jarrid Lee, Kor, Joseph Hanson, John Rednoulf, Boba Smith, Devil Lude, David Murcko, MR.Bear, Jack Dole, max blo, Sauv, Steven, CptNeo, TenaciousD, Dmitry Ryzhov, Khánh Đặng, Maso, Eric Ketchum, Kevin Wallace, Jimmy Borup, ChicRic, Tigon, BastardSama, mercur, Pete Pain, RHopkirk, Yavizu3d, Maxim, Yves Poezevara, Teriak47, Just me, Raf Stahelin, Вячеслав Маринин, Cola Matthew, OniNoKen, Iain Wisely, Zertens, NOHOW, Apo, nekotxt, choowkee, Clusters, ibrahim, Highlandrise, philcoraz, mztn, ImagineerNL, MrAcrtosSursus, al300680, pixl, Robin, chahknoir, nd, keno94d, James Melzer, Bartleby, Renvertere, Rahuy, Hermann003, D, Foolish, RevyHiep, Captain_Swag, obkircher, gwyar, ResidentDeviant, D, edgecase, Neoxena, mrmhalo, dg, Maarten Harms, Israel, SelfishMedic, adderleighn, EnragedAntelope, SRCRCOSS, imer, Akkas+Haque, Kachac, tyrant2811, Kevin, Rune+Osnes, jcx29, cloudghost, Yongkwan+Lee, PoorStudent, lucites, Alex+Zaw, Mobius2020, ExLightSaber, YaboiRay, Drizzly, Sildoren, Darvidous, Seon+Song, 2turbo, balut+omelette, Nebuleux, Dmitry+Viznesenskiy, Tanjin90, Somebody, sternenkrieger, eriick, Join+Chun, Pascalou, lighthawke, Terraformer, GDS+DEV, 4rt+r3d, you+halo9, Somebody, Somebody, Crescent~San, AiGirlTS, datasl4ve, Somebody, koopa990, The+Forgetful+Dev, Mateusz+Kosela, Bula, KUJYAKU, Coeur+de+cochon, Obsidian.Studios, han b, Zomba Mann, Aquaneo, Nico, Maximilian Krischan, Banana Joe, _ G3n, Donovan Jenkins, Hans Meier, shira1011, sicarius, Michael Eid, beersandbacon, Neko Desco, Bob barker, Ben D, Ninja Tom, G, karim ben brik, Vinarus, Michael Zhu, Nemisu, Seraphy, 雨の心 落, AllTimeNoobie, Leslie Andrew Ridings, jumpd, John C, Rim, Jairus Knudsen, Poophead27 Blyat, Xan Dionysus, Nathan lee, Lyle Liston, Middo, Forbidden Atelier, Thomas Sankowski, Spire, DrB, AZ Party Oasis, Adictedtohumping, Towelie, TheFusion, matt, dsffsdfsdfsdfsdfsdf, somethingtosay8, Jean-françois SEMA, 3zS4QNQ4, Terminuz, Kurt, ivistorm, Matt M., Ivan Imes, Faburizu, Jack Lawfield, jimyjomson, Borte, Chase Kwon, Ted Cart, Sage Himeros, Inyoshu, Chad Barnes, Person Y, David Spearing, James Ming, vanditking, kripitonga, Rizzi, nimin, OMAR LUCIANO, Somebody, CoffeeMage, Ken+Suzuki, hannibal, Jo+Example, BrentBertram, inusanorthcape, eumelzocker, dxjaymz, L C, Dude, Somebody, CK

⚠ Important Note: To use the CivitAI download feature, you'll need to:

  1. Get your CivitAI API key from your profile settings
  2. Add it to the LoRA Manager settings page
  3. Save the settings

Key Features

  • 🚀 High Performance

    • Fast model loading and browsing
    • Smooth scrolling through large collections
  • 🌐 Rich Model Integration

    • Direct download from CivitAI
    • Preview images and videos
    • Model descriptions and version selection
    • Trigger words at a glance
    • One-click workflow integration with preset values
  • 🔄 Checkpoint Management

    • Scan and organize checkpoint models
    • Filter and search your collection
    • View and edit metadata
    • Clean up and manage disk space
  • 🧩 LoRA Recipes

    • Save and share favorite LoRA combinations
    • Preserve generation parameters for future reference
    • Quick application to workflows
    • Import/export functionality for community sharing
  • 💻 User Friendly

    • One-click access from ComfyUI menu
    • Context menu for quick actions
    • Custom notes and usage tips
    • Multi-folder support
    • Configurable mature blur threshold (PG13 / R / X / XXX, default R+)
      • Example: setting threshold to PG13 blurs PG13, R, X, and XXX previews when blur is enabled
    • Visual progress indicators during initialization

Installation

  1. Open ComfyUI.
  2. Go to Manager > Custom Node Manager.
  3. Search for lora-manager.
  4. Click Install.

Option 2: Portable Standalone Edition (No ComfyUI required)

  1. Download the Portable Package
  2. Copy the provided settings.json.example file to create a new file named settings.json in comfyui-lora-manager folder.
  3. Edit the new settings.json to include your correct model folder paths and CivitAI API key
    • Set "use_portable_settings": true if you want the configuration to remain inside the repository folder instead of your user settings directory.
  4. Run run.bat
    • To change the startup port, edit run.bat and modify the parameter (e.g. --port 9001)

Option 3: Manual Installation

git clone https://github.com/willmiao/ComfyUI-Lora-Manager.git
cd ComfyUI-Lora-Manager
pip install -r requirements.txt

Usage

  1. There are two ways to access the LoRA manager:
  2. From the interface, you can:
    • Browse and organize your LoRA models
    • Download models directly from CivitAI
    • Automatically fetch or manually set preview images
    • View and copy trigger words associated with each LoRA
    • Add personal notes and usage tips
  3. To use LoRAs in your workflow:
    • Add the "Lora Loader (LoraManager)" node to your workflow
    • Select a LoRA in the manager interface
    • Click copy button or use right-click menu "Copy LoRA syntax"
    • Paste into the Lora Loader node's text input
    • The node will automatically apply preset strength and trigger words

Wildcards for TextLM / PromptLM

Text (LoraManager) and Prompt (LoraManager) support /wildcard autocomplete plus runtime wildcard expansion.

  • Wildcard files live in {settings folder}/wildcards/
  • When you type /wildcard and no wildcard files exist yet, the autocomplete dropdown shows the exact folder path and lets you open it
  • Supported formats: .txt, .yaml, .yml, .json

Format rules:

  • wildcards/animals/cat.txt becomes __animals/cat__
  • .txt files use one option per line
  • YAML / JSON files use nested keys that end in string arrays

Examples:

# wildcards/color.txt
red
blue
green

Use it as __color__.

# wildcards/colors.yaml
palette:
  warm:
    - red
    - orange

Use it as __palette/warm__.

Filename Format Patterns for Save Image Node

The Save Image Node supports dynamic filename generation using pattern codes. You can customize how your images are named using the following format patterns:

Available Pattern Codes

  • %seed% - Inserts the generation seed number
  • %width% - Inserts the image width
  • %height% - Inserts the image height
  • %pprompt:N% - Inserts the positive prompt (limited to N characters)
  • %nprompt:N% - Inserts the negative prompt (limited to N characters)
  • %model:N% - Inserts the model/checkpoint name (limited to N characters)
  • %date% - Inserts current date/time as "yyyyMMddhhmmss"
  • %date:FORMAT% - Inserts date using custom format with:
    • yyyy - 4-digit year
    • yy - 2-digit year
    • MM - 2-digit month
    • dd - 2-digit day
    • hh - 2-digit hour
    • mm - 2-digit minute
    • ss - 2-digit second

Examples

  • image_%seed%image_1234567890
  • gen_%width%x%height%gen_512x768
  • %model:10%_%seed%dreamshape_1234567890
  • %date:yyyy-MM-dd%2025-04-28
  • %pprompt:20%_%seed%beautiful landscape_1234567890
  • %model%_%date:yyMMdd%_%seed%dreamshaper_v8_250428_1234567890

You can combine multiple patterns to create detailed, organized filenames for your generated images.

Standalone Mode

You can now run LoRA Manager independently from ComfyUI:

  1. For ComfyUI users:

    • Launch ComfyUI with LoRA Manager at least once to initialize the necessary path information in the settings.json file located in your user settings folder (see paths above).
    • Make sure dependencies are installed: pip install -r requirements.txt
    • From your ComfyUI root directory, run:
      python custom_nodes\comfyui-lora-manager\standalone.py
      
    • Access the interface at: http://localhost:8188/loras
    • You can specify a different host or port with arguments:
      python custom_nodes\comfyui-lora-manager\standalone.py --host 127.0.0.1 --port 9000
      
  2. For non-ComfyUI users:

    • Copy the provided settings.json.example file to create a new file named settings.json. Update the API key, optional language, and folder paths only—the library registry is created automatically when LoRA Manager starts.
    • Edit settings.json to include your correct model folder paths and CivitAI API key (you can leave the defaults until ready to configure them)
    • Enable portable mode by setting "use_portable_settings": true if you prefer LoRA Manager to read and write the settings.json located in the project directory.
    • Install required dependencies: pip install -r requirements.txt
    • Run standalone mode:
      python standalone.py
      
    • Access the interface through your browser at: http://localhost:8188/loras

    Note: Existing installations automatically migrate the legacy settings.json from the plugin folder to the user settings directory the first time you launch this version.

This standalone mode provides a lightweight option for managing your model and recipe collection without needing to run the full ComfyUI environment, making it useful even for users who primarily use other stable diffusion interfaces.

Testing & Coverage

Backend

Install the development dependencies and run pytest with coverage reports:

pip install -r requirements-dev.txt
COVERAGE_FILE=coverage/backend/.coverage pytest \
  --cov=py \
  --cov=standalone \
  --cov-report=term-missing \
  --cov-report=html:coverage/backend/html \
  --cov-report=xml:coverage/backend/coverage.xml \
  --cov-report=json:coverage/backend/coverage.json

HTML, XML, and JSON artifacts are stored under coverage/backend/ so you can inspect hot spots locally or from CI artifacts.

Frontend

Run the Vitest coverage suite to analyze widget hot spots:

npm run test:coverage

Documentation

  • metadata.json Schema Documentation — Complete reference for the .metadata.json sidecar file format, including all fields, types, and examples for LoRA, Checkpoint, and Embedding models.

Contributing

Thank you for your interest in contributing to ComfyUI LoRA Manager! As this project is currently in its early stages and undergoing rapid development and refactoring, we are temporarily not accepting pull requests.

However, your feedback and ideas are extremely valuable to us:

  • Please feel free to open issues for any bugs you encounter
  • Submit feature requests through GitHub issues
  • Share your suggestions for improvements

We appreciate your understanding and look forward to potentially accepting code contributions once the project architecture stabilizes.


Credits

This project has been inspired by and benefited from other excellent ComfyUI extensions:


Support

If you find this project helpful, consider supporting its development:

ko-fi

Patreon

WeChat: Click to view QR code

💬 Community

Join our Discord community for support, discussions, and updates: Discord Server


Star History

Star History Chart

Description
LoRA Manager for ComfyUI - A powerful extension for organizing, previewing, and integrating LoRA models with metadata and workflow support.
Readme GPL-3.0 78 MiB
Languages
Python 49.6%
JavaScript 38.2%
CSS 5.1%
HTML 3.1%
Vue 2.3%
Other 1.7%