Giter Club home page Giter Club logo

comfyui-custom-nodes's Introduction

Custom nodes for ComfyUI.

Disclaimer

Please note that this repository is now archived and will no longer be maintained or updated.
IF has a lot of issues and I'm no longer interested in dealing with it. Most of the other nodes have either already been added to ComfyUI in some form or exist somewhere else. I will move the aesthetic nodes to a separate repository at some point.

Installation

Clone the repository to custom_nodes in your ComfyUI directory:

git clone https://github.com/Zuellni/ComfyUI-Custom-Nodes custom_nodes\Zuellni

A config.json file will be created on first run in the extension's directory.
Requirements should be installed automatically but if that doesn't happen you can install them with:

pip install -r custom_nodes\Zuellni\requirements.txt

You can skip the installation if you don't wish to use the IF nodes.
Run ComfyUI once, wait till the config file gets created, then quit and set IF to false under Load Nodes in config.json.

To enable automatic updates set Update Repository to true in the config. You can also update with:

git -C custom_nodes\Zuellni pull

Aesthetic Nodes

Name Description
Aesthetic Loader Loads models for use with Aesthetic Select.
Aesthetic Select Returns count best tensors based on aesthetic/style/waifu/age classifiers. If no models are selected then acts like LatentFromBatch and returns a single tensor with 1-based index. Setting count to 0 stops processing for connected nodes.

IF Nodes

A poor man's implementation of DeepFloyd IF. Models will be downloaded automatically, but you will have to agree to the terms of use on the site, create an access token, and log in with it.

Name Description
IF Load Loads models for use with other IF nodes. Device can be used to move the models to specific devices, eg cpu, cuda, cuda:0, cuda:1. Leaving it empty enables offloading.
IF Encode Encodes prompts for use with IF Stage I and IF Stage II.
IF Stage I Takes the prompt embeds from IF Encode and returns images which can be used with IF Stage II or other nodes.
IF Stage II As above, but also takes Stage I or other images and upscales them x4.
IF Stage III Upscales Stage II or other images using Stable Diffusion x4 upscaler. Doesn't work with IF Encoder embeds, has its own encoder accepting string prompts instead. Setting tile_size allows for upscaling larger images than normally possible.

Image Nodes

Name Description
Image Batch Loads all images in a specified directory, including animated gifs, as a batch. The images will be cropped/resized if their dimensions aren't equal.
Image Saver Saves images without metadata in a specified directory. Allows saving a batch of images as a grid or animated gif as well.

Multi Nodes

Nodes that work with multiple types of tensors - images, latents, and masks.

Name Description
Multi Crop Center crops/pads tensors to specified dimensions.
Multi Noise Adds random noise to tensors.
Multi Repeat Allows for repeating tensors batch_size times.
Multi Resize Similar to LatentUpscale but uses scale instead of width/height to resize tensors.

Text Nodes

Experimental nodes utilizing text-generation-webui to generate and manipulate prompts. Webui needs to be running with --api and a preloaded model since it's not possible to change it through the API currently.

Example startup command for WizardLM:

python server.py --api --model llama-7b-4bit-128g-wizard
Name Description
Text Loader Used as initializer for Text Prompt so you don't have to specify the same params multiple times. Set your API endpoint with api, instruction template for your loaded model with template (might not be necessary), and the character used to generate prompts with character (format depends on your needs).
Text Prompt Queries the API with params from Text Loader and returns a string you can use as input for other nodes like CLIP Text Encode.
Text Condition Returns input tensors and true if variables match some condition, false otherwise. Will interrupt the generation if condition is not met and interrupt set to true.
Text Format Joins input string with multiple variables and returns a single output string. Specifying var_1-5 somewhere in the input field will replace it with said variable's value.
Text Print Prints string input to console for debugging purposes (or just to see what sort of prompt your LLM came up with).

comfyui-custom-nodes's People

Contributors

zuellni avatar nikolai2038 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.