11 Commits
Author SHA1 Message Date
pixelass 691da6bea7 docs: changelog 2023-08-01 18:57:36 +02:00
pixelass 27eb284229 feat(images): allow copy image 2023-08-01 18:57:07 +02:00
pixelass a43bac17d1 refactor: remove logs 2023-08-01 18:34:17 +02:00
Gregor Adams d0e68a2869 Update README.md 2023-08-01 18:24:00 +02:00
pixelass 72a5d4f8a7 docs: add comfyUI manager instructions 2023-08-01 18:22:59 +02:00
pixelass 4000006366 docs: update readme 2023-08-01 17:59:33 +02:00
pixelass 9d6f688c53 docs: update readme 2023-08-01 17:56:55 +02:00
pixelass d47d1a122e docs: changelog 2023-08-01 17:55:04 +02:00
pixelass f27d1f140e feat: allow Reroute as dot 2023-08-01 17:55:04 +02:00
pixelass 8eba0f010d docs: changelog 2023-08-01 17:55:04 +02:00
pixelass f161d6e563 feat(reroutes): al;low showing title on reroute 2023-08-01 17:55:04 +02:00
5 changed files with 226 additions and 6 deletions
+28
View File
@@ -1,3 +1,31 @@
# [](https://github.com/failfa-st/failfast-comfyui-extensions/compare/v1.3.0...v) (2023-08-01)
### Features
* **images:** allow copy image ([27eb284](https://github.com/failfa-st/failfast-comfyui-extensions/commit/27eb284229235e301496326d22cd3c48e16f6f23))
# [](https://github.com/failfa-st/failfast-comfyui-extensions/compare/v1.0.0...v) (2023-08-01)
### Features
* allow Reroute as dot ([9cf412f](https://github.com/failfa-st/failfast-comfyui-extensions/commit/9cf412f4d7c05eaf4f958b8e0752cb75d764425a))
* **reroutes:** allow showing title on reroute ([27e49f8](https://github.com/failfa-st/failfast-comfyui-extensions/commit/27e49f83d5c37a529638862132a40cd837a41127))
# [](https://github.com/failfa-st/failfast-comfyui-extensions/compare/v1.0.0...v) (2023-08-01)
### Features
* **reroutes:** al;low showing title on reroute ([27e49f8](https://github.com/failfa-st/failfast-comfyui-extensions/commit/27e49f83d5c37a529638862132a40cd837a41127))
# (2023-08-01)
+35 -5
View File
@@ -10,6 +10,7 @@ personalization in your ComfyUI environment.
<!-- toc -->
- [Installation](#installation)
* [Load via ComfyUI manager](#load-via-comfyui-manager)
* [Clone Repository](#clone-repository)
* [Download Manually](#download-manually)
- [Update](#update)
@@ -30,10 +31,19 @@ personalization in your ComfyUI environment.
## Installation
Two methods are available for installation:
Three methods are available for installation:
1. Clone the repository directly into the extensions directory.
2. Download the project manually.
1. Load via [ComfyUI manager](https://github.com/ltdrdata/ComfyUI-Manager)
2. Clone the repository directly into the extensions directory.
3. Download the project manually.
### Load via ComfyUI manager
<div align="center">
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/796aaa99-9b16-4087-bebb-ed8638a8b9fc" alt="ComfyUI manager" >
<p>Install via ComfyUI manager</p>
</div>
### Clone Repository
@@ -136,12 +146,32 @@ The context menu offers additional options for nodes, groups, colors, and the ca
**Nodes**
- Custom color option (only available in "default" Color Mode).
- Show title on Reroute node
- Render Reroute as dot
- Copy Images
<div align="center">
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/f0c4dc53-0e40-480d-a3f9-09b50a3ab56d" alt="Node options" height="300px">
<p>Node Options</p>
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/f0c4dc53-0e40-480d-a3f9-09b50a3ab56d" alt="Node color options" height="300px">
<p>Node Color Options</p>
</div>
<div align="center">
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/e40ea33d-5a44-4859-b050-ed7a13057536" alt="reroute Node options" width="400px">
<p>Reroute show/hide Title</p>
</div>
<div align="center">
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/c02818a1-3c87-4d15-8e91-2328b08d46f3" alt="reroute Node as dot" height="300px">
<p>Reroute as dot</p>
</div>
<div align="center">
<img src="https://github.com/failfa-st/failfast-comfyui-extensions/assets/1148334/f41b4aff-9677-4faf-85cb-86ce497d6240" alt="Copy images" >
<p>Copy Image</p>
</div>
**Groups**
- Custom color option.
+51
View File
@@ -0,0 +1,51 @@
/**
* Coded with love by Failfa.st
* LICENSE: AGPL 3.0
* https://github.com/failfa-st/failfast-comfyui-extensions/blob/main/LICENSE
*
* Visit https://github.com/failfa-st/failfast-comfyui-extensions for more info
*
* Homepage: https://failfa.st
* GitHub: https://github.com/failfa-st
* Discord: https://discord.com/invite/m3TBB9XEkb
*/
import { app } from "/scripts/app.js";
const imagesName = "Failfast.images";
function copyImageToClipboard(img) {
const canvas = document.createElement("canvas");
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
const context = canvas.getContext("2d");
context.drawImage(img, 0, 0);
canvas.toBlob(function (blob) {
const items = [new ClipboardItem({ "image/png": blob })];
navigator.clipboard.write(items);
});
canvas.remove();
}
app.registerExtension({
name: imagesName,
async init(app) {
const getNodeMenuOptions = LGraphCanvas.prototype.getNodeMenuOptions;
LGraphCanvas.prototype.getNodeMenuOptions = function (node) {
const options = getNodeMenuOptions.apply(this, arguments);
const isImageMenu = options.some(
(option) => option?.content === "Save Image",
);
if (isImageMenu) {
options.splice(2, 0, {
content: "Copy Image",
callback() {
const [img] = node.imgs;
if (img) {
copyImageToClipboard(img);
}
},
});
}
return options;
};
},
});
+110
View File
@@ -0,0 +1,110 @@
/**
* Coded with love by Failfa.st
* LICENSE: AGPL 3.0
* https://github.com/failfa-st/failfast-comfyui-extensions/blob/main/LICENSE
*
* Visit https://github.com/failfa-st/failfast-comfyui-extensions for more info
*
* Homepage: https://failfa.st
* GitHub: https://github.com/failfa-st
* Discord: https://discord.com/invite/m3TBB9XEkb
*/
import { app } from "/scripts/app.js";
const reroutesName = "Failfast.reroutes";
const mini = [34, 26];
function miniReroute(node) {
if (node.type !== "Reroute") {
return;
}
node._size = node.size;
node._title = node.title;
Object.defineProperty(node, "title", {
get() {
return this._title;
},
set(value) {
this._title = value;
if (node.properties.showTitle) {
node.outputs[0].label = value;
}
},
});
if (node.properties.dot) {
Object.defineProperty(node, "size", {
get() {
return this._size;
},
set() {},
});
node._size[0] = mini[0];
node._size[1] = mini[1];
}
}
app.registerExtension({
name: reroutesName,
async setup(app) {
const onNodeAdded = app.graph.onNodeAdded;
app.graph.onNodeAdded = function (node) {
if (node.type !== "Reroute") {
return onNodeAdded?.apply(this, arguments);
}
miniReroute(node);
return onNodeAdded?.apply(this, arguments);
};
app.graph._nodes.forEach((node) => {
if (node.type === "Reroute") {
miniReroute(node);
}
});
const getNodeMenuOptions = LGraphCanvas.prototype.getNodeMenuOptions;
LGraphCanvas.prototype.getNodeMenuOptions = function (node) {
const options = getNodeMenuOptions.apply(this, arguments);
if (node.type !== "Reroute") {
return options;
}
options.unshift({
content: node.properties.showTitle ? "Hide Title" : "Show Title",
callback() {
node.outputs[0].label = node.properties.showTitle
? undefined
: node.title;
node.properties.showTitle = !node.properties.showTitle;
},
});
options.push({
content: "Render as dot",
callback() {
console.log(node);
if (node.properties.dot) {
Object.defineProperty(node, "size", {
get() {
return this._size;
},
set(value) {
this._size = value;
},
});
} else {
Object.defineProperty(node, "size", {
get() {
return this._size;
},
set() {},
});
}
node._size[0] = node.properties.dot ? 75 : mini[0];
node._size[1] = node.properties.dot ? 26 : mini[1];
node.properties.dot = !node.properties.dot;
node.setDirtyCanvas(true, true);
},
});
return options;
};
},
});
+2 -1
View File
@@ -1,6 +1,7 @@
{
"name": "failfast-comfyui-extensions",
"scripts": {
"changelog": "npx conventional-changelog-cli -p angular -i CHANGELOG.md -s"
"changelog": "npx conventional-changelog-cli -p angular -i CHANGELOG.md -s",
"toc": "npx markdown-toc README.md -i "
}
}