Translated Readme (using DeepTranslate, PRs are welcome):
日本語による説明
中文说明
There is now a dedicated #mtb-nodes
channel on the Banodoco discord:
Welcome to the MTB Nodes project! This codebase is open for you to explore and utilize as you wish. Its primary purpose is to build proof-of-concepts (POCs) for implementation in MLOPs. Many nodes in this project are inspired by existing community contributions or built-in functionalities.
Before proceeding, please be aware of the licenses associated with certain libraries used in this project. For example, the deepbump
library is licensed under GPLv3.
mtb add a few widgets like COLOR
![color widget preview](https://private-user-images.githubusercontent.com/7041726/249779167-cff7e66a-4cc4-4866-b35b-10af0bb2d110.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NDgyODUsIm5iZiI6MTcyNDY0Nzk4NSwicGF0aCI6Ii83MDQxNzI2LzI0OTc3OTE2Ny1jZmY3ZTY2YS00Y2M0LTQ4NjYtYjM1Yi0xMGFmMGJiMmQxMTAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDQ1MzA1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTdkOTFkM2FiNThhYzMwODA0YzM3NjcwYTRhNmFkNmIwMWZlNjE1YTYzMzc0ODFhY2Y2MzgzNWVhOTA0YWM0ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.g-DmgLfhDFr9igTf33UpLBtwhOTbH00iatRXNlQdQ_U)
A few nodes have the concept of "dynamic" inputs:
-
Animation Builder
: Convenient way to manage basic animation maths at the core of many of my workflows (both worflows for the following GIFs are in the examples)Example lerping two conditions (blue car -> yellow car)
Example using image transforms a feedback for a fake deforum effect
-
Batch Float
: Generates a batch of float values with interpolation. -
Batch Shape
: Generates a batch of 2D shapes with optional shading (experimental). -
Batch Transform
: Transform a batch of images using a batch of keyframes.
-
Export With Ffmpeg
: Export with FFmpeg, it used to be export to Proress and is still tailored for YUV -
Fit Number
: Fit the input float using a source and target range, you can also control the interpolation curve from a list of presets (default to linear)
Bounding Box
: BBox constructor (custom type),BBox From Mask
: From a mask extract the bounding boxCrop
: Crop image from BBoxUncrop
: Uncrop image from BBox
Colored Image
: Constant color image of given sizeRGB to HSV
: -,HSV to RGB
: -,Color Correct
: Basic color correction tools
Blur
: Blur an image using a Gaussian filter.Deglaze Image
: taken from FN16,Denoise
: Denoise the input image,Image Compare
: Compare two images and return a difference imageImage Premultiply
: Premultiply image with maskImage Remove Background Rembg
: RemBG powered background removal.
Image Resize Factor
: Extracted mostly from WAS Node Suite, with a few edits (most notably multiple image support) and less features.Mask To Image
: Converts a mask (alpha) to an RGB image with a color and backgroundSave Image Grid
: Save all the images in the input batch as a grid of images.
Latent Lerp
: Linear interpolation (blend) between two latent
Model Patch Seamless
: Use the seamless diffusion "hack" to patch any model to infere seamless images, check the examples to see how to use all those textures node together
DeepBump
: Normal & height maps generation from single pictures
Image Tile Offset
: Mimics an old photoshop technique to check for seamless textures by offsetting tiles of the image.
Any To String
: Tries to take any input and convert it to a string.Concat Images
: Takes two image stream and merge them as a batch of images supported by other Comfy pipelines.Image Resize Factor
: Deprecated, I since discovered the builtin image resize.Text To Image
: Utils to convert text to image using a fontStyles Loader
: Load csv files and populate a dropdown from the rows (à la A111)
Smart Step
: A very basic node to get step percent to use in KSampler advanced,Qr Code
: Basic QR Code generatorSave Tensors
: Debug node that will probably be removed in the futureInt to Number
: Supplement for WASSuite number nodesSmart Step
: A very basic tool to control the steps (start/stop) of theKAdvancedSampler
using percentageLoad Image From Url
: Load an image from the given URL
These nodes are still bundled in mtb, but moving forward (>0.2.0) they won't be setup by the install script and their dependencies won't install either. The reason is mostly that they all have a better alternatives available and tensorflow on windows was not a fun experience and since Python 3.11 not an experience at all.
For linux and mac users though these nodes didn't cause any issue and I personally still use them, these are the extra requirements needed:
.venv/python -m pip install tensorflow facexlib insightface basicsr
Warning Those nodes were among the first to be implemented they do work, but on windows the installation is still not properly handled for everyone
As alternatives you can use reactor for face swap and facerestore for restoration
You can check this video for a tutorial by Ferniclestix using these alternatives
Face Swap
: Face swap using deepinsight/insightface models (this node used to be calledRoop
in early versions, it does the same, roop is just an app that uses those model)
Load Face Swap Model
: Load an insightface model for face swappingRestore Face
: Using GFPGan to restore faces, works great in conjunction withFace Swap
and supports Comfy native upscalers for thebg_upscaler
Warning The FILM nodes will be deprecated at some point after 0.2.0, Fannovel16's interpolation nodes implement it and they rely on a pytorch implementation of FILM which solves the issues related to the ones included in mtb. They will probably remain available if your system meet the requirements and ignored otherwise.
Why?
Windows only issue: This requires tensorflow-gpu that is unfortunately not a thing anymore on Windows since 2.10.1 (unless you use a complex WSL passthrough setup but it's still not "Windows")
Using this old version is quite clunky and require some patching that install.py does automatically, but the main issue is that no wheels are available for python > 3.10 Comfy-nightly is already using Python 11 so installing this old tf version won't work there.
You can in any case install the normal up to date tensorflow but that will run on CPU and is much MUCH slower for FILM inference.
Load Film Model
: Loads a FILM modelFilm Interpolation
: Process input frames using FILM
Export to Prores (experimental)
: Exports the input frames to a ProRes 4444 mov file. This is using ffmpeg stdin to send raw numpy arrays, used withFilm Interpolation
and very simple for now but could be expanded upon.
Misc
- Slick ComfyUI by NoCrypt: A colab notebook with batteries included!
Guides:
-
ComfyUI Community Manual (eng) by @BlenderNeko
-
Tomoaki's personal Wiki (jap) by @tjhayasaka
Extensions and Custom Nodes:
-
Plugins for Comfy List (eng) by @WASasquatch