Files
Bjornulf_custom_nodes/README.md
justumen c835c5413f ...
2024-08-12 21:55:40 +02:00

222 lines
9.3 KiB
Markdown

# 🔗 Comfyui : Bjornulf_custom_nodes v0.11 🔗
# Dependencies
- `pip install ollama` (you can also install ollama if you want : https://ollama.com/download) - You don't need to really install it if you don't want to use my ollama node. (BUT you need to run `pip install ollama`)
# 📝 Changelog
- **v0.2**: Improve ollama node with system prompt + model selection.
- **v0.3**: Add a new node : Save image to a chosen folder.
- **v0.3**: Add comfyui Metadata / workflow to all my image-related nodes.
- **v0.4**: Support transparency option with webm format, options encoders. As well as input for audio stream.
- **v0.5**: New node : Remove image transparency (alpha) - Fill alpha channel with solid color.
- **v0.5**: New node : Image to grayscale (black & white) - Convert an image to grayscale.
- **v0.6**: New node : Combine images (Background + Overlay) - Combine two images into a single image.
- **v0.7**: Replace Save API node with Save Bjornulf Lobechat node. (For my custom lobe-chat)
- **v0.8**: Combine images : add an option to put image top, bottom or center.
- **v0.8**: Combine texts : add option for slashes /
- **v0.8**: Add basic node to transform greenscreen in to transparency.
- **v0.9**: Add a new node : Return one random line from input.
- **v0.10**: Add a new node : Loop (All Lines from input) - Iterate over all lines from an input text.
- **v0.11**: Add a new node : Text with random Seed - Generate a random seed, along with text.
# 📝 Nodes descriptions
## 1/2 - 👁 + ✒ Show/Write Text
![Show Text](screenshots/write+show_text.png)
**Description:**
Two simple nodes to write and show text.
Write node is a textarea where you can write your text.
The show text node will only display the text. (That's why I made it a different color : green, uneditable, display only.)
## 3 - 🔗 Combine Texts
![Combine Texts](screenshots/combine_texts.png)
**Description:**
Combine multiple text inputs into a single output. (can have separation with : comma, space, new line.)
## 4 - 🎲 Random Text
![Random Text](screenshots/random_text.png)
**Description:**
Generate and display random text from a predefined list. Great for creating random prompts.
## 5 - ♻ Loop
![Loop](screenshots/loop.png)
**Description:**
General-purpose loop node.
## 6 - ♻ Loop Texts
![Loop Texts](screenshots/loop_texts.png)
**Description:**
Cycle through a list of text inputs. Great for creating dynamic text-based presentations.
## 7 - ♻ Loop Integer
![Loop Integer](screenshots/loop_integer.png)
![Loop Int + Show Text](screenshots/loop_int+show_text.png)
**Description:**
Iterate through a range of integer values, good for `steps` in ksampler, etc...
❗ Don't forget that you can convert ksampler widgets to input by right-clicking the ksampler node :
![Widget to Input](screenshots/widget-to-input.png)
## 8 - ♻ Loop Float
![Loop Float](screenshots/loop_float.png)
![Loop Float + Show Text](screenshots/loop_float+show_text.png)
**Description:**
Loop through a range of floating-point numbers, good for `cfg`, `denoise`, etc...
## 10 - ♻ Loop All Samplers
![Loop All Samplers](screenshots/loop_all_samplers.png)
**Description:**
Iterate over all available samplers to apply them sequentially. Ideal for testing.
## 11 - ♻ Loop All Schedulers
![Loop All Schedulers](screenshots/loop_all_schedulers.png)
**Description:**
Iterate over all available schedulers to apply them sequentially. Ideal for testing.
## 12 - ♻ Loop Combos
![Loop Combos](screenshots/loop_combos.png)
**Description:**
Generate a loop from a list of my own custom combinations (scheduler+sampler), or select one combo manually.
Good for testing.
## 13/14 - 📏 + 🖼 Resize and Save Exact name ⚠️💣
![Resize and Save Exact](screenshots/resize_save_exact.png)
**Description:**
Resize an image to exact dimensions. The other node will save the image to the exact path.
⚠️💣 Warning : The image will be overwritten if it already exists.
## 15 - 💾 Save Text
![Save Text](screenshots/save_text.png)
**Description:**
Save the given text input to a file. Useful for logging and storing text data.
## 16 - 🖼💬 Save image for Bjornulf LobeChat (❗For my custom [lobe-chat](https://github.com/justUmen/Bjornulf_lobe-chat)❗)
![Save Bjornulf Lobechat](screenshots/save_bjornulf_lobechat.png)
**Description:**
❓ I made that node for my custom lobe-chat to send+receive images from Comfyui API : [lobe-chat](https://github.com/justUmen/Bjornulf_lobe-chat)
It will save the image in the folder `output/BJORNULF_LOBECHAT/`.
The name will start at `api_00001.png`, then `api_00002.png`, etc...
It will also create a link to the last generated image at the location `output/BJORNULF_API_LAST_IMAGE.png`.
This link will be used by my custom lobe-chat to copy the image inside the lobe-chat project.
## 17 - 🖼 Save image as `tmp_api.png` Temporary API ⚠️💣
![Save Temporary API](screenshots/save_tmp_api.png)
**Description:**
Save image for short-term use : ./output/tmp_api.png ⚠️💣
## 18 - 🖼📁 Save image to a chosen folder name
![Save Temporary API](screenshots/save_image_to_folder.png)
**Description:**
Save image in a specific folder : `my_folder/00001.png`, `my_folder/00002.png`, etc...
Also allow multiple nested folders, like for example : `animal/dog/small`.
## 19 - 🦙 Ollama
![Show Text](screenshots/ollama.png)
**Description:**
Will generate detailed text based of what you give it.
I recommend using `mistral-nemo` if you can run it, but it's up to you. (Might have to tweak the system prompt a bit)
⚠️ Warning : Having an ollama node that will run for each generation might be a bit heavy on your VRAM. Think about if you really need it or not.
**Description:**
Straight forward node to write and show text.
## 20 - 📹 Video Ping Pong
![Video Ping Pong](screenshots/video_pingpong.png)
**Description:**
Create a ping-pong effect from a list of images (from a video) by reversing the playback direction when reaching the last frame. Good for an "infinity loop" effect.
## 21 - 📹 Images to Video
![Images to Video](screenshots/imgs2video.png)
**Description:**
Combine a sequence of images into a video file.
❓ I made this node because it supports transparency with webm format. (Needed for rembg)
Temporary images are stored in the folder `ComfyUI/temp_images_imgs2video/` as well as the wav audio file.
## 22 - 🔲 Remove image Transparency (alpha)
![Remove Alpha](screenshots/remove_alpha.png)
**Description:**
Remove transparency from an image by filling the alpha channel with a solid color. (black, white or greenscreen)
Of course it takes in an image with transparency, like from rembg nodes.
Necessary for some nodes that don't support transparency.
## 23 - 🔲 Image to grayscale (black & white)
![Image to Grayscale](screenshots/grayscale.png)
**Description:**
Convert an image to grayscale (black & white)
Example : I sometimes use it with Ipadapter to disable color influence.
But you can sometimes also want a black and white image...
## 24 - 🖼+🖼 Combine images (Background + Overlay)
![Combine Images](screenshots/combine_background_overlay.png)
**Description:**
Combine two images into a single image : a background and one (or several) transparent overlay. (allow for video frames.)
Update 0.8 : Also have a option to put image top, bottom or center.
❗ Warning : For now, `background` is a static image. (I will allow video there later too.)
## 25 - 🟩➜▢ Green Screen to Transparency
![Greenscreen to Transparency](screenshots/greeenscreen_to_transparency.png)
**Description:**
Transform greenscreen into transparency.
Need clean greenscreen ofc. (Can adjust threshold but very basic node.)
## 26 - 🎲 Random line from input
![Random line from input](screenshots/random_line_from_input.png)
**Description:**
Take a random line from an input text. (When using multiple "Write Text" nodes is annoying for example, you can use that and just copy/paste a list from outside.)
## 27 - ♻ Loop (All Lines from input)
![Loop input](screenshots/loop_all_lines.png)
**Description:**
Iterate over all lines from an input text. (Good for testing multiple lines of text.)
## 28 - 🔢 Text with random Seed
**Description:**
❗ This node is used to force to generate a random seed, along with text.
But what does that mean ???
When you use a loop, the loop will use the same seed for each iteration. (That is the point, it will keep the same seed to compare results.)
Simple example without using random seed node :
![Text with random Seed 1](screenshots/random_seed_1.png)
But even with `randomize`, it is still keep the same seed for every loop, it will change it only when the workflow to be done.
So if you want to force using another seed for each iteration, you can use this node in the middle.
For example, if you want to generate a different image every time. (aka : You use loop nodes not to compare or test results but to generate multiple images.)
Use it like that for example :
![Text with random Seed 2](screenshots/random_seed_2.png)
Here is an example of FLUX with different prompt (hood/helmet) but same seed :
![Text with random Seed 3](screenshots/random_seed_3_flux.png)
Here is an example of SDXL with different prompt (blue/red) but same seed :
![Text with random Seed 4](screenshots/random_seed_4_sdxl.png)