Extensions/Kinburg-Nodes
ComfyUI Extension

Kinburg-Nodes

My nodes for ComfyUI

By KinburgΒ·Created 2 months agoΒ·Updated 3 days agoΒ· 1
Kinburg/Kinburg-Nodes
Nodes95
On cloudLocal install
CategoryKinburg-Nodes/util, Kinburg-Nodes/LLM/presets
Stars1
Updated3 days ago

Nodes (95)

Any to String
Kinburg-Nodes/util
Card Presets
Kinburg-Nodes/LLM/presets
Card Save
Kinburg-Nodes/LLM/presets
Character Card
Kinburg-Nodes/LLM/context
Color Caption
Kinburg-Nodes/image/compare
Color Picker

Pick a color once, get HEX, RGB, RGBA and alpha out

Kinburg-Nodes/util
Combo to String
Kinburg-Nodes/util
Context Collector
Kinburg-Nodes/LLM/context
Criteria Builder πŸ“‹
Kinburg-Nodes/LLM/presets
Collage
Kinburg-Nodes/image
Entity Card
Kinburg-Nodes/LLM/context
Generation Info
Kinburg-Nodes/util
Generation Info Filter
Kinburg-Nodes/util
Get Accumulator (audio)
Kinburg-Nodes/flow/accumulators
Get Accumulator (captions)
Kinburg-Nodes/flow/accumulators
Get Accumulator (gen info)
Kinburg-Nodes/flow/accumulators
Get Accumulator (images)
Kinburg-Nodes/flow/accumulators
Get Accumulator (images list)
Kinburg-Nodes/flow/accumulators
Get Accumulator (prompts)
Kinburg-Nodes/flow/accumulators
Get Accumulator (texts)
Kinburg-Nodes/flow/accumulators
Grammar Presets
Kinburg-Nodes/LLM/presets
Image Batch Insert
Kinburg-Nodes/image
Image Batch Remove

Drop one image from a batch by index

Kinburg-Nodes/image
Image Compare (HTML)
Kinburg-Nodes/image/compare
Any Switch
Kinburg-Nodes/util
Audio SR (48 kHz Upscale) πŸ”Š
Kinburg-Nodes/audio
Chimera (Multi-Sampler) 🦁
Kinburg-Nodes/Bestiary/Chimera
Context Sizer (GGUF)
Kinburg-Nodes/LLM
Ouroboros Critic Settings 🐍
Kinburg-Nodes/Bestiary/Ouroboros
Date String
Kinburg-Nodes/util
Delay
Kinburg-Nodes/flow/loops
Morpheus Dream Board πŸŒ™
Kinburg-Nodes/Bestiary/Morpheus
For Each (Collect)
Kinburg-Nodes/flow/loops
For Each (Open)
Kinburg-Nodes/flow/loops
Get by Index
Kinburg-Nodes/flow/loops
Group Control 🎚️
Kinburg-Nodes/util
JSON Extract
Kinburg-Nodes/util
List Output
Kinburg-Nodes/flow/loops
Kinburg Live Log πŸ“œ
Kinburg-Nodes/LLM
LLM Live Log (old id)
Kinburg-Nodes/LLM
Model Capture πŸ“₯
Kinburg-Nodes/model
Model Select πŸŽ›
Kinburg-Nodes/model
Morpheus (Video Sampler) πŸŒ™
Kinburg-Nodes/Bestiary/Morpheus
Morpheus Dream πŸŒ™
Kinburg-Nodes/Bestiary/Morpheus
Morpheus Storyboard πŸŒ™
Kinburg-Nodes/Bestiary/Morpheus
Orpheus (Audio β†’ Shots) 🎢
Kinburg-Nodes/Bestiary/Orpheus
Ouroboros (Self-Correcting Sampler) 🐍
Kinburg-Nodes/Bestiary/Ouroboros
Ouroboros Live Log πŸπŸ“œ
Kinburg-Nodes/Bestiary/Ouroboros
Phantas 🎞
Kinburg-Nodes/Bestiary/Phantas
Phantas Storyboard 🎞
Kinburg-Nodes/Bestiary/Phantas
Repeat (Close)
Kinburg-Nodes/flow/loops
Repeat (Open)
Kinburg-Nodes/flow/loops
Sampler Settings
Kinburg-Nodes/Bestiary
Save Song
Kinburg-Nodes/audio
Send Image to Live Log πŸ“œ
Kinburg-Nodes/LLM
Settings Save πŸ’Ύ
Kinburg-Nodes/model
Settings Select βš™
Kinburg-Nodes/model
Show Text (Markdown)
Kinburg-Nodes/util
Siren Cast (Voice Plan) 🧜
Kinburg-Nodes/Bestiary/Siren
Siren Compare (Audio) 🧜
Kinburg-Nodes/Bestiary/Siren
Siren (Music Sampler) 🧜
Kinburg-Nodes/Bestiary/Siren
Siren Scope (Audio β†’ Image) 🧜
Kinburg-Nodes/Bestiary/Siren
Siren Score (Lyrics β†’ Plan) 🧜
Kinburg-Nodes/Bestiary/Siren
Siren Section (Audio Window) 🧜
Kinburg-Nodes/Bestiary/Siren
Song Tags
Kinburg-Nodes/audio
Text Transform
Kinburg-Nodes/util
Token Counter (GGUF)
Kinburg-Nodes/LLM
While (Close)
Kinburg-Nodes/flow/loops
While (Open)
Kinburg-Nodes/flow/loops
List Insert
Kinburg-Nodes/flow/list
List Remove
Kinburg-Nodes/flow/list
Local LLM Chat (GGUF)
Kinburg-Nodes/LLM
Send Image to Chat
Kinburg-Nodes/LLM
Local LLM (GGUF)
Kinburg-Nodes/LLM
Local LLM (server client, text)
Kinburg-Nodes/LLM
Local LLM Settings (GGUF)
Kinburg-Nodes/LLM
Vision Settings (GGUF)
Kinburg-Nodes/LLM
Lora Trigger Loader
Kinburg-Nodes/lora
Lora Unlim Accumulator
Kinburg-Nodes/lora
Prompt Presets
Kinburg-Nodes/prompt
Prompt Variations
Kinburg-Nodes/prompt
Safetensors -> GGUF (llama.cpp)
Kinburg-Nodes/LLM/GGUF
Diffusion Safetensors -> GGUF (city96)
Kinburg-Nodes/LLM/GGUF
Set Accumulator (audio)
Kinburg-Nodes/flow/accumulators
Set Accumulator (captions)
Kinburg-Nodes/flow/accumulators
Set Accumulator (gen info)
Kinburg-Nodes/flow/accumulators
Set Accumulator (images)
Kinburg-Nodes/flow/accumulators
Set Accumulator (prompts)
Kinburg-Nodes/flow/accumulators
Set Accumulator (texts)
Kinburg-Nodes/flow/accumulators
Start Timer
Kinburg-Nodes/util
Stop Timer
Kinburg-Nodes/util
Unlim Image Batch
Kinburg-Nodes/image
Unlim Image List
Kinburg-Nodes/image
Unlim Text Concat
Kinburg-Nodes/util
Vision LLM Judge
Kinburg-Nodes/LLM
Readme

🎨 Kinburg-Nodes

<!-- BEGIN GENERATED badges β€” tools/gen_readme_index.py -->

version nodes tests python license ComfyUI Manager

<!-- END GENERATED badges -->

A personal collection of custom ComfyUI nodes. One folder = one package: ComfyUI reads the node mappings from the root __init__.py, and the sets are split into subpackages.


<!-- BEGIN GENERATED index β€” tools/gen_readme_index.py -->

πŸ“ Node Index

All 95 nodes, grouped by the package they live in. Every package links to its full documentation under docs/.

🧠 LLM & Vision Systems

πŸ“– 🧠 LLM & Vision Systems

| Package | Nodes | |---|---| | local_llm/ β€” Local LLM (GGUF) & Live Logging | Context Sizer (GGUF), Kinburg Live Log πŸ“œ, LLM Live Log (old id), Local LLM (GGUF), Local LLM Chat (GGUF), Local LLM Settings (GGUF), Send Image to Chat, Send Image to Live Log πŸ“œ, Token Counter (GGUF), Vision Settings (GGUF) | | llm_server/ β€” Local LLM (server client, text) | Local LLM (server client, text) | | context/ β€” Character Card, Entity Card, Context Collector | Character Card, Context Collector, Entity Card | | vision_judge/ β€” Vision LLM Judge & Criteria Builder | Criteria Builder πŸ“‹, Vision LLM Judge | | card_presets/ β€” Card Save & Card Presets | Card Presets, Card Save | | grammar_presets/ β€” Grammar Presets | Grammar Presets | | show_text/ β€” Show Text (Markdown) | Show Text (Markdown) | | gguf_convert/ β€” Safetensors β†’ GGUF Converters | Diffusion Safetensors -> GGUF (city96), Safetensors -> GGUF (llama.cpp) |

🐍 Iterative Samplers & Optimizers

πŸ“– 🐍 Iterative Samplers & Optimizers

| Package | Nodes | |---|---| | ouroboros/ β€” Ouroboros (Self-Correcting Sampler) 🐍 | Ouroboros (Self-Correcting Sampler) 🐍, Ouroboros Critic Settings 🐍, Ouroboros Live Log πŸπŸ“œ, Sampler Settings | | chimera/ β€” Chimera (Multi-Sampler) 🦁 | Chimera (Multi-Sampler) 🦁 |

🎡 Audio & Music Suite

πŸ“– 🎡 Audio & Music Suite

| Package | Nodes | |---|---| | siren/ β€” Siren Suite 🧜 | Siren (Music Sampler) 🧜, Siren Cast (Voice Plan) 🧜, Siren Compare (Audio) 🧜, Siren Scope (Audio β†’ Image) 🧜, Siren Score (Lyrics β†’ Plan) 🧜, Siren Section (Audio Window) 🧜 | | audio_sr/ β€” Audio SR (48 kHz Upscale) πŸ”Š | Audio SR (48 kHz Upscale) πŸ”Š | | save_song/ β€” Save Song & Song Tags | Save Song, Song Tags |

🎬 Video Generation & Storyboarding

πŸ“– 🎬 Video Generation & Storyboarding

| Package | Nodes | |---|---| | morpheus/ β€” Morpheus Suite πŸŒ™ | Morpheus (Video Sampler) πŸŒ™, Morpheus Dream Board πŸŒ™, Morpheus Dream πŸŒ™, Morpheus Storyboard πŸŒ™ | | phantas/ β€” Phantas Suite 🎞 | Phantas Storyboard 🎞, Phantas 🎞 | | orpheus/ β€” Orpheus Suite 🎢 | Orpheus (Audio β†’ Shots) 🎢 |

πŸŽ›οΈ Presets & Asset Management

πŸ“– πŸŽ›οΈ Presets & Asset Management

| Package | Nodes | |---|---| | model_presets/ β€” Model Capture & Settings Management | Model Capture πŸ“₯, Model Select πŸŽ›, Settings Save πŸ’Ύ, Settings Select βš™ | | prompt_presets/ β€” Prompt Presets | Prompt Presets | | prompt_variations/ β€” Prompt Variations | Prompt Variations | | lora/ β€” Lora Trigger Loader & Accumulator | Lora Trigger Loader, Lora Unlim Accumulator |

πŸ–ΌοΈ Image Processing & Visualizers

πŸ“– πŸ–ΌοΈ Image Processing & Visualizers

| Package | Nodes | |---|---| | image_compare/ β€” Image Compare (HTML) & Color Caption | Color Caption, Image Compare (HTML) | | image_batch/ β€” Unlim Image Batch & List | Unlim Image Batch, Unlim Image List | | collage/ β€” Collage Layout Builder | Collage |

πŸ› οΈ Workflow Control & Utilities

πŸ“– πŸ› οΈ Workflow Control & Utilities

| Package | Nodes | |---|---| | util/ β€” General Workflow Utilities | Any Switch, Any to String, Color Picker, Combo to String, Date String, JSON Extract, Text Transform, Unlim Text Concat | | timer/ β€” Execution Timer | Start Timer, Stop Timer | | gen_info/ β€” Generation Info & Filter | Generation Info, Generation Info Filter | | group_control/ β€” Group Control 🎚️ | Group Control 🎚️ | | loops/ β€” Flexible Iteration Loops | Delay, For Each (Collect), For Each (Open), Get by Index, List Output, Repeat (Close), Repeat (Open), While (Close), While (Open) | | accumulators/ β€” Name-Based Accumulators | Get Accumulator (audio), Get Accumulator (captions), Get Accumulator (gen info), Get Accumulator (images list), Get Accumulator (images), Get Accumulator (prompts), Get Accumulator (texts), Set Accumulator (audio), Set Accumulator (captions), Set Accumulator (gen info), Set Accumulator (images), Set Accumulator (prompts), Set Accumulator (texts) | | list_ops/ β€” List & Batch Operations | Image Batch Insert, Image Batch Remove, List Insert, List Remove | | report/ β€” Investigation Report DB | β€” no nodes of its own |


<details> <summary><b>πŸ”Ž All node ids (for workflow JSON / bug reports)</b></summary>

| Display name | Node id | Category | |---|---|---| | Any Switch | KinburgAnySwitch | Kinburg-Nodes/util | | Any to String | AnyToString | Kinburg-Nodes/util | | Audio SR (48 kHz Upscale) πŸ”Š | KinburgAudioSR | Kinburg-Nodes/audio | | Card Presets | CardPresets | Kinburg-Nodes/LLM/presets | | Card Save | CardSave | Kinburg-Nodes/LLM/presets | | Character Card | CharacterCard | Kinburg-Nodes/LLM/context | | Chimera (Multi-Sampler) 🦁 | KinburgChimeraSampler | Kinburg-Nodes/Bestiary/Chimera | | Collage | CustomCollageNode | Kinburg-Nodes/image | | Color Caption | ColorCaption | Kinburg-Nodes/image/compare | | Color Picker | ColorPicker | Kinburg-Nodes/util | | Combo to String | ComboToString | Kinburg-Nodes/util | | Context Collector | ContextCollector | Kinburg-Nodes/LLM/context | | Context Sizer (GGUF) | KinburgContextSizer | Kinburg-Nodes/LLM | | Criteria Builder πŸ“‹ | CriteriaBuilder | Kinburg-Nodes/LLM/presets | | Date String | KinburgDateString | Kinburg-Nodes/util | | Delay | KinburgDelay | Kinburg-Nodes/flow/loops | | Diffusion Safetensors -> GGUF (city96) | SafetensorsToGGUFDiffusion | Kinburg-Nodes/LLM/GGUF | | Entity Card | EntityCard | Kinburg-Nodes/LLM/context | | For Each (Collect) | KinburgForEachCollect | Kinburg-Nodes/flow/loops | | For Each (Open) | KinburgForEachOpen | Kinburg-Nodes/flow/loops | | Generation Info | GenerationInfo | Kinburg-Nodes/util | | Generation Info Filter | GenerationInfoFilter | Kinburg-Nodes/util | | Get Accumulator (audio) | GetAccumAudio | Kinburg-Nodes/flow/accumulators | | Get Accumulator (captions) | GetAccumCaptions | Kinburg-Nodes/flow/accumulators | | Get Accumulator (gen info) | GetAccumGenInfo | Kinburg-Nodes/flow/accumulators | | Get Accumulator (images list) | GetAccumImagesList | Kinburg-Nodes/flow/accumulators | | Get Accumulator (images) | GetAccumImages | Kinburg-Nodes/flow/accumulators | | Get Accumulator (prompts) | GetAccumPrompts | Kinburg-Nodes/flow/accumulators | | Get Accumulator (texts) | GetAccumTexts | Kinburg-Nodes/flow/accumulators | | Get by Index | KinburgGetByIndex | Kinburg-Nodes/flow/loops | | Grammar Presets | GrammarPresets | Kinburg-Nodes/LLM/presets | | Group Control 🎚️ | KinburgGroupControl | Kinburg-Nodes/util | | Image Batch Insert | ImageBatchInsert | Kinburg-Nodes/image | | Image Batch Remove | ImageBatchRemove | Kinburg-Nodes/image | | Image Compare (HTML) | ImageCompareHTML | Kinburg-Nodes/image/compare | | JSON Extract | KinburgJSONExtract | Kinburg-Nodes/util | | Kinburg Live Log πŸ“œ | KinburgLiveLog | Kinburg-Nodes/LLM | | LLM Live Log (old id) | KinburgLLMLog | Kinburg-Nodes/LLM | | List Insert | ListInsert | Kinburg-Nodes/flow/list | | List Output | KinburgListEmit | Kinburg-Nodes/flow/loops | | List Remove | ListRemove | Kinburg-Nodes/flow/list | | Local LLM (GGUF) | LocalLLMGGUF | Kinburg-Nodes/LLM | | Local LLM (server client, text) | LocalLLMServerText | Kinburg-Nodes/LLM | | Local LLM Chat (GGUF) | LocalLLMChatGGUF | Kinburg-Nodes/LLM | | Local LLM Settings (GGUF) | LocalLLMSettingsGGUF | Kinburg-Nodes/LLM | | Lora Trigger Loader | LoraTriggerLoader | Kinburg-Nodes/lora | | Lora Unlim Accumulator | LoraUnlimAccumulator | Kinburg-Nodes/lora | | Model Capture πŸ“₯ | KinburgModelCapture | Kinburg-Nodes/model | | Model Select πŸŽ› | KinburgModelSelect | Kinburg-Nodes/model | | Morpheus (Video Sampler) πŸŒ™ | KinburgMorpheus | Kinburg-Nodes/Bestiary/Morpheus | | Morpheus Dream Board πŸŒ™ | KinburgDreamBoard | Kinburg-Nodes/Bestiary/Morpheus | | Morpheus Dream πŸŒ™ | KinburgMorpheusDream | Kinburg-Nodes/Bestiary/Morpheus | | Morpheus Storyboard πŸŒ™ | KinburgMorpheusStoryboard | Kinburg-Nodes/Bestiary/Morpheus | | Orpheus (Audio β†’ Shots) 🎢 | KinburgOrpheusScore | Kinburg-Nodes/Bestiary/Orpheus | | Ouroboros (Self-Correcting Sampler) 🐍 | KinburgOuroboros | Kinburg-Nodes/Bestiary/Ouroboros | | Ouroboros Critic Settings 🐍 | KinburgCriticSettings | Kinburg-Nodes/Bestiary/Ouroboros | | Ouroboros Live Log πŸπŸ“œ | KinburgOuroborosLog | Kinburg-Nodes/Bestiary/Ouroboros | | Phantas Storyboard 🎞 | KinburgPhantasStoryboard | Kinburg-Nodes/Bestiary/Phantas | | Phantas 🎞 | KinburgPhantas | Kinburg-Nodes/Bestiary/Phantas | | Prompt Presets | PromptPresets | Kinburg-Nodes/prompt | | Prompt Variations | PromptVariations | Kinburg-Nodes/prompt | | Repeat (Close) | KinburgRepeatClose | Kinburg-Nodes/flow/loops | | Repeat (Open) | KinburgRepeatOpen | Kinburg-Nodes/flow/loops | | Safetensors -> GGUF (llama.cpp) | SafetensorsToGGUF | Kinburg-Nodes/LLM/GGUF | | Sampler Settings | KinburgSamplerSettings | Kinburg-Nodes/Bestiary | | Save Song | KinburgSaveSong | Kinburg-Nodes/audio | | Send Image to Chat | LocalLLMChatSendImage | Kinburg-Nodes/LLM | | Send Image to Live Log πŸ“œ | KinburgSendImageToLog | Kinburg-Nodes/LLM | | Set Accumulator (audio) | SetAccumAudio | Kinburg-Nodes/flow/accumulators | | Set Accumulator (captions) | SetAccumCaptions | Kinburg-Nodes/flow/accumulators | | Set Accumulator (gen info) | SetAccumGenInfo | Kinburg-Nodes/flow/accumulators | | Set Accumulator (images) | SetAccumImages | Kinburg-Nodes/flow/accumulators | | Set Accumulator (prompts) | SetAccumPrompts | Kinburg-Nodes/flow/accumulators | | Set Accumulator (texts) | SetAccumTexts | Kinburg-Nodes/flow/accumulators | | Settings Save πŸ’Ύ | KinburgSettingsSave | Kinburg-Nodes/model | | Settings Select βš™ | KinburgSettingsSelect | Kinburg-Nodes/model | | Show Text (Markdown) | KinburgShowText | Kinburg-Nodes/util | | Siren (Music Sampler) 🧜 | KinburgSirenSampler | Kinburg-Nodes/Bestiary/Siren | | Siren Cast (Voice Plan) 🧜 | KinburgSirenCast | Kinburg-Nodes/Bestiary/Siren | | Siren Compare (Audio) 🧜 | KinburgSirenCompare | Kinburg-Nodes/Bestiary/Siren | | Siren Scope (Audio β†’ Image) 🧜 | KinburgSirenScope | Kinburg-Nodes/Bestiary/Siren | | Siren Score (Lyrics β†’ Plan) 🧜 | KinburgSirenScore | Kinburg-Nodes/Bestiary/Siren | | Siren Section (Audio Window) 🧜 | KinburgSirenSection | Kinburg-Nodes/Bestiary/Siren | | Song Tags | KinburgSongTags | Kinburg-Nodes/audio | | Start Timer | StartTimer | Kinburg-Nodes/util | | Stop Timer | StopTimer | Kinburg-Nodes/util | | Text Transform | KinburgTextTransform | Kinburg-Nodes/util | | Token Counter (GGUF) | KinburgTokenCounter | Kinburg-Nodes/LLM | | Unlim Image Batch | UnlimImageBatch | Kinburg-Nodes/image | | Unlim Image List | UnlimImageList | Kinburg-Nodes/image | | Unlim Text Concat | UnlimTextConcat | Kinburg-Nodes/util | | Vision LLM Judge | VisionLLMJudge | Kinburg-Nodes/LLM | | Vision Settings (GGUF) | LocalLLMVisionSettingsGGUF | Kinburg-Nodes/LLM | | While (Close) | KinburgWhileClose | Kinburg-Nodes/flow/loops | | While (Open) | KinburgWhileOpen | Kinburg-Nodes/flow/loops |

</details> <!-- END GENERATED index -->

πŸ“¦ Installation

  1. Clone this repository into ComfyUI/custom_nodes (or install it through ComfyUI-Manager).
  2. The Local LLM nodes need llama-cpp-python (CUDA build). It is installed automatically by install.py (which ComfyUI-Manager runs on install). To do it by hand, run with this ComfyUI's Python:
    <ComfyUI>/.venv/Scripts/python.exe <ComfyUI>/custom_nodes/Kinburg-Nodes/install.py
    
    The Image Compare and Date String nodes need nothing extra.
  3. The GGUF converters use packages that already ship with ComfyUI (huggingface_hub, gguf, torch, safetensors) and fetch the conversion scripts themselves (git on PATH, auto_clone on). Only quantization needs an external binary you provide: llama-quantize for the LLM converter, or the patched llama-quantize from city96's llama.cpp fork for the diffusion converter (see ComfyUI-GGUF/tools/README.md). Leaving quantize = none needs nothing extra.

Each node's parameters are documented in their tooltips. The Local LLM node also exposes a help output with a quick cheat-sheet β€” wire it to a "Preview as Text" node to read it.


πŸ§ͺ Tests

python tests/run.py

with ComfyUI's own interpreter (.venv/Scripts/python.exe). 1395 checks in 23 suites, about two and a half minutes β€” over local_llm/ (chat, worker, both send-image nodes, lazy guard), morpheus/ (storyboard, dream board, trims), phantas/ (timing, board, render), orpheus/ (timing, detect, node), siren/ (cast, score), audio_sr/, lora/, util/diskcache.py, three of the web/*.js extensions (chat, dream board, group control), and the docs audit below. Nothing real is loaded (llama.cpp, H3 and the browser are all stubbed), so it is a regression net for those paths and not a substitute for trying a change in the app. tests/README.md says exactly what is and is not covered.

πŸ“‘ Keeping the docs honest

The node index in this README is generated, so it cannot drift from the nodes the pack registers:

python tools/gen_readme_index.py

It rewrites only the regions between the <!-- BEGIN/END GENERATED --> markers β€” every other line here is hand-written. --check verifies instead of writing (that is the docs test suite, so a stale index fails the tests), and --run-tests also refreshes the tests badge from a real run.

Adding a node needs no edit there at all: it appears in the index on the next run. Adding a package needs only its ## heading in the right docs/*.md file β€” the tool reads the folder name out of the heading, and fails with undocumented: <folder> if a node's folder has no section to live in. A group's position comes from its own <!-- index-order: N --> line.

Alongside the index it audits the prose: every node must be mentioned, every local link and anchor must resolve, and every backticked snake_case term must be a real node input or output β€” anything else has to be listed in tools/known_terms.txt (sampler names, enum values, comfy internals). That last check is the one that catches a renamed input still being documented under its old name.

πŸ“„ License

MIT β€” see LICENSE.