comfyui-workflow-templates 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,12 +6,14 @@
6
6
  "templates": [
7
7
  {
8
8
  "name": "default",
9
+ "title": "Image Generation",
9
10
  "mediaType": "image",
10
11
  "mediaSubtype": "webp",
11
12
  "description": "Generate images from text descriptions."
12
13
  },
13
14
  {
14
15
  "name": "image2image",
16
+ "title": "Image to Image",
15
17
  "mediaType": "image",
16
18
  "mediaSubtype": "webp",
17
19
  "description": "Transform existing images using text prompts.",
@@ -19,6 +21,7 @@
19
21
  },
20
22
  {
21
23
  "name": "lora",
24
+ "title": "Lora",
22
25
  "mediaType": "image",
23
26
  "mediaSubtype": "webp",
24
27
  "description": "Apply LoRA models for specialized styles or subjects.",
@@ -26,6 +29,7 @@
26
29
  },
27
30
  {
28
31
  "name": "inpaint_example",
32
+ "title": "Inpaint",
29
33
  "mediaType": "image",
30
34
  "mediaSubtype": "webp",
31
35
  "description": "Edit specific parts of images seamlessly.",
@@ -34,6 +38,7 @@
34
38
  },
35
39
  {
36
40
  "name": "inpain_model_outpainting",
41
+ "title": "Outpaint",
37
42
  "mediaType": "image",
38
43
  "mediaSubtype": "webp",
39
44
  "description": "Extend images beyond their original boundaries.",
@@ -42,6 +47,7 @@
42
47
  },
43
48
  {
44
49
  "name": "embedding_example",
50
+ "title": "Embedding",
45
51
  "mediaType": "image",
46
52
  "mediaSubtype": "webp",
47
53
  "description": "Use textual inversion for consistent styles.",
@@ -49,6 +55,7 @@
49
55
  },
50
56
  {
51
57
  "name": "gligen_textbox_example",
58
+ "title": "Gligen Textbox",
52
59
  "mediaType": "image",
53
60
  "mediaSubtype": "webp",
54
61
  "description": "Specify the location and size of objects.",
@@ -56,6 +63,7 @@
56
63
  },
57
64
  {
58
65
  "name": "lora_multiple",
66
+ "title": "Lora Multiple",
59
67
  "mediaType": "image",
60
68
  "mediaSubtype": "webp",
61
69
  "description": "Combine multiple LoRA models for unique results.",
@@ -70,6 +78,7 @@
70
78
  "templates": [
71
79
  {
72
80
  "name": "flux_dev_checkpoint_example",
81
+ "title": "Flux Dev",
73
82
  "mediaType": "image",
74
83
  "mediaSubtype": "webp",
75
84
  "description": "Create images using Flux development models.",
@@ -77,6 +86,7 @@
77
86
  },
78
87
  {
79
88
  "name": "flux_schnell",
89
+ "title": "Flux Schnell",
80
90
  "mediaType": "image",
81
91
  "mediaSubtype": "webp",
82
92
  "description": "Generate images quickly with Flux Schnell.",
@@ -84,6 +94,7 @@
84
94
  },
85
95
  {
86
96
  "name": "flux_fill_inpaint_example",
97
+ "title": "Flux Inpaint",
87
98
  "mediaType": "image",
88
99
  "mediaSubtype": "webp",
89
100
  "description": "Fill in missing parts of images.",
@@ -92,6 +103,7 @@
92
103
  },
93
104
  {
94
105
  "name": "flux_fill_outpaint_example",
106
+ "title": "Flux Outpaint",
95
107
  "mediaType": "image",
96
108
  "mediaSubtype": "webp",
97
109
  "description": "Extend images using Flux outpainting.",
@@ -100,6 +112,7 @@
100
112
  },
101
113
  {
102
114
  "name": "flux_canny_model_example",
115
+ "title": "Flux Canny Model",
103
116
  "mediaType": "image",
104
117
  "mediaSubtype": "webp",
105
118
  "description": "Generate images from edge detection.",
@@ -108,6 +121,7 @@
108
121
  },
109
122
  {
110
123
  "name": "flux_depth_lora_example",
124
+ "title": "Flux Depth Lora",
111
125
  "mediaType": "image",
112
126
  "mediaSubtype": "webp",
113
127
  "description": "Create images with depth-aware LoRA.",
@@ -116,6 +130,7 @@
116
130
  },
117
131
  {
118
132
  "name": "flux_redux_model_example",
133
+ "title": "Flux Redux Model",
119
134
  "mediaType": "image",
120
135
  "mediaSubtype": "webp",
121
136
  "description": "Transfer style from a reference image to guide image generation with Flux.",
@@ -130,24 +145,28 @@
130
145
  "templates": [
131
146
  {
132
147
  "name": "hidream_i1_dev",
148
+ "title": "HiDream I1 Dev",
133
149
  "mediaType": "image",
134
- "mediaSubtype": "png",
150
+ "mediaSubtype": "webp",
135
151
  "description": "Generate images with HiDream I1 Dev."
136
152
  },
137
153
  {
138
154
  "name": "hidream_i1_fast",
155
+ "title": "HiDream I1 Fast",
139
156
  "mediaType": "image",
140
- "mediaSubtype": "png",
157
+ "mediaSubtype": "webp",
141
158
  "description": "Generate images quickly with HiDream I1."
142
159
  },
143
160
  {
144
161
  "name": "hidream_i1_full",
162
+ "title": "HiDream I1 Full",
145
163
  "mediaType": "image",
146
- "mediaSubtype": "png",
164
+ "mediaSubtype": "webp",
147
165
  "description": "Generate images with HiDream I1."
148
166
  },
149
167
  {
150
168
  "name": "sd3.5_simple_example",
169
+ "title": "SD3.5 Simple",
151
170
  "mediaType": "image",
152
171
  "mediaSubtype": "webp",
153
172
  "description": "Generate images with SD 3.5.",
@@ -155,6 +174,7 @@
155
174
  },
156
175
  {
157
176
  "name": "sd3.5_large_canny_controlnet_example",
177
+ "title": "SD3.5 Large Canny ControlNet",
158
178
  "mediaType": "image",
159
179
  "mediaSubtype": "webp",
160
180
  "description": "Use edge detection to guide image generation with SD 3.5.",
@@ -163,6 +183,7 @@
163
183
  },
164
184
  {
165
185
  "name": "sd3.5_large_depth",
186
+ "title": "SD3.5 Large Depth",
166
187
  "mediaType": "image",
167
188
  "mediaSubtype": "webp",
168
189
  "description": "Create depth-aware images with SD 3.5.",
@@ -171,6 +192,7 @@
171
192
  },
172
193
  {
173
194
  "name": "sd3.5_large_blur",
195
+ "title": "SD3.5 Large Blur",
174
196
  "mediaType": "image",
175
197
  "mediaSubtype": "webp",
176
198
  "description": "Generate images from blurred reference images with SD 3.5.",
@@ -179,6 +201,7 @@
179
201
  },
180
202
  {
181
203
  "name": "sdxl_simple_example",
204
+ "title": "SDXL Simple",
182
205
  "mediaType": "image",
183
206
  "mediaSubtype": "webp",
184
207
  "description": "Create high-quality images with SDXL.",
@@ -186,6 +209,7 @@
186
209
  },
187
210
  {
188
211
  "name": "sdxl_refiner_prompt_example",
212
+ "title": "SDXL Refiner Prompt",
189
213
  "mediaType": "image",
190
214
  "mediaSubtype": "webp",
191
215
  "description": "Enhance SDXL outputs with refiners.",
@@ -193,6 +217,7 @@
193
217
  },
194
218
  {
195
219
  "name": "sdxl_revision_text_prompts",
220
+ "title": "SDXL Revision Text Prompts",
196
221
  "mediaType": "image",
197
222
  "mediaSubtype": "webp",
198
223
  "description": "Transfer concepts from reference images to guide image generation with SDXL.",
@@ -200,6 +225,7 @@
200
225
  },
201
226
  {
202
227
  "name": "sdxl_revision_zero_positive",
228
+ "title": "SDXL Revision Zero Positive",
203
229
  "mediaType": "image",
204
230
  "mediaSubtype": "webp",
205
231
  "description": "Add text prompts alongside reference images to guide image generation with SDXL.",
@@ -207,6 +233,7 @@
207
233
  },
208
234
  {
209
235
  "name": "sdxlturbo_example",
236
+ "title": "SDXL Turbo",
210
237
  "mediaType": "image",
211
238
  "mediaSubtype": "webp",
212
239
  "description": "Generate images in a single step with SDXL Turbo.",
@@ -221,6 +248,7 @@
221
248
  "templates": [
222
249
  {
223
250
  "name": "controlnet_example",
251
+ "title": "Scribble ControlNet",
224
252
  "mediaType": "image",
225
253
  "mediaSubtype": "webp",
226
254
  "description": "Control image generation with reference images.",
@@ -229,6 +257,7 @@
229
257
  },
230
258
  {
231
259
  "name": "2_pass_pose_worship",
260
+ "title": "Pose ControlNet 2 Pass",
232
261
  "mediaType": "image",
233
262
  "mediaSubtype": "webp",
234
263
  "description": "Generate images from pose references.",
@@ -237,6 +266,7 @@
237
266
  },
238
267
  {
239
268
  "name": "depth_controlnet",
269
+ "title": "Depth ControlNet",
240
270
  "mediaType": "image",
241
271
  "mediaSubtype": "webp",
242
272
  "description": "Create images with depth-aware generation.",
@@ -245,6 +275,7 @@
245
275
  },
246
276
  {
247
277
  "name": "depth_t2i_adapter",
278
+ "title": "Depth T2I Adapter",
248
279
  "mediaType": "image",
249
280
  "mediaSubtype": "webp",
250
281
  "description": "Quickly generate depth-aware images with a T2I adapter.",
@@ -253,6 +284,7 @@
253
284
  },
254
285
  {
255
286
  "name": "mixing_controlnets",
287
+ "title": "Mixing ControlNets",
256
288
  "mediaType": "image",
257
289
  "mediaSubtype": "webp",
258
290
  "description": "Combine multiple ControlNet models together.",
@@ -268,6 +300,7 @@
268
300
  "templates": [
269
301
  {
270
302
  "name": "hiresfix_latent_workflow",
303
+ "title": "Upscale",
271
304
  "mediaType": "image",
272
305
  "mediaSubtype": "webp",
273
306
  "description": "Enhance image quality in latent space.",
@@ -276,6 +309,7 @@
276
309
  },
277
310
  {
278
311
  "name": "esrgan_example",
312
+ "title": "ESRGAN",
279
313
  "mediaType": "image",
280
314
  "mediaSubtype": "webp",
281
315
  "description": "Use upscale models to enhance image quality.",
@@ -284,6 +318,7 @@
284
318
  },
285
319
  {
286
320
  "name": "hiresfix_esrgan_workflow",
321
+ "title": "HiresFix ESRGAN Workflow",
287
322
  "mediaType": "image",
288
323
  "mediaSubtype": "webp",
289
324
  "description": "Use upscale models during intermediate steps.",
@@ -292,6 +327,7 @@
292
327
  },
293
328
  {
294
329
  "name": "latent_upscale_different_prompt_model",
330
+ "title": "Latent Upscale Different Prompt Model",
295
331
  "mediaType": "image",
296
332
  "mediaSubtype": "webp",
297
333
  "description": "Upscale and change prompt across passes.",
@@ -307,6 +343,7 @@
307
343
  "templates": [
308
344
  {
309
345
  "name": "text_to_video_wan",
346
+ "title": "Wan 2.1 Text to Video",
310
347
  "description": "Quickly Generate videos from text descriptions.",
311
348
  "mediaType": "image",
312
349
  "mediaSubtype": "webp",
@@ -314,6 +351,7 @@
314
351
  },
315
352
  {
316
353
  "name": "image_to_video_wan",
354
+ "title": "Wan 2.1 Image to Video",
317
355
  "description": "Quickly Generate videos from images.",
318
356
  "mediaType": "image",
319
357
  "mediaSubtype": "webp",
@@ -321,6 +359,7 @@
321
359
  },
322
360
  {
323
361
  "name": "wan2.1_fun_inp",
362
+ "title": "Wan 2.1 Inpainting",
324
363
  "description": "Create videos from start and end frames.",
325
364
  "mediaType": "image",
326
365
  "mediaSubtype": "webp",
@@ -328,13 +367,16 @@
328
367
  },
329
368
  {
330
369
  "name": "wan2.1_fun_control",
370
+ "title": "Wan 2.1 ControlNet",
331
371
  "description": "Guide video generation with pose, depth, edge controls and more.",
332
372
  "mediaType": "image",
333
373
  "mediaSubtype": "webp",
374
+ "thumbnailVariant": "hoverDissolve",
334
375
  "tutorialUrl": "https://docs.comfy.org/tutorials/video/wan/fun-control"
335
376
  },
336
377
  {
337
378
  "name": "ltxv_text_to_video",
379
+ "title": "LTXV Text to Video",
338
380
  "mediaType": "image",
339
381
  "mediaSubtype": "webp",
340
382
  "description": "Generate videos from text descriptions.",
@@ -342,6 +384,7 @@
342
384
  },
343
385
  {
344
386
  "name": "ltxv_image_to_video",
387
+ "title": "LTXV Image to Video",
345
388
  "mediaType": "image",
346
389
  "mediaSubtype": "webp",
347
390
  "description": "Convert still images into videos.",
@@ -349,6 +392,7 @@
349
392
  },
350
393
  {
351
394
  "name": "mochi_text_to_video_example",
395
+ "title": "Mochi Text to Video",
352
396
  "mediaType": "image",
353
397
  "mediaSubtype": "webp",
354
398
  "description": "Create videos with Mochi model.",
@@ -356,6 +400,7 @@
356
400
  },
357
401
  {
358
402
  "name": "hunyuan_video_text_to_video",
403
+ "title": "Hunyuan Video Text to Video",
359
404
  "mediaType": "image",
360
405
  "mediaSubtype": "webp",
361
406
  "description": "Generate videos using Hunyuan model.",
@@ -363,6 +408,7 @@
363
408
  },
364
409
  {
365
410
  "name": "image_to_video",
411
+ "title": "SVD Image to Video",
366
412
  "mediaType": "image",
367
413
  "mediaSubtype": "webp",
368
414
  "description": "Transform images into animated videos.",
@@ -370,6 +416,7 @@
370
416
  },
371
417
  {
372
418
  "name": "txt_to_image_to_video",
419
+ "title": "SVD Text to Image to Video",
373
420
  "mediaType": "image",
374
421
  "mediaSubtype": "webp",
375
422
  "description": "Generate images from text and then convert them into videos.",
@@ -384,6 +431,7 @@
384
431
  "templates": [
385
432
  {
386
433
  "name": "area_composition",
434
+ "title": "Area Composition",
387
435
  "mediaType": "image",
388
436
  "mediaSubtype": "webp",
389
437
  "description": "Control image composition with areas.",
@@ -391,6 +439,7 @@
391
439
  },
392
440
  {
393
441
  "name": "area_composition_reversed",
442
+ "title": "Area Composition Reversed",
394
443
  "mediaType": "image",
395
444
  "mediaSubtype": "webp",
396
445
  "description": "Reverse area composition workflow.",
@@ -398,6 +447,7 @@
398
447
  },
399
448
  {
400
449
  "name": "area_composition_square_area_for_subject",
450
+ "title": "Area Composition Square Area for Subject",
401
451
  "mediaType": "image",
402
452
  "mediaSubtype": "webp",
403
453
  "description": "Create consistent subject placement.",
@@ -412,6 +462,7 @@
412
462
  "templates": [
413
463
  {
414
464
  "name": "hunyuan3d-non-multiview-train",
465
+ "title": "Hunyuan3D 2.0",
415
466
  "mediaType": "image",
416
467
  "mediaSubtype": "webp",
417
468
  "description": "Use Hunyuan3D 2.0 to generate models from a single view.",
@@ -419,6 +470,7 @@
419
470
  },
420
471
  {
421
472
  "name": "hunyuan-3d-multiview-elf",
473
+ "title": "Hunyuan3D 2.0 MV",
422
474
  "mediaType": "image",
423
475
  "mediaSubtype": "webp",
424
476
  "description": " Use Hunyuan3D 2mv to generate models from multiple views.",
@@ -427,6 +479,7 @@
427
479
  },
428
480
  {
429
481
  "name": "hunyuan-3d-turbo",
482
+ "title": "Hunyuan3D 2.0 MV Turbo",
430
483
  "mediaType": "image",
431
484
  "mediaSubtype": "webp",
432
485
  "description": "Use Hunyuan3D 2mv turbo to generate models from multiple views.",
@@ -435,6 +488,7 @@
435
488
  },
436
489
  {
437
490
  "name": "stable_zero123_example",
491
+ "title": "Stable Zero123",
438
492
  "mediaType": "image",
439
493
  "mediaSubtype": "webp",
440
494
  "description": "Generate 3D views from single images.",
@@ -449,6 +503,7 @@
449
503
  "templates": [
450
504
  {
451
505
  "name": "stable_audio_example",
506
+ "title": "Stable Audio",
452
507
  "mediaType": "audio",
453
508
  "mediaSubtype": "mp3",
454
509
  "description": "Generate audio from text descriptions.",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comfyui_workflow_templates
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: ComfyUI workflow templates package
5
5
  Author: Comfy-Org
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -686,24 +686,24 @@ Description-Content-Type: text/markdown
686
686
  License-File: LICENSE
687
687
  Dynamic: license-file
688
688
 
689
- - [workflow\_templates](#workflow_templates)
690
- - [Adding New Templates](#adding-new-templates)
691
- - [1 — Find Templates Folder](#1--find-templates-folder)
692
- - [2 — Obtain Workflow](#2--obtain-workflow)
693
- - [3 — Obtain Thumbnails](#3--obtain-thumbnails)
694
- - [4 — Choose Thumbnail Type](#4--choose-thumbnail-type)
695
- - [5 — Rename and Move Files](#5--rename-and-move-files)
696
- - [6 — Add Entry to `index.json`](#6--add-entry-to-indexjson)
697
- - [7 — Embed Models](#7--embed-models)
698
- - [8 — Embed Node Versions (optional)](#8--embed-node-versions-optional)
699
- - [9 — Add Documentation Nodes (optional)](#9--add-documentation-nodes-optional)
700
- - [9 — Create PR](#9--create-pr)
701
- - [10 — Add Translations](#10--add-translations)
702
-
703
689
  # workflow_templates
704
690
 
705
691
  ComfyUI workflow templates hosted under <https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/public>.
706
692
 
693
+ - [Adding New Templates](#adding-new-templates)
694
+ - [1 — Find Templates Folder](#1--find-templates-folder)
695
+ - [2 — Obtain Workflow](#2--obtain-workflow)
696
+ - [3 — Obtain Thumbnails](#3--obtain-thumbnails)
697
+ - [4 — Choose Thumbnail Type](#4--choose-thumbnail-type)
698
+ - [5 — Compress Assets](#5--compress-assets)
699
+ - [6 — Rename and Move Files](#6--rename-and-move-files)
700
+ - [7 — Add Entry to `index.json`](#7--add-entry-to-indexjson)
701
+ - [8 — Embed Models](#8--embed-models)
702
+ - [9 — Embed Node Versions (optional)](#9--embed-node-versions-optional)
703
+ - [10 — Add Documentation Nodes (optional)](#10--add-documentation-nodes-optional)
704
+ - [11 — Bump Version and Create PR](#11--bump-version-and-create-pr)
705
+ - [12 — Add Translations](#12--add-translations)
706
+
707
707
  ## Adding New Templates
708
708
 
709
709
  I will demonstrate how to add a new template by walking through the process of adding the Wan text to video template.
@@ -757,8 +757,8 @@ For my Wan 2.1 template, I'll just use [the webp video](https://comfyanonymous.g
757
757
 
758
758
  Choose the content type and hover effect (optional) for your thumbnail:
759
759
 
760
- | Content Types | Hover Effects |
761
- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
760
+ | Content Types | Hover Effects |
761
+ | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
762
762
  | ![Image Element](docs/pictures/thumbnail-variants/default.gif)<br>**Image**: Default image with no extra effect | ![Compare Slider](docs/pictures/thumbnail-variants/compare-slider.gif)<br>**Compare Slider**: Before/after comparison tool |
763
763
  | ![Video Player](docs/pictures/thumbnail-variants/video.gif)<br>**Video**: Webp animation | ![Hover Dissolve](docs/pictures/thumbnail-variants/hover-disolve.gif)<br>**Hover Dissolve**: Dissolves to 2nd image on hover |
764
764
  | ![Audio Controls](docs/pictures/thumbnail-variants/audio.gif)<br>**Audio**: Audio playback | ![Hover Zoom](docs/pictures/thumbnail-variants/hover-zoom.gif)<br>**Hover Zoom**: Same as default but zooms more |
@@ -769,7 +769,17 @@ Choose the content type and hover effect (optional) for your thumbnail:
769
769
 
770
770
  Since my Wan 2.1 thumbnail is already an animated video, I'll use a video thumbnail but choose not to add an effect.
771
771
 
772
- ### 5 — Rename and Move Files
772
+ ### 5 — Compress Assets
773
+
774
+ Attempt to compress the assets. Since the thumbnails will never be taking up a large portion of the screen, it is acceptable to lower their size. It's also good to convert them to a space-efficient file format like webp or jpeg, applying a lossy compression algorithm (e.g., convert at 65% quality).
775
+
776
+ [EzGif](https://ezgif.com/png-to-webp) has free tools for changing resolution, compressing, and converting file types. Use whatever tool you are comfortable with.
777
+
778
+ > [!TIP]
779
+ >
780
+ > Convert to webp first, then resize to a smaller resolution. You can maintain high quality and still get near 95% reduction if e.g., converting from png.
781
+
782
+ ### 6 — Rename and Move Files
773
783
 
774
784
  Give the workflow a filename that has no spaces, dots, or special characters. Then rename the thumbnail file(s) to match, but with a counter suffix.
775
785
 
@@ -788,7 +798,7 @@ text_to_video_wan-1.webp
788
798
 
789
799
  Then move the renamed files to your templates folder.
790
800
 
791
- ### 6 — Add Entry to `index.json`
801
+ ### 7 — Add Entry to `index.json`
792
802
 
793
803
  There's an [`index.json`](templates/index.json) file in the templates folder which is where template configurations are set. You will need to add your template to this file, using the fields outlined below:
794
804
 
@@ -858,7 +868,7 @@ Now you can start ComfyUI (or refresh browser if already running) and test that
858
868
  >
859
869
  > Make sure to use double-quotes `"` instead of single-quotes `'` when adding things to json files
860
870
 
861
- ### 7 — Embed Models
871
+ ### 8 — Embed Models
862
872
 
863
873
  Now we need to embed metadata for any models the template workflow uses. This way, the user can download and run the workflow without ever leaving ComfyUI.
864
874
 
@@ -896,6 +906,8 @@ To add them to the workflow json, find each associated node and add the metadata
896
906
  + {
897
907
  + "name": "wan_2.1_vae.safetensors",
898
908
  + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors?download=true",
909
+ + "hash": "2fc39d31359a4b0a64f55876d8ff7fa8d780956ae2cb13463b0223e15148976b"
910
+ + "hash_type": "SHA256",
899
911
  + "directory": "vae"
900
912
  + }
901
913
  + ]
@@ -928,6 +940,8 @@ To add them to the workflow json, find each associated node and add the metadata
928
940
  + {
929
941
  + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
930
942
  + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors?download=true",
943
+ + "hash": "c3355d30191f1f066b26d93fba017ae9809dce6c627dda5f6a66eaa651204f68",
944
+ + "hash_type": "SHA256",
931
945
  + "directory": "text_encoders"
932
946
  + }
933
947
  + ]
@@ -964,6 +978,8 @@ To add them to the workflow json, find each associated node and add the metadata
964
978
  + {
965
979
  + "name": "wan2.1_t2v_1.3B_bf16.safetensors",
966
980
  + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_bf16.safetensors?download=true",
981
+ + "hash": "6f999b0d6cb9a72b3d98ac386ed96f57f8cecae13994a69232514ea4974ad5fd",
982
+ + "hash_type": "SHA256",
967
983
  + "directory": "diffusion_models"
968
984
  + }
969
985
  + ]
@@ -972,25 +988,17 @@ To add them to the workflow json, find each associated node and add the metadata
972
988
  },
973
989
  ```
974
990
 
975
- You can also specify the model hash if appropriate:
991
+ You can find the `hash` and `hash_type` for a model on huggingface (see below)or by calculating it yourself with a script or online tool.
976
992
 
977
- ```json
978
- {
979
- "name": "wan2.1_t2v_1.3B_bf16.safetensors",
980
- "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_bf16.safetensors?download=true",
981
- "directory": "diffusion_models",
982
- "hash": "8743b52063cd84097a65d1633f5c74f5",
983
- "hash_type": "MD5"
984
- }
985
- ```
993
+ ![finding hash on hugginface](docs/pictures/finding-hugginface-hash.png)
986
994
 
987
- [Workflow spec](https://docs.comfy.org/specs/workflow_json#workflow-json) for more details.
995
+ [Workflow spec](https://docs.comfy.org/specs/workflow_json#workflow-json) and [ModelFile Zod schema](https://github.com/Comfy-Org/ComfyUI_frontend/blob/6bc03a624ecbc0439501d0c7c2b073ca90e9a742/src/schemas/comfyWorkflowSchema.ts#L34-L40) for more details.
988
996
 
989
997
  > [!CAUTION]
990
998
  >
991
999
  > Ensure that the filename being downloaded from the links matches the filenames in the `widgets_values` exactly.
992
1000
 
993
- ### 8 — Embed Node Versions (optional)
1001
+ ### 9 — Embed Node Versions (optional)
994
1002
 
995
1003
  If your template requires a specific version of Comfy or a custom node, you can specify that using the same process as with models.
996
1004
 
@@ -1024,7 +1032,7 @@ The Wan 2.1 workflow requires the SaveWEBM node which wasn't fully supported unt
1024
1032
 
1025
1033
  This can help diagnose issues when others run the workflow and ensure the workflow is more reproducible.
1026
1034
 
1027
- ### 9 — Add Documentation Nodes (optional)
1035
+ ### 10 — Add Documentation Nodes (optional)
1028
1036
 
1029
1037
  If your template corresponds with a page on https://github.com/comfyanonymous/ComfyUI_examples, https://docs.comfy.org/custom-nodes/workflow_templates, etc., you can add a `MarkdownNote` node with links:
1030
1038
 
@@ -1040,19 +1048,22 @@ Raw markdown used:
1040
1048
  > [Wan 2.1 Tutorial - docs.comfy.org](https://docs.comfy.org/advanced/wan-video) — Explanation of concepts and step-by-step tutorial
1041
1049
  ```
1042
1050
 
1043
- ### 9 — Create PR
1051
+ ### 11Bump Version and Create PR
1044
1052
 
1045
1053
  1. Fully test the workflow: delete the models, input images, etc. and try it as a new user would. Ensure the process ahs no hiccups and you can generate the thumbnail image on the first execution (if applicable).
1046
1054
  2. Create a fork of https://github.com/Comfy-Org/workflow_templates
1047
1055
  3. Clone the fork to your system
1048
1056
  4. Copy your new workflow and thumbnail(s) into the `templates` folder
1049
1057
  5. Add your changes to the `templates/index.json` file
1050
- 6. Commit and push changes
1051
- 7. Create a PR on https://github.com/Comfy-Org/workflow_templates
1058
+ 6. Bump the version in `pyproject.toml` ([example](https://github.com/Comfy-Org/workflow_templates/pull/32))
1059
+ 7. Commit and push changes
1060
+ 8. Create a PR on https://github.com/Comfy-Org/workflow_templates
1052
1061
 
1053
1062
  Here is the PR I made for the Wan template: https://github.com/Comfy-Org/workflow_templates/pull/16
1054
1063
 
1055
- ### 10 Add Translations
1064
+ Once the PR is merged, if you followed step 6 correctly, a new version will be published to the [comfyui-workflow-templates PyPi package](https://pypi.org/project/comfyui-workflow-templates).
1065
+
1066
+ ### 12 — Add Translations
1056
1067
 
1057
1068
  Make a PR in https://github.com/Comfy-Org/ComfyUI_frontend adding the mapping from your template filename (without extension) to the English display name title. The mapping goes in [`ComfyUI_frontend/src/locales/en/main.json`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/9f0abac57ba0d5752c51198bf8a075b8336fdda1/src/locales/en/main.json#L480-L487).
1058
1069
 
@@ -44,11 +44,11 @@ comfyui_workflow_templates/templates/flux_schnell-1.webp,sha256=fQ7jcpAp78BSu5t0
44
44
  comfyui_workflow_templates/templates/flux_schnell.json,sha256=t0H9W4oD76duF3gyYD1M_gHiaE-o4YsY3_YFbbN2O5g,6758
45
45
  comfyui_workflow_templates/templates/gligen_textbox_example-1.webp,sha256=4Lv5YE_FdAhd4WOYgyjtSeEUxLnbMnYlC1sJRa6ITmI,105278
46
46
  comfyui_workflow_templates/templates/gligen_textbox_example.json,sha256=BbfVZLIvBpAk4sks-9CQ8Q_g9lp53Z3NaqGpW1kbQw8,8907
47
- comfyui_workflow_templates/templates/hidream_i1_dev-1.png,sha256=EUdfUTHY6let-LNDwPruoAO8Ceo6kgrrDjK7n6AoPJk,1548930
47
+ comfyui_workflow_templates/templates/hidream_i1_dev-1.webp,sha256=SVb1Rx2j7PYQ3bLpS4ihDHGnEHzuLvcxA0a-vEYrw3A,30980
48
48
  comfyui_workflow_templates/templates/hidream_i1_dev.json,sha256=dGwH3hix6IjKEeT2NZtDk169q3aFH9qy-ftoCHBcBfU,14102
49
- comfyui_workflow_templates/templates/hidream_i1_fast-1.png,sha256=5V0kvId-LtxVXmHplAk2hgh05zsdL-F57zaiWXwX_3c,1190054
49
+ comfyui_workflow_templates/templates/hidream_i1_fast-1.webp,sha256=6RCa4l9uGFw5HnyJpWwaLHRmv_NH1uZusv15oBnKVUs,19014
50
50
  comfyui_workflow_templates/templates/hidream_i1_fast.json,sha256=a7rYf05gErHUqjriNwPWzQGN8vDAcczzMcHO2nQxudk,14028
51
- comfyui_workflow_templates/templates/hidream_i1_full-1.png,sha256=rgcizygcpFB9jVXC8ue_F1Gagr6T6b03MUlqZlLqvpE,778573
51
+ comfyui_workflow_templates/templates/hidream_i1_full-1.webp,sha256=44kCdFDcOV_TU9kDvc5SmlGVEEF8s0j2h9748DXuNc4,8832
52
52
  comfyui_workflow_templates/templates/hidream_i1_full.json,sha256=JvHLKt1t42TNS7cUl0S5rKfhM3Z0pNzUlbqkSzFgp58,13972
53
53
  comfyui_workflow_templates/templates/hiresfix_esrgan_workflow-1.webp,sha256=qwI-UaVLBvjdvN6PqKgZArO7JsxW1iBuwTBV1t_ub24,80022
54
54
  comfyui_workflow_templates/templates/hiresfix_esrgan_workflow.json,sha256=4Uyhq8sL6f-EbopDoRXQpbJTt0lsV4-D2tT47wiMpPQ,13353
@@ -70,7 +70,7 @@ comfyui_workflow_templates/templates/image_to_video-1.webp,sha256=-3fIlyNhM-troU
70
70
  comfyui_workflow_templates/templates/image_to_video.json,sha256=0HU8Cd0_AL-HJlBf6o_yvkToA8j0G5o4Kp-5HA91sUI,6625
71
71
  comfyui_workflow_templates/templates/image_to_video_wan-1.webp,sha256=cxtxeW5KepuVvqInT1G4d6ddKN_qCWzzWW4sv0Yl6PI,926424
72
72
  comfyui_workflow_templates/templates/image_to_video_wan.json,sha256=eJJzxJcRo-f2P1EW3OOPFm0Nx-6rxFdpdkRVcXPATs4,11813
73
- comfyui_workflow_templates/templates/index.json,sha256=gaFlk7FSmMoQDgTtFONtkge7aIlulzqGOkpDGbCap0M,16626
73
+ comfyui_workflow_templates/templates/index.json,sha256=OqtM6B1Y8k7JHUj-4khfN5qdsiu2BqcTI94g8JMmSmE,18725
74
74
  comfyui_workflow_templates/templates/inpain_model_outpainting-1.webp,sha256=PVdIJ4LKvAGP-OzD1FmzQGFpcUKOMdXj-bBgQwIgZDI,116632
75
75
  comfyui_workflow_templates/templates/inpain_model_outpainting-2.webp,sha256=8I_BITesJrhvWdqebcz_BUsG2O5ltayxgIkwZCs-R9w,27708
76
76
  comfyui_workflow_templates/templates/inpain_model_outpainting.json,sha256=ovkgoh1C-grKfehN495pSUKTBGnSQ6Hm9GTVgQ3LjCU,8608
@@ -121,12 +121,13 @@ comfyui_workflow_templates/templates/text_to_video_wan-1.webp,sha256=Olfa2hHjGbq
121
121
  comfyui_workflow_templates/templates/text_to_video_wan.json,sha256=t2ngFOKrRNy7hU3CaLpW9UCtbsyO4bxGf_uV9b8TqPM,8581
122
122
  comfyui_workflow_templates/templates/txt_to_image_to_video-1.webp,sha256=IXxokwudVpNY0_bO7wVU5w8jZlPiUg-ptsSr-sKv5MY,740588
123
123
  comfyui_workflow_templates/templates/txt_to_image_to_video.json,sha256=OgF78IDS70E0rX_TLF-P24eP72FVyKFCUChyZx9f5vo,11438
124
- comfyui_workflow_templates/templates/wan2.1_fun_control-1.webp,sha256=LbGDA_8hyqU1yEEvvPEZypI8jNdJ4WBpLLHwjCYv9_c,5256208
124
+ comfyui_workflow_templates/templates/wan2.1_fun_control-1.webp,sha256=hOIglkDZd_pRJMqpSVNFqwrJGOxl8KvaCCEzmzsg1q0,1379780
125
+ comfyui_workflow_templates/templates/wan2.1_fun_control-2.webp,sha256=czOi3YuJI9HrCCo8qs-XWf6pNgpJtMLK5jlXYF5ZS4s,1181802
125
126
  comfyui_workflow_templates/templates/wan2.1_fun_control.json,sha256=DtwD0aCFtDAfmHFZ60SmVaTQCwAKy27Ggpi5YHTjdbE,20623
126
- comfyui_workflow_templates/templates/wan2.1_fun_inp-1.webp,sha256=MwXmlKZmm830PP7Qv-_TKsQxgglQjQYSCqwcHhpoB5Y,4674784
127
+ comfyui_workflow_templates/templates/wan2.1_fun_inp-1.webp,sha256=0xKRBDLFCbMrni6o5zFlVt6o5a38Rxg1_Q0ETU2hPHc,1578046
127
128
  comfyui_workflow_templates/templates/wan2.1_fun_inp.json,sha256=PFoDxG-3_scsi2TGnDukSJ31dMC6j8ZYLqLQ_uJE5xM,19174
128
- comfyui_workflow_templates-0.1.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
129
- comfyui_workflow_templates-0.1.1.dist-info/METADATA,sha256=Hk2Qey56Xxm2liqHprMYjLO-47rpb_nVC7ErL5RcjXU,54809
130
- comfyui_workflow_templates-0.1.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
131
- comfyui_workflow_templates-0.1.1.dist-info/top_level.txt,sha256=u4ElFwwqJ25NY9OpjIB2eFEaFoAIk4bHrlGJKPMwJOo,27
132
- comfyui_workflow_templates-0.1.1.dist-info/RECORD,,
129
+ comfyui_workflow_templates-0.1.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
130
+ comfyui_workflow_templates-0.1.2.dist-info/METADATA,sha256=NV6ahsxSjHv01tgLe4sh3jiHl3vsEKltKTBd52PScGQ,56190
131
+ comfyui_workflow_templates-0.1.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
132
+ comfyui_workflow_templates-0.1.2.dist-info/top_level.txt,sha256=u4ElFwwqJ25NY9OpjIB2eFEaFoAIk4bHrlGJKPMwJOo,27
133
+ comfyui_workflow_templates-0.1.2.dist-info/RECORD,,