Skip to main content

A tool for batch updating WebUI1111 Extensions & ComfyUI Nodes

Project description

FFup - 🚀 Snapshot Batch Updater for WebUI 1111 Extensions & ComfyUI Nodes

60% Works

Python Version Repo Size Last Commit Open Issues Closed Issues Pull Requests Stars Coffee Level Stress Level

🚫 Tired of breaking your UI due to an inc ompatible 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:

  1. 🔄 Smooth Updates: FFup keeps your bleeding edge dev system envirement up-to-date with the rapid evolution of nodes and extensions.
  2. 🛡 Safety First: Updates can sometimes cause hiccups. With FFup's recovery snapshots, you can easily roll back to a stable state in seconds.
  3. 💼 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.

Screenshot_301

Overview

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.

Features:

  • 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 FFup-summary.txt.
  • 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:

  1. Position Yourself Right: Ensure you're in the base directory of the UI you're looking to update.

  2. Grab the Code: Clone the FFup repository with:

    git clone https://github.com/1e-2/FFup
    
  3. Run & Update: Dive into the directory and choose your mode of operation:

    • For the comprehensive FFup experience with backup options:

      python FFup.py
      

      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.

Installation

From PyPI

You'll be able to easily install FFup via pip:

pip install FFup

USAGE

🛠 Normal mode Operations: Taking Control with FFup

Step into the FFup World:

  1. Navigate to Your Desired Base Directory: This should be where your main root directory of the UI reside.

  2. "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 Extensions or 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 FFup-recovery[timestamp].txt.

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.

Navigational Aids:

For those moments when you're contemplating your next move or want to bow out gracefully:

  • Opt for 0 - and you'll be ushered back to the previous menu.
  • Choose 00 - and FFup will take a bow, exiting the stage (application).

Screenshot_300

⚠️ 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:

  1. Experienced users familiar with manual recovery.
  2. 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:

FFup --fast

Screenshot_294 Screenshot_302

⚠️ 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 pull on individual extensions, ensuring transparency and reliability.

Contributing

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!

License

This project is licensed under the MIT License. See LICENSE for details.

Author

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 di@ffusion.ai for any inquiries or support.

🌌 Find us on:

🔐 Security powered by Comodo.BG & Preasidium.CX

🚀 Marketing by Гугъл.com

📩 Email

🌍 Sofia Istanbul London

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

FFup-0.1.0.tar.gz (27.3 kB view hashes)

Uploaded Source

Built Distribution

FFup-0.1.0-py3-none-any.whl (21.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page