├── requirements.txt ├── nature.png ├── Img2PaintingCartoonSharpened.png ├── illustratingNeed4InspyreNetAssitant.png ├── __init__.py ├── pyproject.toml ├── .github └── workflows │ └── publish.yml ├── README.md ├── comfyWorkflows ├── img2Cartoon.json ├── img2imgSharps.json ├── inspyrenet-rembg-basic-workflow.json ├── ImagePainter&ShapenerCartoonImgWorkflow.json ├── img2PaintingDrawingCartoonSharpened.json ├── img2paintingVid.json ├── ImagePainter&ShapenerCartoonVidWorkflow.json ├── vid2vidSharps.json ├── img2CartoonWtRemBg.json ├── Vid2CartoonWtInspyrenetAssitant.json └── _Vid2CartoonWtInspyrenetAssitant2.json └── image_to_painting_node.py /requirements.txt: -------------------------------------------------------------------------------- 1 | torch 2 | numpy 3 | opencv-python 4 | -------------------------------------------------------------------------------- /nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Isi-dev/ComfyUI_Img2PaintingAssistant/HEAD/nature.png -------------------------------------------------------------------------------- /Img2PaintingCartoonSharpened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Isi-dev/ComfyUI_Img2PaintingAssistant/HEAD/Img2PaintingCartoonSharpened.png -------------------------------------------------------------------------------- /illustratingNeed4InspyreNetAssitant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Isi-dev/ComfyUI_Img2PaintingAssistant/HEAD/illustratingNeed4InspyreNetAssitant.png -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | from .image_to_painting_node import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS 2 | 3 | __all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "comfyui-img2paintingassistant" 3 | description = "These are ComfyUI nodes to assist in converting images to paintings and to assist the Inspyrenet Rembg node to totally remove, or replace with a color, the original background from images so that the background does not reappear in videos or in nodes that do not retain the alpha channel in rgba images." 4 | version = "1.0.1" 5 | license = {file = "LICENSE"} 6 | dependencies = ["torch", "numpy", "opencv-python"] 7 | 8 | [project.urls] 9 | Repository = "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant" 10 | # Used by Comfy Registry https://comfyregistry.org 11 | 12 | [tool.comfy] 13 | PublisherId = "isi-dev" 14 | DisplayName = "ComfyUI-Img2PaintingAssistant" 15 | Icon = "" 16 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to Comfy registry 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: 6 | - main 7 | - master 8 | paths: 9 | - "pyproject.toml" 10 | 11 | jobs: 12 | publish-node: 13 | name: Publish Custom Node to registry 14 | runs-on: ubuntu-latest 15 | # if this is a forked repository. Skipping the workflow. 16 | if: github.event.repository.fork == false 17 | steps: 18 | - name: Check out code 19 | uses: actions/checkout@v4 20 | - name: Publish Custom Node 21 | uses: Comfy-Org/publish-node-action@main 22 | with: 23 | ## Add your own personal access token to your Github Repository secrets and reference it here. 24 | personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ComfyUI-Img2PaintingAssitant 2 | These are ComfyUI nodes to assist in converting an image to paintings and to assist the Inspyrenet Rembg node to totally remove or replace with a color the original background from images so that the background does not reappear in videos or in nodes that do not provide handling for the alpha channel in images. 3 | 4 | ## Image Painting Assistant 5 | 6 | The `Image Painting Assistant` node can assist you in converting images to paintings and cartoon images. It can also be used to sharpen and lighten the input image. 7 | 8 |
9 | 10 |

11 | 12 | 13 |
14 | 15 | ## Inspyrenet Rembg Assistant 16 | 17 | The `Inspyrenet Rembg Assistant` node can be used to ensure that the original background of an image doesn't reappear when the image is inputed into comfyUI nodes that do not retain the alpha channel in images like the Video Combine custom node. It can also be used to create a green screen background and backgrounds with other colors. 18 | 19 |
20 | 21 |

22 | 23 | 24 |
25 | 26 | ## Installation 27 | 28 | You can install the nodes with the ComfyUI Manager by searching with the following title: 29 | 30 | ``` 31 | Image to Painting and Inspyrenet Assistant Nodes 32 | ``` 33 | 34 | ## Support 35 | If you find this project helpful, you can support me here: 36 | [![Buy Me a Coffee](https://img.shields.io/badge/Support-Buy%20Me%20a%20Coffee-orange?style=flat-square&logo=buy-me-a-coffee)](https://buymeacoffee.com/isiomo) 37 | 38 | 39 | 40 | ## Disclaimer 41 | 42 | I am not responsible for any user-generated content. Users are fully responsible for their actions when using these nodes. I don't have any legal affiliation with or accountability for users' behaviors. It is crucial to use these nodes responsibly, following both ethical and legal standards. 43 | -------------------------------------------------------------------------------- /comfyWorkflows/img2Cartoon.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 61, 3 | "last_link_id": 143, 4 | "nodes": [ 5 | { 6 | "id": 59, 7 | "type": "PreviewImage", 8 | "pos": [ 9 | 870, 10 | 101 11 | ], 12 | "size": [ 13 | 210, 14 | 246 15 | ], 16 | "flags": {}, 17 | "order": 3, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 135 24 | } 25 | ], 26 | "properties": { 27 | "Node name for S&R": "PreviewImage" 28 | } 29 | }, 30 | { 31 | "id": 61, 32 | "type": "Sketch_Assistant_grayScale", 33 | "pos": [ 34 | 501, 35 | 373 36 | ], 37 | "size": { 38 | "0": 315, 39 | "1": 198 40 | }, 41 | "flags": {}, 42 | "order": 1, 43 | "mode": 0, 44 | "inputs": [ 45 | { 46 | "name": "image", 47 | "type": "IMAGE", 48 | "link": 142 49 | } 50 | ], 51 | "outputs": [ 52 | { 53 | "name": "sketch", 54 | "type": "IMAGE", 55 | "links": [ 56 | 143 57 | ], 58 | "shape": 3, 59 | "slot_index": 0 60 | }, 61 | { 62 | "name": "grayscale image", 63 | "type": "IMAGE", 64 | "links": null, 65 | "shape": 3 66 | } 67 | ], 68 | "properties": { 69 | "Node name for S&R": "Sketch_Assistant_grayScale" 70 | }, 71 | "widgets_values": [ 72 | 10, 73 | 21, 74 | 245, 75 | 2, 76 | 100, 77 | 1 78 | ] 79 | }, 80 | { 81 | "id": 43, 82 | "type": "Painting", 83 | "pos": [ 84 | 499, 85 | 99 86 | ], 87 | "size": { 88 | "0": 315, 89 | "1": 222 90 | }, 91 | "flags": {}, 92 | "order": 2, 93 | "mode": 0, 94 | "inputs": [ 95 | { 96 | "name": "image", 97 | "type": "IMAGE", 98 | "link": 136 99 | }, 100 | { 101 | "name": "lineArt", 102 | "type": "IMAGE", 103 | "link": 143 104 | } 105 | ], 106 | "outputs": [ 107 | { 108 | "name": "painting", 109 | "type": "IMAGE", 110 | "links": [ 111 | 135 112 | ], 113 | "slot_index": 0, 114 | "shape": 3 115 | }, 116 | { 117 | "name": "sharpImage", 118 | "type": "IMAGE", 119 | "links": [], 120 | "slot_index": 1, 121 | "shape": 3 122 | } 123 | ], 124 | "properties": { 125 | "Node name for S&R": "Painting" 126 | }, 127 | "widgets_values": [ 128 | 21, 129 | 1, 130 | 7, 131 | 2.000000000000001, 132 | 0, 133 | 1, 134 | 1.3 135 | ] 136 | }, 137 | { 138 | "id": 58, 139 | "type": "LoadImage", 140 | "pos": [ 141 | 135, 142 | 98 143 | ], 144 | "size": [ 145 | 315, 146 | 314.00000762939453 147 | ], 148 | "flags": {}, 149 | "order": 0, 150 | "mode": 0, 151 | "outputs": [ 152 | { 153 | "name": "IMAGE", 154 | "type": "IMAGE", 155 | "links": [ 156 | 136, 157 | 142 158 | ], 159 | "shape": 3, 160 | "slot_index": 0 161 | }, 162 | { 163 | "name": "MASK", 164 | "type": "MASK", 165 | "links": null, 166 | "shape": 3 167 | } 168 | ], 169 | "properties": { 170 | "Node name for S&R": "LoadImage" 171 | }, 172 | "widgets_values": [ 173 | "baby.png", 174 | "image" 175 | ] 176 | } 177 | ], 178 | "links": [ 179 | [ 180 | 135, 181 | 43, 182 | 0, 183 | 59, 184 | 0, 185 | "IMAGE" 186 | ], 187 | [ 188 | 136, 189 | 58, 190 | 0, 191 | 43, 192 | 0, 193 | "IMAGE" 194 | ], 195 | [ 196 | 142, 197 | 58, 198 | 0, 199 | 61, 200 | 0, 201 | "IMAGE" 202 | ], 203 | [ 204 | 143, 205 | 61, 206 | 0, 207 | 43, 208 | 1, 209 | "IMAGE" 210 | ] 211 | ], 212 | "groups": [], 213 | "config": {}, 214 | "extra": { 215 | "ds": { 216 | "scale": 1.9784466890014423, 217 | "offset": [ 218 | 38.89930836716803, 219 | 7.440567995095705 220 | ] 221 | } 222 | }, 223 | "version": 0.4 224 | } -------------------------------------------------------------------------------- /comfyWorkflows/img2imgSharps.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 66, 3 | "last_link_id": 156, 4 | "nodes": [ 5 | { 6 | "id": 59, 7 | "type": "PreviewImage", 8 | "pos": [ 9 | 302, 10 | 157 11 | ], 12 | "size": [ 13 | 240.8816383548167, 14 | 273.87339902283964 15 | ], 16 | "flags": {}, 17 | "order": 2, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 154 24 | } 25 | ], 26 | "properties": { 27 | "Node name for S&R": "PreviewImage" 28 | } 29 | }, 30 | { 31 | "id": 58, 32 | "type": "LoadImage", 33 | "pos": [ 34 | 22, 35 | 91 36 | ], 37 | "size": [ 38 | 276.38823879017264, 39 | 340.0470611705546 40 | ], 41 | "flags": {}, 42 | "order": 0, 43 | "mode": 0, 44 | "outputs": [ 45 | { 46 | "name": "IMAGE", 47 | "type": "IMAGE", 48 | "links": [ 49 | 136 50 | ], 51 | "shape": 3, 52 | "slot_index": 0 53 | }, 54 | { 55 | "name": "MASK", 56 | "type": "MASK", 57 | "links": null, 58 | "shape": 3 59 | } 60 | ], 61 | "properties": { 62 | "Node name for S&R": "LoadImage" 63 | }, 64 | "widgets_values": [ 65 | "image (9).png", 66 | "image" 67 | ] 68 | }, 69 | { 70 | "id": 66, 71 | "type": "PreviewImage", 72 | "pos": [ 73 | 551, 74 | 157 75 | ], 76 | "size": [ 77 | 243.07163653052612, 78 | 272.165192361957 79 | ], 80 | "flags": {}, 81 | "order": 4, 82 | "mode": 0, 83 | "inputs": [ 84 | { 85 | "name": "images", 86 | "type": "IMAGE", 87 | "link": 156 88 | } 89 | ], 90 | "properties": { 91 | "Node name for S&R": "PreviewImage" 92 | } 93 | }, 94 | { 95 | "id": 65, 96 | "type": "Painting", 97 | "pos": [ 98 | 848, 99 | 415 100 | ], 101 | "size": { 102 | "0": 315, 103 | "1": 246 104 | }, 105 | "flags": {}, 106 | "order": 3, 107 | "mode": 0, 108 | "inputs": [ 109 | { 110 | "name": "image", 111 | "type": "IMAGE", 112 | "link": 155 113 | }, 114 | { 115 | "name": "lineArt", 116 | "type": "IMAGE", 117 | "link": null 118 | } 119 | ], 120 | "outputs": [ 121 | { 122 | "name": "painting", 123 | "type": "IMAGE", 124 | "links": [], 125 | "slot_index": 0, 126 | "shape": 3 127 | }, 128 | { 129 | "name": "sharpImage", 130 | "type": "IMAGE", 131 | "links": [ 132 | 156 133 | ], 134 | "slot_index": 1, 135 | "shape": 3 136 | } 137 | ], 138 | "properties": { 139 | "Node name for S&R": "Painting" 140 | }, 141 | "widgets_values": [ 142 | 21, 143 | 1, 144 | 7, 145 | 1, 146 | 0, 147 | 1.1, 148 | 1.3, 149 | 1 150 | ] 151 | }, 152 | { 153 | "id": 43, 154 | "type": "Painting", 155 | "pos": [ 156 | 838, 157 | 109 158 | ], 159 | "size": { 160 | "0": 315, 161 | "1": 246 162 | }, 163 | "flags": {}, 164 | "order": 1, 165 | "mode": 0, 166 | "inputs": [ 167 | { 168 | "name": "image", 169 | "type": "IMAGE", 170 | "link": 136 171 | }, 172 | { 173 | "name": "lineArt", 174 | "type": "IMAGE", 175 | "link": null 176 | } 177 | ], 178 | "outputs": [ 179 | { 180 | "name": "painting", 181 | "type": "IMAGE", 182 | "links": [], 183 | "slot_index": 0, 184 | "shape": 3 185 | }, 186 | { 187 | "name": "sharpImage", 188 | "type": "IMAGE", 189 | "links": [ 190 | 154, 191 | 155 192 | ], 193 | "slot_index": 1, 194 | "shape": 3 195 | } 196 | ], 197 | "properties": { 198 | "Node name for S&R": "Painting" 199 | }, 200 | "widgets_values": [ 201 | 21, 202 | 1, 203 | 7, 204 | 1, 205 | 0, 206 | 1.1, 207 | 1.3, 208 | 1 209 | ] 210 | } 211 | ], 212 | "links": [ 213 | [ 214 | 136, 215 | 58, 216 | 0, 217 | 43, 218 | 0, 219 | "IMAGE" 220 | ], 221 | [ 222 | 154, 223 | 43, 224 | 1, 225 | 59, 226 | 0, 227 | "IMAGE" 228 | ], 229 | [ 230 | 155, 231 | 43, 232 | 1, 233 | 65, 234 | 0, 235 | "IMAGE" 236 | ], 237 | [ 238 | 156, 239 | 65, 240 | 1, 241 | 66, 242 | 0, 243 | "IMAGE" 244 | ] 245 | ], 246 | "groups": [], 247 | "config": {}, 248 | "extra": { 249 | "ds": { 250 | "scale": 1.798587899092233, 251 | "offset": [ 252 | 105.17183495484926, 253 | -18.485926946303692 254 | ] 255 | } 256 | }, 257 | "version": 0.4 258 | } -------------------------------------------------------------------------------- /comfyWorkflows/inspyrenet-rembg-basic-workflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 33, 3 | "last_link_id": 85, 4 | "nodes": [ 5 | { 6 | "id": 30, 7 | "type": "SaveImage", 8 | "pos": [ 9 | 1341.0395119585123, 10 | 49.0805990827805 11 | ], 12 | "size": { 13 | "0": 493.2388916015625, 14 | "1": 373.78704833984375 15 | }, 16 | "flags": {}, 17 | "order": 3, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 83 24 | } 25 | ], 26 | "properties": {}, 27 | "widgets_values": [ 28 | "aaa" 29 | ] 30 | }, 31 | { 32 | "id": 31, 33 | "type": "MaskToImage", 34 | "pos": [ 35 | 1099.0395119585123, 36 | 488.0805990827807 37 | ], 38 | "size": { 39 | "0": 210, 40 | "1": 26 41 | }, 42 | "flags": {}, 43 | "order": 4, 44 | "mode": 0, 45 | "inputs": [ 46 | { 47 | "name": "mask", 48 | "type": "MASK", 49 | "link": 85 50 | } 51 | ], 52 | "outputs": [ 53 | { 54 | "name": "IMAGE", 55 | "type": "IMAGE", 56 | "links": [ 57 | 80 58 | ], 59 | "shape": 3, 60 | "slot_index": 0 61 | } 62 | ], 63 | "properties": { 64 | "Node name for S&R": "MaskToImage" 65 | } 66 | }, 67 | { 68 | "id": 32, 69 | "type": "PreviewImage", 70 | "pos": [ 71 | 1343.0395119585123, 72 | 526.0805990827807 73 | ], 74 | "size": { 75 | "0": 493.51800537109375, 76 | "1": 382.0192565917969 77 | }, 78 | "flags": {}, 79 | "order": 5, 80 | "mode": 0, 81 | "inputs": [ 82 | { 83 | "name": "images", 84 | "type": "IMAGE", 85 | "link": 80 86 | } 87 | ], 88 | "properties": { 89 | "Node name for S&R": "PreviewImage" 90 | } 91 | }, 92 | { 93 | "id": 3, 94 | "type": "LoadImage", 95 | "pos": [ 96 | 53, 97 | 274 98 | ], 99 | "size": { 100 | "0": 589.18896484375, 101 | "1": 468.7266845703125 102 | }, 103 | "flags": {}, 104 | "order": 0, 105 | "mode": 0, 106 | "outputs": [ 107 | { 108 | "name": "IMAGE", 109 | "type": "IMAGE", 110 | "links": [ 111 | 77 112 | ], 113 | "shape": 3, 114 | "slot_index": 0 115 | }, 116 | { 117 | "name": "MASK", 118 | "type": "MASK", 119 | "links": null, 120 | "shape": 3 121 | } 122 | ], 123 | "properties": { 124 | "Node name for S&R": "LoadImage" 125 | }, 126 | "widgets_values": [ 127 | "ComfyUI_00322_.png", 128 | "image" 129 | ] 130 | }, 131 | { 132 | "id": 23, 133 | "type": "InspyrenetRembg", 134 | "pos": [ 135 | 739.0395119585114, 136 | 279.0805990827804 137 | ], 138 | "size": { 139 | "0": 315, 140 | "1": 78 141 | }, 142 | "flags": {}, 143 | "order": 1, 144 | "mode": 0, 145 | "inputs": [ 146 | { 147 | "name": "image", 148 | "type": "IMAGE", 149 | "link": 77 150 | } 151 | ], 152 | "outputs": [ 153 | { 154 | "name": "IMAGE", 155 | "type": "IMAGE", 156 | "links": [ 157 | 82 158 | ], 159 | "shape": 3, 160 | "slot_index": 0 161 | }, 162 | { 163 | "name": "MASK", 164 | "type": "MASK", 165 | "links": [ 166 | 84 167 | ], 168 | "shape": 3, 169 | "slot_index": 1 170 | } 171 | ], 172 | "properties": { 173 | "Node name for S&R": "InspyrenetRembg" 174 | }, 175 | "widgets_values": [ 176 | "default" 177 | ] 178 | }, 179 | { 180 | "id": 33, 181 | "type": "ProcessInspyrenetRembg", 182 | "pos": [ 183 | 737, 184 | 468 185 | ], 186 | "size": { 187 | "0": 315, 188 | "1": 102 189 | }, 190 | "flags": {}, 191 | "order": 2, 192 | "mode": 0, 193 | "inputs": [ 194 | { 195 | "name": "image", 196 | "type": "IMAGE", 197 | "link": 82 198 | }, 199 | { 200 | "name": "mask", 201 | "type": "MASK", 202 | "link": 84 203 | } 204 | ], 205 | "outputs": [ 206 | { 207 | "name": "IMAGE", 208 | "type": "IMAGE", 209 | "links": [ 210 | 83 211 | ], 212 | "shape": 3, 213 | "slot_index": 0 214 | }, 215 | { 216 | "name": "MASK", 217 | "type": "MASK", 218 | "links": [ 219 | 85 220 | ], 221 | "shape": 3, 222 | "slot_index": 1 223 | } 224 | ], 225 | "properties": { 226 | "Node name for S&R": "ProcessInspyrenetRembg" 227 | }, 228 | "widgets_values": [ 229 | false, 230 | "white" 231 | ] 232 | } 233 | ], 234 | "links": [ 235 | [ 236 | 77, 237 | 3, 238 | 0, 239 | 23, 240 | 0, 241 | "IMAGE" 242 | ], 243 | [ 244 | 80, 245 | 31, 246 | 0, 247 | 32, 248 | 0, 249 | "IMAGE" 250 | ], 251 | [ 252 | 82, 253 | 23, 254 | 0, 255 | 33, 256 | 0, 257 | "IMAGE" 258 | ], 259 | [ 260 | 83, 261 | 33, 262 | 0, 263 | 30, 264 | 0, 265 | "IMAGE" 266 | ], 267 | [ 268 | 84, 269 | 23, 270 | 1, 271 | 33, 272 | 1, 273 | "MASK" 274 | ], 275 | [ 276 | 85, 277 | 33, 278 | 1, 279 | 31, 280 | 0, 281 | "MASK" 282 | ] 283 | ], 284 | "groups": [], 285 | "config": {}, 286 | "extra": { 287 | "ds": { 288 | "scale": 0.8140274938683991, 289 | "offset": [ 290 | 663.5374375481796, 291 | 261.4552078392346 292 | ] 293 | } 294 | }, 295 | "version": 0.4 296 | } -------------------------------------------------------------------------------- /comfyWorkflows/ImagePainter&ShapenerCartoonImgWorkflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 46, 3 | "last_link_id": 103, 4 | "nodes": [ 5 | { 6 | "id": 44, 7 | "type": "LineArtPreprocessor", 8 | "pos": [ 9 | 119, 10 | 693 11 | ], 12 | "size": { 13 | "0": 315, 14 | "1": 82 15 | }, 16 | "flags": {}, 17 | "order": 1, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "image", 22 | "type": "IMAGE", 23 | "link": 99 24 | } 25 | ], 26 | "outputs": [ 27 | { 28 | "name": "IMAGE", 29 | "type": "IMAGE", 30 | "links": [ 31 | 101 32 | ], 33 | "shape": 3, 34 | "slot_index": 0 35 | } 36 | ], 37 | "properties": { 38 | "Node name for S&R": "LineArtPreprocessor" 39 | }, 40 | "widgets_values": [ 41 | "disable", 42 | 512 43 | ] 44 | }, 45 | { 46 | "id": 36, 47 | "type": "PreviewImage", 48 | "pos": [ 49 | 851, 50 | 267 51 | ], 52 | "size": { 53 | "0": 307.0596923828125, 54 | "1": 284.7433776855469 55 | }, 56 | "flags": {}, 57 | "order": 5, 58 | "mode": 0, 59 | "inputs": [ 60 | { 61 | "name": "images", 62 | "type": "IMAGE", 63 | "link": 95 64 | } 65 | ], 66 | "properties": { 67 | "Node name for S&R": "PreviewImage" 68 | } 69 | }, 70 | { 71 | "id": 46, 72 | "type": "PreviewImage", 73 | "pos": [ 74 | 853, 75 | 599 76 | ], 77 | "size": [ 78 | 307.8278627293007, 79 | 288.8389425173008 80 | ], 81 | "flags": {}, 82 | "order": 4, 83 | "mode": 0, 84 | "inputs": [ 85 | { 86 | "name": "images", 87 | "type": "IMAGE", 88 | "link": 103 89 | } 90 | ], 91 | "properties": { 92 | "Node name for S&R": "PreviewImage" 93 | } 94 | }, 95 | { 96 | "id": 37, 97 | "type": "LoadImage", 98 | "pos": [ 99 | 97, 100 | 267 101 | ], 102 | "size": { 103 | "0": 340.23187255859375, 104 | "1": 333.410888671875 105 | }, 106 | "flags": {}, 107 | "order": 0, 108 | "mode": 0, 109 | "outputs": [ 110 | { 111 | "name": "IMAGE", 112 | "type": "IMAGE", 113 | "links": [ 114 | 94, 115 | 99 116 | ], 117 | "slot_index": 0, 118 | "shape": 3 119 | }, 120 | { 121 | "name": "MASK", 122 | "type": "MASK", 123 | "links": null, 124 | "shape": 3 125 | } 126 | ], 127 | "properties": { 128 | "Node name for S&R": "LoadImage" 129 | }, 130 | "widgets_values": [ 131 | "bindi-2416039__480.jpg", 132 | "image" 133 | ] 134 | }, 135 | { 136 | "id": 43, 137 | "type": "Painting", 138 | "pos": [ 139 | 472, 140 | 267 141 | ], 142 | "size": { 143 | "0": 315, 144 | "1": 222 145 | }, 146 | "flags": {}, 147 | "order": 3, 148 | "mode": 0, 149 | "inputs": [ 150 | { 151 | "name": "image", 152 | "type": "IMAGE", 153 | "link": 94 154 | }, 155 | { 156 | "name": "lineArt", 157 | "type": "IMAGE", 158 | "link": 102 159 | } 160 | ], 161 | "outputs": [ 162 | { 163 | "name": "painting", 164 | "type": "IMAGE", 165 | "links": [ 166 | 95 167 | ], 168 | "slot_index": 0, 169 | "shape": 3 170 | }, 171 | { 172 | "name": "sharpImage", 173 | "type": "IMAGE", 174 | "links": [], 175 | "slot_index": 1, 176 | "shape": 3 177 | } 178 | ], 179 | "properties": { 180 | "Node name for S&R": "Painting" 181 | }, 182 | "widgets_values": [ 183 | 21, 184 | 1, 185 | 7, 186 | 2, 187 | 0, 188 | 1, 189 | 1.3 190 | ] 191 | }, 192 | { 193 | "id": 45, 194 | "type": "LineArt_Assistant_2", 195 | "pos": [ 196 | 476, 197 | 599 198 | ], 199 | "size": { 200 | "0": 315, 201 | "1": 246 202 | }, 203 | "flags": {}, 204 | "order": 2, 205 | "mode": 0, 206 | "inputs": [ 207 | { 208 | "name": "lineArt", 209 | "type": "IMAGE", 210 | "link": 101 211 | } 212 | ], 213 | "outputs": [ 214 | { 215 | "name": "lineArt", 216 | "type": "IMAGE", 217 | "links": [ 218 | 102, 219 | 103 220 | ], 221 | "shape": 3, 222 | "slot_index": 0 223 | }, 224 | { 225 | "name": "default", 226 | "type": "IMAGE", 227 | "links": null, 228 | "shape": 3 229 | } 230 | ], 231 | "properties": { 232 | "Node name for S&R": "LineArt_Assistant_2" 233 | }, 234 | "widgets_values": [ 235 | 240, 236 | 0, 237 | "black", 238 | 10, 239 | "white", 240 | 10, 241 | true, 242 | true 243 | ] 244 | } 245 | ], 246 | "links": [ 247 | [ 248 | 94, 249 | 37, 250 | 0, 251 | 43, 252 | 0, 253 | "IMAGE" 254 | ], 255 | [ 256 | 95, 257 | 43, 258 | 0, 259 | 36, 260 | 0, 261 | "IMAGE" 262 | ], 263 | [ 264 | 99, 265 | 37, 266 | 0, 267 | 44, 268 | 0, 269 | "IMAGE" 270 | ], 271 | [ 272 | 101, 273 | 44, 274 | 0, 275 | 45, 276 | 0, 277 | "IMAGE" 278 | ], 279 | [ 280 | 102, 281 | 45, 282 | 0, 283 | 43, 284 | 1, 285 | "IMAGE" 286 | ], 287 | [ 288 | 103, 289 | 45, 290 | 0, 291 | 46, 292 | 0, 293 | "IMAGE" 294 | ] 295 | ], 296 | "groups": [], 297 | "config": {}, 298 | "extra": { 299 | "ds": { 300 | "scale": 1.1167815779424914, 301 | "offset": [ 302 | 207.7390065069961, 303 | -150.61605606961785 304 | ] 305 | } 306 | }, 307 | "version": 0.4 308 | } -------------------------------------------------------------------------------- /comfyWorkflows/img2PaintingDrawingCartoonSharpened.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 57, 3 | "last_link_id": 143, 4 | "nodes": [ 5 | { 6 | "id": 51, 7 | "type": "PreviewImage", 8 | "pos": [ 9 | 1163, 10 | 106 11 | ], 12 | "size": { 13 | "0": 307.0596923828125, 14 | "1": 284.7433776855469 15 | }, 16 | "flags": {}, 17 | "order": 7, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 119 24 | } 25 | ], 26 | "properties": { 27 | "Node name for S&R": "PreviewImage" 28 | } 29 | }, 30 | { 31 | "id": 46, 32 | "type": "PreviewImage", 33 | "pos": [ 34 | 835, 35 | 454 36 | ], 37 | "size": { 38 | "0": 307.8278503417969, 39 | "1": 288.83892822265625 40 | }, 41 | "flags": {}, 42 | "order": 6, 43 | "mode": 0, 44 | "inputs": [ 45 | { 46 | "name": "images", 47 | "type": "IMAGE", 48 | "link": 139 49 | } 50 | ], 51 | "properties": { 52 | "Node name for S&R": "PreviewImage" 53 | } 54 | }, 55 | { 56 | "id": 36, 57 | "type": "PreviewImage", 58 | "pos": [ 59 | 827, 60 | 104 61 | ], 62 | "size": { 63 | "0": 307.0596923828125, 64 | "1": 284.7433776855469 65 | }, 66 | "flags": {}, 67 | "order": 3, 68 | "mode": 0, 69 | "inputs": [ 70 | { 71 | "name": "images", 72 | "type": "IMAGE", 73 | "link": 111 74 | } 75 | ], 76 | "properties": { 77 | "Node name for S&R": "PreviewImage" 78 | } 79 | }, 80 | { 81 | "id": 50, 82 | "type": "Painting", 83 | "pos": [ 84 | 476, 85 | 478 86 | ], 87 | "size": { 88 | "0": 315, 89 | "1": 246 90 | }, 91 | "flags": {}, 92 | "order": 5, 93 | "mode": 0, 94 | "inputs": [ 95 | { 96 | "name": "image", 97 | "type": "IMAGE", 98 | "link": 113 99 | }, 100 | { 101 | "name": "lineArt", 102 | "type": "IMAGE", 103 | "link": 138 104 | } 105 | ], 106 | "outputs": [ 107 | { 108 | "name": "painting", 109 | "type": "IMAGE", 110 | "links": [ 111 | 119 112 | ], 113 | "slot_index": 0, 114 | "shape": 3 115 | }, 116 | { 117 | "name": "sharpImage", 118 | "type": "IMAGE", 119 | "links": [], 120 | "slot_index": 1, 121 | "shape": 3 122 | } 123 | ], 124 | "properties": { 125 | "Node name for S&R": "Painting" 126 | }, 127 | "widgets_values": [ 128 | 26, 129 | 1, 130 | 7, 131 | 2, 132 | 0, 133 | 1.1, 134 | 1.4000000000000001, 135 | 1 136 | ] 137 | }, 138 | { 139 | "id": 37, 140 | "type": "LoadImage", 141 | "pos": [ 142 | 97, 143 | 101 144 | ], 145 | "size": { 146 | "0": 354.43243408203125, 147 | "1": 347.2381591796875 148 | }, 149 | "flags": {}, 150 | "order": 0, 151 | "mode": 0, 152 | "outputs": [ 153 | { 154 | "name": "IMAGE", 155 | "type": "IMAGE", 156 | "links": [ 157 | 110, 158 | 113, 159 | 143 160 | ], 161 | "slot_index": 0, 162 | "shape": 3 163 | }, 164 | { 165 | "name": "MASK", 166 | "type": "MASK", 167 | "links": null, 168 | "shape": 3 169 | } 170 | ], 171 | "properties": { 172 | "Node name for S&R": "LoadImage" 173 | }, 174 | "widgets_values": [ 175 | "ComfyUI_00332_.png", 176 | "image" 177 | ] 178 | }, 179 | { 180 | "id": 48, 181 | "type": "PreviewImage", 182 | "pos": [ 183 | 1164, 184 | 449 185 | ], 186 | "size": { 187 | "0": 314.92449951171875, 188 | "1": 288.59783935546875 189 | }, 190 | "flags": {}, 191 | "order": 4, 192 | "mode": 0, 193 | "inputs": [ 194 | { 195 | "name": "images", 196 | "type": "IMAGE", 197 | "link": 117 198 | } 199 | ], 200 | "properties": { 201 | "Node name for S&R": "PreviewImage" 202 | } 203 | }, 204 | { 205 | "id": 49, 206 | "type": "Painting", 207 | "pos": [ 208 | 482, 209 | 105 210 | ], 211 | "size": { 212 | "0": 315, 213 | "1": 246 214 | }, 215 | "flags": {}, 216 | "order": 1, 217 | "mode": 0, 218 | "inputs": [ 219 | { 220 | "name": "image", 221 | "type": "IMAGE", 222 | "link": 110 223 | }, 224 | { 225 | "name": "lineArt", 226 | "type": "IMAGE", 227 | "link": null 228 | } 229 | ], 230 | "outputs": [ 231 | { 232 | "name": "painting", 233 | "type": "IMAGE", 234 | "links": [ 235 | 111 236 | ], 237 | "slot_index": 0, 238 | "shape": 3 239 | }, 240 | { 241 | "name": "sharpImage", 242 | "type": "IMAGE", 243 | "links": [ 244 | 117 245 | ], 246 | "slot_index": 1, 247 | "shape": 3 248 | } 249 | ], 250 | "properties": { 251 | "Node name for S&R": "Painting" 252 | }, 253 | "widgets_values": [ 254 | 21.3333740234375, 255 | 1, 256 | 7, 257 | 1, 258 | 0, 259 | 1.1, 260 | 1.5000000000000002, 261 | 1 262 | ] 263 | }, 264 | { 265 | "id": 57, 266 | "type": "Sketch_Assistant_grayScale", 267 | "pos": [ 268 | 122, 269 | 515 270 | ], 271 | "size": { 272 | "0": 315, 273 | "1": 198 274 | }, 275 | "flags": {}, 276 | "order": 2, 277 | "mode": 0, 278 | "inputs": [ 279 | { 280 | "name": "image", 281 | "type": "IMAGE", 282 | "link": 143 283 | } 284 | ], 285 | "outputs": [ 286 | { 287 | "name": "sketch", 288 | "type": "IMAGE", 289 | "links": [ 290 | 138, 291 | 139 292 | ], 293 | "shape": 3, 294 | "slot_index": 0 295 | }, 296 | { 297 | "name": "grayscale image", 298 | "type": "IMAGE", 299 | "links": null, 300 | "shape": 3 301 | } 302 | ], 303 | "properties": { 304 | "Node name for S&R": "Sketch_Assistant_grayScale" 305 | }, 306 | "widgets_values": [ 307 | 10, 308 | 25, 309 | 240, 310 | 2, 311 | 100, 312 | 1 313 | ] 314 | } 315 | ], 316 | "links": [ 317 | [ 318 | 110, 319 | 37, 320 | 0, 321 | 49, 322 | 0, 323 | "IMAGE" 324 | ], 325 | [ 326 | 111, 327 | 49, 328 | 0, 329 | 36, 330 | 0, 331 | "IMAGE" 332 | ], 333 | [ 334 | 113, 335 | 37, 336 | 0, 337 | 50, 338 | 0, 339 | "IMAGE" 340 | ], 341 | [ 342 | 117, 343 | 49, 344 | 1, 345 | 48, 346 | 0, 347 | "IMAGE" 348 | ], 349 | [ 350 | 119, 351 | 50, 352 | 0, 353 | 51, 354 | 0, 355 | "IMAGE" 356 | ], 357 | [ 358 | 138, 359 | 57, 360 | 0, 361 | 50, 362 | 1, 363 | "IMAGE" 364 | ], 365 | [ 366 | 139, 367 | 57, 368 | 0, 369 | 46, 370 | 0, 371 | "IMAGE" 372 | ], 373 | [ 374 | 143, 375 | 37, 376 | 0, 377 | 57, 378 | 0, 379 | "IMAGE" 380 | ] 381 | ], 382 | "groups": [], 383 | "config": {}, 384 | "extra": { 385 | "ds": { 386 | "scale": 1.6105100000000154, 387 | "offset": [ 388 | -37.025603722675164, 389 | -30.875451026604647 390 | ] 391 | } 392 | }, 393 | "version": 0.4 394 | } -------------------------------------------------------------------------------- /comfyWorkflows/img2paintingVid.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 56, 3 | "last_link_id": 134, 4 | "nodes": [ 5 | { 6 | "id": 43, 7 | "type": "Painting", 8 | "pos": [ 9 | 499, 10 | 99 11 | ], 12 | "size": { 13 | "0": 315, 14 | "1": 222 15 | }, 16 | "flags": {}, 17 | "order": 3, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "image", 22 | "type": "IMAGE", 23 | "link": 123 24 | }, 25 | { 26 | "name": "lineArt", 27 | "type": "IMAGE", 28 | "link": 134 29 | } 30 | ], 31 | "outputs": [ 32 | { 33 | "name": "painting", 34 | "type": "IMAGE", 35 | "links": [ 36 | 133 37 | ], 38 | "slot_index": 0, 39 | "shape": 3 40 | }, 41 | { 42 | "name": "sharpImage", 43 | "type": "IMAGE", 44 | "links": [], 45 | "slot_index": 1, 46 | "shape": 3 47 | } 48 | ], 49 | "properties": { 50 | "Node name for S&R": "Painting" 51 | }, 52 | "widgets_values": [ 53 | 21, 54 | 3, 55 | 7, 56 | 1, 57 | 0, 58 | 1, 59 | 1.3 60 | ] 61 | }, 62 | { 63 | "id": 55, 64 | "type": "Sketch_Assistant_grayScale", 65 | "pos": [ 66 | 507, 67 | 408 68 | ], 69 | "size": { 70 | "0": 315, 71 | "1": 198 72 | }, 73 | "flags": {}, 74 | "order": 1, 75 | "mode": 0, 76 | "inputs": [ 77 | { 78 | "name": "image", 79 | "type": "IMAGE", 80 | "link": 130 81 | } 82 | ], 83 | "outputs": [ 84 | { 85 | "name": "sketch", 86 | "type": "IMAGE", 87 | "links": [ 88 | 132, 89 | 134 90 | ], 91 | "shape": 3, 92 | "slot_index": 0 93 | }, 94 | { 95 | "name": "grayscale image", 96 | "type": "IMAGE", 97 | "links": null, 98 | "shape": 3 99 | } 100 | ], 101 | "properties": { 102 | "Node name for S&R": "Sketch_Assistant_grayScale" 103 | }, 104 | "widgets_values": [ 105 | 10, 106 | 41, 107 | 240, 108 | 2, 109 | 100, 110 | 1 111 | ] 112 | }, 113 | { 114 | "id": 47, 115 | "type": "VHS_LoadVideo", 116 | "pos": [ 117 | 164, 118 | 98 119 | ], 120 | "size": [ 121 | 247.455078125, 122 | 617.1826171875 123 | ], 124 | "flags": {}, 125 | "order": 0, 126 | "mode": 0, 127 | "inputs": [ 128 | { 129 | "name": "meta_batch", 130 | "type": "VHS_BatchManager", 131 | "link": null 132 | }, 133 | { 134 | "name": "vae", 135 | "type": "VAE", 136 | "link": null 137 | } 138 | ], 139 | "outputs": [ 140 | { 141 | "name": "IMAGE", 142 | "type": "IMAGE", 143 | "links": [ 144 | 123, 145 | 130 146 | ], 147 | "slot_index": 0, 148 | "shape": 3 149 | }, 150 | { 151 | "name": "frame_count", 152 | "type": "INT", 153 | "links": null, 154 | "shape": 3 155 | }, 156 | { 157 | "name": "audio", 158 | "type": "AUDIO", 159 | "links": null, 160 | "shape": 3 161 | }, 162 | { 163 | "name": "video_info", 164 | "type": "VHS_VIDEOINFO", 165 | "links": null, 166 | "shape": 3 167 | } 168 | ], 169 | "properties": { 170 | "Node name for S&R": "VHS_LoadVideo" 171 | }, 172 | "widgets_values": { 173 | "video": "6vid.mp4", 174 | "force_rate": 0, 175 | "force_size": "Disabled", 176 | "custom_width": 512, 177 | "custom_height": 512, 178 | "frame_load_cap": 0, 179 | "skip_first_frames": 0, 180 | "select_every_nth": 2, 181 | "choose video to upload": "image", 182 | "videopreview": { 183 | "hidden": false, 184 | "paused": false, 185 | "params": { 186 | "frame_load_cap": 0, 187 | "skip_first_frames": 0, 188 | "force_rate": 0, 189 | "filename": "6vid.mp4", 190 | "type": "input", 191 | "format": "video/mp4", 192 | "select_every_nth": 2 193 | }, 194 | "muted": false 195 | } 196 | } 197 | }, 198 | { 199 | "id": 48, 200 | "type": "VHS_VideoCombine", 201 | "pos": [ 202 | 901, 203 | 115 204 | ], 205 | "size": [ 206 | 298.2245788574219, 207 | 741.3368682861328 208 | ], 209 | "flags": {}, 210 | "order": 4, 211 | "mode": 0, 212 | "inputs": [ 213 | { 214 | "name": "images", 215 | "type": "IMAGE", 216 | "link": 133 217 | }, 218 | { 219 | "name": "audio", 220 | "type": "AUDIO", 221 | "link": null 222 | }, 223 | { 224 | "name": "meta_batch", 225 | "type": "VHS_BatchManager", 226 | "link": null 227 | }, 228 | { 229 | "name": "vae", 230 | "type": "VAE", 231 | "link": null 232 | } 233 | ], 234 | "outputs": [ 235 | { 236 | "name": "Filenames", 237 | "type": "VHS_FILENAMES", 238 | "links": null, 239 | "shape": 3 240 | } 241 | ], 242 | "properties": { 243 | "Node name for S&R": "VHS_VideoCombine" 244 | }, 245 | "widgets_values": { 246 | "frame_rate": 8, 247 | "loop_count": 0, 248 | "filename_prefix": "AnimateDiff", 249 | "format": "video/h264-mp4", 250 | "pix_fmt": "yuv420p", 251 | "crf": 19, 252 | "save_metadata": true, 253 | "pingpong": false, 254 | "save_output": false, 255 | "videopreview": { 256 | "hidden": false, 257 | "paused": false, 258 | "params": { 259 | "filename": "AnimateDiff_00029.mp4", 260 | "subfolder": "", 261 | "type": "temp", 262 | "format": "video/h264-mp4", 263 | "frame_rate": 15 264 | }, 265 | "muted": false 266 | } 267 | } 268 | }, 269 | { 270 | "id": 56, 271 | "type": "VHS_VideoCombine", 272 | "pos": [ 273 | 1231, 274 | 114 275 | ], 276 | "size": [ 277 | 298.2245788574219, 278 | 741.3368682861328 279 | ], 280 | "flags": {}, 281 | "order": 2, 282 | "mode": 0, 283 | "inputs": [ 284 | { 285 | "name": "images", 286 | "type": "IMAGE", 287 | "link": 132 288 | }, 289 | { 290 | "name": "audio", 291 | "type": "AUDIO", 292 | "link": null 293 | }, 294 | { 295 | "name": "meta_batch", 296 | "type": "VHS_BatchManager", 297 | "link": null 298 | }, 299 | { 300 | "name": "vae", 301 | "type": "VAE", 302 | "link": null 303 | } 304 | ], 305 | "outputs": [ 306 | { 307 | "name": "Filenames", 308 | "type": "VHS_FILENAMES", 309 | "links": null, 310 | "shape": 3 311 | } 312 | ], 313 | "properties": { 314 | "Node name for S&R": "VHS_VideoCombine" 315 | }, 316 | "widgets_values": { 317 | "frame_rate": 8, 318 | "loop_count": 0, 319 | "filename_prefix": "AnimateDiff", 320 | "format": "video/h264-mp4", 321 | "pix_fmt": "yuv420p", 322 | "crf": 19, 323 | "save_metadata": true, 324 | "pingpong": false, 325 | "save_output": false, 326 | "videopreview": { 327 | "hidden": false, 328 | "paused": false, 329 | "params": { 330 | "filename": "AnimateDiff_00030.mp4", 331 | "subfolder": "", 332 | "type": "temp", 333 | "format": "video/h264-mp4", 334 | "frame_rate": 15 335 | }, 336 | "muted": false 337 | } 338 | } 339 | } 340 | ], 341 | "links": [ 342 | [ 343 | 123, 344 | 47, 345 | 0, 346 | 43, 347 | 0, 348 | "IMAGE" 349 | ], 350 | [ 351 | 130, 352 | 47, 353 | 0, 354 | 55, 355 | 0, 356 | "IMAGE" 357 | ], 358 | [ 359 | 132, 360 | 55, 361 | 0, 362 | 56, 363 | 0, 364 | "IMAGE" 365 | ], 366 | [ 367 | 133, 368 | 43, 369 | 0, 370 | 48, 371 | 0, 372 | "IMAGE" 373 | ], 374 | [ 375 | 134, 376 | 55, 377 | 0, 378 | 43, 379 | 1, 380 | "IMAGE" 381 | ] 382 | ], 383 | "groups": [], 384 | "config": {}, 385 | "extra": { 386 | "ds": { 387 | "scale": 1.228459735736752, 388 | "offset": [ 389 | 329.79595404555823, 390 | 31.516697609589457 391 | ] 392 | } 393 | }, 394 | "version": 0.4 395 | } -------------------------------------------------------------------------------- /comfyWorkflows/ImagePainter&ShapenerCartoonVidWorkflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 50, 3 | "last_link_id": 114, 4 | "nodes": [ 5 | { 6 | "id": 43, 7 | "type": "Painting", 8 | "pos": [ 9 | 499, 10 | 99 11 | ], 12 | "size": { 13 | "0": 315, 14 | "1": 222 15 | }, 16 | "flags": {}, 17 | "order": 2, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "image", 22 | "type": "IMAGE", 23 | "link": 106 24 | }, 25 | { 26 | "name": "lineArt", 27 | "type": "IMAGE", 28 | "link": 112 29 | } 30 | ], 31 | "outputs": [ 32 | { 33 | "name": "painting", 34 | "type": "IMAGE", 35 | "links": [ 36 | 104 37 | ], 38 | "slot_index": 0, 39 | "shape": 3 40 | }, 41 | { 42 | "name": "sharpImage", 43 | "type": "IMAGE", 44 | "links": [], 45 | "slot_index": 1, 46 | "shape": 3 47 | } 48 | ], 49 | "properties": { 50 | "Node name for S&R": "Painting" 51 | }, 52 | "widgets_values": [ 53 | 21, 54 | 1, 55 | 7, 56 | 2, 57 | 0, 58 | 1, 59 | 1.3 60 | ] 61 | }, 62 | { 63 | "id": 48, 64 | "type": "VHS_VideoCombine", 65 | "pos": [ 66 | 874, 67 | 59 68 | ], 69 | "size": [ 70 | 298.22457788213705, 71 | 814.9845492037713 72 | ], 73 | "flags": {}, 74 | "order": 4, 75 | "mode": 0, 76 | "inputs": [ 77 | { 78 | "name": "images", 79 | "type": "IMAGE", 80 | "link": 104 81 | }, 82 | { 83 | "name": "audio", 84 | "type": "AUDIO", 85 | "link": null 86 | }, 87 | { 88 | "name": "meta_batch", 89 | "type": "VHS_BatchManager", 90 | "link": null 91 | }, 92 | { 93 | "name": "vae", 94 | "type": "VAE", 95 | "link": null 96 | } 97 | ], 98 | "outputs": [ 99 | { 100 | "name": "Filenames", 101 | "type": "VHS_FILENAMES", 102 | "links": null, 103 | "shape": 3 104 | } 105 | ], 106 | "properties": { 107 | "Node name for S&R": "VHS_VideoCombine" 108 | }, 109 | "widgets_values": { 110 | "frame_rate": 15, 111 | "loop_count": 0, 112 | "filename_prefix": "AnimateDiff", 113 | "format": "video/h264-mp4", 114 | "pix_fmt": "yuv420p", 115 | "crf": 19, 116 | "save_metadata": true, 117 | "pingpong": false, 118 | "save_output": false, 119 | "videopreview": { 120 | "hidden": false, 121 | "paused": false, 122 | "params": { 123 | "filename": "AnimateDiff_00018.mp4", 124 | "subfolder": "", 125 | "type": "temp", 126 | "format": "video/h264-mp4", 127 | "frame_rate": 15 128 | }, 129 | "muted": false 130 | } 131 | } 132 | }, 133 | { 134 | "id": 49, 135 | "type": "VHS_VideoCombine", 136 | "pos": [ 137 | 1222, 138 | 63 139 | ], 140 | "size": [ 141 | 295.002126454533, 142 | 809.2978702138819 143 | ], 144 | "flags": {}, 145 | "order": 3, 146 | "mode": 0, 147 | "inputs": [ 148 | { 149 | "name": "images", 150 | "type": "IMAGE", 151 | "link": 113 152 | }, 153 | { 154 | "name": "audio", 155 | "type": "AUDIO", 156 | "link": null 157 | }, 158 | { 159 | "name": "meta_batch", 160 | "type": "VHS_BatchManager", 161 | "link": null 162 | }, 163 | { 164 | "name": "vae", 165 | "type": "VAE", 166 | "link": null 167 | } 168 | ], 169 | "outputs": [ 170 | { 171 | "name": "Filenames", 172 | "type": "VHS_FILENAMES", 173 | "links": null, 174 | "shape": 3 175 | } 176 | ], 177 | "properties": { 178 | "Node name for S&R": "VHS_VideoCombine" 179 | }, 180 | "widgets_values": { 181 | "frame_rate": 15, 182 | "loop_count": 0, 183 | "filename_prefix": "AnimateDiff", 184 | "format": "video/h264-mp4", 185 | "pix_fmt": "yuv420p", 186 | "crf": 19, 187 | "save_metadata": true, 188 | "pingpong": false, 189 | "save_output": false, 190 | "videopreview": { 191 | "hidden": false, 192 | "paused": false, 193 | "params": { 194 | "filename": "AnimateDiff_00017.mp4", 195 | "subfolder": "", 196 | "type": "temp", 197 | "format": "video/h264-mp4", 198 | "frame_rate": 15 199 | }, 200 | "muted": false 201 | } 202 | } 203 | }, 204 | { 205 | "id": 50, 206 | "type": "Sketch_Assistant_grayScale", 207 | "pos": [ 208 | 494, 209 | 506 210 | ], 211 | "size": { 212 | "0": 315, 213 | "1": 198 214 | }, 215 | "flags": {}, 216 | "order": 1, 217 | "mode": 0, 218 | "inputs": [ 219 | { 220 | "name": "image", 221 | "type": "IMAGE", 222 | "link": 114 223 | } 224 | ], 225 | "outputs": [ 226 | { 227 | "name": "sketch", 228 | "type": "IMAGE", 229 | "links": [ 230 | 112, 231 | 113 232 | ], 233 | "shape": 3, 234 | "slot_index": 0 235 | }, 236 | { 237 | "name": "grayscale image", 238 | "type": "IMAGE", 239 | "links": null, 240 | "shape": 3 241 | } 242 | ], 243 | "properties": { 244 | "Node name for S&R": "Sketch_Assistant_grayScale" 245 | }, 246 | "widgets_values": [ 247 | 10, 248 | 25, 249 | 235, 250 | 2, 251 | 100, 252 | 1 253 | ] 254 | }, 255 | { 256 | "id": 47, 257 | "type": "VHS_LoadVideo", 258 | "pos": [ 259 | 162, 260 | 51 261 | ], 262 | "size": [ 263 | 247.455078125, 264 | 680.3645833333333 265 | ], 266 | "flags": {}, 267 | "order": 0, 268 | "mode": 0, 269 | "inputs": [ 270 | { 271 | "name": "meta_batch", 272 | "type": "VHS_BatchManager", 273 | "link": null 274 | }, 275 | { 276 | "name": "vae", 277 | "type": "VAE", 278 | "link": null 279 | } 280 | ], 281 | "outputs": [ 282 | { 283 | "name": "IMAGE", 284 | "type": "IMAGE", 285 | "links": [ 286 | 106, 287 | 114 288 | ], 289 | "slot_index": 0, 290 | "shape": 3 291 | }, 292 | { 293 | "name": "frame_count", 294 | "type": "INT", 295 | "links": null, 296 | "shape": 3 297 | }, 298 | { 299 | "name": "audio", 300 | "type": "AUDIO", 301 | "links": null, 302 | "shape": 3 303 | }, 304 | { 305 | "name": "video_info", 306 | "type": "VHS_VIDEOINFO", 307 | "links": null, 308 | "shape": 3 309 | } 310 | ], 311 | "properties": { 312 | "Node name for S&R": "VHS_LoadVideo" 313 | }, 314 | "widgets_values": { 315 | "video": "0001-0064.mp4", 316 | "force_rate": 0, 317 | "force_size": "Disabled", 318 | "custom_width": 512, 319 | "custom_height": 512, 320 | "frame_load_cap": 0, 321 | "skip_first_frames": 0, 322 | "select_every_nth": 2, 323 | "choose video to upload": "image", 324 | "videopreview": { 325 | "hidden": false, 326 | "paused": false, 327 | "params": { 328 | "frame_load_cap": 0, 329 | "skip_first_frames": 0, 330 | "force_rate": 0, 331 | "filename": "0001-0064.mp4", 332 | "type": "input", 333 | "format": "video/mp4", 334 | "select_every_nth": 2 335 | }, 336 | "muted": false 337 | } 338 | } 339 | } 340 | ], 341 | "links": [ 342 | [ 343 | 104, 344 | 43, 345 | 0, 346 | 48, 347 | 0, 348 | "IMAGE" 349 | ], 350 | [ 351 | 106, 352 | 47, 353 | 0, 354 | 43, 355 | 0, 356 | "IMAGE" 357 | ], 358 | [ 359 | 112, 360 | 50, 361 | 0, 362 | 43, 363 | 1, 364 | "IMAGE" 365 | ], 366 | [ 367 | 113, 368 | 50, 369 | 0, 370 | 49, 371 | 0, 372 | "IMAGE" 373 | ], 374 | [ 375 | 114, 376 | 47, 377 | 0, 378 | 50, 379 | 0, 380 | "IMAGE" 381 | ] 382 | ], 383 | "groups": [], 384 | "config": {}, 385 | "extra": { 386 | "ds": { 387 | "scale": 0.9229599817706623, 388 | "offset": [ 389 | 212.0365273219479, 390 | 62.78906395415521 391 | ] 392 | } 393 | }, 394 | "version": 0.4 395 | } -------------------------------------------------------------------------------- /comfyWorkflows/vid2vidSharps.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 58, 3 | "last_link_id": 139, 4 | "nodes": [ 5 | { 6 | "id": 57, 7 | "type": "Painting", 8 | "pos": [ 9 | 1050, 10 | 102 11 | ], 12 | "size": { 13 | "0": 315, 14 | "1": 246 15 | }, 16 | "flags": {}, 17 | "order": 2, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "image", 22 | "type": "IMAGE", 23 | "link": 137 24 | }, 25 | { 26 | "name": "lineArt", 27 | "type": "IMAGE", 28 | "link": null 29 | } 30 | ], 31 | "outputs": [ 32 | { 33 | "name": "painting", 34 | "type": "IMAGE", 35 | "links": [], 36 | "slot_index": 0, 37 | "shape": 3 38 | }, 39 | { 40 | "name": "sharpImage", 41 | "type": "IMAGE", 42 | "links": [ 43 | 138 44 | ], 45 | "slot_index": 1, 46 | "shape": 3 47 | } 48 | ], 49 | "properties": { 50 | "Node name for S&R": "Painting" 51 | }, 52 | "widgets_values": [ 53 | 21, 54 | 3, 55 | 7, 56 | 1, 57 | 0, 58 | 1.1, 59 | 1.4000000000000001, 60 | 1 61 | ] 62 | }, 63 | { 64 | "id": 43, 65 | "type": "Painting", 66 | "pos": [ 67 | 714, 68 | 104 69 | ], 70 | "size": { 71 | "0": 315, 72 | "1": 246 73 | }, 74 | "flags": {}, 75 | "order": 1, 76 | "mode": 0, 77 | "inputs": [ 78 | { 79 | "name": "image", 80 | "type": "IMAGE", 81 | "link": 123 82 | }, 83 | { 84 | "name": "lineArt", 85 | "type": "IMAGE", 86 | "link": null 87 | } 88 | ], 89 | "outputs": [ 90 | { 91 | "name": "painting", 92 | "type": "IMAGE", 93 | "links": [], 94 | "slot_index": 0, 95 | "shape": 3 96 | }, 97 | { 98 | "name": "sharpImage", 99 | "type": "IMAGE", 100 | "links": [ 101 | 137, 102 | 139 103 | ], 104 | "slot_index": 1, 105 | "shape": 3 106 | } 107 | ], 108 | "properties": { 109 | "Node name for S&R": "Painting" 110 | }, 111 | "widgets_values": [ 112 | 21, 113 | 3, 114 | 7, 115 | 1, 116 | 0, 117 | 1.1, 118 | 1.4000000000000001, 119 | 1 120 | ] 121 | }, 122 | { 123 | "id": 47, 124 | "type": "VHS_LoadVideo", 125 | "pos": [ 126 | 379, 127 | 101 128 | ], 129 | "size": [ 130 | 320.70963333674683, 131 | 807.253685561586 132 | ], 133 | "flags": {}, 134 | "order": 0, 135 | "mode": 0, 136 | "inputs": [ 137 | { 138 | "name": "meta_batch", 139 | "type": "VHS_BatchManager", 140 | "link": null 141 | }, 142 | { 143 | "name": "vae", 144 | "type": "VAE", 145 | "link": null 146 | } 147 | ], 148 | "outputs": [ 149 | { 150 | "name": "IMAGE", 151 | "type": "IMAGE", 152 | "links": [ 153 | 123 154 | ], 155 | "slot_index": 0, 156 | "shape": 3 157 | }, 158 | { 159 | "name": "frame_count", 160 | "type": "INT", 161 | "links": null, 162 | "shape": 3 163 | }, 164 | { 165 | "name": "audio", 166 | "type": "AUDIO", 167 | "links": null, 168 | "shape": 3 169 | }, 170 | { 171 | "name": "video_info", 172 | "type": "VHS_VIDEOINFO", 173 | "links": null, 174 | "shape": 3 175 | } 176 | ], 177 | "properties": { 178 | "Node name for S&R": "VHS_LoadVideo" 179 | }, 180 | "widgets_values": { 181 | "video": "VID-20240110-WA0001.mp4", 182 | "force_rate": 0, 183 | "force_size": "Disabled", 184 | "custom_width": 512, 185 | "custom_height": 512, 186 | "frame_load_cap": 0, 187 | "skip_first_frames": 0, 188 | "select_every_nth": 1, 189 | "choose video to upload": "image", 190 | "videopreview": { 191 | "hidden": false, 192 | "paused": false, 193 | "params": { 194 | "frame_load_cap": 0, 195 | "skip_first_frames": 0, 196 | "force_rate": 0, 197 | "filename": "VID-20240110-WA0001.mp4", 198 | "type": "input", 199 | "format": "video/mp4", 200 | "select_every_nth": 1 201 | }, 202 | "muted": false 203 | } 204 | } 205 | }, 206 | { 207 | "id": 58, 208 | "type": "VHS_VideoCombine", 209 | "pos": [ 210 | 34, 211 | 60 212 | ], 213 | "size": [ 214 | 316.88507080078125, 215 | 848.4969584147135 216 | ], 217 | "flags": {}, 218 | "order": 3, 219 | "mode": 0, 220 | "inputs": [ 221 | { 222 | "name": "images", 223 | "type": "IMAGE", 224 | "link": 139 225 | }, 226 | { 227 | "name": "audio", 228 | "type": "AUDIO", 229 | "link": null 230 | }, 231 | { 232 | "name": "meta_batch", 233 | "type": "VHS_BatchManager", 234 | "link": null 235 | }, 236 | { 237 | "name": "vae", 238 | "type": "VAE", 239 | "link": null 240 | } 241 | ], 242 | "outputs": [ 243 | { 244 | "name": "Filenames", 245 | "type": "VHS_FILENAMES", 246 | "links": null, 247 | "shape": 3 248 | } 249 | ], 250 | "properties": { 251 | "Node name for S&R": "VHS_VideoCombine" 252 | }, 253 | "widgets_values": { 254 | "frame_rate": 30, 255 | "loop_count": 0, 256 | "filename_prefix": "AnimateDiff", 257 | "format": "video/h264-mp4", 258 | "pix_fmt": "yuv420p", 259 | "crf": 19, 260 | "save_metadata": true, 261 | "pingpong": false, 262 | "save_output": false, 263 | "videopreview": { 264 | "hidden": false, 265 | "paused": false, 266 | "params": { 267 | "filename": "AnimateDiff_00014.mp4", 268 | "subfolder": "", 269 | "type": "temp", 270 | "format": "video/h264-mp4", 271 | "frame_rate": 15 272 | }, 273 | "muted": false 274 | } 275 | } 276 | }, 277 | { 278 | "id": 56, 279 | "type": "VHS_VideoCombine", 280 | "pos": [ 281 | -303, 282 | 61 283 | ], 284 | "size": [ 285 | 316.8850772790622, 286 | 848.4969698596766 287 | ], 288 | "flags": {}, 289 | "order": 4, 290 | "mode": 0, 291 | "inputs": [ 292 | { 293 | "name": "images", 294 | "type": "IMAGE", 295 | "link": 138 296 | }, 297 | { 298 | "name": "audio", 299 | "type": "AUDIO", 300 | "link": null 301 | }, 302 | { 303 | "name": "meta_batch", 304 | "type": "VHS_BatchManager", 305 | "link": null 306 | }, 307 | { 308 | "name": "vae", 309 | "type": "VAE", 310 | "link": null 311 | } 312 | ], 313 | "outputs": [ 314 | { 315 | "name": "Filenames", 316 | "type": "VHS_FILENAMES", 317 | "links": null, 318 | "shape": 3 319 | } 320 | ], 321 | "properties": { 322 | "Node name for S&R": "VHS_VideoCombine" 323 | }, 324 | "widgets_values": { 325 | "frame_rate": 30, 326 | "loop_count": 0, 327 | "filename_prefix": "AnimateDiff", 328 | "format": "video/h264-mp4", 329 | "pix_fmt": "yuv420p", 330 | "crf": 19, 331 | "save_metadata": true, 332 | "pingpong": false, 333 | "save_output": false, 334 | "videopreview": { 335 | "hidden": false, 336 | "paused": false, 337 | "params": { 338 | "filename": "AnimateDiff_00013.mp4", 339 | "subfolder": "", 340 | "type": "temp", 341 | "format": "video/h264-mp4", 342 | "frame_rate": 15 343 | }, 344 | "muted": false 345 | } 346 | } 347 | } 348 | ], 349 | "links": [ 350 | [ 351 | 123, 352 | 47, 353 | 0, 354 | 43, 355 | 0, 356 | "IMAGE" 357 | ], 358 | [ 359 | 137, 360 | 43, 361 | 1, 362 | 57, 363 | 0, 364 | "IMAGE" 365 | ], 366 | [ 367 | 138, 368 | 57, 369 | 1, 370 | 56, 371 | 0, 372 | "IMAGE" 373 | ], 374 | [ 375 | 139, 376 | 43, 377 | 1, 378 | 58, 379 | 0, 380 | "IMAGE" 381 | ] 382 | ], 383 | "groups": [], 384 | "config": {}, 385 | "extra": { 386 | "ds": { 387 | "scale": 1.2284597357367528, 388 | "offset": [ 389 | 537.1662109548555, 390 | 18.775638697094656 391 | ] 392 | } 393 | }, 394 | "version": 0.4 395 | } -------------------------------------------------------------------------------- /comfyWorkflows/img2CartoonWtRemBg.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 56, 3 | "last_link_id": 125, 4 | "nodes": [ 5 | { 6 | "id": 49, 7 | "type": "VHS_VideoCombine", 8 | "pos": [ 9 | 1460, 10 | 67 11 | ], 12 | "size": [ 13 | 295.00213623046875, 14 | 812.8926866319445 15 | ], 16 | "flags": {}, 17 | "order": 4, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 120 24 | }, 25 | { 26 | "name": "audio", 27 | "type": "AUDIO", 28 | "link": null 29 | }, 30 | { 31 | "name": "meta_batch", 32 | "type": "VHS_BatchManager", 33 | "link": null 34 | }, 35 | { 36 | "name": "vae", 37 | "type": "VAE", 38 | "link": null 39 | } 40 | ], 41 | "outputs": [ 42 | { 43 | "name": "Filenames", 44 | "type": "VHS_FILENAMES", 45 | "links": null, 46 | "shape": 3 47 | } 48 | ], 49 | "properties": { 50 | "Node name for S&R": "VHS_VideoCombine" 51 | }, 52 | "widgets_values": { 53 | "frame_rate": 2, 54 | "loop_count": 0, 55 | "filename_prefix": "AnimateDiff", 56 | "format": "video/h264-mp4", 57 | "pix_fmt": "yuv420p", 58 | "crf": 19, 59 | "save_metadata": false, 60 | "pingpong": false, 61 | "save_output": false, 62 | "videopreview": { 63 | "hidden": false, 64 | "paused": false, 65 | "params": { 66 | "filename": "AnimateDiff_00072.mp4", 67 | "subfolder": "", 68 | "type": "temp", 69 | "format": "video/h264-mp4", 70 | "frame_rate": 15 71 | }, 72 | "muted": false 73 | } 74 | } 75 | }, 76 | { 77 | "id": 48, 78 | "type": "VHS_VideoCombine", 79 | "pos": [ 80 | 1062, 81 | 64 82 | ], 83 | "size": [ 84 | 298.2245788574219, 85 | 818.6214735243055 86 | ], 87 | "flags": {}, 88 | "order": 5, 89 | "mode": 0, 90 | "inputs": [ 91 | { 92 | "name": "images", 93 | "type": "IMAGE", 94 | "link": 104 95 | }, 96 | { 97 | "name": "audio", 98 | "type": "AUDIO", 99 | "link": null 100 | }, 101 | { 102 | "name": "meta_batch", 103 | "type": "VHS_BatchManager", 104 | "link": null 105 | }, 106 | { 107 | "name": "vae", 108 | "type": "VAE", 109 | "link": null 110 | } 111 | ], 112 | "outputs": [ 113 | { 114 | "name": "Filenames", 115 | "type": "VHS_FILENAMES", 116 | "links": null, 117 | "shape": 3 118 | } 119 | ], 120 | "properties": { 121 | "Node name for S&R": "VHS_VideoCombine" 122 | }, 123 | "widgets_values": { 124 | "frame_rate": 2, 125 | "loop_count": 0, 126 | "filename_prefix": "AnimateDiff", 127 | "format": "video/h264-mp4", 128 | "pix_fmt": "yuv420p", 129 | "crf": 19, 130 | "save_metadata": false, 131 | "pingpong": false, 132 | "save_output": false, 133 | "videopreview": { 134 | "hidden": false, 135 | "paused": false, 136 | "params": { 137 | "filename": "AnimateDiff_00073.mp4", 138 | "subfolder": "", 139 | "type": "temp", 140 | "format": "video/h264-mp4", 141 | "frame_rate": 15 142 | }, 143 | "muted": false 144 | } 145 | } 146 | }, 147 | { 148 | "id": 43, 149 | "type": "Painting", 150 | "pos": [ 151 | 674, 152 | 66 153 | ], 154 | "size": { 155 | "0": 315, 156 | "1": 246 157 | }, 158 | "flags": {}, 159 | "order": 3, 160 | "mode": 0, 161 | "inputs": [ 162 | { 163 | "name": "image", 164 | "type": "IMAGE", 165 | "link": 121 166 | }, 167 | { 168 | "name": "lineArt", 169 | "type": "IMAGE", 170 | "link": 119 171 | } 172 | ], 173 | "outputs": [ 174 | { 175 | "name": "painting", 176 | "type": "IMAGE", 177 | "links": [ 178 | 104 179 | ], 180 | "slot_index": 0, 181 | "shape": 3 182 | }, 183 | { 184 | "name": "sharpImage", 185 | "type": "IMAGE", 186 | "links": [], 187 | "slot_index": 1, 188 | "shape": 3 189 | } 190 | ], 191 | "properties": { 192 | "Node name for S&R": "Painting" 193 | }, 194 | "widgets_values": [ 195 | 21, 196 | 1, 197 | 7, 198 | 2, 199 | 0, 200 | 1, 201 | 1.3, 202 | 1 203 | ] 204 | }, 205 | { 206 | "id": 56, 207 | "type": "Image Rembg (Remove Background)", 208 | "pos": [ 209 | 316, 210 | 179 211 | ], 212 | "size": { 213 | "0": 315, 214 | "1": 250 215 | }, 216 | "flags": {}, 217 | "order": 1, 218 | "mode": 0, 219 | "inputs": [ 220 | { 221 | "name": "images", 222 | "type": "IMAGE", 223 | "link": 124 224 | } 225 | ], 226 | "outputs": [ 227 | { 228 | "name": "images", 229 | "type": "IMAGE", 230 | "links": [ 231 | 125 232 | ], 233 | "shape": 3, 234 | "slot_index": 0 235 | } 236 | ], 237 | "properties": { 238 | "Node name for S&R": "Image Rembg (Remove Background)" 239 | }, 240 | "widgets_values": [ 241 | true, 242 | "u2net", 243 | false, 244 | false, 245 | false, 246 | 240, 247 | 10, 248 | 10, 249 | "none" 250 | ] 251 | }, 252 | { 253 | "id": 54, 254 | "type": "VHS_LoadVideo", 255 | "pos": [ 256 | 59, 257 | 102 258 | ], 259 | "size": [ 260 | 235.1999969482422, 261 | 658.5777723524305 262 | ], 263 | "flags": {}, 264 | "order": 0, 265 | "mode": 0, 266 | "inputs": [ 267 | { 268 | "name": "meta_batch", 269 | "type": "VHS_BatchManager", 270 | "link": null 271 | } 272 | ], 273 | "outputs": [ 274 | { 275 | "name": "IMAGE", 276 | "type": "IMAGE", 277 | "links": [ 278 | 121, 279 | 124 280 | ], 281 | "shape": 3, 282 | "slot_index": 0 283 | }, 284 | { 285 | "name": "frame_count", 286 | "type": "INT", 287 | "links": null, 288 | "shape": 3 289 | }, 290 | { 291 | "name": "audio", 292 | "type": "VHS_AUDIO", 293 | "links": null, 294 | "shape": 3 295 | }, 296 | { 297 | "name": "video_info", 298 | "type": "VHS_VIDEOINFO", 299 | "links": null, 300 | "shape": 3 301 | } 302 | ], 303 | "properties": { 304 | "Node name for S&R": "VHS_LoadVideo" 305 | }, 306 | "widgets_values": { 307 | "video": "EVERYONE HAS TO DO THIS TREND 😍 ib_ @isabellaafro #dance #takitaki #viral #trend #spanish.mp4", 308 | "force_rate": 0, 309 | "force_size": "Disabled", 310 | "custom_width": 512, 311 | "custom_height": 512, 312 | "frame_load_cap": 0, 313 | "skip_first_frames": 0, 314 | "select_every_nth": 30, 315 | "choose video to upload": "image", 316 | "videopreview": { 317 | "hidden": false, 318 | "paused": false, 319 | "params": { 320 | "frame_load_cap": 0, 321 | "skip_first_frames": 0, 322 | "force_rate": 0, 323 | "filename": "EVERYONE HAS TO DO THIS TREND 😍 ib_ @isabellaafro #dance #takitaki #viral #trend #spanish.mp4", 324 | "type": "input", 325 | "format": "video/mp4", 326 | "select_every_nth": 30 327 | } 328 | } 329 | } 330 | }, 331 | { 332 | "id": 53, 333 | "type": "LineArt_Assistant", 334 | "pos": [ 335 | 667, 336 | 374 337 | ], 338 | "size": { 339 | "0": 315, 340 | "1": 270 341 | }, 342 | "flags": {}, 343 | "order": 2, 344 | "mode": 0, 345 | "inputs": [ 346 | { 347 | "name": "image", 348 | "type": "IMAGE", 349 | "link": 125 350 | } 351 | ], 352 | "outputs": [ 353 | { 354 | "name": "lineArt", 355 | "type": "IMAGE", 356 | "links": [ 357 | 119, 358 | 120 359 | ], 360 | "shape": 3, 361 | "slot_index": 0 362 | }, 363 | { 364 | "name": "grayscale image", 365 | "type": "IMAGE", 366 | "links": null, 367 | "shape": 3 368 | } 369 | ], 370 | "properties": { 371 | "Node name for S&R": "LineArt_Assistant" 372 | }, 373 | "widgets_values": [ 374 | 9, 375 | 9, 376 | 2, 377 | "black", 378 | 10, 379 | 9, 380 | 1, 381 | "white", 382 | 10 383 | ] 384 | } 385 | ], 386 | "links": [ 387 | [ 388 | 104, 389 | 43, 390 | 0, 391 | 48, 392 | 0, 393 | "IMAGE" 394 | ], 395 | [ 396 | 119, 397 | 53, 398 | 0, 399 | 43, 400 | 1, 401 | "IMAGE" 402 | ], 403 | [ 404 | 120, 405 | 53, 406 | 0, 407 | 49, 408 | 0, 409 | "IMAGE" 410 | ], 411 | [ 412 | 121, 413 | 54, 414 | 0, 415 | 43, 416 | 0, 417 | "IMAGE" 418 | ], 419 | [ 420 | 124, 421 | 54, 422 | 0, 423 | 56, 424 | 0, 425 | "IMAGE" 426 | ], 427 | [ 428 | 125, 429 | 56, 430 | 0, 431 | 53, 432 | 0, 433 | "IMAGE" 434 | ] 435 | ], 436 | "groups": [], 437 | "config": {}, 438 | "extra": { 439 | "ds": { 440 | "scale": 1.2284597357367517, 441 | "offset": [ 442 | 61.27576719219076, 443 | 38.04827248991686 444 | ] 445 | } 446 | }, 447 | "version": 0.4 448 | } -------------------------------------------------------------------------------- /image_to_painting_node.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | import torch 4 | 5 | 6 | 7 | class Painting(): 8 | 9 | @classmethod 10 | def INPUT_TYPES(s): 11 | return { 12 | "required": { 13 | "image": ("IMAGE",), 14 | "painting_details": ("FLOAT", {"default": 26, "min": 1, "max": 36, "step": 1}), 15 | "painting_blur": ("INT", {"default": 1, "min": 1, "max": 9, "step": 2}), 16 | "sharpness": ("INT", {"default": 7, "min": 1, "max": 11, "step": 2}), 17 | "brightness": ("FLOAT", {"default": 1, "min": 0.1, "max": 10, "step": 0.1}), 18 | "hue": ("FLOAT", {"default": 0, "min": 0, "max": 179, "step": 1}), 19 | "saturation": ("FLOAT", {"default": 1.1, "min": 0.1, "max": 10, "step": 0.1}), 20 | "lightness": ("FLOAT", {"default": 1.4, "min": 0.1, "max": 10, "step": 0.1}), 21 | "contrast": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.1}), 22 | "correct_black_Img": ("BOOLEAN", { "default": False }), 23 | 24 | }, 25 | "optional": { 26 | "lineArt": ("IMAGE",), 27 | }, 28 | } 29 | 30 | RETURN_TYPES = ("IMAGE", "IMAGE") 31 | RETURN_NAMES = ("painting", "sharpImage") 32 | FUNCTION = "process" 33 | CATEGORY = "image" 34 | 35 | def process(self, image, painting_details, painting_blur, sharpness, brightness, hue, saturation, lightness, contrast, correct_black_Img, lineArt=None): 36 | imgNo = image.shape[0] 37 | if imgNo == 1: 38 | print("Adjusting Image Properties...") 39 | else: 40 | print(f"{imgNo} images received for adjustment") 41 | paintings = [] 42 | paintings2 = [] 43 | 44 | no_lineArt = True 45 | 46 | if lineArt is not None: 47 | no_lineArt = False 48 | 49 | if correct_black_Img: 50 | image = image*255 51 | 52 | if no_lineArt: 53 | for img in image: 54 | painting, painting2 = processImg2Painting(img, painting_details, painting_blur, sharpness, brightness, hue, saturation, lightness, contrast, lineArt) 55 | paintings.append(painting) 56 | paintings2.append(painting2) 57 | else: 58 | for img, lineart in zip(image, lineArt): 59 | painting, painting2 = processImg2Painting(img, painting_details, painting_blur, sharpness, brightness, hue, saturation, lightness, contrast, lineart) 60 | paintings.append(painting) 61 | paintings2.append(painting2) 62 | 63 | paintings = torch.cat(paintings, dim=0) 64 | paintings2 = torch.cat(paintings2, dim=0) 65 | 66 | print("Task Completed!") 67 | 68 | return (paintings, paintings2) 69 | 70 | 71 | class ProcessInspyrenetRembg: 72 | 73 | @classmethod 74 | def INPUT_TYPES(s): 75 | return { 76 | "required": { 77 | "image": ("IMAGE",), 78 | "mask": ("MASK",), 79 | "use_bg_color": ("BOOLEAN", { "default": False }), 80 | "bg_color": (["white", "black", "red", "lime", "blue", "yellow", "cyan", "magenta", "silver", "gray", "maroon", "olive", "green", "purple", "teal", "navy"],), 81 | }, 82 | } 83 | 84 | RETURN_TYPES = ("IMAGE", "MASK") 85 | FUNCTION = "remove_background" 86 | CATEGORY = "image" 87 | 88 | def remove_background(self, image, mask, use_bg_color, bg_color): 89 | 90 | processedImg = create_transparent_images(image, mask, use_bg_color, bg_color) 91 | 92 | return (processedImg, mask) 93 | 94 | 95 | def processImg2Painting(imageM, details, blur, sharpness, lightness, hue, saturation, light, contrast, lineArt): 96 | if imageM is None: 97 | raise ValueError("Input image is required") 98 | 99 | if isinstance(imageM, torch.Tensor): 100 | imageM = imageM.squeeze(0).cpu().numpy() 101 | imageM = convert_to_uint8(imageM) 102 | 103 | if imageM.ndim not in [2, 3]: 104 | raise ValueError("Input image must be 2D or 3D numpy array") 105 | 106 | 107 | has_alpha = imageM.shape[-1] == 4 108 | if has_alpha: 109 | alpha_channel = imageM[:, :, 3] # Extract the alpha channel 110 | image = imageM[:, :, :3] # Keep only the RGB channels 111 | else: 112 | image = imageM 113 | 114 | 115 | 116 | 117 | hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) 118 | 119 | h, s, v = cv2.split(hsv_image) 120 | 121 | h = (h + hue) % 180 122 | 123 | s = np.clip(s * saturation, 0, 255) 124 | 125 | v = np.clip(v * lightness, 0, 255).astype(np.uint8) 126 | 127 | if h.dtype != np.uint8: 128 | h = h.astype(np.uint8) 129 | if s.dtype != np.uint8: 130 | s = s.astype(np.uint8) 131 | if v.dtype != np.uint8: 132 | v = v.astype(np.uint8) 133 | 134 | modified_hsv = cv2.merge([h, s, v]) 135 | 136 | image = cv2.cvtColor(modified_hsv, cv2.COLOR_HSV2BGR) 137 | 138 | details = 51 - details 139 | details = details/10 140 | 141 | imageP = cv2.resize(image, (int(image.shape[1] * 1 / details), int(image.shape[0] * 1 / details)), interpolation=cv2.INTER_AREA) 142 | 143 | cleaner_image = cv2.medianBlur(imageP, blur) 144 | for i in range(2): 145 | cleaner_image = cv2.medianBlur(cleaner_image, blur) 146 | 147 | filtered_image = cv2.bilateralFilter(cleaner_image, 3, 10, 5) 148 | 149 | for i in range(2): 150 | filtered_image = cv2.bilateralFilter(filtered_image, 3, 20, 10) 151 | 152 | for i in range(3): 153 | filtered_image = cv2.bilateralFilter(filtered_image, 5, 30, 10) 154 | 155 | gaussian_mask = cv2.GaussianBlur(filtered_image, (sharpness, sharpness), 2) 156 | sharper_image = cv2.addWeighted(filtered_image, light, gaussian_mask, -0.5, 0) 157 | sharper_image = cv2.addWeighted(sharper_image, 1.4, gaussian_mask, -0.2, 10) 158 | 159 | gaussian_maskP = cv2.GaussianBlur(sharper_image, (sharpness, sharpness), 2) 160 | sharper_imageP = cv2.addWeighted(sharper_image, light, gaussian_maskP, -0.5, 0) 161 | sharper_imageP = cv2.addWeighted(sharper_imageP, 1.4, gaussian_maskP, -0.2, 10) 162 | 163 | gaussian_maskPP = cv2.GaussianBlur(sharper_imageP, (sharpness, sharpness), 2) 164 | sharper_imagePP = cv2.addWeighted(sharper_imageP, light, gaussian_maskPP, -0.5, 0) 165 | sharper_imagePP = cv2.addWeighted(sharper_imagePP, 1.4, gaussian_maskPP, -0.2, 10) 166 | 167 | 168 | if sharpness == 9: 169 | sharper_image = sharper_imageP 170 | if sharpness > 9: 171 | sharper_image = sharper_imagePP 172 | 173 | 174 | sharper_image = cv2.resize(sharper_image, (int(sharper_image.shape[1] * details), int(sharper_image.shape[0] * details))) 175 | 176 | sharper_image = contrast_image(sharper_image, contrast) 177 | 178 | 179 | if lineArt is not None: 180 | lineArt = lineArt.squeeze(0).cpu().numpy() 181 | lineArt = convert_to_uint8(lineArt) 182 | sharper_image = cv2.resize(sharper_image, (int(lineArt.shape[1]), int(lineArt.shape[0]))) 183 | mask = (lineArt[..., :3] < 240).any(axis=-1) 184 | sharper_image[mask] = lineArt[mask] 185 | 186 | 187 | gaussian_mask2 = cv2.GaussianBlur(image, (sharpness, sharpness), 2) 188 | sharper_image2 = cv2.addWeighted(image, light, gaussian_mask2, -0.5, 0) 189 | sharper_image2 = cv2.addWeighted(sharper_image2, 1.4, gaussian_mask2, -0.2, 10) 190 | 191 | gaussian_mask3 = cv2.GaussianBlur(sharper_image2, (sharpness, sharpness), 2) 192 | sharper_image3 = cv2.addWeighted(sharper_image2, light, gaussian_mask3, -0.5, 0) 193 | sharper_image3 = cv2.addWeighted(sharper_image3, 1.4, gaussian_mask3, -0.2, 10) 194 | 195 | gaussian_mask4 = cv2.GaussianBlur(sharper_image3, (sharpness, sharpness), 2) 196 | sharper_image4 = cv2.addWeighted(sharper_image3, light, gaussian_mask4, -0.5, 0) 197 | sharper_image4 = cv2.addWeighted(sharper_image4, 1.4, gaussian_mask4, -0.2, 10) 198 | 199 | if has_alpha: 200 | sharper_image = cv2.resize(sharper_image, (int(sharper_image2.shape[1]), int(sharper_image2.shape[0]))) 201 | 202 | sharper_image = torch.from_numpy(sharper_image).permute(2, 0, 1).unsqueeze(0).float()/255 203 | sharper_image = sharper_image.permute(0, 2, 3, 1) 204 | 205 | if sharpness == 9: 206 | sharper_image2 = sharper_image3 207 | if sharpness > 9: 208 | sharper_image2 = sharper_image4 209 | 210 | sharper_image2 = contrast_image(sharper_image2, contrast) 211 | 212 | sharper_image2 = torch.from_numpy(sharper_image2).permute(2, 0, 1).unsqueeze(0).float()/255 213 | sharper_image2 = sharper_image2.permute(0, 2, 3, 1) 214 | 215 | if has_alpha: 216 | alpha_channel = alpha_channel / 255.0 217 | alpha_channel = np.expand_dims(alpha_channel, axis=-1) 218 | alpha_channel = np.expand_dims(alpha_channel, axis=0) 219 | 220 | # Concatenate the alpha channel to the processed image 221 | sharper_image = np.concatenate([sharper_image.numpy(), alpha_channel], axis=-1) 222 | sharper_image2 = np.concatenate([sharper_image2.numpy(), alpha_channel], axis=-1) 223 | 224 | sharper_image = torch.from_numpy(sharper_image).float() 225 | sharper_image2 = torch.from_numpy(sharper_image2).float() 226 | 227 | return sharper_image, sharper_image2 228 | 229 | 230 | def create_transparent_images(img_stack, mask, use_bg_color, bg_color): 231 | """ 232 | Create a batch of images with transparent backgrounds using img_stack and mask. 233 | 234 | Args: 235 | - img_stack (torch.Tensor): A batch of images with shape (B, H, W, 4) (RGBA). 236 | - mask (torch.Tensor): A batch of masks with shape (B, H, W), where non-zero values indicate the foreground. 237 | 238 | Returns: 239 | - torch.Tensor: A batch of images with shape (B, H, W, 4) (RGBA), with the background set to transparent. 240 | """ 241 | 242 | if img_stack.shape[-1] != 4: 243 | raise ValueError("The input img_stack must have 4 channels (RGBA).") 244 | 245 | if mask.ndim != 3: 246 | raise ValueError("The mask must have 3 dimensions (B, H, W).") 247 | 248 | binary_mask = (mask > 0.5).float() 249 | 250 | rgb_stack = img_stack[:, :, :, :3] # Shape: (B, H, W, 3) 251 | 252 | if use_bg_color is False: 253 | rgb_stack = rgb_stack * mask.unsqueeze(-1) 254 | else: 255 | bg_color = getColor(bg_color) 256 | bg_color = torch.tensor(bg_color).float().reshape(1, 1, 1, 3) # Shape: (1, 1, 1, 3) 257 | 258 | rgb_stack = rgb_stack * binary_mask.unsqueeze(-1) + bg_color * (1 - binary_mask).unsqueeze(-1) 259 | 260 | new_alpha_channel = binary_mask.unsqueeze(-1) # Shape: (B, H, W, 1) 261 | 262 | rgba_stack = torch.cat([rgb_stack, new_alpha_channel], dim=-1) # Shape: (B, H, W, 4) 263 | 264 | return rgba_stack 265 | 266 | 267 | def convert_to_uint8(image): 268 | if image.dtype == np.uint8: 269 | return image 270 | if image.dtype != np.float32 and image.dtype != np.float64: 271 | image = image.astype(np.float32) 272 | if image.max() <= 1.0: 273 | image = image * 255.0 274 | image = np.clip(image, 0, 255) 275 | return image.astype(np.uint8) 276 | 277 | 278 | def contrast_image(data, scale): 279 | image = data.astype(np.float32) 280 | contrast_image = scale * (image - 128) + 128 281 | contrast_image = np.clip(contrast_image, 0, 255).astype(np.uint8) 282 | 283 | return contrast_image 284 | 285 | def getColor(col): 286 | color_dict = { 287 | "white": [255, 255, 255], 288 | "black": [0, 0, 0], 289 | "red": [255, 0, 0], 290 | "lime": [0, 255, 0], 291 | "blue": [0, 0, 255], 292 | "yellow": [255, 255, 0], 293 | "cyan": [0, 255, 255], 294 | "magenta": [255, 0, 255], 295 | "silver": [192, 192, 192], 296 | "gray": [128, 128, 128], 297 | "maroon": [128, 0, 0], 298 | "olive": [128, 128, 0], 299 | "green": [0, 128, 0], 300 | "purple": [128, 0, 128], 301 | "teal": [0, 128, 128], 302 | "navy": [0, 0, 128], 303 | } 304 | 305 | return color_dict.get(col, [0, 0, 0]) 306 | 307 | 308 | NODE_CLASS_MAPPINGS = { 309 | "Painting" : Painting, 310 | "ProcessInspyrenetRembg" : ProcessInspyrenetRembg, 311 | 312 | } 313 | 314 | NODE_DISPLAY_NAME_MAPPINGS = { 315 | "Painting" :"Image Painting Assistant", 316 | "ProcessInspyrenetRembg" : "Inspyrenet Rembg Assistant", 317 | 318 | } 319 | -------------------------------------------------------------------------------- /comfyWorkflows/Vid2CartoonWtInspyrenetAssitant.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 59, 3 | "last_link_id": 165, 4 | "nodes": [ 5 | { 6 | "id": 51, 7 | "type": "InspyrenetRembg", 8 | "pos": [ 9 | 280, 10 | 147 11 | ], 12 | "size": { 13 | "0": 315, 14 | "1": 78 15 | }, 16 | "flags": {}, 17 | "order": 1, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "image", 22 | "type": "IMAGE", 23 | "link": 115 24 | } 25 | ], 26 | "outputs": [ 27 | { 28 | "name": "IMAGE", 29 | "type": "IMAGE", 30 | "links": [ 31 | 116 32 | ], 33 | "shape": 3, 34 | "slot_index": 0 35 | }, 36 | { 37 | "name": "MASK", 38 | "type": "MASK", 39 | "links": [ 40 | 117 41 | ], 42 | "shape": 3, 43 | "slot_index": 1 44 | } 45 | ], 46 | "properties": { 47 | "Node name for S&R": "InspyrenetRembg" 48 | }, 49 | "widgets_values": [ 50 | "default" 51 | ] 52 | }, 53 | { 54 | "id": 47, 55 | "type": "VHS_LoadVideo", 56 | "pos": [ 57 | 11, 58 | 51 59 | ], 60 | "size": [ 61 | 247.455078125, 62 | 679.368611453202 63 | ], 64 | "flags": {}, 65 | "order": 0, 66 | "mode": 0, 67 | "inputs": [ 68 | { 69 | "name": "meta_batch", 70 | "type": "VHS_BatchManager", 71 | "link": null 72 | }, 73 | { 74 | "name": "vae", 75 | "type": "VAE", 76 | "link": null 77 | } 78 | ], 79 | "outputs": [ 80 | { 81 | "name": "IMAGE", 82 | "type": "IMAGE", 83 | "links": [ 84 | 115, 85 | 165 86 | ], 87 | "slot_index": 0, 88 | "shape": 3 89 | }, 90 | { 91 | "name": "frame_count", 92 | "type": "INT", 93 | "links": null, 94 | "shape": 3 95 | }, 96 | { 97 | "name": "audio", 98 | "type": "AUDIO", 99 | "links": null, 100 | "shape": 3 101 | }, 102 | { 103 | "name": "video_info", 104 | "type": "VHS_VIDEOINFO", 105 | "links": null, 106 | "shape": 3 107 | } 108 | ], 109 | "properties": { 110 | "Node name for S&R": "VHS_LoadVideo" 111 | }, 112 | "widgets_values": { 113 | "video": "🏴_☠️⚓️.mp4", 114 | "force_rate": 0, 115 | "force_size": "Disabled", 116 | "custom_width": 512, 117 | "custom_height": 512, 118 | "frame_load_cap": 0, 119 | "skip_first_frames": 0, 120 | "select_every_nth": 30, 121 | "choose video to upload": "image", 122 | "videopreview": { 123 | "hidden": false, 124 | "paused": false, 125 | "params": { 126 | "frame_load_cap": 0, 127 | "skip_first_frames": 0, 128 | "force_rate": 0, 129 | "filename": "🏴_☠️⚓️.mp4", 130 | "type": "input", 131 | "format": "video/mp4", 132 | "select_every_nth": 30 133 | }, 134 | "muted": false 135 | } 136 | } 137 | }, 138 | { 139 | "id": 55, 140 | "type": "PreviewImage", 141 | "pos": [ 142 | 337, 143 | 457 144 | ], 145 | "size": { 146 | "0": 210, 147 | "1": 246 148 | }, 149 | "flags": {}, 150 | "order": 3, 151 | "mode": 0, 152 | "inputs": [ 153 | { 154 | "name": "images", 155 | "type": "IMAGE", 156 | "link": 128 157 | } 158 | ], 159 | "properties": { 160 | "Node name for S&R": "PreviewImage" 161 | } 162 | }, 163 | { 164 | "id": 43, 165 | "type": "Painting", 166 | "pos": [ 167 | 650, 168 | 57 169 | ], 170 | "size": { 171 | "0": 315, 172 | "1": 270 173 | }, 174 | "flags": {}, 175 | "order": 6, 176 | "mode": 0, 177 | "inputs": [ 178 | { 179 | "name": "image", 180 | "type": "IMAGE", 181 | "link": 165 182 | }, 183 | { 184 | "name": "lineArt", 185 | "type": "IMAGE", 186 | "link": 157 187 | } 188 | ], 189 | "outputs": [ 190 | { 191 | "name": "painting", 192 | "type": "IMAGE", 193 | "links": [ 194 | 164 195 | ], 196 | "slot_index": 0, 197 | "shape": 3 198 | }, 199 | { 200 | "name": "sharpImage", 201 | "type": "IMAGE", 202 | "links": [], 203 | "slot_index": 1, 204 | "shape": 3 205 | } 206 | ], 207 | "properties": { 208 | "Node name for S&R": "Painting" 209 | }, 210 | "widgets_values": [ 211 | 36, 212 | 1, 213 | 7, 214 | 2, 215 | 0, 216 | 1, 217 | 1.3, 218 | 1.0333374023437498, 219 | false 220 | ] 221 | }, 222 | { 223 | "id": 52, 224 | "type": "ProcessInspyrenetRembg", 225 | "pos": [ 226 | 332, 227 | 291 228 | ], 229 | "size": { 230 | "0": 218.39999389648438, 231 | "1": 102 232 | }, 233 | "flags": {}, 234 | "order": 2, 235 | "mode": 0, 236 | "inputs": [ 237 | { 238 | "name": "image", 239 | "type": "IMAGE", 240 | "link": 116 241 | }, 242 | { 243 | "name": "mask", 244 | "type": "MASK", 245 | "link": 117 246 | } 247 | ], 248 | "outputs": [ 249 | { 250 | "name": "IMAGE", 251 | "type": "IMAGE", 252 | "links": [ 253 | 128, 254 | 139, 255 | 154 256 | ], 257 | "shape": 3, 258 | "slot_index": 0 259 | }, 260 | { 261 | "name": "MASK", 262 | "type": "MASK", 263 | "links": [], 264 | "shape": 3, 265 | "slot_index": 1 266 | } 267 | ], 268 | "properties": { 269 | "Node name for S&R": "ProcessInspyrenetRembg" 270 | }, 271 | "widgets_values": [ 272 | true, 273 | "black" 274 | ] 275 | }, 276 | { 277 | "id": 59, 278 | "type": "LineArt_Assistant", 279 | "pos": [ 280 | 619, 281 | 443 282 | ], 283 | "size": { 284 | "0": 315, 285 | "1": 270 286 | }, 287 | "flags": {}, 288 | "order": 4, 289 | "mode": 0, 290 | "inputs": [ 291 | { 292 | "name": "image", 293 | "type": "IMAGE", 294 | "link": 139 295 | } 296 | ], 297 | "outputs": [ 298 | { 299 | "name": "lineArt", 300 | "type": "IMAGE", 301 | "links": [ 302 | 157 303 | ], 304 | "shape": 3, 305 | "slot_index": 0 306 | }, 307 | { 308 | "name": "grayscale image", 309 | "type": "IMAGE", 310 | "links": null, 311 | "shape": 3 312 | } 313 | ], 314 | "properties": { 315 | "Node name for S&R": "LineArt_Assistant" 316 | }, 317 | "widgets_values": [ 318 | 11, 319 | 3, 320 | 2, 321 | "black", 322 | 10, 323 | 9, 324 | 1, 325 | "white", 326 | 10 327 | ] 328 | }, 329 | { 330 | "id": 48, 331 | "type": "VHS_VideoCombine", 332 | "pos": [ 333 | 1026, 334 | 40 335 | ], 336 | "size": [ 337 | 298.2245788574219, 338 | 817.4031940328664 339 | ], 340 | "flags": {}, 341 | "order": 5, 342 | "mode": 0, 343 | "inputs": [ 344 | { 345 | "name": "images", 346 | "type": "IMAGE", 347 | "link": 154 348 | }, 349 | { 350 | "name": "audio", 351 | "type": "AUDIO", 352 | "link": null 353 | }, 354 | { 355 | "name": "meta_batch", 356 | "type": "VHS_BatchManager", 357 | "link": null 358 | }, 359 | { 360 | "name": "vae", 361 | "type": "VAE", 362 | "link": null 363 | } 364 | ], 365 | "outputs": [ 366 | { 367 | "name": "Filenames", 368 | "type": "VHS_FILENAMES", 369 | "links": null, 370 | "shape": 3 371 | } 372 | ], 373 | "properties": { 374 | "Node name for S&R": "VHS_VideoCombine" 375 | }, 376 | "widgets_values": { 377 | "frame_rate": 1, 378 | "loop_count": 0, 379 | "filename_prefix": "AnimateDiff", 380 | "format": "video/h264-mp4", 381 | "pix_fmt": "yuv420p", 382 | "crf": 19, 383 | "save_metadata": false, 384 | "pingpong": false, 385 | "save_output": false, 386 | "videopreview": { 387 | "hidden": false, 388 | "paused": false, 389 | "params": { 390 | "filename": "AnimateDiff_00017.mp4", 391 | "subfolder": "", 392 | "type": "temp", 393 | "format": "video/h264-mp4", 394 | "frame_rate": 15 395 | }, 396 | "muted": false 397 | } 398 | } 399 | }, 400 | { 401 | "id": 49, 402 | "type": "VHS_VideoCombine", 403 | "pos": [ 404 | 1396, 405 | 39 406 | ], 407 | "size": [ 408 | 295.00213623046875, 409 | 811.688517453048 410 | ], 411 | "flags": {}, 412 | "order": 7, 413 | "mode": 0, 414 | "inputs": [ 415 | { 416 | "name": "images", 417 | "type": "IMAGE", 418 | "link": 164 419 | }, 420 | { 421 | "name": "audio", 422 | "type": "AUDIO", 423 | "link": null 424 | }, 425 | { 426 | "name": "meta_batch", 427 | "type": "VHS_BatchManager", 428 | "link": null 429 | }, 430 | { 431 | "name": "vae", 432 | "type": "VAE", 433 | "link": null 434 | } 435 | ], 436 | "outputs": [ 437 | { 438 | "name": "Filenames", 439 | "type": "VHS_FILENAMES", 440 | "links": null, 441 | "shape": 3 442 | } 443 | ], 444 | "properties": { 445 | "Node name for S&R": "VHS_VideoCombine" 446 | }, 447 | "widgets_values": { 448 | "frame_rate": 1, 449 | "loop_count": 0, 450 | "filename_prefix": "AnimateDiff", 451 | "format": "video/h264-mp4", 452 | "pix_fmt": "yuv420p", 453 | "crf": 19, 454 | "save_metadata": false, 455 | "pingpong": false, 456 | "save_output": false, 457 | "videopreview": { 458 | "hidden": false, 459 | "paused": false, 460 | "params": { 461 | "filename": "AnimateDiff_00020.mp4", 462 | "subfolder": "", 463 | "type": "temp", 464 | "format": "video/h264-mp4", 465 | "frame_rate": 15 466 | }, 467 | "muted": false 468 | } 469 | } 470 | } 471 | ], 472 | "links": [ 473 | [ 474 | 115, 475 | 47, 476 | 0, 477 | 51, 478 | 0, 479 | "IMAGE" 480 | ], 481 | [ 482 | 116, 483 | 51, 484 | 0, 485 | 52, 486 | 0, 487 | "IMAGE" 488 | ], 489 | [ 490 | 117, 491 | 51, 492 | 1, 493 | 52, 494 | 1, 495 | "MASK" 496 | ], 497 | [ 498 | 128, 499 | 52, 500 | 0, 501 | 55, 502 | 0, 503 | "IMAGE" 504 | ], 505 | [ 506 | 139, 507 | 52, 508 | 0, 509 | 59, 510 | 0, 511 | "IMAGE" 512 | ], 513 | [ 514 | 154, 515 | 52, 516 | 0, 517 | 48, 518 | 0, 519 | "IMAGE" 520 | ], 521 | [ 522 | 157, 523 | 59, 524 | 0, 525 | 43, 526 | 1, 527 | "IMAGE" 528 | ], 529 | [ 530 | 164, 531 | 43, 532 | 0, 533 | 49, 534 | 0, 535 | "IMAGE" 536 | ], 537 | [ 538 | 165, 539 | 47, 540 | 0, 541 | 43, 542 | 0, 543 | "IMAGE" 544 | ] 545 | ], 546 | "groups": [], 547 | "config": {}, 548 | "extra": { 549 | "ds": { 550 | "scale": 1.2284597357367546, 551 | "offset": [ 552 | 152.97873546149629, 553 | 78.8438293437286 554 | ] 555 | } 556 | }, 557 | "version": 0.4 558 | } -------------------------------------------------------------------------------- /comfyWorkflows/_Vid2CartoonWtInspyrenetAssitant2.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_node_id": 61, 3 | "last_link_id": 170, 4 | "nodes": [ 5 | { 6 | "id": 48, 7 | "type": "VHS_VideoCombine", 8 | "pos": [ 9 | 1003, 10 | 43 11 | ], 12 | "size": [ 13 | 298.2245788574219, 14 | 817.4031940328664 15 | ], 16 | "flags": {}, 17 | "order": 4, 18 | "mode": 0, 19 | "inputs": [ 20 | { 21 | "name": "images", 22 | "type": "IMAGE", 23 | "link": 154 24 | }, 25 | { 26 | "name": "audio", 27 | "type": "AUDIO", 28 | "link": null 29 | }, 30 | { 31 | "name": "meta_batch", 32 | "type": "VHS_BatchManager", 33 | "link": null 34 | }, 35 | { 36 | "name": "vae", 37 | "type": "VAE", 38 | "link": null 39 | } 40 | ], 41 | "outputs": [ 42 | { 43 | "name": "Filenames", 44 | "type": "VHS_FILENAMES", 45 | "links": null, 46 | "shape": 3 47 | } 48 | ], 49 | "properties": { 50 | "Node name for S&R": "VHS_VideoCombine" 51 | }, 52 | "widgets_values": { 53 | "frame_rate": 1, 54 | "loop_count": 0, 55 | "filename_prefix": "AnimateDiff", 56 | "format": "video/h264-mp4", 57 | "pix_fmt": "yuv420p", 58 | "crf": 19, 59 | "save_metadata": false, 60 | "pingpong": false, 61 | "save_output": false, 62 | "videopreview": { 63 | "hidden": false, 64 | "paused": false, 65 | "params": { 66 | "filename": "AnimateDiff_00026.mp4", 67 | "subfolder": "", 68 | "type": "temp", 69 | "format": "video/h264-mp4", 70 | "frame_rate": 15 71 | }, 72 | "muted": false 73 | } 74 | } 75 | }, 76 | { 77 | "id": 49, 78 | "type": "VHS_VideoCombine", 79 | "pos": [ 80 | 1325, 81 | 44 82 | ], 83 | "size": [ 84 | 295.00213623046875, 85 | 811.688517453048 86 | ], 87 | "flags": {}, 88 | "order": 7, 89 | "mode": 0, 90 | "inputs": [ 91 | { 92 | "name": "images", 93 | "type": "IMAGE", 94 | "link": 164 95 | }, 96 | { 97 | "name": "audio", 98 | "type": "AUDIO", 99 | "link": null 100 | }, 101 | { 102 | "name": "meta_batch", 103 | "type": "VHS_BatchManager", 104 | "link": null 105 | }, 106 | { 107 | "name": "vae", 108 | "type": "VAE", 109 | "link": null 110 | } 111 | ], 112 | "outputs": [ 113 | { 114 | "name": "Filenames", 115 | "type": "VHS_FILENAMES", 116 | "links": null, 117 | "shape": 3 118 | } 119 | ], 120 | "properties": { 121 | "Node name for S&R": "VHS_VideoCombine" 122 | }, 123 | "widgets_values": { 124 | "frame_rate": 1, 125 | "loop_count": 0, 126 | "filename_prefix": "AnimateDiff", 127 | "format": "video/h264-mp4", 128 | "pix_fmt": "yuv420p", 129 | "crf": 19, 130 | "save_metadata": false, 131 | "pingpong": false, 132 | "save_output": false, 133 | "videopreview": { 134 | "hidden": false, 135 | "paused": false, 136 | "params": { 137 | "filename": "AnimateDiff_00028.mp4", 138 | "subfolder": "", 139 | "type": "temp", 140 | "format": "video/h264-mp4", 141 | "frame_rate": 15 142 | }, 143 | "muted": false 144 | } 145 | } 146 | }, 147 | { 148 | "id": 43, 149 | "type": "Painting", 150 | "pos": [ 151 | 650, 152 | 57 153 | ], 154 | "size": { 155 | "0": 315, 156 | "1": 270 157 | }, 158 | "flags": {}, 159 | "order": 5, 160 | "mode": 0, 161 | "inputs": [ 162 | { 163 | "name": "image", 164 | "type": "IMAGE", 165 | "link": 165 166 | }, 167 | { 168 | "name": "lineArt", 169 | "type": "IMAGE", 170 | "link": 157 171 | } 172 | ], 173 | "outputs": [ 174 | { 175 | "name": "painting", 176 | "type": "IMAGE", 177 | "links": [ 178 | 164 179 | ], 180 | "slot_index": 0, 181 | "shape": 3 182 | }, 183 | { 184 | "name": "sharpImage", 185 | "type": "IMAGE", 186 | "links": [], 187 | "slot_index": 1, 188 | "shape": 3 189 | } 190 | ], 191 | "properties": { 192 | "Node name for S&R": "Painting" 193 | }, 194 | "widgets_values": [ 195 | 36, 196 | 1, 197 | 7, 198 | 1, 199 | 0, 200 | 1, 201 | 1.3, 202 | 1.0333374023437498, 203 | false 204 | ] 205 | }, 206 | { 207 | "id": 59, 208 | "type": "LineArt_Assistant", 209 | "pos": [ 210 | 645, 211 | 380 212 | ], 213 | "size": { 214 | "0": 315, 215 | "1": 270 216 | }, 217 | "flags": {}, 218 | "order": 3, 219 | "mode": 0, 220 | "inputs": [ 221 | { 222 | "name": "image", 223 | "type": "IMAGE", 224 | "link": 139 225 | } 226 | ], 227 | "outputs": [ 228 | { 229 | "name": "lineArt", 230 | "type": "IMAGE", 231 | "links": [ 232 | 157, 233 | 168 234 | ], 235 | "shape": 3, 236 | "slot_index": 0 237 | }, 238 | { 239 | "name": "grayscale image", 240 | "type": "IMAGE", 241 | "links": null, 242 | "shape": 3 243 | } 244 | ], 245 | "properties": { 246 | "Node name for S&R": "LineArt_Assistant" 247 | }, 248 | "widgets_values": [ 249 | 11, 250 | 3, 251 | 2, 252 | "black", 253 | 10, 254 | 9, 255 | 1, 256 | "white", 257 | 10 258 | ] 259 | }, 260 | { 261 | "id": 61, 262 | "type": "Painting", 263 | "pos": [ 264 | 643, 265 | 700 266 | ], 267 | "size": { 268 | "0": 315, 269 | "1": 270 270 | }, 271 | "flags": {}, 272 | "order": 6, 273 | "mode": 0, 274 | "inputs": [ 275 | { 276 | "name": "image", 277 | "type": "IMAGE", 278 | "link": 170 279 | }, 280 | { 281 | "name": "lineArt", 282 | "type": "IMAGE", 283 | "link": 168 284 | } 285 | ], 286 | "outputs": [ 287 | { 288 | "name": "painting", 289 | "type": "IMAGE", 290 | "links": [ 291 | 169 292 | ], 293 | "slot_index": 0, 294 | "shape": 3 295 | }, 296 | { 297 | "name": "sharpImage", 298 | "type": "IMAGE", 299 | "links": [], 300 | "slot_index": 1, 301 | "shape": 3 302 | } 303 | ], 304 | "properties": { 305 | "Node name for S&R": "Painting" 306 | }, 307 | "widgets_values": [ 308 | 36, 309 | 1, 310 | 7, 311 | 1, 312 | 0, 313 | 1, 314 | 1.3, 315 | 1.0333374023437498, 316 | true 317 | ] 318 | }, 319 | { 320 | "id": 51, 321 | "type": "InspyrenetRembg", 322 | "pos": [ 323 | 318, 324 | 195 325 | ], 326 | "size": { 327 | "0": 315, 328 | "1": 78 329 | }, 330 | "flags": {}, 331 | "order": 1, 332 | "mode": 0, 333 | "inputs": [ 334 | { 335 | "name": "image", 336 | "type": "IMAGE", 337 | "link": 115 338 | } 339 | ], 340 | "outputs": [ 341 | { 342 | "name": "IMAGE", 343 | "type": "IMAGE", 344 | "links": [ 345 | 116 346 | ], 347 | "shape": 3, 348 | "slot_index": 0 349 | }, 350 | { 351 | "name": "MASK", 352 | "type": "MASK", 353 | "links": [ 354 | 117 355 | ], 356 | "shape": 3, 357 | "slot_index": 1 358 | } 359 | ], 360 | "properties": { 361 | "Node name for S&R": "InspyrenetRembg" 362 | }, 363 | "widgets_values": [ 364 | "default" 365 | ] 366 | }, 367 | { 368 | "id": 52, 369 | "type": "ProcessInspyrenetRembg", 370 | "pos": [ 371 | 359, 372 | 387 373 | ], 374 | "size": { 375 | "0": 218.39999389648438, 376 | "1": 102 377 | }, 378 | "flags": {}, 379 | "order": 2, 380 | "mode": 0, 381 | "inputs": [ 382 | { 383 | "name": "image", 384 | "type": "IMAGE", 385 | "link": 116 386 | }, 387 | { 388 | "name": "mask", 389 | "type": "MASK", 390 | "link": 117 391 | } 392 | ], 393 | "outputs": [ 394 | { 395 | "name": "IMAGE", 396 | "type": "IMAGE", 397 | "links": [ 398 | 139, 399 | 154, 400 | 170 401 | ], 402 | "shape": 3, 403 | "slot_index": 0 404 | }, 405 | { 406 | "name": "MASK", 407 | "type": "MASK", 408 | "links": [], 409 | "shape": 3, 410 | "slot_index": 1 411 | } 412 | ], 413 | "properties": { 414 | "Node name for S&R": "ProcessInspyrenetRembg" 415 | }, 416 | "widgets_values": [ 417 | true, 418 | "green" 419 | ] 420 | }, 421 | { 422 | "id": 47, 423 | "type": "VHS_LoadVideo", 424 | "pos": [ 425 | 50, 426 | 55 427 | ], 428 | "size": [ 429 | 247.455078125, 430 | 679.368611453202 431 | ], 432 | "flags": {}, 433 | "order": 0, 434 | "mode": 0, 435 | "inputs": [ 436 | { 437 | "name": "meta_batch", 438 | "type": "VHS_BatchManager", 439 | "link": null 440 | }, 441 | { 442 | "name": "vae", 443 | "type": "VAE", 444 | "link": null 445 | } 446 | ], 447 | "outputs": [ 448 | { 449 | "name": "IMAGE", 450 | "type": "IMAGE", 451 | "links": [ 452 | 115, 453 | 165 454 | ], 455 | "slot_index": 0, 456 | "shape": 3 457 | }, 458 | { 459 | "name": "frame_count", 460 | "type": "INT", 461 | "links": null, 462 | "shape": 3 463 | }, 464 | { 465 | "name": "audio", 466 | "type": "AUDIO", 467 | "links": null, 468 | "shape": 3 469 | }, 470 | { 471 | "name": "video_info", 472 | "type": "VHS_VIDEOINFO", 473 | "links": null, 474 | "shape": 3 475 | } 476 | ], 477 | "properties": { 478 | "Node name for S&R": "VHS_LoadVideo" 479 | }, 480 | "widgets_values": { 481 | "video": "🏴_☠️⚓️.mp4", 482 | "force_rate": 0, 483 | "force_size": "Disabled", 484 | "custom_width": 512, 485 | "custom_height": 512, 486 | "frame_load_cap": 0, 487 | "skip_first_frames": 0, 488 | "select_every_nth": 30, 489 | "choose video to upload": "image", 490 | "videopreview": { 491 | "hidden": false, 492 | "paused": false, 493 | "params": { 494 | "frame_load_cap": 0, 495 | "skip_first_frames": 0, 496 | "force_rate": 0, 497 | "filename": "🏴_☠️⚓️.mp4", 498 | "type": "input", 499 | "format": "video/mp4", 500 | "select_every_nth": 30 501 | }, 502 | "muted": false 503 | } 504 | } 505 | }, 506 | { 507 | "id": 60, 508 | "type": "VHS_VideoCombine", 509 | "pos": [ 510 | 1648, 511 | 48 512 | ], 513 | "size": [ 514 | 295.00213623046875, 515 | 811.688517453048 516 | ], 517 | "flags": {}, 518 | "order": 8, 519 | "mode": 0, 520 | "inputs": [ 521 | { 522 | "name": "images", 523 | "type": "IMAGE", 524 | "link": 169 525 | }, 526 | { 527 | "name": "audio", 528 | "type": "AUDIO", 529 | "link": null 530 | }, 531 | { 532 | "name": "meta_batch", 533 | "type": "VHS_BatchManager", 534 | "link": null 535 | }, 536 | { 537 | "name": "vae", 538 | "type": "VAE", 539 | "link": null 540 | } 541 | ], 542 | "outputs": [ 543 | { 544 | "name": "Filenames", 545 | "type": "VHS_FILENAMES", 546 | "links": null, 547 | "shape": 3 548 | } 549 | ], 550 | "properties": { 551 | "Node name for S&R": "VHS_VideoCombine" 552 | }, 553 | "widgets_values": { 554 | "frame_rate": 1, 555 | "loop_count": 0, 556 | "filename_prefix": "AnimateDiff", 557 | "format": "video/h264-mp4", 558 | "pix_fmt": "yuv420p", 559 | "crf": 19, 560 | "save_metadata": false, 561 | "pingpong": false, 562 | "save_output": false, 563 | "videopreview": { 564 | "hidden": false, 565 | "paused": false, 566 | "params": { 567 | "filename": "AnimateDiff_00031.mp4", 568 | "subfolder": "", 569 | "type": "temp", 570 | "format": "video/h264-mp4", 571 | "frame_rate": 15 572 | }, 573 | "muted": false 574 | } 575 | } 576 | } 577 | ], 578 | "links": [ 579 | [ 580 | 115, 581 | 47, 582 | 0, 583 | 51, 584 | 0, 585 | "IMAGE" 586 | ], 587 | [ 588 | 116, 589 | 51, 590 | 0, 591 | 52, 592 | 0, 593 | "IMAGE" 594 | ], 595 | [ 596 | 117, 597 | 51, 598 | 1, 599 | 52, 600 | 1, 601 | "MASK" 602 | ], 603 | [ 604 | 139, 605 | 52, 606 | 0, 607 | 59, 608 | 0, 609 | "IMAGE" 610 | ], 611 | [ 612 | 154, 613 | 52, 614 | 0, 615 | 48, 616 | 0, 617 | "IMAGE" 618 | ], 619 | [ 620 | 157, 621 | 59, 622 | 0, 623 | 43, 624 | 1, 625 | "IMAGE" 626 | ], 627 | [ 628 | 164, 629 | 43, 630 | 0, 631 | 49, 632 | 0, 633 | "IMAGE" 634 | ], 635 | [ 636 | 165, 637 | 47, 638 | 0, 639 | 43, 640 | 0, 641 | "IMAGE" 642 | ], 643 | [ 644 | 168, 645 | 59, 646 | 0, 647 | 61, 648 | 1, 649 | "IMAGE" 650 | ], 651 | [ 652 | 169, 653 | 61, 654 | 0, 655 | 60, 656 | 0, 657 | "IMAGE" 658 | ], 659 | [ 660 | 170, 661 | 52, 662 | 0, 663 | 61, 664 | 0, 665 | "IMAGE" 666 | ] 667 | ], 668 | "groups": [], 669 | "config": {}, 670 | "extra": { 671 | "ds": { 672 | "scale": 1.0152559799477316, 673 | "offset": [ 674 | 269.18602284028617, 675 | 120.51538396615277 676 | ] 677 | } 678 | }, 679 | "version": 0.4 680 | } --------------------------------------------------------------------------------