comfyui-cyclist
Custom nodes for ComfyUI. It's for handling generation results in cycles!
Profil du package
- Statut
- Vérifié
- Éditeur
- @Pos13
- Source
- GitHub
LIREMOI
Cyclist :bicyclist:
ComfyUI already has an option to infinitely repeat a workflow. This extension adds an ability to reuse generated results to cycle over them again and again. With this tool, you can automate whatever iterative loop action you have in mind: building grids, animating frame-by-frame, changing conditions every step, etc.
[!WARNING] This repository is archived, because I am not going to support it. The extension probably still works on your version of ComfyUI, at least partially.
General Usage
- Put a loading node where you want to provide a result from previous run.
- Optionally, connect a fallback input in case nothing is there to load yet (usually, at first iteration).
- Put a saving node in the end of your workflow.
- Put an Interrupt node if you want to stop generation when certain conditions are met.
- Done! Press "Queue Prompt". And again. And again, maybe.
- Optionally, check "Extra options" and "Auto Queue" checkboxes to let ComfyUI infinitely repeat a workflow by itself.[^1]
- If you want to start a loop from scratch, press the "New Cycle" button introduced in this workflow. It will increment all filenames and loop IDs, if it can.[^2]. Alternatively, use Loop Manager to do this automatically.
Screenshot of ComfyUI options with "New Cycle" button.
[!WARNING] Check Known Issues at the bottom of this page to learn about non-obvious behaviour.
Installation
Option 1: Use ComfyUI Manager.
Option 2:
- Install git
- Navigate to your
/ComfyUI/custom_nodes/folder - Run
git clone https://github.com/Pos13/comfyui-cyclist/console command in it
Nodes and example workflows
Loop Manager: Simply provides a string. This string — loop_id — can be used as a name of a variable to put into memory, or as a filename. If the "increment" value is set on "by_interrupt_node", loop_id will automatically change when Interrupt node procs, to prevent overriding end result. If the "increment" value is set on "on_any_interrupt", loop_id will change in the same situation, plus when you manually cancel queue. Useful to skip failures.
Loop Manager
Memorize Int/Float/String: These simple nodes save something in memory. Information is lost if you restart ComfyUI. Variables are exclusive to provided loop ID. You can store exactly one Int, one Float, one String and one Conditioning for every loop ID. Change ID to save a new variable of this type.
Recall Int/Float/String: These nodes are for loading information from memory. If nothing is there, fallback input is used instead. Fallback is optional. Example:
Every time an image is generated, it gets a score made by Image Reward Score node. Score is saved by Memorize Float node. Next gen, it's loaded and compared to user-provided target score. If greater, process is stopped.
Workflow to generate Image until it gets a high score
Convert To: Takes any input and tries to output an int, float, boolean and string representation of it. Boolean and string can always be cast into, but incorrect int or float will raise an error.
Compare Anything: Takes two inputs of any kinds and a compare operation. Outputs True or False boolean value.
- Integers are compared as usual.
- Floats are compared with 1-09 is precision.
- Strings are compared alphabetically.
- Images and latents are compa
Nœuds dans ce pack
Nœuds 22
Nœuds dans ce pack
Nœuds 22- CyclistCompare
- CyclistMathFloat
- CyclistMathInt
- CyclistTimer
- CyclistTimerStop
- CyclistTypeCast
- Interrupt
- LoopManager
- MemorizeConditioning
- MemorizeFloat
- MemorizeInt
- MemorizeString
- OverrideImage
- OverrideLatent
- OverrideModel
- RecallConditioning
- RecallFloat
- RecallInt
- RecallString
- ReloadImage
- ReloadLatent
- ReloadModel
Ressources connexes
4 connexions
Ressources connexes
4 connexionsSources
2 sources
Sources
2 sourcesVérifié 16 oct.
Extraits de sources
1 extrait
Extraits de sources
1 extraitSource context: Repo Pos13/comfyui-cyclist
