pip install FFuP
from 1111 or ComfyUI folder
that's it 🤟 🥃
2-3KB back up of all git hashes if you have to revert back.
ComfyUI_windows_portable_nightly_pytorch>FFuP ComfyUI folder found... Select an option: 1. Check for updates 2. Create recovery snapshot 3. Restore from snapshot 00. Exit Enter choice (1/2/3/00): I:\StableD\stable-diffusion-webui>FFuP Detecting UI... Automatic 1111 found! Select an option: 1. Check for updates 2. Create recovery snapshot 3. Restore from snapshot 00. Exit Enter choice (1/2/3/00): 1 Checking for updates |████████████████████████████████████████| 100.0% Complete Repositories that can be updated: Name of git: sd-dynamic-thresholding Current commit: fa12a88ea071d83c654a2bc67c05fef5c5f3bb0f Can be updated to: 55ca687fb8f23044666414b7478fd52a8ec85a55 ****** Name of git: sd-webui-segment-anything Current commit: 780fc495b47df3bd03ff62dffcd49d81abae9fa5 Can be updated to: c555c6d9c4e1d14b018e4d2a92acd47765536585 ****** Name of git: sdweb-merge-board Current commit: c4eeb1607b84dc3149b39eec16f20a84c7108beb Can be updated to: 0588202deeb11ea48693d5374be3ef76911f826e ****** Name of git: stable-diffusion-webui-model-toolkit Current commit: 4d8fea77dba5643439691c1c6b003db4d330ff0b Can be updated to: cf824587d11e7362ea35248489b0451f6c54463d ****** 4 objects can be updated. Proceed? Y/N: Update Summary: Updated Repositories: 4 Repositories Already Up-to-Date: 28 Auto Recovery file created. (Space wasted for recovery: 2KB) To revert changes use FFup-recoveryLAST.txt Results saved at FFup-summary.txt Select an option: 1. Check for updates 2. Create recovery snapshot 3. Restore from snapshot 00. Exit Enter choice (1/2/3/00): 3 1. FFup-recoveryLAST.txt 0 - go back to the previous menu 00 - Exit
FFup - 🚀 Snapshot Batch Updater for WebUI 1111 Extensions & ComfyUI Nodes
🚫 Tired of breaking your UI due to an incompatible extension? 🔍 Seeking an efficient way to keep your WebUI1111 Extensions & ComfyUI Nodes updated with last min gits? 🔄
Meet FFup - Your go-to solution! 🤟 🥃
FFup is an unofficial simple batch updater crafted to handle easaly the last working git hashes of the extensions. Not only does it streamline the update process, but it also prioritizes safety. Before making any changes, FFup diligently creates recovery snapshots, ensuring you always have a way back.
🔑 Key Benefits:
🔄 Smooth Updates: FFup keeps your bleeding edge dev system envirement up-to-date with the rapid evolution of nodes and extensions.
🛡 Safety First: Updates can sometimes cause hiccups. With FFup's recovery snapshots, you can easily roll back to a stable state in seconds.
💼 Developer-Friendly: Designed for development environments, FFup ensures you're always equipped with the latest tools without the risk of breaking your setup.
Note: Before updating, ensure the UI isn't actively using the folders. This guarantees a seamless git pull for each repository.
FFup is a Python tool crafted for batch updating the extensions for AUTOMATIC1111 WebUI and the custom nodes for ComfyUI. But that's not all; it offers a safety net allowing you to easily revert to previous versions in case the new updates break your GUI.
Batch Update: Check and pull updates for all the installed repositories in one go.
Recovery Snapshots: Before any major action, FFup creates a few kb in size snapshot, ensuring you have a safety net.
Easy Restoration: The devs made a mistake and crashed your UI? No problem! You can easily revert to a previous state using FFup option 2.
Detailed Reports: Always stay informed. After every operation, FFup provides a detailed report, saved as
Quick Modes: For developers or those in a hurry, quick batch and bash scripts are available for swift updates without backups.
Quick Start: No Installation Needed 🚀
You don't necessarily have to perform a full installation to enjoy the power of FFup. Here's a hassle-free way to get started:
Position Yourself Right: Ensure you're in the base directory of the UI you're looking to update.
Grab the Code: Clone the FFup repository with:
git clone https://github.com/1e-2/FFup
Run & Update: Dive into the directory and choose your mode of operation:
For the comprehensive FFup experience with backup options:
or use the provided batch/shell scripts for the full version:
./FFup.bat # On Windows ./FFup.sh # On Linux/Mac
For the speedsters who want a quick update (performing git pull on all extensions/nodes) without backups:
./FFquickUpdate.bat # On Windows
📌 Note: The quick update method is swift, but doesn't create backup snapshots. Use it if you're confident or if you're in a test environment.
You'll be able to easily install
FFup via pip:
pip install FFup
🛠 Normal mode Operations: Taking Control with FFup
Step into the FFup World:
Navigate to Your Desired Base Directory: This should be where your main root directory of the UI reside.
"Unleash" FFup: By just typing FFup will launching the script, FFup jumps into action. It has an innate ability to detect which interface you're operating on - be it the
AUTOMATIC1111 WebUI Extensionsor the
ComfyUI Custom Nodes.
cd R:\autoKOR\stable-diffusion-webui FFup
cd R:\ComfyUI FFup
If, for some reason, it feels lost (can't auto-detect the UI), don't fret! It'll politely ask you for the correct path.
Now, let's explore what FFup lays on the table:
1. Check for updates:
Imagine having a personal assistant that keeps tabs on all your extensions or nodes. That's exactly what this option offers! FFup meticulously checks the current git hashes of your extensions/nodes and juxtaposes them with the latest available on their respective remote repositories.
You're then presented with a neat summary that provides insights into:
Repositories raring to be updated.
A comparison of the current commit vs. the newest kid on the block (latest commit).
But wait, there's more! If updates beckon, FFup ensures it doesn't take any step without your green signal. On receiving your thumbs up:
It becomes your safety net by creating an auto-recovery snapshot, aptly named
FFup-recoveryLAST.txt, solely for those extensions/nodes in the updating queue.
Riding on this safety cushion, it confidently updates the repositories.
The cherry on top? Post the update action, it crafts a detailed summary report named
FFup-summary.txt, showcasing the updates and any repositories that were already in their prime (up-to-date).
2. Create recovery snapshot:
Think of this as your time machine! This option empowers you to manually snapshot the current state of all your extensions/nodes. In essence, you're capturing a moment in their timeline. These memories are preserved as
3. Restore from snapshot:
Ever wished to turn back time? Here's your chance! If a need arises to revert to a cherished previous state:
FFup showcases all the recovery snapshots you've accumulated over time.
It's your turn to pick a memory.
Upon selection, FFup painstakingly ensures each extension/node reverts to the exact git hash immortalized in that snapshot.
For those moments when you're contemplating your next move or want to bow out gracefully:
0- and you'll be ushered back to the previous menu.
00- and FFup will take a bow, exiting the stage (application).
⚠️ Quick Update Mode: For Developers
FFup's quick update mode is designed specifically for developers who require a rapid update mechanism. This mode directly updates all repositories without creating any recovery snapshots.
Warning: Using the quick update mode comes with risks:
🚫 No Recovery Snapshots: Unlike the standard mode, this mode does not create any recovery snapshots before updating. If a new update causes issues, there's no automated way to revert back.
⚠️ Potential for Breakage: New extensions or updates might introduce incompatibilities or break the WebUI.
Given these risks, this mode is best suited for:
Experienced users familiar with manual recovery.
Environments where potential breakage is acceptable or expected.
For most users, it's recommended to use FFup's default mode which provides safety mechanisms like recovery snapshots.
How to Use Quick Update Mode:
Navigate to the desired directory and run:
⚠️ Caution: The quick scripts bypass the recovery snapshot creation. They're designed for swift 0-day updates in development environments where backups aren't crucial.
Remember, FFup's is about precision. Instead of bulky folder backups, FFup uses git hashes, ensuring recovery is quick to the previous hash that worked with your instalation, precise, and space-efficient. It's modern recovery for modern interfaces!
🚫 Important Considerations:
📌 Seamless Pull ≠ Flawless Extension: While FFup ensures a seamless git pull for each repository, this doesn't guarantee that the latest version of an extension will work flawlessly. If a developer pushes a version with bugs or issues, you might encounter them.
⏮ Reverting: In cases where an update causes issues, you can effortlessly revert back to a previous, stable state using the snapshots created by FFup. Alternatively, you can wait for the extension developer to push a fix.
🛡 Liability: Please understand that while we aim to provide a tool that facilitates ease and safety, we cannot be held responsible for any unforeseen issues or conflicts that may arise from using FFup. The script is shared "as is" and is intended for edge-case development environments where users are testing the latest nodes and extensions.
💼 No Unintended Alterations: FFup respects the integrity of your setup. It doesn't modify, change, or interfere with your UI's virtual environment or any other environments. All updates are strictly performed using
git pullon individual extensions, ensuring transparency and reliability.
Feel free to fork the repository, make changes, and open a pull request. All contributions are welcome!
🥃 to a ~seamless updating experience! 🚀
P.S. This README was crafted with a dash of humor and a sprinkle of tech by... 🤖. If you found any typos, blame the humans!
This project is licensed under the MIT License. See LICENSE for details.
And as always, keep updating and stay comfy!
🌐 Contact Information
The FFusion.ai project is proudly maintained by Source Code Bulgaria Ltd & Black Swan Technologies.
📧 Reach us at [email protected] for any inquiries or support.
🌌 Find us on:
🚀 Marketing by Гугъл.com
🌍 Sofia Istanbul London