Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +824 -0
- custom_nodes/Comfy-WaveSpeed/.github/workflows/publish_action.yml +20 -0
- custom_nodes/Comfy-WaveSpeed/.gitignore +162 -0
- custom_nodes/Comfy-WaveSpeed/LICENSE +21 -0
- custom_nodes/Comfy-WaveSpeed/README.md +104 -0
- custom_nodes/Comfy-WaveSpeed/__init__.py +53 -0
- custom_nodes/Comfy-WaveSpeed/assets/flux_optimized.png +3 -0
- custom_nodes/Comfy-WaveSpeed/assets/flux_original.png +3 -0
- custom_nodes/Comfy-WaveSpeed/assets/usage_compile.png +3 -0
- custom_nodes/Comfy-WaveSpeed/assets/usage_fbcache.png +0 -0
- custom_nodes/Comfy-WaveSpeed/fbcache_nodes.py +294 -0
- custom_nodes/Comfy-WaveSpeed/first_block_cache.py +841 -0
- custom_nodes/Comfy-WaveSpeed/misc_nodes.py +152 -0
- custom_nodes/Comfy-WaveSpeed/patchers.py +139 -0
- custom_nodes/Comfy-WaveSpeed/pyproject.toml +14 -0
- custom_nodes/Comfy-WaveSpeed/utils.py +127 -0
- custom_nodes/Comfy-WaveSpeed/velocator_nodes.py +413 -0
- custom_nodes/Comfy-WaveSpeed/workflows/flux.json +994 -0
- custom_nodes/Comfy-WaveSpeed/workflows/flux_controlnet.json +888 -0
- custom_nodes/Comfy-WaveSpeed/workflows/hunyuan_video.json +851 -0
- custom_nodes/Comfy-WaveSpeed/workflows/ltxv.json +723 -0
- custom_nodes/Comfy-WaveSpeed/workflows/sd3.5.json +657 -0
- custom_nodes/Comfy-WaveSpeed/workflows/sdxl.json +706 -0
- custom_nodes/ComfyUI-3D-Pack/.gitattributes +2 -0
- custom_nodes/ComfyUI-3D-Pack/.github/FUNDING.yml +13 -0
- custom_nodes/ComfyUI-3D-Pack/.github/workflows/publish.yml +21 -0
- custom_nodes/ComfyUI-3D-Pack/.gitignore +172 -0
- custom_nodes/ComfyUI-3D-Pack/.vscode/settings.json +8 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CRM/Put Convolutional Reconstruction Model here.txt +0 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CRM_T2I_V3/Put CRM_T2I_V3 model here.txt +0 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/.gitattributes +35 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/2D_Stage/models/image_encoder/config.json +23 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/README.md +60 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/config.json +24 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/preprocessor_config.json +27 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/Put CharacterGen Model here.txt +0 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/README.md +22 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Craftsman/image-to-shape-diffusion/clip-mvrgb-modln-l256-e64-ne8-nd16-nl6-aligned-vae/Put Craftsman Model here.txt +0 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/JeffreyXiang/TRELLIS-image-large/.gitattributes +35 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/JeffreyXiang/TRELLIS-image-large/README.md +16 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/.gitattributes +35 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/README.md +5 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json +44 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/image_encoder/config.json +23 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/model_index.json +31 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/scheduler/scheduler_config.json +20 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/unet/config.json +68 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/vae/config.json +34 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/feature_extractor/preprocessor_config.json +44 -0
- custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/image_encoder/config.json +23 -0
.gitattributes
CHANGED
@@ -48,3 +48,827 @@ models/blip/models--Salesforce--blip-image-captioning-base/blobs/d6638651a5526cc
|
|
48 |
models/blip/models--Salesforce--blip-vqa-base/blobs/33786eed34def0c95fa948128cb4386be9b9219aa2c2e25f1c9c744692121bb7 filter=lfs diff=lfs merge=lfs -text
|
49 |
models/clip_interrogator/models--timm--vit_large_patch14_clip_224.openai/blobs/9ce2e8a8ebfff3793d7d375ad6d3c35cb9aebf3de7ace0fc7308accab7cd207e filter=lfs diff=lfs merge=lfs -text
|
50 |
models/x-portrait/model_state-415001.th filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
models/blip/models--Salesforce--blip-vqa-base/blobs/33786eed34def0c95fa948128cb4386be9b9219aa2c2e25f1c9c744692121bb7 filter=lfs diff=lfs merge=lfs -text
|
49 |
models/clip_interrogator/models--timm--vit_large_patch14_clip_224.openai/blobs/9ce2e8a8ebfff3793d7d375ad6d3c35cb9aebf3de7ace0fc7308accab7cd207e filter=lfs diff=lfs merge=lfs -text
|
50 |
models/x-portrait/model_state-415001.th filter=lfs diff=lfs merge=lfs -text
|
51 |
+
custom_nodes/Comfy-WaveSpeed/assets/flux_optimized.png filter=lfs diff=lfs merge=lfs -text
|
52 |
+
custom_nodes/Comfy-WaveSpeed/assets/flux_original.png filter=lfs diff=lfs merge=lfs -text
|
53 |
+
custom_nodes/Comfy-WaveSpeed/assets/usage_compile.png filter=lfs diff=lfs merge=lfs -text
|
54 |
+
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/tencent/Hunyuan3D-2/assets/demo.png filter=lfs diff=lfs merge=lfs -text
|
55 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/CharacterGen/Stage_3D/material/examples/1/1.png filter=lfs diff=lfs merge=lfs -text
|
56 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/CharacterGen/Stage_3D/material/examples/1/2.png filter=lfs diff=lfs merge=lfs -text
|
57 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/CharacterGen/Stage_3D/material/examples/1/3.png filter=lfs diff=lfs merge=lfs -text
|
58 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/CharacterGen/Stage_3D/material/examples/1/4.png filter=lfs diff=lfs merge=lfs -text
|
59 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/StableFast3D/sf3d/.slangtorch_cache/texture_baker/44136fa355b3678a/0/.ninja_deps filter=lfs diff=lfs merge=lfs -text
|
60 |
+
custom_nodes/ComfyUI-3D-Pack/Gen_3D_Modules/StableFast3D/sf3d/.slangtorch_cache/texture_baker/44136fa355b3678a/0/texture_baker.o filter=lfs diff=lfs merge=lfs -text
|
61 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/Cammy_Style_0-NoBG_Square.png filter=lfs diff=lfs merge=lfs -text
|
62 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/Cat_Coffee_rgba.png filter=lfs diff=lfs merge=lfs -text
|
63 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/CharacterGen_Test_2.png filter=lfs diff=lfs merge=lfs -text
|
64 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/Cucumber_Shark_rgba.png filter=lfs diff=lfs merge=lfs -text
|
65 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/KungFuCat.png filter=lfs diff=lfs merge=lfs -text
|
66 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/Mario_Cat.png filter=lfs diff=lfs merge=lfs -text
|
67 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/PirateCat.png filter=lfs diff=lfs merge=lfs -text
|
68 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/Test_ChunLi[[:space:]]768X512.png filter=lfs diff=lfs merge=lfs -text
|
69 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/White[[:space:]]Tiger[[:space:]]Girl_1.png filter=lfs diff=lfs merge=lfs -text
|
70 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/a_pikachu_with_smily_face-removebg.png filter=lfs diff=lfs merge=lfs -text
|
71 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/monster.png filter=lfs diff=lfs merge=lfs -text
|
72 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/ref_cup.png filter=lfs diff=lfs merge=lfs -text
|
73 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/ref_gun.png filter=lfs diff=lfs merge=lfs -text
|
74 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/round_cat.png filter=lfs diff=lfs merge=lfs -text
|
75 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/squirrel_girl_0.png filter=lfs diff=lfs merge=lfs -text
|
76 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/squirrel_girl_1.png filter=lfs diff=lfs merge=lfs -text
|
77 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Inputs_Files/squirrel_girl_2.png filter=lfs diff=lfs merge=lfs -text
|
78 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Outputs/Cammy_Cam_Rotate_Clockwise.gif filter=lfs diff=lfs merge=lfs -text
|
79 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Outputs/Cammy_Cam_Rotate_Counter_Clockwise.gif filter=lfs diff=lfs merge=lfs -text
|
80 |
+
custom_nodes/ComfyUI-3D-Pack/_Example_Workflows/_Example_Outputs/Wonder3D_FatCat_MVs.jpg filter=lfs diff=lfs merge=lfs -text
|
81 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/driving_video.mp4 filter=lfs diff=lfs merge=lfs -text
|
82 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/exp_image.png filter=lfs diff=lfs merge=lfs -text
|
83 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d0.mp4 filter=lfs diff=lfs merge=lfs -text
|
84 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d3.mp4 filter=lfs diff=lfs merge=lfs -text
|
85 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d5.mp4 filter=lfs diff=lfs merge=lfs -text
|
86 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d6.mp4 filter=lfs diff=lfs merge=lfs -text
|
87 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d7.mp4 filter=lfs diff=lfs merge=lfs -text
|
88 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d8.mp4 filter=lfs diff=lfs merge=lfs -text
|
89 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/driving/d9.mp4 filter=lfs diff=lfs merge=lfs -text
|
90 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s0.jpg filter=lfs diff=lfs merge=lfs -text
|
91 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s10.jpg filter=lfs diff=lfs merge=lfs -text
|
92 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s2.jpg filter=lfs diff=lfs merge=lfs -text
|
93 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s4.jpg filter=lfs diff=lfs merge=lfs -text
|
94 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s5.jpg filter=lfs diff=lfs merge=lfs -text
|
95 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s6.jpg filter=lfs diff=lfs merge=lfs -text
|
96 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s7.jpg filter=lfs diff=lfs merge=lfs -text
|
97 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s8.jpg filter=lfs diff=lfs merge=lfs -text
|
98 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/original_sample_asset/source/s9.jpg filter=lfs diff=lfs merge=lfs -text
|
99 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/source_image.png filter=lfs diff=lfs merge=lfs -text
|
100 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/workflow_advanced_screenshot.png filter=lfs diff=lfs merge=lfs -text
|
101 |
+
custom_nodes/ComfyUI-AdvancedLivePortrait/sample/workflow_basic_screenshot.png filter=lfs diff=lfs merge=lfs -text
|
102 |
+
custom_nodes/ComfyUI-BS_Kokoro-onnx/voices.json filter=lfs diff=lfs merge=lfs -text
|
103 |
+
custom_nodes/ComfyUI-CascadeResolutions/preview.png filter=lfs diff=lfs merge=lfs -text
|
104 |
+
custom_nodes/ComfyUI-Crystools/docs/debugger-show-any.png filter=lfs diff=lfs merge=lfs -text
|
105 |
+
custom_nodes/ComfyUI-Crystools/docs/debugger-show-json.png filter=lfs diff=lfs merge=lfs -text
|
106 |
+
custom_nodes/ComfyUI-Crystools/docs/debugger-show-metadata.png filter=lfs diff=lfs merge=lfs -text
|
107 |
+
custom_nodes/ComfyUI-Crystools/docs/image-load.png filter=lfs diff=lfs merge=lfs -text
|
108 |
+
custom_nodes/ComfyUI-Crystools/docs/image-preview-diff.png filter=lfs diff=lfs merge=lfs -text
|
109 |
+
custom_nodes/ComfyUI-Crystools/docs/image-preview-metadata.png filter=lfs diff=lfs merge=lfs -text
|
110 |
+
custom_nodes/ComfyUI-Crystools/docs/image-preview.png filter=lfs diff=lfs merge=lfs -text
|
111 |
+
custom_nodes/ComfyUI-Crystools/docs/image-resolution.png filter=lfs diff=lfs merge=lfs -text
|
112 |
+
custom_nodes/ComfyUI-Crystools/docs/image-save.png filter=lfs diff=lfs merge=lfs -text
|
113 |
+
custom_nodes/ComfyUI-Crystools/docs/jake.gif filter=lfs diff=lfs merge=lfs -text
|
114 |
+
custom_nodes/ComfyUI-Crystools/docs/metadata-comparator-mark.png filter=lfs diff=lfs merge=lfs -text
|
115 |
+
custom_nodes/ComfyUI-Crystools/docs/metadata-comparator.png filter=lfs diff=lfs merge=lfs -text
|
116 |
+
custom_nodes/ComfyUI-Crystools/docs/metadata-extractor-photoshop.png filter=lfs diff=lfs merge=lfs -text
|
117 |
+
custom_nodes/ComfyUI-Crystools/docs/metadata-extractor.png filter=lfs diff=lfs merge=lfs -text
|
118 |
+
custom_nodes/ComfyUI-Crystools/docs/monitor1.webp filter=lfs diff=lfs merge=lfs -text
|
119 |
+
custom_nodes/ComfyUI-Crystools/docs/monitor3.webp filter=lfs diff=lfs merge=lfs -text
|
120 |
+
custom_nodes/ComfyUI-Crystools/docs/pipe-0.png filter=lfs diff=lfs merge=lfs -text
|
121 |
+
custom_nodes/ComfyUI-Crystools/docs/pipe-1.png filter=lfs diff=lfs merge=lfs -text
|
122 |
+
custom_nodes/ComfyUI-Crystools/docs/pipe-2.png filter=lfs diff=lfs merge=lfs -text
|
123 |
+
custom_nodes/ComfyUI-Crystools/docs/pipe-3.png filter=lfs diff=lfs merge=lfs -text
|
124 |
+
custom_nodes/ComfyUI-Crystools/docs/utils-json-comparator.png filter=lfs diff=lfs merge=lfs -text
|
125 |
+
custom_nodes/ComfyUI-Crystools/docs/utils-stats.png filter=lfs diff=lfs merge=lfs -text
|
126 |
+
custom_nodes/ComfyUI-Detail-Daemon/DetailDaemonIcon.jpg filter=lfs diff=lfs merge=lfs -text
|
127 |
+
custom_nodes/ComfyUI-Easy-Use/py/kolors/chatglm/tokenizer/vocab.txt filter=lfs diff=lfs merge=lfs -text
|
128 |
+
custom_nodes/ComfyUI-Easy-Use/resources/OpenSans-Medium.ttf filter=lfs diff=lfs merge=lfs -text
|
129 |
+
custom_nodes/ComfyUI-F5-TTS/F5-TTS/src/f5_tts/infer/examples/basic/basic_ref_en.wav filter=lfs diff=lfs merge=lfs -text
|
130 |
+
custom_nodes/ComfyUI-F5-TTS/F5-TTS/src/f5_tts/infer/examples/basic/basic_ref_zh.wav filter=lfs diff=lfs merge=lfs -text
|
131 |
+
custom_nodes/ComfyUI-F5-TTS/F5-TTS/src/f5_tts/infer/examples/multi/country.flac filter=lfs diff=lfs merge=lfs -text
|
132 |
+
custom_nodes/ComfyUI-F5-TTS/F5-TTS/src/f5_tts/infer/examples/multi/main.flac filter=lfs diff=lfs merge=lfs -text
|
133 |
+
custom_nodes/ComfyUI-F5-TTS/F5-TTS/src/f5_tts/infer/examples/multi/town.flac filter=lfs diff=lfs merge=lfs -text
|
134 |
+
custom_nodes/ComfyUI-F5-TTS/examples/F5TTS_test_en_1_ref_short.chipmunk.wav filter=lfs diff=lfs merge=lfs -text
|
135 |
+
custom_nodes/ComfyUI-F5-TTS/examples/F5TTS_test_en_1_ref_short.deep.wav filter=lfs diff=lfs merge=lfs -text
|
136 |
+
custom_nodes/ComfyUI-F5-TTS/examples/F5TTS_test_en_1_ref_short.wav filter=lfs diff=lfs merge=lfs -text
|
137 |
+
custom_nodes/ComfyUI-F5-TTS/examples/F5TTS_test_zh_1_ref_short.wav filter=lfs diff=lfs merge=lfs -text
|
138 |
+
custom_nodes/ComfyUI-F5-TTS/examples/fr_example.wav filter=lfs diff=lfs merge=lfs -text
|
139 |
+
custom_nodes/ComfyUI-F5-TTS/examples/jp_example.wav filter=lfs diff=lfs merge=lfs -text
|
140 |
+
custom_nodes/ComfyUI-Frame-Interpolation/All_in_one_v1_3.png filter=lfs diff=lfs merge=lfs -text
|
141 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/anime0.png filter=lfs diff=lfs merge=lfs -text
|
142 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/anime1.png filter=lfs diff=lfs merge=lfs -text
|
143 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/bocchi0.jpg filter=lfs diff=lfs merge=lfs -text
|
144 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/bocchi1.jpg filter=lfs diff=lfs merge=lfs -text
|
145 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/real0.png filter=lfs diff=lfs merge=lfs -text
|
146 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/real1.png filter=lfs diff=lfs merge=lfs -text
|
147 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/rick/00003.png filter=lfs diff=lfs merge=lfs -text
|
148 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/rick/00004.png filter=lfs diff=lfs merge=lfs -text
|
149 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/rick/00005.png filter=lfs diff=lfs merge=lfs -text
|
150 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/violet0.png filter=lfs diff=lfs merge=lfs -text
|
151 |
+
custom_nodes/ComfyUI-Frame-Interpolation/demo_frames/violet1.png filter=lfs diff=lfs merge=lfs -text
|
152 |
+
custom_nodes/ComfyUI-Frame-Interpolation/example.png filter=lfs diff=lfs merge=lfs -text
|
153 |
+
custom_nodes/ComfyUI-Frame-Interpolation/interpolation_schedule.png filter=lfs diff=lfs merge=lfs -text
|
154 |
+
custom_nodes/ComfyUI-Frame-Interpolation/test_vfi_schedule.gif filter=lfs diff=lfs merge=lfs -text
|
155 |
+
custom_nodes/ComfyUI-GIMM-VFI/gimmvfi/generalizable_INR/flowformer/assets/teaser.png filter=lfs diff=lfs merge=lfs -text
|
156 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/example_workflows/demo.png filter=lfs diff=lfs merge=lfs -text
|
157 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/example_workflows/example_workflow.png filter=lfs diff=lfs merge=lfs -text
|
158 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/build/lib.linux-x86_64-cpython-310/custom_rasterizer_kernel.cpython-310-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
159 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/build/temp.linux-x86_64-cpython-310/.ninja_deps filter=lfs diff=lfs merge=lfs -text
|
160 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/build/temp.linux-x86_64-cpython-310/lib/custom_rasterizer_kernel/grid_neighbor.o filter=lfs diff=lfs merge=lfs -text
|
161 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/build/temp.linux-x86_64-cpython-310/lib/custom_rasterizer_kernel/rasterizer.o filter=lfs diff=lfs merge=lfs -text
|
162 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/build/temp.linux-x86_64-cpython-310/lib/custom_rasterizer_kernel/rasterizer_gpu.o filter=lfs diff=lfs merge=lfs -text
|
163 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/custom_rasterizer/dist/custom_rasterizer-0.1.0+torch251.cuda121-py3.10-linux-x86_64.egg filter=lfs diff=lfs merge=lfs -text
|
164 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/differentiable_renderer/build/lib.linux-x86_64-cpython-310/mesh_processor.cpython-310-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
165 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/differentiable_renderer/build/temp.linux-x86_64-cpython-310/mesh_processor.o filter=lfs diff=lfs merge=lfs -text
|
166 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/differentiable_renderer/mesh_processor.cp312-win_amd64.pyd filter=lfs diff=lfs merge=lfs -text
|
167 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/hy3dgen/texgen/differentiable_renderer/mesh_processor.cpython-310-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
168 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/wheels/custom_rasterizer-0.1-cp312-cp312-win_amd64.whl filter=lfs diff=lfs merge=lfs -text
|
169 |
+
custom_nodes/ComfyUI-Hunyuan3DWrapper/wheels/custom_rasterizer-0.1.0+torch260.cuda126-cp312-cp312-win_amd64.whl filter=lfs diff=lfs merge=lfs -text
|
170 |
+
custom_nodes/ComfyUI-HunyuanVideoWrapper/example_workflows/example_output.mp4 filter=lfs diff=lfs merge=lfs -text
|
171 |
+
custom_nodes/ComfyUI-IC-Light/examples/ic_light_animated_example_01.png filter=lfs diff=lfs merge=lfs -text
|
172 |
+
custom_nodes/ComfyUI-IC-Light/examples/ic_light_example_02.png filter=lfs diff=lfs merge=lfs -text
|
173 |
+
custom_nodes/ComfyUI-IC-Light/examples/ic_light_fbc_example_02.png filter=lfs diff=lfs merge=lfs -text
|
174 |
+
custom_nodes/ComfyUI-IC-Light/examples/ic_light_simple_light_multi_02.png filter=lfs diff=lfs merge=lfs -text
|
175 |
+
custom_nodes/ComfyUI-IC-Light/examples/iclight_example_animated_multilight_01.png filter=lfs diff=lfs merge=lfs -text
|
176 |
+
custom_nodes/ComfyUI-IC-Light/examples/iclight_example_fc_controlled_gradient_01.png filter=lfs diff=lfs merge=lfs -text
|
177 |
+
custom_nodes/ComfyUI-IC-Light/examples/iclight_normals_example_01.png filter=lfs diff=lfs merge=lfs -text
|
178 |
+
custom_nodes/ComfyUI-IF_MemoAvatar/examples/candy.wav filter=lfs diff=lfs merge=lfs -text
|
179 |
+
custom_nodes/ComfyUI-IF_MemoAvatar/examples/[email protected] filter=lfs diff=lfs merge=lfs -text
|
180 |
+
custom_nodes/ComfyUI-IF_MemoAvatar/examples/dicaprio.jpg filter=lfs diff=lfs merge=lfs -text
|
181 |
+
custom_nodes/ComfyUI-IF_MemoAvatar/examples/speech.wav filter=lfs diff=lfs merge=lfs -text
|
182 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/T.png filter=lfs diff=lfs merge=lfs -text
|
183 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/character_1.png filter=lfs diff=lfs merge=lfs -text
|
184 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/character_2.png filter=lfs diff=lfs merge=lfs -text
|
185 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/character_3.png filter=lfs diff=lfs merge=lfs -text
|
186 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/mushroom_1.png filter=lfs diff=lfs merge=lfs -text
|
187 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/mushroom_2.png filter=lfs diff=lfs merge=lfs -text
|
188 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/mushroom_3.png filter=lfs diff=lfs merge=lfs -text
|
189 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/orangeguy_1.png filter=lfs diff=lfs merge=lfs -text
|
190 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/orangeguy_2.png filter=lfs diff=lfs merge=lfs -text
|
191 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/orangeguy_3.png filter=lfs diff=lfs merge=lfs -text
|
192 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/popmart_1.png filter=lfs diff=lfs merge=lfs -text
|
193 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/popmart_2.png filter=lfs diff=lfs merge=lfs -text
|
194 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/popmart_3.png filter=lfs diff=lfs merge=lfs -text
|
195 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/rabbit_1.png filter=lfs diff=lfs merge=lfs -text
|
196 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/rabbit_2.png filter=lfs diff=lfs merge=lfs -text
|
197 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/rabbit_3.png filter=lfs diff=lfs merge=lfs -text
|
198 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/tiger_1.png filter=lfs diff=lfs merge=lfs -text
|
199 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/tiger_2.png filter=lfs diff=lfs merge=lfs -text
|
200 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/tiger_3.png filter=lfs diff=lfs merge=lfs -text
|
201 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/yoimiya_1.png filter=lfs diff=lfs merge=lfs -text
|
202 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/yoimiya_2.png filter=lfs diff=lfs merge=lfs -text
|
203 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/example_multi_image/yoimiya_3.png filter=lfs diff=lfs merge=lfs -text
|
204 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_building.png filter=lfs diff=lfs merge=lfs -text
|
205 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_castle.png filter=lfs diff=lfs merge=lfs -text
|
206 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_colorful_cottage.png filter=lfs diff=lfs merge=lfs -text
|
207 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_maya_pyramid.png filter=lfs diff=lfs merge=lfs -text
|
208 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_mushroom.png filter=lfs diff=lfs merge=lfs -text
|
209 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_building_space_station.png filter=lfs diff=lfs merge=lfs -text
|
210 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_dragon.png filter=lfs diff=lfs merge=lfs -text
|
211 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_elephant.png filter=lfs diff=lfs merge=lfs -text
|
212 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_furry.png filter=lfs diff=lfs merge=lfs -text
|
213 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_quadruped.png filter=lfs diff=lfs merge=lfs -text
|
214 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_robot_crab.png filter=lfs diff=lfs merge=lfs -text
|
215 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_robot_dinosour.png filter=lfs diff=lfs merge=lfs -text
|
216 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_creature_rock_monster.png filter=lfs diff=lfs merge=lfs -text
|
217 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_humanoid_block_robot.png filter=lfs diff=lfs merge=lfs -text
|
218 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_humanoid_dragonborn.png filter=lfs diff=lfs merge=lfs -text
|
219 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_humanoid_dwarf.png filter=lfs diff=lfs merge=lfs -text
|
220 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_humanoid_goblin.png filter=lfs diff=lfs merge=lfs -text
|
221 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_humanoid_mech.png filter=lfs diff=lfs merge=lfs -text
|
222 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_crate.png filter=lfs diff=lfs merge=lfs -text
|
223 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_fireplace.png filter=lfs diff=lfs merge=lfs -text
|
224 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_gate.png filter=lfs diff=lfs merge=lfs -text
|
225 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_lantern.png filter=lfs diff=lfs merge=lfs -text
|
226 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_magicbook.png filter=lfs diff=lfs merge=lfs -text
|
227 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_mailbox.png filter=lfs diff=lfs merge=lfs -text
|
228 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_monster_chest.png filter=lfs diff=lfs merge=lfs -text
|
229 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_paper_machine.png filter=lfs diff=lfs merge=lfs -text
|
230 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_phonograph.png filter=lfs diff=lfs merge=lfs -text
|
231 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_portal2.png filter=lfs diff=lfs merge=lfs -text
|
232 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_storage_chest.png filter=lfs diff=lfs merge=lfs -text
|
233 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_telephone.png filter=lfs diff=lfs merge=lfs -text
|
234 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_television.png filter=lfs diff=lfs merge=lfs -text
|
235 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_misc_workbench.png filter=lfs diff=lfs merge=lfs -text
|
236 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_biplane.png filter=lfs diff=lfs merge=lfs -text
|
237 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_bulldozer.png filter=lfs diff=lfs merge=lfs -text
|
238 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_cart.png filter=lfs diff=lfs merge=lfs -text
|
239 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_excavator.png filter=lfs diff=lfs merge=lfs -text
|
240 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_helicopter.png filter=lfs diff=lfs merge=lfs -text
|
241 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_locomotive.png filter=lfs diff=lfs merge=lfs -text
|
242 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/typical_vehicle_pirate_ship.png filter=lfs diff=lfs merge=lfs -text
|
243 |
+
custom_nodes/ComfyUI-IF_Trellis/assets/example_image/weatherworn_misc_paper_machine3.png filter=lfs diff=lfs merge=lfs -text
|
244 |
+
custom_nodes/ComfyUI-IF_Trellis/wheels/diff_gaussian_rasterization-0.0.0-cp310-cp310-linux_x86_64.whl filter=lfs diff=lfs merge=lfs -text
|
245 |
+
custom_nodes/ComfyUI-IF_Trellis/wheels/nvdiffrast-0.3.3-cp310-cp310-linux_x86_64.whl filter=lfs diff=lfs merge=lfs -text
|
246 |
+
custom_nodes/ComfyUI-Image-Filters/toy.png filter=lfs diff=lfs merge=lfs -text
|
247 |
+
custom_nodes/ComfyUI-Image-Filters/workflow_images/alpha_matte.png filter=lfs diff=lfs merge=lfs -text
|
248 |
+
custom_nodes/ComfyUI-Image-Filters/workflow_images/enhance_detail.png filter=lfs diff=lfs merge=lfs -text
|
249 |
+
custom_nodes/ComfyUI-Image-Filters/workflow_images/guided_filter_alpha.png filter=lfs diff=lfs merge=lfs -text
|
250 |
+
custom_nodes/ComfyUI-Impact-Pack/troubleshooting/black1.png filter=lfs diff=lfs merge=lfs -text
|
251 |
+
custom_nodes/ComfyUI-Impact-Pack/troubleshooting/black2.png filter=lfs diff=lfs merge=lfs -text
|
252 |
+
custom_nodes/ComfyUI-Inpaint-CropAndStitch/inpaint-cropandstitch_example_workflow.png filter=lfs diff=lfs merge=lfs -text
|
253 |
+
custom_nodes/ComfyUI-Inpaint-CropAndStitch/inpaint-cropandstitch_flux_example_workflow.png filter=lfs diff=lfs merge=lfs -text
|
254 |
+
custom_nodes/ComfyUI-Janus-Pro/workflow/ComfyUI[[:space:]]Janus-Pro-workflow.png filter=lfs diff=lfs merge=lfs -text
|
255 |
+
custom_nodes/ComfyUI-KJNodes/docs/images/2024-04-03_20_49_29-ComfyUI.png filter=lfs diff=lfs merge=lfs -text
|
256 |
+
custom_nodes/ComfyUI-KJNodes/fonts/FreeMono.ttf filter=lfs diff=lfs merge=lfs -text
|
257 |
+
custom_nodes/ComfyUI-KJNodes/fonts/FreeMonoBoldOblique.otf filter=lfs diff=lfs merge=lfs -text
|
258 |
+
custom_nodes/ComfyUI-KJNodes/fonts/TTNorms-Black.otf filter=lfs diff=lfs merge=lfs -text
|
259 |
+
custom_nodes/ComfyUI-LTXVideo/assets/ltxvideo-i2v.png filter=lfs diff=lfs merge=lfs -text
|
260 |
+
custom_nodes/ComfyUI-LTXVideo/assets/ltxvideo-t2v.png filter=lfs diff=lfs merge=lfs -text
|
261 |
+
custom_nodes/ComfyUI-LTXVideo/assets/moto.png filter=lfs diff=lfs merge=lfs -text
|
262 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d0.mp4 filter=lfs diff=lfs merge=lfs -text
|
263 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d3.mp4 filter=lfs diff=lfs merge=lfs -text
|
264 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d5.mp4 filter=lfs diff=lfs merge=lfs -text
|
265 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d6.mp4 filter=lfs diff=lfs merge=lfs -text
|
266 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d7.mp4 filter=lfs diff=lfs merge=lfs -text
|
267 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d8.mp4 filter=lfs diff=lfs merge=lfs -text
|
268 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/driving/d9.mp4 filter=lfs diff=lfs merge=lfs -text
|
269 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s0.jpg filter=lfs diff=lfs merge=lfs -text
|
270 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s10.jpg filter=lfs diff=lfs merge=lfs -text
|
271 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s2.jpg filter=lfs diff=lfs merge=lfs -text
|
272 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s4.jpg filter=lfs diff=lfs merge=lfs -text
|
273 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s5.jpg filter=lfs diff=lfs merge=lfs -text
|
274 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s6.jpg filter=lfs diff=lfs merge=lfs -text
|
275 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s7.jpg filter=lfs diff=lfs merge=lfs -text
|
276 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s8.jpg filter=lfs diff=lfs merge=lfs -text
|
277 |
+
custom_nodes/ComfyUI-LivePortraitKJ/assets/examples/source/s9.jpg filter=lfs diff=lfs merge=lfs -text
|
278 |
+
custom_nodes/ComfyUI-LivePortraitKJ/media_pipe/mp_models/face_landmarker_v2_with_blendshapes.task filter=lfs diff=lfs merge=lfs -text
|
279 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_i2mv.png filter=lfs diff=lfs merge=lfs -text
|
280 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_i2mv_lora.png filter=lfs diff=lfs merge=lfs -text
|
281 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_i2mv_view_selector.png filter=lfs diff=lfs merge=lfs -text
|
282 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_t2mv.png filter=lfs diff=lfs merge=lfs -text
|
283 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_t2mv_controlnet.png filter=lfs diff=lfs merge=lfs -text
|
284 |
+
custom_nodes/ComfyUI-MVAdapter/assets/comfyui_t2mv_lora.png filter=lfs diff=lfs merge=lfs -text
|
285 |
+
custom_nodes/ComfyUI-Manager/misc/custom-nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
286 |
+
custom_nodes/ComfyUI-Manager/misc/missing-list.jpg filter=lfs diff=lfs merge=lfs -text
|
287 |
+
custom_nodes/ComfyUI-Manager/misc/missing-menu.jpg filter=lfs diff=lfs merge=lfs -text
|
288 |
+
custom_nodes/ComfyUI-Manager/misc/models.png filter=lfs diff=lfs merge=lfs -text
|
289 |
+
custom_nodes/ComfyUI-Manager/misc/nickname.jpg filter=lfs diff=lfs merge=lfs -text
|
290 |
+
custom_nodes/ComfyUI-MimicMotionWrapper/assets/example_data/images/demo1.jpg filter=lfs diff=lfs merge=lfs -text
|
291 |
+
custom_nodes/ComfyUI-MimicMotionWrapper/assets/example_data/videos/pose1.mp4 filter=lfs diff=lfs merge=lfs -text
|
292 |
+
custom_nodes/ComfyUI-PuLID-Flux-Enhanced/examples/pulid_flux_einstein.png filter=lfs diff=lfs merge=lfs -text
|
293 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/Workflows/ChatGPT.png filter=lfs diff=lfs merge=lfs -text
|
294 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/Workflows/ChatGPT_Advanced.png filter=lfs diff=lfs merge=lfs -text
|
295 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/Workflows/string_o.png filter=lfs diff=lfs merge=lfs -text
|
296 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/fonts/Alkatra.ttf filter=lfs diff=lfs merge=lfs -text
|
297 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/fonts/CALIBRI.TTF filter=lfs diff=lfs merge=lfs -text
|
298 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/fonts/COMIC.TTF filter=lfs diff=lfs merge=lfs -text
|
299 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/fonts/COMICI.TTF filter=lfs diff=lfs merge=lfs -text
|
300 |
+
custom_nodes/ComfyUI-QualityOfLifeSuit_Omar92/fonts/COMICZ.TTF filter=lfs diff=lfs merge=lfs -text
|
301 |
+
custom_nodes/ComfyUI-SuperBeasts/examples/BatchManagers.jpg filter=lfs diff=lfs merge=lfs -text
|
302 |
+
custom_nodes/ComfyUI-SuperBeasts/examples/ex1.png filter=lfs diff=lfs merge=lfs -text
|
303 |
+
custom_nodes/ComfyUI-SuperBeasts/examples/ex2.png filter=lfs diff=lfs merge=lfs -text
|
304 |
+
custom_nodes/ComfyUI-TeaCache/assets/compare_flux.png filter=lfs diff=lfs merge=lfs -text
|
305 |
+
custom_nodes/ComfyUI-TeaCache/assets/compare_pulid_flux.png filter=lfs diff=lfs merge=lfs -text
|
306 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/Alkatra.ttf filter=lfs diff=lfs merge=lfs -text
|
307 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/CALIBRI.TTF filter=lfs diff=lfs merge=lfs -text
|
308 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/COMIC.TTF filter=lfs diff=lfs merge=lfs -text
|
309 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/COMICI.TTF filter=lfs diff=lfs merge=lfs -text
|
310 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/COMICZ.TTF filter=lfs diff=lfs merge=lfs -text
|
311 |
+
custom_nodes/ComfyUI-Text_Image-Composite/font/Merienda-VariableFont_wght.ttf filter=lfs diff=lfs merge=lfs -text
|
312 |
+
custom_nodes/ComfyUI-Video-Matting/ckpts/rvm_resnet50_fp16.torchscript filter=lfs diff=lfs merge=lfs -text
|
313 |
+
custom_nodes/ComfyUI-Video-Matting/example_matting_workflow.png filter=lfs diff=lfs merge=lfs -text
|
314 |
+
custom_nodes/ComfyUI-WanVideoWrapper/configs/T5_tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
315 |
+
custom_nodes/ComfyUI-X-Portrait-Nodes/assets/driving_video.mp4 filter=lfs diff=lfs merge=lfs -text
|
316 |
+
custom_nodes/ComfyUI-X-Portrait-Nodes/assets/source_image.png filter=lfs diff=lfs merge=lfs -text
|
317 |
+
custom_nodes/ComfyUI-X-Portrait-Nodes/assets/x-portrait-workflow.png filter=lfs diff=lfs merge=lfs -text
|
318 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/AlumniSansCollegiateOne-Regular.ttf filter=lfs diff=lfs merge=lfs -text
|
319 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/Caveat-VariableFont_wght.ttf filter=lfs diff=lfs merge=lfs -text
|
320 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/NotoSansArabic-Regular.ttf filter=lfs diff=lfs merge=lfs -text
|
321 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/Roboto-Regular.ttf filter=lfs diff=lfs merge=lfs -text
|
322 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/YoungSerif-Regular.ttf filter=lfs diff=lfs merge=lfs -text
|
323 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/comic.ttf filter=lfs diff=lfs merge=lfs -text
|
324 |
+
custom_nodes/ComfyUI_Comfyroll_CustomNodes/fonts/impact.ttf filter=lfs diff=lfs merge=lfs -text
|
325 |
+
custom_nodes/ComfyUI_EchoMimic/assets/echomimic.png filter=lfs diff=lfs merge=lfs -text
|
326 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_audios/chunwang.wav filter=lfs diff=lfs merge=lfs -text
|
327 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_audios/echomimic_en_girl.wav filter=lfs diff=lfs merge=lfs -text
|
328 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_imgs/b.png filter=lfs diff=lfs merge=lfs -text
|
329 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_imgs/c.png filter=lfs diff=lfs merge=lfs -text
|
330 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_imgs/d.png filter=lfs diff=lfs merge=lfs -text
|
331 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_imgs/e.png filter=lfs diff=lfs merge=lfs -text
|
332 |
+
custom_nodes/ComfyUI_EchoMimic/assets/test_pose_demo/d.jpg filter=lfs diff=lfs merge=lfs -text
|
333 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0001.png filter=lfs diff=lfs merge=lfs -text
|
334 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0003.png filter=lfs diff=lfs merge=lfs -text
|
335 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0010.png filter=lfs diff=lfs merge=lfs -text
|
336 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0017.png filter=lfs diff=lfs merge=lfs -text
|
337 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0025.png filter=lfs diff=lfs merge=lfs -text
|
338 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0055.png filter=lfs diff=lfs merge=lfs -text
|
339 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0056.png filter=lfs diff=lfs merge=lfs -text
|
340 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0101.png filter=lfs diff=lfs merge=lfs -text
|
341 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0119.png filter=lfs diff=lfs merge=lfs -text
|
342 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0154.png filter=lfs diff=lfs merge=lfs -text
|
343 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0170.png filter=lfs diff=lfs merge=lfs -text
|
344 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0177.png filter=lfs diff=lfs merge=lfs -text
|
345 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0181.png filter=lfs diff=lfs merge=lfs -text
|
346 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0211.png filter=lfs diff=lfs merge=lfs -text
|
347 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0252.png filter=lfs diff=lfs merge=lfs -text
|
348 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0324.png filter=lfs diff=lfs merge=lfs -text
|
349 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0398.png filter=lfs diff=lfs merge=lfs -text
|
350 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0415.png filter=lfs diff=lfs merge=lfs -text
|
351 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/man/0424.png filter=lfs diff=lfs merge=lfs -text
|
352 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0010.png filter=lfs diff=lfs merge=lfs -text
|
353 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0033.png filter=lfs diff=lfs merge=lfs -text
|
354 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0035.png filter=lfs diff=lfs merge=lfs -text
|
355 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0048.png filter=lfs diff=lfs merge=lfs -text
|
356 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0057.png filter=lfs diff=lfs merge=lfs -text
|
357 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0077.png filter=lfs diff=lfs merge=lfs -text
|
358 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0101.png filter=lfs diff=lfs merge=lfs -text
|
359 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0140.png filter=lfs diff=lfs merge=lfs -text
|
360 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0163.png filter=lfs diff=lfs merge=lfs -text
|
361 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0175.png filter=lfs diff=lfs merge=lfs -text
|
362 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0201.png filter=lfs diff=lfs merge=lfs -text
|
363 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0212.png filter=lfs diff=lfs merge=lfs -text
|
364 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0215.png filter=lfs diff=lfs merge=lfs -text
|
365 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0247.png filter=lfs diff=lfs merge=lfs -text
|
366 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0253.png filter=lfs diff=lfs merge=lfs -text
|
367 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0269.png filter=lfs diff=lfs merge=lfs -text
|
368 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0284.png filter=lfs diff=lfs merge=lfs -text
|
369 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0287.png filter=lfs diff=lfs merge=lfs -text
|
370 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0430.png filter=lfs diff=lfs merge=lfs -text
|
371 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/EMTD_dataset/ref_imgs_by_FLUX/woman/0588.png filter=lfs diff=lfs merge=lfs -text
|
372 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/audio/chinese/echomimicv2_man.wav filter=lfs diff=lfs merge=lfs -text
|
373 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/audio/chinese/ultraman.wav filter=lfs diff=lfs merge=lfs -text
|
374 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0014.png filter=lfs diff=lfs merge=lfs -text
|
375 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0035.png filter=lfs diff=lfs merge=lfs -text
|
376 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0047.png filter=lfs diff=lfs merge=lfs -text
|
377 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0048.png filter=lfs diff=lfs merge=lfs -text
|
378 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0050.png filter=lfs diff=lfs merge=lfs -text
|
379 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0057.png filter=lfs diff=lfs merge=lfs -text
|
380 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0066.png filter=lfs diff=lfs merge=lfs -text
|
381 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0077.png filter=lfs diff=lfs merge=lfs -text
|
382 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0082.png filter=lfs diff=lfs merge=lfs -text
|
383 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0140.png filter=lfs diff=lfs merge=lfs -text
|
384 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0141.png filter=lfs diff=lfs merge=lfs -text
|
385 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0163.png filter=lfs diff=lfs merge=lfs -text
|
386 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0173.png filter=lfs diff=lfs merge=lfs -text
|
387 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0175.png filter=lfs diff=lfs merge=lfs -text
|
388 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0181.png filter=lfs diff=lfs merge=lfs -text
|
389 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0204.png filter=lfs diff=lfs merge=lfs -text
|
390 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0205.png filter=lfs diff=lfs merge=lfs -text
|
391 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0212.png filter=lfs diff=lfs merge=lfs -text
|
392 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0213.png filter=lfs diff=lfs merge=lfs -text
|
393 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0214.png filter=lfs diff=lfs merge=lfs -text
|
394 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0215.png filter=lfs diff=lfs merge=lfs -text
|
395 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0216.png filter=lfs diff=lfs merge=lfs -text
|
396 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0222.png filter=lfs diff=lfs merge=lfs -text
|
397 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0247.png filter=lfs diff=lfs merge=lfs -text
|
398 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0251.png filter=lfs diff=lfs merge=lfs -text
|
399 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0269.png filter=lfs diff=lfs merge=lfs -text
|
400 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0303.png filter=lfs diff=lfs merge=lfs -text
|
401 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0315.png filter=lfs diff=lfs merge=lfs -text
|
402 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0452.png filter=lfs diff=lfs merge=lfs -text
|
403 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/refimag/natural_bk_openhand/0510.png filter=lfs diff=lfs merge=lfs -text
|
404 |
+
custom_nodes/ComfyUI_EchoMimic/echomimic_v2/assets/halfbody_demo/wechat_group.png filter=lfs diff=lfs merge=lfs -text
|
405 |
+
custom_nodes/ComfyUI_EchoMimic/example/align.png filter=lfs diff=lfs merge=lfs -text
|
406 |
+
custom_nodes/ComfyUI_EchoMimic/example/alignA.png filter=lfs diff=lfs merge=lfs -text
|
407 |
+
custom_nodes/ComfyUI_EchoMimic/example/audio2video.png filter=lfs diff=lfs merge=lfs -text
|
408 |
+
custom_nodes/ComfyUI_EchoMimic/example/cropB.png filter=lfs diff=lfs merge=lfs -text
|
409 |
+
custom_nodes/ComfyUI_EchoMimic/example/cropC.png filter=lfs diff=lfs merge=lfs -text
|
410 |
+
custom_nodes/ComfyUI_EchoMimic/example/example.png filter=lfs diff=lfs merge=lfs -text
|
411 |
+
custom_nodes/ComfyUI_EchoMimic/example/new.png filter=lfs diff=lfs merge=lfs -text
|
412 |
+
custom_nodes/ComfyUI_EchoMimic/example/v2.gif filter=lfs diff=lfs merge=lfs -text
|
413 |
+
custom_nodes/ComfyUI_EchoMimic/example/video2video.gif filter=lfs diff=lfs merge=lfs -text
|
414 |
+
custom_nodes/ComfyUI_EchoMimic/src/utils/mp_models/face_landmarker_v2_with_blendshapes.task filter=lfs diff=lfs merge=lfs -text
|
415 |
+
custom_nodes/ComfyUI_IPAdapter_plus/examples/demo_workflow.jpg filter=lfs diff=lfs merge=lfs -text
|
416 |
+
custom_nodes/ComfyUI_InstantID/examples/daydreaming.jpg filter=lfs diff=lfs merge=lfs -text
|
417 |
+
custom_nodes/ComfyUI_InstantID/examples/instant_id_ipadapter.jpg filter=lfs diff=lfs merge=lfs -text
|
418 |
+
custom_nodes/ComfyUI_InstantID/examples/instantid_basic_workflow.jpg filter=lfs diff=lfs merge=lfs -text
|
419 |
+
custom_nodes/ComfyUI_InstantID/examples/instantid_multi_id.jpg filter=lfs diff=lfs merge=lfs -text
|
420 |
+
custom_nodes/ComfyUI_LayerStyle/font/Alibaba-PuHuiTi-Heavy.ttf filter=lfs diff=lfs merge=lfs -text
|
421 |
+
custom_nodes/ComfyUI_LayerStyle/image/add_grain_example.jpg filter=lfs diff=lfs merge=lfs -text
|
422 |
+
custom_nodes/ComfyUI_LayerStyle/image/auto_adjust_example.jpg filter=lfs diff=lfs merge=lfs -text
|
423 |
+
custom_nodes/ComfyUI_LayerStyle/image/auto_adjust_v2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
424 |
+
custom_nodes/ComfyUI_LayerStyle/image/auto_brightness_example.jpg filter=lfs diff=lfs merge=lfs -text
|
425 |
+
custom_nodes/ComfyUI_LayerStyle/image/ben_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
426 |
+
custom_nodes/ComfyUI_LayerStyle/image/ben_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
427 |
+
custom_nodes/ComfyUI_LayerStyle/image/birefnet_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
428 |
+
custom_nodes/ComfyUI_LayerStyle/image/birefnet_ultra_v2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
429 |
+
custom_nodes/ComfyUI_LayerStyle/image/birefnet_ultra_v2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
430 |
+
custom_nodes/ComfyUI_LayerStyle/image/blend_mode_result.jpg filter=lfs diff=lfs merge=lfs -text
|
431 |
+
custom_nodes/ComfyUI_LayerStyle/image/blend_mode_v2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
432 |
+
custom_nodes/ComfyUI_LayerStyle/image/blendif_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
433 |
+
custom_nodes/ComfyUI_LayerStyle/image/channel_shake_example.jpg filter=lfs diff=lfs merge=lfs -text
|
434 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_adapter_example.jpg filter=lfs diff=lfs merge=lfs -text
|
435 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_balance_example.jpg filter=lfs diff=lfs merge=lfs -text
|
436 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_image_example.jpg filter=lfs diff=lfs merge=lfs -text
|
437 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_of_shadow_and_highlight_example.jpg filter=lfs diff=lfs merge=lfs -text
|
438 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_of_shadow_and_highlight_node.jpg filter=lfs diff=lfs merge=lfs -text
|
439 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_overlay_example.jpg filter=lfs diff=lfs merge=lfs -text
|
440 |
+
custom_nodes/ComfyUI_LayerStyle/image/color_temperature_example.jpg filter=lfs diff=lfs merge=lfs -text
|
441 |
+
custom_nodes/ComfyUI_LayerStyle/image/colormap_result.jpg filter=lfs diff=lfs merge=lfs -text
|
442 |
+
custom_nodes/ComfyUI_LayerStyle/image/corp_by_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
443 |
+
custom_nodes/ComfyUI_LayerStyle/image/corp_by_mask_node.jpg filter=lfs diff=lfs merge=lfs -text
|
444 |
+
custom_nodes/ComfyUI_LayerStyle/image/create_gradient_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
445 |
+
custom_nodes/ComfyUI_LayerStyle/image/create_gradient_mask_example2.jpg filter=lfs diff=lfs merge=lfs -text
|
446 |
+
custom_nodes/ComfyUI_LayerStyle/image/data_nodes_example.jpg filter=lfs diff=lfs merge=lfs -text
|
447 |
+
custom_nodes/ComfyUI_LayerStyle/image/draw_bbox_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
448 |
+
custom_nodes/ComfyUI_LayerStyle/image/drop_shadow_example.jpg filter=lfs diff=lfs merge=lfs -text
|
449 |
+
custom_nodes/ComfyUI_LayerStyle/image/evf_sam_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
450 |
+
custom_nodes/ComfyUI_LayerStyle/image/evf_sam_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
451 |
+
custom_nodes/ComfyUI_LayerStyle/image/exposure_example.jpg filter=lfs diff=lfs merge=lfs -text
|
452 |
+
custom_nodes/ComfyUI_LayerStyle/image/extend_canvas_example.jpg filter=lfs diff=lfs merge=lfs -text
|
453 |
+
custom_nodes/ComfyUI_LayerStyle/image/extend_canvas_node.jpg filter=lfs diff=lfs merge=lfs -text
|
454 |
+
custom_nodes/ComfyUI_LayerStyle/image/film_example.jpg filter=lfs diff=lfs merge=lfs -text
|
455 |
+
custom_nodes/ComfyUI_LayerStyle/image/film_node.jpg filter=lfs diff=lfs merge=lfs -text
|
456 |
+
custom_nodes/ComfyUI_LayerStyle/image/florence2_image2prompt_example.jpg filter=lfs diff=lfs merge=lfs -text
|
457 |
+
custom_nodes/ComfyUI_LayerStyle/image/florence2_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
458 |
+
custom_nodes/ComfyUI_LayerStyle/image/gaussian_blur_example.jpg filter=lfs diff=lfs merge=lfs -text
|
459 |
+
custom_nodes/ComfyUI_LayerStyle/image/get_color_tone_example.jpg filter=lfs diff=lfs merge=lfs -text
|
460 |
+
custom_nodes/ComfyUI_LayerStyle/image/get_color_tone_v2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
461 |
+
custom_nodes/ComfyUI_LayerStyle/image/get_main_color_and_color_name_example.jpg filter=lfs diff=lfs merge=lfs -text
|
462 |
+
custom_nodes/ComfyUI_LayerStyle/image/get_main_colors_example.jpg filter=lfs diff=lfs merge=lfs -text
|
463 |
+
custom_nodes/ComfyUI_LayerStyle/image/gradient_image_example.jpg filter=lfs diff=lfs merge=lfs -text
|
464 |
+
custom_nodes/ComfyUI_LayerStyle/image/gradient_overlay_example.jpg filter=lfs diff=lfs merge=lfs -text
|
465 |
+
custom_nodes/ComfyUI_LayerStyle/image/hdr_effects_example.jpg filter=lfs diff=lfs merge=lfs -text
|
466 |
+
custom_nodes/ComfyUI_LayerStyle/image/hl_frequency_detail_restore_example.jpg filter=lfs diff=lfs merge=lfs -text
|
467 |
+
custom_nodes/ComfyUI_LayerStyle/image/human_parts_node.jpg filter=lfs diff=lfs merge=lfs -text
|
468 |
+
custom_nodes/ComfyUI_LayerStyle/image/human_parts_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
469 |
+
custom_nodes/ComfyUI_LayerStyle/image/if_example.jpg filter=lfs diff=lfs merge=lfs -text
|
470 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_auto_crop_example.jpg filter=lfs diff=lfs merge=lfs -text
|
471 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_auto_crop_node.jpg filter=lfs diff=lfs merge=lfs -text
|
472 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_auto_crop_v2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
473 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_auto_crop_v3_node.jpg filter=lfs diff=lfs merge=lfs -text
|
474 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_blend_advance_example.jpg filter=lfs diff=lfs merge=lfs -text
|
475 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_blend_advance_node.jpg filter=lfs diff=lfs merge=lfs -text
|
476 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_blend_example.jpg filter=lfs diff=lfs merge=lfs -text
|
477 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_channel_merge_example.jpg filter=lfs diff=lfs merge=lfs -text
|
478 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_channel_split_example.jpg filter=lfs diff=lfs merge=lfs -text
|
479 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_hub_example.jpg filter=lfs diff=lfs merge=lfs -text
|
480 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_hub_node.jpg filter=lfs diff=lfs merge=lfs -text
|
481 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_mask_scale_as_example.jpg filter=lfs diff=lfs merge=lfs -text
|
482 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_reel_composit_node.jpg filter=lfs diff=lfs merge=lfs -text
|
483 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_reel_example.jpg filter=lfs diff=lfs merge=lfs -text
|
484 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_remove_alpha_example.jpg filter=lfs diff=lfs merge=lfs -text
|
485 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_reward_filter_example.jpg filter=lfs diff=lfs merge=lfs -text
|
486 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_scale_by_aspect_ratio_example.jpg filter=lfs diff=lfs merge=lfs -text
|
487 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_scale_restore_example.jpg filter=lfs diff=lfs merge=lfs -text
|
488 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_shift_example.jpg filter=lfs diff=lfs merge=lfs -text
|
489 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_shift_node.jpg filter=lfs diff=lfs merge=lfs -text
|
490 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_tagger_save_example.jpg filter=lfs diff=lfs merge=lfs -text
|
491 |
+
custom_nodes/ComfyUI_LayerStyle/image/image_to_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
492 |
+
custom_nodes/ComfyUI_LayerStyle/image/inner_glow_example.jpg filter=lfs diff=lfs merge=lfs -text
|
493 |
+
custom_nodes/ComfyUI_LayerStyle/image/inner_shadow_example.jpg filter=lfs diff=lfs merge=lfs -text
|
494 |
+
custom_nodes/ComfyUI_LayerStyle/image/joycaption2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
495 |
+
custom_nodes/ComfyUI_LayerStyle/image/joycaption2_extra_options_node.jpg filter=lfs diff=lfs merge=lfs -text
|
496 |
+
custom_nodes/ComfyUI_LayerStyle/image/joycaption2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
497 |
+
custom_nodes/ComfyUI_LayerStyle/image/lama_example.jpg filter=lfs diff=lfs merge=lfs -text
|
498 |
+
custom_nodes/ComfyUI_LayerStyle/image/layer_image_transform_example.jpg filter=lfs diff=lfs merge=lfs -text
|
499 |
+
custom_nodes/ComfyUI_LayerStyle/image/layer_image_transform_node.jpg filter=lfs diff=lfs merge=lfs -text
|
500 |
+
custom_nodes/ComfyUI_LayerStyle/image/layer_mask_transform_node.jpg filter=lfs diff=lfs merge=lfs -text
|
501 |
+
custom_nodes/ComfyUI_LayerStyle/image/layercolor_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
502 |
+
custom_nodes/ComfyUI_LayerStyle/image/layercolor_title.jpg filter=lfs diff=lfs merge=lfs -text
|
503 |
+
custom_nodes/ComfyUI_LayerStyle/image/layerfilter_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
504 |
+
custom_nodes/ComfyUI_LayerStyle/image/layermask_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
505 |
+
custom_nodes/ComfyUI_LayerStyle/image/layerstyle_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
506 |
+
custom_nodes/ComfyUI_LayerStyle/image/layerstyle_title.jpg filter=lfs diff=lfs merge=lfs -text
|
507 |
+
custom_nodes/ComfyUI_LayerStyle/image/layerutility_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
508 |
+
custom_nodes/ComfyUI_LayerStyle/image/levels_example.jpg filter=lfs diff=lfs merge=lfs -text
|
509 |
+
custom_nodes/ComfyUI_LayerStyle/image/light_leak_example.jpg filter=lfs diff=lfs merge=lfs -text
|
510 |
+
custom_nodes/ComfyUI_LayerStyle/image/llama_vision_example.jpg filter=lfs diff=lfs merge=lfs -text
|
511 |
+
custom_nodes/ComfyUI_LayerStyle/image/llama_vision_node.jpg filter=lfs diff=lfs merge=lfs -text
|
512 |
+
custom_nodes/ComfyUI_LayerStyle/image/load_image_example.jpg filter=lfs diff=lfs merge=lfs -text
|
513 |
+
custom_nodes/ComfyUI_LayerStyle/image/load_image_example_psd_file.jpg filter=lfs diff=lfs merge=lfs -text
|
514 |
+
custom_nodes/ComfyUI_LayerStyle/image/lut_apply_example.jpg filter=lfs diff=lfs merge=lfs -text
|
515 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_box_detect_example.jpg filter=lfs diff=lfs merge=lfs -text
|
516 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_by_color_example.jpg filter=lfs diff=lfs merge=lfs -text
|
517 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_by_different_example.jpg filter=lfs diff=lfs merge=lfs -text
|
518 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_by_different_node.jpg filter=lfs diff=lfs merge=lfs -text
|
519 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_compare.jpg filter=lfs diff=lfs merge=lfs -text
|
520 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_shrink_example.jpg filter=lfs diff=lfs merge=lfs -text
|
521 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_shrink_node.jpg filter=lfs diff=lfs merge=lfs -text
|
522 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_ultra_detail_example.jpg filter=lfs diff=lfs merge=lfs -text
|
523 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_ultra_detail_node.jpg filter=lfs diff=lfs merge=lfs -text
|
524 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_edge_ultra_detail_v2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
525 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_gradient_example.jpg filter=lfs diff=lfs merge=lfs -text
|
526 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_grow_example.jpg filter=lfs diff=lfs merge=lfs -text
|
527 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_invert.jpg filter=lfs diff=lfs merge=lfs -text
|
528 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_motion_blur_example.jpg filter=lfs diff=lfs merge=lfs -text
|
529 |
+
custom_nodes/ComfyUI_LayerStyle/image/mask_stroke_example.jpg filter=lfs diff=lfs merge=lfs -text
|
530 |
+
custom_nodes/ComfyUI_LayerStyle/image/menu_layer_utility.jpg filter=lfs diff=lfs merge=lfs -text
|
531 |
+
custom_nodes/ComfyUI_LayerStyle/image/object_detector_yolo_world_node.jpg filter=lfs diff=lfs merge=lfs -text
|
532 |
+
custom_nodes/ComfyUI_LayerStyle/image/outer_glow_example.jpg filter=lfs diff=lfs merge=lfs -text
|
533 |
+
custom_nodes/ComfyUI_LayerStyle/image/person_mask_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
534 |
+
custom_nodes/ComfyUI_LayerStyle/image/person_mask_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
535 |
+
custom_nodes/ComfyUI_LayerStyle/image/phi_prompt_example.jpg filter=lfs diff=lfs merge=lfs -text
|
536 |
+
custom_nodes/ComfyUI_LayerStyle/image/phi_prompt_node.jpg filter=lfs diff=lfs merge=lfs -text
|
537 |
+
custom_nodes/ComfyUI_LayerStyle/image/pixel_spread_example.jpg filter=lfs diff=lfs merge=lfs -text
|
538 |
+
custom_nodes/ComfyUI_LayerStyle/image/prompt_embellish_example.jpg filter=lfs diff=lfs merge=lfs -text
|
539 |
+
custom_nodes/ComfyUI_LayerStyle/image/prompt_tagger_example.jpg filter=lfs diff=lfs merge=lfs -text
|
540 |
+
custom_nodes/ComfyUI_LayerStyle/image/prompt_tagger_example1.jpg filter=lfs diff=lfs merge=lfs -text
|
541 |
+
custom_nodes/ComfyUI_LayerStyle/image/purge_vram_example.jpg filter=lfs diff=lfs merge=lfs -text
|
542 |
+
custom_nodes/ComfyUI_LayerStyle/image/queue_stop_example.jpg filter=lfs diff=lfs merge=lfs -text
|
543 |
+
custom_nodes/ComfyUI_LayerStyle/image/qwen_image2prompt_example.jpg filter=lfs diff=lfs merge=lfs -text
|
544 |
+
custom_nodes/ComfyUI_LayerStyle/image/random_generator_example.jpg filter=lfs diff=lfs merge=lfs -text
|
545 |
+
custom_nodes/ComfyUI_LayerStyle/image/random_generator_node.jpg filter=lfs diff=lfs merge=lfs -text
|
546 |
+
custom_nodes/ComfyUI_LayerStyle/image/random_generator_v2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
547 |
+
custom_nodes/ComfyUI_LayerStyle/image/rembg_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
548 |
+
custom_nodes/ComfyUI_LayerStyle/image/sam2_example.jpg filter=lfs diff=lfs merge=lfs -text
|
549 |
+
custom_nodes/ComfyUI_LayerStyle/image/sam2_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
550 |
+
custom_nodes/ComfyUI_LayerStyle/image/sam2_video_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
551 |
+
custom_nodes/ComfyUI_LayerStyle/image/saveimage_plus_example.jpg filter=lfs diff=lfs merge=lfs -text
|
552 |
+
custom_nodes/ComfyUI_LayerStyle/image/sd3_negative_conditioning_example.jpg filter=lfs diff=lfs merge=lfs -text
|
553 |
+
custom_nodes/ComfyUI_LayerStyle/image/sd3_negative_conditioning_node_note.jpg filter=lfs diff=lfs merge=lfs -text
|
554 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_clothes_example.jpg filter=lfs diff=lfs merge=lfs -text
|
555 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_clothes_pipeline_node.jpg filter=lfs diff=lfs merge=lfs -text
|
556 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_fashion_example.jpg filter=lfs diff=lfs merge=lfs -text
|
557 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_fashion_pipeline_node.jpg filter=lfs diff=lfs merge=lfs -text
|
558 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
559 |
+
custom_nodes/ComfyUI_LayerStyle/image/segformer_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
560 |
+
custom_nodes/ComfyUI_LayerStyle/image/segment_anything_ultra_compare.jpg filter=lfs diff=lfs merge=lfs -text
|
561 |
+
custom_nodes/ComfyUI_LayerStyle/image/segment_anything_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
562 |
+
custom_nodes/ComfyUI_LayerStyle/image/segment_anything_ultra_node.jpg filter=lfs diff=lfs merge=lfs -text
|
563 |
+
custom_nodes/ComfyUI_LayerStyle/image/segment_anything_ultra_v2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
564 |
+
custom_nodes/ComfyUI_LayerStyle/image/shadow_and_highlight_mask_example.jpg filter=lfs diff=lfs merge=lfs -text
|
565 |
+
custom_nodes/ComfyUI_LayerStyle/image/sharp_and_soft_example.jpg filter=lfs diff=lfs merge=lfs -text
|
566 |
+
custom_nodes/ComfyUI_LayerStyle/image/simple_text_image_example.jpg filter=lfs diff=lfs merge=lfs -text
|
567 |
+
custom_nodes/ComfyUI_LayerStyle/image/simple_text_image_node.jpg filter=lfs diff=lfs merge=lfs -text
|
568 |
+
custom_nodes/ComfyUI_LayerStyle/image/skin_beauty_example.jpg filter=lfs diff=lfs merge=lfs -text
|
569 |
+
custom_nodes/ComfyUI_LayerStyle/image/soft_light_example.jpg filter=lfs diff=lfs merge=lfs -text
|
570 |
+
custom_nodes/ComfyUI_LayerStyle/image/string_condition_example.jpg filter=lfs diff=lfs merge=lfs -text
|
571 |
+
custom_nodes/ComfyUI_LayerStyle/image/stroke_example.jpg filter=lfs diff=lfs merge=lfs -text
|
572 |
+
custom_nodes/ComfyUI_LayerStyle/image/switch_case_example.jpg filter=lfs diff=lfs merge=lfs -text
|
573 |
+
custom_nodes/ComfyUI_LayerStyle/image/text_image_example.jpg filter=lfs diff=lfs merge=lfs -text
|
574 |
+
custom_nodes/ComfyUI_LayerStyle/image/text_image_node.jpg filter=lfs diff=lfs merge=lfs -text
|
575 |
+
custom_nodes/ComfyUI_LayerStyle/image/text_image_v2_node.jpg filter=lfs diff=lfs merge=lfs -text
|
576 |
+
custom_nodes/ComfyUI_LayerStyle/image/text_join_example.jpg filter=lfs diff=lfs merge=lfs -text
|
577 |
+
custom_nodes/ComfyUI_LayerStyle/image/title.jpg filter=lfs diff=lfs merge=lfs -text
|
578 |
+
custom_nodes/ComfyUI_LayerStyle/image/transparent_background_ultra_example.jpg filter=lfs diff=lfs merge=lfs -text
|
579 |
+
custom_nodes/ComfyUI_LayerStyle/image/ultra_nodes.jpg filter=lfs diff=lfs merge=lfs -text
|
580 |
+
custom_nodes/ComfyUI_LayerStyle/image/ultra_v2_nodes_example.jpg filter=lfs diff=lfs merge=lfs -text
|
581 |
+
custom_nodes/ComfyUI_LayerStyle/image/userprompt_generator_txt2img_with_reference_node.jpg filter=lfs diff=lfs merge=lfs -text
|
582 |
+
custom_nodes/ComfyUI_LayerStyle/image/vqa_prompt_example.jpg filter=lfs diff=lfs merge=lfs -text
|
583 |
+
custom_nodes/ComfyUI_LayerStyle/image/vqa_prompt_node.jpg filter=lfs diff=lfs merge=lfs -text
|
584 |
+
custom_nodes/ComfyUI_LayerStyle/image/water_color_example.jpg filter=lfs diff=lfs merge=lfs -text
|
585 |
+
custom_nodes/ComfyUI_LayerStyle/image/watermark_example.jpg filter=lfs diff=lfs merge=lfs -text
|
586 |
+
custom_nodes/ComfyUI_LayerStyle/image/xy2percent_example.jpg filter=lfs diff=lfs merge=lfs -text
|
587 |
+
custom_nodes/ComfyUI_LayerStyle/image/yolov8_detect_example.jpg filter=lfs diff=lfs merge=lfs -text
|
588 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Black-jiII8dog.woff2 filter=lfs diff=lfs merge=lfs -text
|
589 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-BlackItalic-1413vuen.woff2 filter=lfs diff=lfs merge=lfs -text
|
590 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Bold-srYz_-1B.woff2 filter=lfs diff=lfs merge=lfs -text
|
591 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-BoldItalic-dE_gZyur.woff2 filter=lfs diff=lfs merge=lfs -text
|
592 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-ExtraBold-TduDdwUu.woff2 filter=lfs diff=lfs merge=lfs -text
|
593 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-ExtraBoldItalic-BJafRE5I.woff2 filter=lfs diff=lfs merge=lfs -text
|
594 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-ExtraLight-w5HAp5iF.woff2 filter=lfs diff=lfs merge=lfs -text
|
595 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-ExtraLightItalic-ZptecSuc.woff2 filter=lfs diff=lfs merge=lfs -text
|
596 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Italic-f6M78thn.woff2 filter=lfs diff=lfs merge=lfs -text
|
597 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Light-DFhX0qo-.woff2 filter=lfs diff=lfs merge=lfs -text
|
598 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-LightItalic-fu56_DRc.woff2 filter=lfs diff=lfs merge=lfs -text
|
599 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Medium-dDRaJ8tM.woff2 filter=lfs diff=lfs merge=lfs -text
|
600 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-MediumItalic-zr3roggP.woff2 filter=lfs diff=lfs merge=lfs -text
|
601 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Regular-dEFHw1tF.woff2 filter=lfs diff=lfs merge=lfs -text
|
602 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-SemiBold-PyS8DO2L.woff2 filter=lfs diff=lfs merge=lfs -text
|
603 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-SemiBoldItalic-uIDb7hsH.woff2 filter=lfs diff=lfs merge=lfs -text
|
604 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-Thin-eKObIkJC.woff2 filter=lfs diff=lfs merge=lfs -text
|
605 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/Inter-ThinItalic-L6uBn3RP.woff2 filter=lfs diff=lfs merge=lfs -text
|
606 |
+
custom_nodes/ComfyUI_LayerStyle/py/iopaint/web_app/assets/kofi_button_black-XI_Dr2zg.png filter=lfs diff=lfs merge=lfs -text
|
607 |
+
custom_nodes/ComfyUI_LayerStyle/whl/hydra_core-1.3.2-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
608 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1280x720_seven_person.jpg filter=lfs diff=lfs merge=lfs -text
|
609 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1280x720car.jpg filter=lfs diff=lfs merge=lfs -text
|
610 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1280x768_city.png filter=lfs diff=lfs merge=lfs -text
|
611 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1344x768_beach.png filter=lfs diff=lfs merge=lfs -text
|
612 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1344x768_girl2.png filter=lfs diff=lfs merge=lfs -text
|
613 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1344x768_hair.png filter=lfs diff=lfs merge=lfs -text
|
614 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1344x768_redcar.png filter=lfs diff=lfs merge=lfs -text
|
615 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/1920x1080table.png filter=lfs diff=lfs merge=lfs -text
|
616 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/3840x2160car.jpg filter=lfs diff=lfs merge=lfs -text
|
617 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/512x512.png filter=lfs diff=lfs merge=lfs -text
|
618 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/768x1344_beach.png filter=lfs diff=lfs merge=lfs -text
|
619 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/768x1344_dress.png filter=lfs diff=lfs merge=lfs -text
|
620 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/fox_512x512.png filter=lfs diff=lfs merge=lfs -text
|
621 |
+
custom_nodes/ComfyUI_LayerStyle/workflow/girl_dino_1024.png filter=lfs diff=lfs merge=lfs -text
|
622 |
+
custom_nodes/ComfyUI_Mira/examples/example_SN74HC86.png filter=lfs diff=lfs merge=lfs -text
|
623 |
+
custom_nodes/ComfyUI_Mira/examples/example_color_transfer.png filter=lfs diff=lfs merge=lfs -text
|
624 |
+
custom_nodes/ComfyUI_Mira/examples/example_createmaskwithcavans.png filter=lfs diff=lfs merge=lfs -text
|
625 |
+
custom_nodes/ComfyUI_Mira/examples/example_createnestedpng.png filter=lfs diff=lfs merge=lfs -text
|
626 |
+
custom_nodes/ComfyUI_Mira/examples/example_createnestedpng_ub.png filter=lfs diff=lfs merge=lfs -text
|
627 |
+
custom_nodes/ComfyUI_Mira/examples/example_createnestedpng_ubr_b16.png filter=lfs diff=lfs merge=lfs -text
|
628 |
+
custom_nodes/ComfyUI_Mira/examples/example_evenoroddlist.png filter=lfs diff=lfs merge=lfs -text
|
629 |
+
custom_nodes/ComfyUI_Mira/examples/example_function_select_auto.png filter=lfs diff=lfs merge=lfs -text
|
630 |
+
custom_nodes/ComfyUI_Mira/examples/example_image_adjust.png filter=lfs diff=lfs merge=lfs -text
|
631 |
+
custom_nodes/ComfyUI_Mira/examples/example_mask2mask_blur.png filter=lfs diff=lfs merge=lfs -text
|
632 |
+
custom_nodes/ComfyUI_Mira/examples/example_mask2mask_solid.png filter=lfs diff=lfs merge=lfs -text
|
633 |
+
custom_nodes/ComfyUI_Mira/examples/example_mask2rgb.png filter=lfs diff=lfs merge=lfs -text
|
634 |
+
custom_nodes/ComfyUI_Mira/examples/example_mask2rgb_12321_f.png filter=lfs diff=lfs merge=lfs -text
|
635 |
+
custom_nodes/ComfyUI_Mira/examples/example_mask2rgb_12321_t.png filter=lfs diff=lfs merge=lfs -text
|
636 |
+
custom_nodes/ComfyUI_Mira/examples/example_pngrect2masks.png filter=lfs diff=lfs merge=lfs -text
|
637 |
+
custom_nodes/ComfyUI_Mira/examples/example_pngrect2masks_overlap.png filter=lfs diff=lfs merge=lfs -text
|
638 |
+
custom_nodes/ComfyUI_Mira/examples/example_random_layouts.png filter=lfs diff=lfs merge=lfs -text
|
639 |
+
custom_nodes/ComfyUI_Mira/examples/example_random_nested_layouts.png filter=lfs diff=lfs merge=lfs -text
|
640 |
+
custom_nodes/ComfyUI_Mira/examples/example_subtraction.png filter=lfs diff=lfs merge=lfs -text
|
641 |
+
custom_nodes/ComfyUI_Mira/examples/example_text_loop_combiner_and_wildcard_seprator.png filter=lfs diff=lfs merge=lfs -text
|
642 |
+
custom_nodes/ComfyUI_Mira/examples/example_text_switcher.png filter=lfs diff=lfs merge=lfs -text
|
643 |
+
custom_nodes/ComfyUI_Mira/examples/example_watermark_removal_mask_after.png filter=lfs diff=lfs merge=lfs -text
|
644 |
+
custom_nodes/ComfyUI_Mira/examples/example_watermark_removal_mask_before.png filter=lfs diff=lfs merge=lfs -text
|
645 |
+
custom_nodes/ComfyUI_Mira/examples/overview01.png filter=lfs diff=lfs merge=lfs -text
|
646 |
+
custom_nodes/ComfyUI_Noise/examples/example_unsample.png filter=lfs diff=lfs merge=lfs -text
|
647 |
+
custom_nodes/ComfyUI_Noise/examples/example_variation.png filter=lfs diff=lfs merge=lfs -text
|
648 |
+
custom_nodes/ComfyUI_SVFR/assert/lq/lq2.mp4 filter=lfs diff=lfs merge=lfs -text
|
649 |
+
custom_nodes/ComfyUI_SVFR/assert/lq/lq3.mp4 filter=lfs diff=lfs merge=lfs -text
|
650 |
+
custom_nodes/ComfyUI_SVFR/assert/method.png filter=lfs diff=lfs merge=lfs -text
|
651 |
+
custom_nodes/ComfyUI_SVFR/exampleA.png filter=lfs diff=lfs merge=lfs -text
|
652 |
+
custom_nodes/ComfyUI_Sonic/example.png filter=lfs diff=lfs merge=lfs -text
|
653 |
+
custom_nodes/ComfyUI_Sonic/exampleA.png filter=lfs diff=lfs merge=lfs -text
|
654 |
+
custom_nodes/ComfyUI_Sonic/examples/image/anime1.png filter=lfs diff=lfs merge=lfs -text
|
655 |
+
custom_nodes/ComfyUI_Sonic/examples/image/female_diaosu.png filter=lfs diff=lfs merge=lfs -text
|
656 |
+
custom_nodes/ComfyUI_Sonic/examples/image/hair.png filter=lfs diff=lfs merge=lfs -text
|
657 |
+
custom_nodes/ComfyUI_Sonic/examples/wav/sing_female_10s.wav filter=lfs diff=lfs merge=lfs -text
|
658 |
+
custom_nodes/ComfyUI_Sonic/examples/wav/sing_female_rap_10s.MP3 filter=lfs diff=lfs merge=lfs -text
|
659 |
+
custom_nodes/ComfyUI_Sonic/examples/wav/talk_female_english_10s.MP3 filter=lfs diff=lfs merge=lfs -text
|
660 |
+
custom_nodes/ComfyUI_Sonic/examples/wav/talk_male_law_10s.wav filter=lfs diff=lfs merge=lfs -text
|
661 |
+
custom_nodes/ComfyUi_NNLatentUpscale/examples/sdxl_kanagawa_512x512.png filter=lfs diff=lfs merge=lfs -text
|
662 |
+
custom_nodes/ComfyUi_NNLatentUpscale/examples/upscale.jpg filter=lfs diff=lfs merge=lfs -text
|
663 |
+
custom_nodes/Comfyui-In-Context-Lora-Utils/image/example_1.png filter=lfs diff=lfs merge=lfs -text
|
664 |
+
custom_nodes/Comfyui-In-Context-Lora-Utils/image/example_2.png filter=lfs diff=lfs merge=lfs -text
|
665 |
+
custom_nodes/Comfyui-In-Context-Lora-Utils/image/v3_object_replacement.png filter=lfs diff=lfs merge=lfs -text
|
666 |
+
custom_nodes/Comfyui-In-Context-Lora-Utils/image/v3_target_position.png filter=lfs diff=lfs merge=lfs -text
|
667 |
+
custom_nodes/Comfyui-In-Context-Lora-Utils/image/v3_try_on.png filter=lfs diff=lfs merge=lfs -text
|
668 |
+
custom_nodes/Comfyui_TTP_Toolset/examples/Flux_8Mega_Pixel_image_upscale_process.png filter=lfs diff=lfs merge=lfs -text
|
669 |
+
custom_nodes/Comfyui_TTP_Toolset/examples/Flux_8Mega_Pixel_image_upscale_process_pixel.png filter=lfs diff=lfs merge=lfs -text
|
670 |
+
custom_nodes/Comfyui_TTP_Toolset/examples/Hunyuan_8Mega_Pixel_image_upscale_process_with_tile_cn.png filter=lfs diff=lfs merge=lfs -text
|
671 |
+
custom_nodes/OmniGen-ComfyUI/doc/ComfyUI_temp_mdplu_00001_.png filter=lfs diff=lfs merge=lfs -text
|
672 |
+
custom_nodes/OmniGen-ComfyUI/doc/ComfyUI_temp_pphmf_00001_.png filter=lfs diff=lfs merge=lfs -text
|
673 |
+
custom_nodes/OmniGen-ComfyUI/doc/zhang.png filter=lfs diff=lfs merge=lfs -text
|
674 |
+
custom_nodes/add_text_2_img/assets/img.png filter=lfs diff=lfs merge=lfs -text
|
675 |
+
custom_nodes/add_text_2_img/assets/img_1.png filter=lfs diff=lfs merge=lfs -text
|
676 |
+
custom_nodes/cg-use-everywhere/docs/ComfyUI_temp_zbfdv_00012_.png filter=lfs diff=lfs merge=lfs -text
|
677 |
+
custom_nodes/cg-use-everywhere/docs/UEQportrait.png filter=lfs diff=lfs merge=lfs -text
|
678 |
+
custom_nodes/cg-use-everywhere/docs/auto.gif filter=lfs diff=lfs merge=lfs -text
|
679 |
+
custom_nodes/cg-use-everywhere/docs/clashes.png filter=lfs diff=lfs merge=lfs -text
|
680 |
+
custom_nodes/cg-use-everywhere/docs/on.png filter=lfs diff=lfs merge=lfs -text
|
681 |
+
custom_nodes/cg-use-everywhere/docs/portrait.png filter=lfs diff=lfs merge=lfs -text
|
682 |
+
custom_nodes/cg-use-everywhere/docs/priority.gif filter=lfs diff=lfs merge=lfs -text
|
683 |
+
custom_nodes/cg-use-everywhere/docs/regex.png filter=lfs diff=lfs merge=lfs -text
|
684 |
+
custom_nodes/cg-use-everywhere/docs/run.png filter=lfs diff=lfs merge=lfs -text
|
685 |
+
custom_nodes/cg-use-everywhere/docs/sampler[[:space:]]and[[:space:]]sigma.png filter=lfs diff=lfs merge=lfs -text
|
686 |
+
custom_nodes/cg-use-everywhere/docs/separate.png filter=lfs diff=lfs merge=lfs -text
|
687 |
+
custom_nodes/cg-use-everywhere/docs/test-workflow-screenshot.png filter=lfs diff=lfs merge=lfs -text
|
688 |
+
custom_nodes/cg-use-everywhere/docs/test-workflow.png filter=lfs diff=lfs merge=lfs -text
|
689 |
+
custom_nodes/cg-use-everywhere/docs/workflow.png filter=lfs diff=lfs merge=lfs -text
|
690 |
+
custom_nodes/cg-use-everywhere/tests/compare.png filter=lfs diff=lfs merge=lfs -text
|
691 |
+
custom_nodes/cg-use-everywhere/tests/test.png filter=lfs diff=lfs merge=lfs -text
|
692 |
+
custom_nodes/cg-use-everywhere/tests/test2.png filter=lfs diff=lfs merge=lfs -text
|
693 |
+
custom_nodes/comfyui-inpaint-nodes/media/inpaint.png filter=lfs diff=lfs merge=lfs -text
|
694 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-blur-17.png filter=lfs diff=lfs merge=lfs -text
|
695 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-blur-65.png filter=lfs diff=lfs merge=lfs -text
|
696 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-input.png filter=lfs diff=lfs merge=lfs -text
|
697 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-lama.png filter=lfs diff=lfs merge=lfs -text
|
698 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-mat.png filter=lfs diff=lfs merge=lfs -text
|
699 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-navier-stokes.png filter=lfs diff=lfs merge=lfs -text
|
700 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-neutral.png filter=lfs diff=lfs merge=lfs -text
|
701 |
+
custom_nodes/comfyui-inpaint-nodes/media/preprocess-telea.png filter=lfs diff=lfs merge=lfs -text
|
702 |
+
custom_nodes/comfyui-job-iterator/job-iterator-example.png filter=lfs diff=lfs merge=lfs -text
|
703 |
+
custom_nodes/comfyui-lf/docs/images/BlurImages.png filter=lfs diff=lfs merge=lfs -text
|
704 |
+
custom_nodes/comfyui-lf/docs/images/CheckpointSelector.png filter=lfs diff=lfs merge=lfs -text
|
705 |
+
custom_nodes/comfyui-lf/docs/images/CivitAIMetadataSetup.png filter=lfs diff=lfs merge=lfs -text
|
706 |
+
custom_nodes/comfyui-lf/docs/images/ClarityEffect.png filter=lfs diff=lfs merge=lfs -text
|
707 |
+
custom_nodes/comfyui-lf/docs/images/CompareImages.png filter=lfs diff=lfs merge=lfs -text
|
708 |
+
custom_nodes/comfyui-lf/docs/images/ControlPanel.png filter=lfs diff=lfs merge=lfs -text
|
709 |
+
custom_nodes/comfyui-lf/docs/images/DisplayPrimitiveAsJSON.png filter=lfs diff=lfs merge=lfs -text
|
710 |
+
custom_nodes/comfyui-lf/docs/images/DisplayString.png filter=lfs diff=lfs merge=lfs -text
|
711 |
+
custom_nodes/comfyui-lf/docs/images/EmbeddingSelector.png filter=lfs diff=lfs merge=lfs -text
|
712 |
+
custom_nodes/comfyui-lf/docs/images/Extractor.png filter=lfs diff=lfs merge=lfs -text
|
713 |
+
custom_nodes/comfyui-lf/docs/images/ImageClassifier.png filter=lfs diff=lfs merge=lfs -text
|
714 |
+
custom_nodes/comfyui-lf/docs/images/ImageListFromJSON.png filter=lfs diff=lfs merge=lfs -text
|
715 |
+
custom_nodes/comfyui-lf/docs/images/KeywordToggleFromJSON.png filter=lfs diff=lfs merge=lfs -text
|
716 |
+
custom_nodes/comfyui-lf/docs/images/LFNodes.png filter=lfs diff=lfs merge=lfs -text
|
717 |
+
custom_nodes/comfyui-lf/docs/images/LLMMessenger.png filter=lfs diff=lfs merge=lfs -text
|
718 |
+
custom_nodes/comfyui-lf/docs/images/LoadFileOnce.png filter=lfs diff=lfs merge=lfs -text
|
719 |
+
custom_nodes/comfyui-lf/docs/images/LoadImages.png filter=lfs diff=lfs merge=lfs -text
|
720 |
+
custom_nodes/comfyui-lf/docs/images/LoadLoraTags.png filter=lfs diff=lfs merge=lfs -text
|
721 |
+
custom_nodes/comfyui-lf/docs/images/LoadMetadata.png filter=lfs diff=lfs merge=lfs -text
|
722 |
+
custom_nodes/comfyui-lf/docs/images/LoraAndEmbeddingSelector.png filter=lfs diff=lfs merge=lfs -text
|
723 |
+
custom_nodes/comfyui-lf/docs/images/LoraSelector.png filter=lfs diff=lfs merge=lfs -text
|
724 |
+
custom_nodes/comfyui-lf/docs/images/MathOperation.png filter=lfs diff=lfs merge=lfs -text
|
725 |
+
custom_nodes/comfyui-lf/docs/images/Notify.png filter=lfs diff=lfs merge=lfs -text
|
726 |
+
custom_nodes/comfyui-lf/docs/images/RandomBoolean.png filter=lfs diff=lfs merge=lfs -text
|
727 |
+
custom_nodes/comfyui-lf/docs/images/ResizeImageToDimension.png filter=lfs diff=lfs merge=lfs -text
|
728 |
+
custom_nodes/comfyui-lf/docs/images/ResolutionSwitcher.png filter=lfs diff=lfs merge=lfs -text
|
729 |
+
custom_nodes/comfyui-lf/docs/images/SaveImageForCivitAI.png filter=lfs diff=lfs merge=lfs -text
|
730 |
+
custom_nodes/comfyui-lf/docs/images/Screenshot[[:space:]]2024-11-01[[:space:]]195600.png filter=lfs diff=lfs merge=lfs -text
|
731 |
+
custom_nodes/comfyui-lf/docs/images/Screenshot[[:space:]]2024-11-01[[:space:]]204059.png filter=lfs diff=lfs merge=lfs -text
|
732 |
+
custom_nodes/comfyui-lf/docs/images/UpdateUsageStatistics.png filter=lfs diff=lfs merge=lfs -text
|
733 |
+
custom_nodes/comfyui-lf/docs/images/UrandomSeedGenerator.png filter=lfs diff=lfs merge=lfs -text
|
734 |
+
custom_nodes/comfyui-lf/docs/images/UsageStatistics.png filter=lfs diff=lfs merge=lfs -text
|
735 |
+
custom_nodes/comfyui-lf/web/deploy/assets/fonts/Inter-Regular.woff filter=lfs diff=lfs merge=lfs -text
|
736 |
+
custom_nodes/comfyui-lf/web/deploy/assets/fonts/Inter-Regular.woff2 filter=lfs diff=lfs merge=lfs -text
|
737 |
+
custom_nodes/comfyui-lf/web/deploy/assets/fonts/Rajdhani-Regular.woff filter=lfs diff=lfs merge=lfs -text
|
738 |
+
custom_nodes/comfyui-lf/web/deploy/assets/fonts/Ubuntu-Regular.woff filter=lfs diff=lfs merge=lfs -text
|
739 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/avatar_freya.png filter=lfs diff=lfs merge=lfs -text
|
740 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/avatar_freya_2.png filter=lfs diff=lfs merge=lfs -text
|
741 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/avatar_thor.png filter=lfs diff=lfs merge=lfs -text
|
742 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/avatar_thor_2.png filter=lfs diff=lfs merge=lfs -text
|
743 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/location_armory.png filter=lfs diff=lfs merge=lfs -text
|
744 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/location_asgard_halls.png filter=lfs diff=lfs merge=lfs -text
|
745 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/location_bifrost_bridge.png filter=lfs diff=lfs merge=lfs -text
|
746 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/location_forest.png filter=lfs diff=lfs merge=lfs -text
|
747 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/location_lake.png filter=lfs diff=lfs merge=lfs -text
|
748 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/outfit_armor.png filter=lfs diff=lfs merge=lfs -text
|
749 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/outfit_armor_2.png filter=lfs diff=lfs merge=lfs -text
|
750 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/outfit_armor_3.png filter=lfs diff=lfs merge=lfs -text
|
751 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/outfit_dress.png filter=lfs diff=lfs merge=lfs -text
|
752 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/style_anime.png filter=lfs diff=lfs merge=lfs -text
|
753 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/style_comic.png filter=lfs diff=lfs merge=lfs -text
|
754 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/style_painting.png filter=lfs diff=lfs merge=lfs -text
|
755 |
+
custom_nodes/comfyui-lf/web/deploy/assets/media/style_photorealistic.png filter=lfs diff=lfs merge=lfs -text
|
756 |
+
custom_nodes/comfyui-lf/workflows/Compare[[:space:]]images.png filter=lfs diff=lfs merge=lfs -text
|
757 |
+
custom_nodes/comfyui-lf/workflows/Flux[[:space:]]character[[:space:]]chat.png filter=lfs diff=lfs merge=lfs -text
|
758 |
+
custom_nodes/comfyui-lf/workflows/Image[[:space:]]2[[:space:]]Image[[:space:]](ControlNet).png filter=lfs diff=lfs merge=lfs -text
|
759 |
+
custom_nodes/comfyui-lf/workflows/Image[[:space:]]2[[:space:]]Image[[:space:]](refine).png filter=lfs diff=lfs merge=lfs -text
|
760 |
+
custom_nodes/comfyui-lf/workflows/LLM[[:space:]]Chat.png filter=lfs diff=lfs merge=lfs -text
|
761 |
+
custom_nodes/comfyui-lf/workflows/LoRA[[:space:]]tester.png filter=lfs diff=lfs merge=lfs -text
|
762 |
+
custom_nodes/comfyui-lf/workflows/Markdown[[:space:]]documentation.png filter=lfs diff=lfs merge=lfs -text
|
763 |
+
custom_nodes/comfyui-lf/workflows/Multiple[[:space:]]image[[:space:]]resize[[:space:]]for[[:space:]]web[[:space:]]+[[:space:]]blurred[[:space:]]placeholder.png filter=lfs diff=lfs merge=lfs -text
|
764 |
+
custom_nodes/comfyui-lf/workflows/ci_5-2-2.png filter=lfs diff=lfs merge=lfs -text
|
765 |
+
custom_nodes/comfyui-portrait-master/screenshot/legacy/portrait-master-pose-library-2.2b.jpg filter=lfs diff=lfs merge=lfs -text
|
766 |
+
custom_nodes/comfyui-portrait-master/screenshot/legacy/portrait-master-workflow-2.3-SD1.5.png filter=lfs diff=lfs merge=lfs -text
|
767 |
+
custom_nodes/comfyui-portrait-master/screenshot/legacy/portrait-master-workflow-2.3.png filter=lfs diff=lfs merge=lfs -text
|
768 |
+
custom_nodes/comfyui-portrait-master/screenshot/overview.png filter=lfs diff=lfs merge=lfs -text
|
769 |
+
custom_nodes/comfyui_LLM_party/img/AI办公室.png filter=lfs diff=lfs merge=lfs -text
|
770 |
+
custom_nodes/comfyui_LLM_party/img/GPT4o.png filter=lfs diff=lfs merge=lfs -text
|
771 |
+
custom_nodes/comfyui_LLM_party/img/OMOST.png filter=lfs diff=lfs merge=lfs -text
|
772 |
+
custom_nodes/comfyui_LLM_party/img/Q群.jpg filter=lfs diff=lfs merge=lfs -text
|
773 |
+
custom_nodes/comfyui_LLM_party/img/graphRAG修改.png filter=lfs diff=lfs merge=lfs -text
|
774 |
+
custom_nodes/comfyui_LLM_party/img/graphRAG查询.png filter=lfs diff=lfs merge=lfs -text
|
775 |
+
custom_nodes/comfyui_LLM_party/img/wechat.jpg filter=lfs diff=lfs merge=lfs -text
|
776 |
+
custom_nodes/comfyui_LLM_party/img/workflowtool.png filter=lfs diff=lfs merge=lfs -text
|
777 |
+
custom_nodes/comfyui_LLM_party/img/zhifubao.jpg filter=lfs diff=lfs merge=lfs -text
|
778 |
+
custom_nodes/comfyui_LLM_party/img/互动小说游戏1.png filter=lfs diff=lfs merge=lfs -text
|
779 |
+
custom_nodes/comfyui_LLM_party/img/互动小说游戏2.png filter=lfs diff=lfs merge=lfs -text
|
780 |
+
custom_nodes/comfyui_LLM_party/img/分类器.png filter=lfs diff=lfs merge=lfs -text
|
781 |
+
custom_nodes/comfyui_LLM_party/img/图片识别.png filter=lfs diff=lfs merge=lfs -text
|
782 |
+
custom_nodes/comfyui_LLM_party/img/多工具调用.png filter=lfs diff=lfs merge=lfs -text
|
783 |
+
custom_nodes/comfyui_LLM_party/img/套娃.png filter=lfs diff=lfs merge=lfs -text
|
784 |
+
custom_nodes/comfyui_LLM_party/img/封面.png filter=lfs diff=lfs merge=lfs -text
|
785 |
+
custom_nodes/comfyui_LLM_party/img/智能助手.png filter=lfs diff=lfs merge=lfs -text
|
786 |
+
custom_nodes/comfyui_LLM_party/img/电车难题辩论赛.png filter=lfs diff=lfs merge=lfs -text
|
787 |
+
custom_nodes/comfyui_LLM_party/img/画画APP工作流.png filter=lfs diff=lfs merge=lfs -text
|
788 |
+
custom_nodes/comfyui_LLM_party/img/画画应用.png filter=lfs diff=lfs merge=lfs -text
|
789 |
+
custom_nodes/comfyui_LLM_party/img/调用ollama.png filter=lfs diff=lfs merge=lfs -text
|
790 |
+
custom_nodes/comfyui_LLM_party/party-plugin/libs/bg1.png filter=lfs diff=lfs merge=lfs -text
|
791 |
+
custom_nodes/comfyui_controlnet_aux/NotoSans-Regular.ttf filter=lfs diff=lfs merge=lfs -text
|
792 |
+
custom_nodes/comfyui_controlnet_aux/examples/CNAuxBanner.jpg filter=lfs diff=lfs merge=lfs -text
|
793 |
+
custom_nodes/comfyui_controlnet_aux/examples/ExecuteAll.png filter=lfs diff=lfs merge=lfs -text
|
794 |
+
custom_nodes/comfyui_controlnet_aux/examples/ExecuteAll1.jpg filter=lfs diff=lfs merge=lfs -text
|
795 |
+
custom_nodes/comfyui_controlnet_aux/examples/ExecuteAll2.jpg filter=lfs diff=lfs merge=lfs -text
|
796 |
+
custom_nodes/comfyui_controlnet_aux/examples/comfyui-controlnet-aux-logo.png filter=lfs diff=lfs merge=lfs -text
|
797 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_animal_pose.png filter=lfs diff=lfs merge=lfs -text
|
798 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_anime_face_segmentor.png filter=lfs diff=lfs merge=lfs -text
|
799 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_anyline.png filter=lfs diff=lfs merge=lfs -text
|
800 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_densepose.png filter=lfs diff=lfs merge=lfs -text
|
801 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_depth_anything.png filter=lfs diff=lfs merge=lfs -text
|
802 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_depth_anything_v2.png filter=lfs diff=lfs merge=lfs -text
|
803 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_dsine.png filter=lfs diff=lfs merge=lfs -text
|
804 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_marigold.png filter=lfs diff=lfs merge=lfs -text
|
805 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_marigold_flat.jpg filter=lfs diff=lfs merge=lfs -text
|
806 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_mesh_graphormer.png filter=lfs diff=lfs merge=lfs -text
|
807 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_metric3d.png filter=lfs diff=lfs merge=lfs -text
|
808 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_recolor.png filter=lfs diff=lfs merge=lfs -text
|
809 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_save_kps.png filter=lfs diff=lfs merge=lfs -text
|
810 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_teed.png filter=lfs diff=lfs merge=lfs -text
|
811 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_torchscript.png filter=lfs diff=lfs merge=lfs -text
|
812 |
+
custom_nodes/comfyui_controlnet_aux/examples/example_unimatch.png filter=lfs diff=lfs merge=lfs -text
|
813 |
+
custom_nodes/comfyui_controlnet_aux/src/custom_controlnet_aux/mesh_graphormer/hand_landmarker.task filter=lfs diff=lfs merge=lfs -text
|
814 |
+
custom_nodes/comfyui_controlnet_aux/src/custom_controlnet_aux/tests/test_image.png filter=lfs diff=lfs merge=lfs -text
|
815 |
+
custom_nodes/comfyui_controlnet_aux/tests/pose.png filter=lfs diff=lfs merge=lfs -text
|
816 |
+
custom_nodes/comfyui_glslnodes/examples/assets/003.png filter=lfs diff=lfs merge=lfs -text
|
817 |
+
custom_nodes/comfyui_glslnodes/examples/assets/blade_runner_003.mp4 filter=lfs diff=lfs merge=lfs -text
|
818 |
+
custom_nodes/comfyui_glslnodes/examples/assets/danny.png filter=lfs diff=lfs merge=lfs -text
|
819 |
+
custom_nodes/comfyui_glslnodes/examples/assets/flower.png filter=lfs diff=lfs merge=lfs -text
|
820 |
+
custom_nodes/comfyui_glslnodes/examples/assets/square_01.png filter=lfs diff=lfs merge=lfs -text
|
821 |
+
custom_nodes/comfyui_glslnodes/examples/assets/suzanne.png filter=lfs diff=lfs merge=lfs -text
|
822 |
+
custom_nodes/efficiency-nodes-comfyui/arial.ttf filter=lfs diff=lfs merge=lfs -text
|
823 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-10-31_22-43-17.png filter=lfs diff=lfs merge=lfs -text
|
824 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-01_14-25-01.png filter=lfs diff=lfs merge=lfs -text
|
825 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-01_19-54-59.png filter=lfs diff=lfs merge=lfs -text
|
826 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_22-32-57.png filter=lfs diff=lfs merge=lfs -text
|
827 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_22-33-57.png filter=lfs diff=lfs merge=lfs -text
|
828 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_22-46-20.png filter=lfs diff=lfs merge=lfs -text
|
829 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_22-47-09.png filter=lfs diff=lfs merge=lfs -text
|
830 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_22-57-28.png filter=lfs diff=lfs merge=lfs -text
|
831 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-04_23-10-03.png filter=lfs diff=lfs merge=lfs -text
|
832 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-05_00-02-07.png filter=lfs diff=lfs merge=lfs -text
|
833 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-11-05_00-02-34.png filter=lfs diff=lfs merge=lfs -text
|
834 |
+
custom_nodes/efficiency-nodes-comfyui/images/2023-12-08_19-54-11.png filter=lfs diff=lfs merge=lfs -text
|
835 |
+
custom_nodes/efficiency-nodes-comfyui/images/2024-01-19_22-39-03.png filter=lfs diff=lfs merge=lfs -text
|
836 |
+
custom_nodes/efficiency-nodes-comfyui/images/2024-01-19_22-39-26.png filter=lfs diff=lfs merge=lfs -text
|
837 |
+
custom_nodes/efficiency-nodes-comfyui/images/2024-01-19_22-39-50.png filter=lfs diff=lfs merge=lfs -text
|
838 |
+
custom_nodes/efficiency-nodes-comfyui/images/ComfyUI_temp_vpose_00005_.png filter=lfs diff=lfs merge=lfs -text
|
839 |
+
custom_nodes/efficiency-nodes-comfyui/images/Mgazinelogo01_600.jpg filter=lfs diff=lfs merge=lfs -text
|
840 |
+
custom_nodes/efficiency-nodes-comfyui/images/jagsP1.png filter=lfs diff=lfs merge=lfs -text
|
841 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/AnimateDiff[[:space:]]&[[:space:]]HiResFix[[:space:]]Scripts.gif filter=lfs diff=lfs merge=lfs -text
|
842 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/AnimateDiff[[:space:]]-[[:space:]]Node[[:space:]]Example.gif filter=lfs diff=lfs merge=lfs -text
|
843 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/HighResFix[[:space:]]-[[:space:]]Node[[:space:]]Example.gif filter=lfs diff=lfs merge=lfs -text
|
844 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/Image[[:space:]]Overlay[[:space:]]-[[:space:]]Node[[:space:]]Example.png filter=lfs diff=lfs merge=lfs -text
|
845 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/ScriptChain.png filter=lfs diff=lfs merge=lfs -text
|
846 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/Tiled[[:space:]]Upscaler[[:space:]]-[[:space:]]Node[[:space:]]Example.gif filter=lfs diff=lfs merge=lfs -text
|
847 |
+
custom_nodes/efficiency-nodes-comfyui/images/nodes/XY[[:space:]]Plot[[:space:]]-[[:space:]]Node[[:space:]]Example.png filter=lfs diff=lfs merge=lfs -text
|
848 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/AnimateDiff[[:space:]]&[[:space:]]HiResFix[[:space:]]Scripts.gif filter=lfs diff=lfs merge=lfs -text
|
849 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/EFF_TiledscriptWorkflow.png filter=lfs diff=lfs merge=lfs -text
|
850 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/Eff_XYPlot[[:space:]]-[[:space:]]LoRA[[:space:]]Model[[:space:]]vs[[:space:]]Clip[[:space:]]Strengths01.png filter=lfs diff=lfs merge=lfs -text
|
851 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/Eff_animatediff_script_wf001.png filter=lfs diff=lfs merge=lfs -text
|
852 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/Eff_multiKsampler_withScriptsSDXL.png filter=lfs diff=lfs merge=lfs -text
|
853 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/HiResFix[[:space:]]Script.png filter=lfs diff=lfs merge=lfs -text
|
854 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/HiResfix_workflow.png filter=lfs diff=lfs merge=lfs -text
|
855 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/SDXL[[:space:]]Refining[[:space:]]&[[:space:]]Noise[[:space:]]Control[[:space:]]Script.png filter=lfs diff=lfs merge=lfs -text
|
856 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/SDXL_base_refine_noise_workflow.png filter=lfs diff=lfs merge=lfs -text
|
857 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/Tiled[[:space:]]Upscaler[[:space:]]Script.png filter=lfs diff=lfs merge=lfs -text
|
858 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/XYPlot[[:space:]]-[[:space:]]LoRA[[:space:]]Model[[:space:]]vs[[:space:]]Clip[[:space:]]Strengths.png filter=lfs diff=lfs merge=lfs -text
|
859 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/XYPlot[[:space:]]-[[:space:]]Seeds[[:space:]]vs[[:space:]]Checkpoints[[:space:]]&[[:space:]]Stacked[[:space:]]Scripts.png filter=lfs diff=lfs merge=lfs -text
|
860 |
+
custom_nodes/efficiency-nodes-comfyui/workflows/eff_animatescriptWF001.gif filter=lfs diff=lfs merge=lfs -text
|
861 |
+
custom_nodes/facerestore_cf/example.png filter=lfs diff=lfs merge=lfs -text
|
862 |
+
custom_nodes/rgthree-comfy/docs/rgthree_advanced.png filter=lfs diff=lfs merge=lfs -text
|
863 |
+
custom_nodes/rgthree-comfy/docs/rgthree_advanced_metadata.png filter=lfs diff=lfs merge=lfs -text
|
864 |
+
custom_nodes/rgthree-comfy/docs/rgthree_context.png filter=lfs diff=lfs merge=lfs -text
|
865 |
+
custom_nodes/rgthree-comfy/docs/rgthree_context_metadata.png filter=lfs diff=lfs merge=lfs -text
|
866 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/masks1.png filter=lfs diff=lfs merge=lfs -text
|
867 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/masks2.jpg filter=lfs diff=lfs merge=lfs -text
|
868 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/minidemo.gif filter=lfs diff=lfs merge=lfs -text
|
869 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/model_diagram.png filter=lfs diff=lfs merge=lfs -text
|
870 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/notebook1.png filter=lfs diff=lfs merge=lfs -text
|
871 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/assets/notebook2.png filter=lfs diff=lfs merge=lfs -text
|
872 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/demo/src/assets/data/dogs.jpg filter=lfs diff=lfs merge=lfs -text
|
873 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/notebooks/images/groceries.jpg filter=lfs diff=lfs merge=lfs -text
|
874 |
+
custom_nodes/was-node-suite-comfyui/repos/SAM/notebooks/images/truck.jpg filter=lfs diff=lfs merge=lfs -text
|
custom_nodes/Comfy-WaveSpeed/.github/workflows/publish_action.yml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Publish to Comfy registry
|
2 |
+
on:
|
3 |
+
workflow_dispatch:
|
4 |
+
push:
|
5 |
+
branches:
|
6 |
+
- main
|
7 |
+
paths:
|
8 |
+
- "pyproject.toml"
|
9 |
+
|
10 |
+
jobs:
|
11 |
+
publish-node:
|
12 |
+
name: Publish Custom Node to registry
|
13 |
+
runs-on: ubuntu-latest
|
14 |
+
steps:
|
15 |
+
- name: Check out code
|
16 |
+
uses: actions/checkout@v4
|
17 |
+
- name: Publish Custom Node
|
18 |
+
uses: Comfy-Org/publish-node-action@main
|
19 |
+
with:
|
20 |
+
personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} ## Add your own personal access token to your Github Repository secrets and reference it here.
|
custom_nodes/Comfy-WaveSpeed/.gitignore
ADDED
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# poetry
|
98 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100 |
+
# commonly ignored for libraries.
|
101 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
102 |
+
#poetry.lock
|
103 |
+
|
104 |
+
# pdm
|
105 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
106 |
+
#pdm.lock
|
107 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
108 |
+
# in version control.
|
109 |
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
110 |
+
.pdm.toml
|
111 |
+
.pdm-python
|
112 |
+
.pdm-build/
|
113 |
+
|
114 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
115 |
+
__pypackages__/
|
116 |
+
|
117 |
+
# Celery stuff
|
118 |
+
celerybeat-schedule
|
119 |
+
celerybeat.pid
|
120 |
+
|
121 |
+
# SageMath parsed files
|
122 |
+
*.sage.py
|
123 |
+
|
124 |
+
# Environments
|
125 |
+
.env
|
126 |
+
.venv
|
127 |
+
env/
|
128 |
+
venv/
|
129 |
+
ENV/
|
130 |
+
env.bak/
|
131 |
+
venv.bak/
|
132 |
+
|
133 |
+
# Spyder project settings
|
134 |
+
.spyderproject
|
135 |
+
.spyproject
|
136 |
+
|
137 |
+
# Rope project settings
|
138 |
+
.ropeproject
|
139 |
+
|
140 |
+
# mkdocs documentation
|
141 |
+
/site
|
142 |
+
|
143 |
+
# mypy
|
144 |
+
.mypy_cache/
|
145 |
+
.dmypy.json
|
146 |
+
dmypy.json
|
147 |
+
|
148 |
+
# Pyre type checker
|
149 |
+
.pyre/
|
150 |
+
|
151 |
+
# pytype static type analyzer
|
152 |
+
.pytype/
|
153 |
+
|
154 |
+
# Cython debug symbols
|
155 |
+
cython_debug/
|
156 |
+
|
157 |
+
# PyCharm
|
158 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
159 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
160 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
161 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
162 |
+
#.idea/
|
custom_nodes/Comfy-WaveSpeed/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2024 C
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
custom_nodes/Comfy-WaveSpeed/README.md
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Comfy-WaveSpeed
|
2 |
+
|
3 |
+
[WIP] The all in one inference optimization solution for ComfyUI, universal, flexible, and fast.
|
4 |
+
|
5 |
+
- [x] [Dynamic Caching (First Block Cache)](https://github.com/chengzeyi/ParaAttention?tab=readme-ov-file#first-block-cache-our-dynamic-caching)
|
6 |
+
- [x] Enhanced `torch.compile`
|
7 |
+
|
8 |
+
More to come...
|
9 |
+
|
10 |
+
- [ ] Multi-GPU Inference (ComfyUI version of [ParaAttention's Context Parallelism](https://github.com/chengzeyi/ParaAttention?tab=readme-ov-file#context-parallelism))
|
11 |
+
|
12 |
+
| FLUX.1-dev Original | FLUX.1-dev with First Block Cache and Compilation |
|
13 |
+
| - | - |
|
14 |
+
|  |  |
|
15 |
+
|
16 |
+
This is just launched, and we are working on it. Please stay tuned.
|
17 |
+
For any request or question, please join the Discord server.
|
18 |
+
|
19 |
+
[Discord Server](https://discord.gg/xtk6jUtYtr)
|
20 |
+
|
21 |
+
[Comfy Registry](https://registry.comfy.org/nodes/wavespeed)
|
22 |
+
|
23 |
+
# Installation
|
24 |
+
|
25 |
+
```bash
|
26 |
+
cd custom_nodes
|
27 |
+
git clone https://github.com/chengzeyi/Comfy-WaveSpeed.git
|
28 |
+
```
|
29 |
+
|
30 |
+
# Usage
|
31 |
+
|
32 |
+
## Demo Workflows
|
33 |
+
|
34 |
+
You can find demo workflows in the `workflows` folder.
|
35 |
+
|
36 |
+
| Workflow | Path |
|
37 |
+
| - | - |
|
38 |
+
| FLUX.1-dev with First Block Cache and Compilation | [workflows/flux.json](./workflows/flux.json)
|
39 |
+
| FLUX.1-dev ControlNet with First Block Cache and Compilation | [workflows/flux_controlnet.json](./workflows/flux_controlnet.json)
|
40 |
+
| LTXV with First Block Cache and Compilation | [workflows/ltxv.json](./workflows/ltxv.json)
|
41 |
+
| HunyuanVideo with First Block Cache | [workflows/hunyuan_video.json](./workflows/hunyuan_video.json)
|
42 |
+
| SD3.5 with First Block Cache and Compilation | [workflows/sd3.5.json](./workflows/sd3.5.json)
|
43 |
+
| SDXL with First Block Cache | [workflows/sdxl.json](./workflows/sdxl.json)
|
44 |
+
|
45 |
+
**NOTE**: The `Compile Model+` node requires your computation to meet some software and hardware requirements, please refer to the [Enhanced `torch.compile`](#enhanced-torchcompile) section for more information.
|
46 |
+
If you have problems with the compilation node, you can remove it from the workflow and only use the `Apply First Block Cache` node.
|
47 |
+
The `Apply First Block Cache` node can still bring you a significant speedup.
|
48 |
+
|
49 |
+
## Dynamic Caching ([First Block Cache](https://github.com/chengzeyi/ParaAttention?tab=readme-ov-file#first-block-cache-our-dynamic-caching))
|
50 |
+
|
51 |
+
Inspired by TeaCache and other denoising caching algorithms, we introduce [First Block Cache (FBCache)](https://github.com/chengzeyi/ParaAttention?tab=readme-ov-file#first-block-cache-our-dynamic-caching) to use the residual output of the first transformer block as the cache indicator.
|
52 |
+
If the difference between the current and the previous residual output of the first transformer block is small enough, we can reuse the previous final residual output and skip the computation of all the following transformer blocks.
|
53 |
+
This can significantly reduce the computation cost of the model, achieving a speedup of up to 2x while maintaining high accuracy.
|
54 |
+
|
55 |
+
To use first block cache, simply add the `wavespeed->Apply First Block Cache` node to your workflow after your `Load Diffusion Model` node and adjust the `residual_diff_threashold` value to a suitable value for your model, for example: `0.12` for `flux-dev.safetensors` with `fp8_e4m3fn_fast` and 28 steps.
|
56 |
+
It is expected to see a speedup of 1.5x to 3.0x with acceptable accuracy loss.
|
57 |
+
|
58 |
+
It supports many models like `FLUX`, `LTXV (native and non-native)`, `HunyuanVideo (native)`, `SD3.5` and `SDXL`, feel free to try it out and let us know if you have any issues!
|
59 |
+
|
60 |
+
Some configurations for different models that you can try:
|
61 |
+
|
62 |
+
| Model | Steps | `residual_diff_threashold` |
|
63 |
+
| - | - | - |
|
64 |
+
| `flux-dev.safetensors` with `fp8_e4m3fn_fast` | 28 | 0.12 |
|
65 |
+
| `ltx-video-2b-v0.9.1.safetensors` | 30 | 0.1 |
|
66 |
+
| `hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors` | 20 | 0.1 |
|
67 |
+
| `sd3.5_large_fp8_scaled.safetensors` | 30 | 0.12 |
|
68 |
+
| `sd_xl_base_1.0.safetensors` | 25 | 0.2 |
|
69 |
+
|
70 |
+
**NOTE**: SDXL First Block Cache is incompatible with the [FreeU Advanced](https://github.com/WASasquatch/FreeU_Advanced) node pack and will not function properly if it is installed and enabled.
|
71 |
+
|
72 |
+
See [Apply First Block Cache on FLUX.1-dev](https://github.com/chengzeyi/ParaAttention/blob/main/doc/fastest_flux.md#apply-first-block-cache-on-flux1-dev) for more information and detailed comparison on quality and speed.
|
73 |
+
|
74 |
+

|
75 |
+
|
76 |
+
## Enhanced `torch.compile`
|
77 |
+
|
78 |
+
To use the Enhanced `torch.compile`, simply add the `wavespeed->Compile Model+` node to your workflow after your `Load Diffusion Model` node or `Apply First Block Cache` node.
|
79 |
+
The compilation process happens the first time you run the workflow, and it takes quite a long time, but it will be cached for future runs.
|
80 |
+
You can pass different `mode` values to make it runs faster, for example `max-autotune` or `max-autotune-no-cudagraphs`.
|
81 |
+
One of the advantages of this node over the original `TorchCompileModel` node is that it works with LoRA.
|
82 |
+
|
83 |
+
It is suggested to pass `--gpu-only` when launching your `ComfyUI` if you are using this node, for example, if you are using `comfy-cli`:
|
84 |
+
|
85 |
+
```bash
|
86 |
+
comfy launch -- --gpu-only
|
87 |
+
```
|
88 |
+
|
89 |
+
If you encounter any problems with frequent compilation after changing the resolution or text prompt, you could try enabling the `dynamic` option of the `Compile Model+` node.
|
90 |
+
Or you could launch your `ComfyUI` with environment variable `TORCH_LOGS=recompiles_verbose` to debug the reason for recompilation.
|
91 |
+
|
92 |
+
**NOTE**: `torch.compile` might not be able to work with model offloading well, you could try passing `--gpu-only` when launching your `ComfyUI` to disable model offloading.
|
93 |
+
|
94 |
+
**NOTE**: `torch.compile` does not work on Windows offcially, you should not use this node if you are facing this problem, or search on Google to find out how to make it work.
|
95 |
+
|
96 |
+
**NOTE**: Compiling a model with FP8 quantization does not work on pre-Ada GPUs like RTX 3090, you should try using FP16/BF16 models or removing the compilation node.
|
97 |
+
|
98 |
+

|
99 |
+
|
100 |
+
# Others
|
101 |
+
|
102 |
+
## Use with `diffusers`
|
103 |
+
|
104 |
+
Please refer to [ParaAttention](https://github.com/chengzeyi/ParaAttention) for more information.
|
custom_nodes/Comfy-WaveSpeed/__init__.py
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from .fbcache_nodes import ApplyFBCacheOnModel
|
2 |
+
from .misc_nodes import (
|
3 |
+
EnhancedLoadDiffusionModel,
|
4 |
+
EnhancedCompileModel,
|
5 |
+
)
|
6 |
+
from .velocator_nodes import (
|
7 |
+
VelocatorCompileModel,
|
8 |
+
VelocatorLoadAndQuantizeClip,
|
9 |
+
VelocatorLoadAndQuantizeDiffusionModel,
|
10 |
+
VelocatorQuantizeModel,
|
11 |
+
)
|
12 |
+
|
13 |
+
|
14 |
+
def patch_cast_to():
|
15 |
+
def cast_to(weight, dtype=None, device=None, non_blocking=False, copy=False):
|
16 |
+
if device is None or weight.device == device:
|
17 |
+
if not copy:
|
18 |
+
if dtype is None or weight.dtype == dtype:
|
19 |
+
return weight
|
20 |
+
return weight.to(dtype=dtype, copy=copy)
|
21 |
+
|
22 |
+
# torch.empty_like does not work with tensor subclasses well
|
23 |
+
# r = torch.empty_like(weight, dtype=dtype, device=device)
|
24 |
+
# r.copy_(weight, non_blocking=non_blocking)
|
25 |
+
r = weight.to(device=device, dtype=dtype, non_blocking=non_blocking, copy=copy)
|
26 |
+
return r
|
27 |
+
|
28 |
+
from comfy import model_management
|
29 |
+
|
30 |
+
model_management.cast_to = cast_to
|
31 |
+
|
32 |
+
|
33 |
+
patch_cast_to()
|
34 |
+
|
35 |
+
NODE_CLASS_MAPPINGS = {
|
36 |
+
"ApplyFBCacheOnModel": ApplyFBCacheOnModel,
|
37 |
+
"EnhancedLoadDiffusionModel": EnhancedLoadDiffusionModel,
|
38 |
+
"EnhancedCompileModel": EnhancedCompileModel,
|
39 |
+
"VelocatorLoadAndQuantizeDiffusionModel": VelocatorLoadAndQuantizeDiffusionModel,
|
40 |
+
"VelocatorLoadAndQuantizeClip": VelocatorLoadAndQuantizeClip,
|
41 |
+
"VelocatorQuantizeModel": VelocatorQuantizeModel,
|
42 |
+
"VelocatorCompileModel": VelocatorCompileModel,
|
43 |
+
}
|
44 |
+
|
45 |
+
NODE_DISPLAY_NAME_MAPPINGS = {
|
46 |
+
"ApplyFBCacheOnModel": "Apply First Block Cache",
|
47 |
+
"EnhancedLoadDiffusionModel": "Load Diffusion Model+",
|
48 |
+
"EnhancedCompileModel": "Compile Model+",
|
49 |
+
"VelocatorLoadAndQuantizeDiffusionModel": "🚀Load & Quantize Diffusion Model",
|
50 |
+
"VelocatorLoadAndQuantizeClip": "🚀Load & Quantize CLIP",
|
51 |
+
"VelocatorQuantizeModel": "🚀Quantize Model",
|
52 |
+
"VelocatorCompileModel": "🚀Compile Model",
|
53 |
+
}
|
custom_nodes/Comfy-WaveSpeed/assets/flux_optimized.png
ADDED
![]() |
Git LFS Details
|
custom_nodes/Comfy-WaveSpeed/assets/flux_original.png
ADDED
![]() |
Git LFS Details
|
custom_nodes/Comfy-WaveSpeed/assets/usage_compile.png
ADDED
![]() |
Git LFS Details
|
custom_nodes/Comfy-WaveSpeed/assets/usage_fbcache.png
ADDED
![]() |
custom_nodes/Comfy-WaveSpeed/fbcache_nodes.py
ADDED
@@ -0,0 +1,294 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import contextlib
|
2 |
+
import unittest
|
3 |
+
import torch
|
4 |
+
|
5 |
+
from comfy import model_management
|
6 |
+
|
7 |
+
from . import first_block_cache
|
8 |
+
|
9 |
+
|
10 |
+
class ApplyFBCacheOnModel:
|
11 |
+
|
12 |
+
@classmethod
|
13 |
+
def INPUT_TYPES(s):
|
14 |
+
return {
|
15 |
+
"required": {
|
16 |
+
"model": ("MODEL", ),
|
17 |
+
"object_to_patch": (
|
18 |
+
"STRING",
|
19 |
+
{
|
20 |
+
"default": "diffusion_model",
|
21 |
+
},
|
22 |
+
),
|
23 |
+
"residual_diff_threshold": (
|
24 |
+
"FLOAT",
|
25 |
+
{
|
26 |
+
"default":
|
27 |
+
0.0,
|
28 |
+
"min":
|
29 |
+
0.0,
|
30 |
+
"max":
|
31 |
+
1.0,
|
32 |
+
"step":
|
33 |
+
0.001,
|
34 |
+
"tooltip":
|
35 |
+
"Controls the tolerance for caching with lower values being more strict. Setting this to 0 disables the FBCache effect.",
|
36 |
+
},
|
37 |
+
),
|
38 |
+
"start": (
|
39 |
+
"FLOAT",
|
40 |
+
{
|
41 |
+
"default":
|
42 |
+
0.0,
|
43 |
+
"step":
|
44 |
+
0.01,
|
45 |
+
"max":
|
46 |
+
1.0,
|
47 |
+
"min":
|
48 |
+
0.0,
|
49 |
+
"tooltip":
|
50 |
+
"Start time as a percentage of sampling where the FBCache effect can apply. Example: 0.0 would signify 0% (the beginning of sampling), 0.5 would signify 50%.",
|
51 |
+
},
|
52 |
+
),
|
53 |
+
"end": ("FLOAT", {
|
54 |
+
"default":
|
55 |
+
1.0,
|
56 |
+
"step":
|
57 |
+
0.01,
|
58 |
+
"max":
|
59 |
+
1.0,
|
60 |
+
"min":
|
61 |
+
0.0,
|
62 |
+
"tooltip":
|
63 |
+
"End time as a percentage of sampling where the FBCache effect can apply. Example: 1.0 would signify 100% (the end of sampling), 0.5 would signify 50%.",
|
64 |
+
}),
|
65 |
+
"max_consecutive_cache_hits": (
|
66 |
+
"INT",
|
67 |
+
{
|
68 |
+
"default":
|
69 |
+
-1,
|
70 |
+
"min":
|
71 |
+
-1,
|
72 |
+
"tooltip":
|
73 |
+
"Allows limiting how many cached results can be used in a row. For example, setting this to 1 will mean there will be at least one full model call after each cached result. Set to 0 to disable FBCache effect, or -1 to allow unlimited consecutive cache hits.",
|
74 |
+
},
|
75 |
+
),
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
RETURN_TYPES = ("MODEL", )
|
80 |
+
FUNCTION = "patch"
|
81 |
+
|
82 |
+
CATEGORY = "wavespeed"
|
83 |
+
|
84 |
+
def patch(
|
85 |
+
self,
|
86 |
+
model,
|
87 |
+
object_to_patch,
|
88 |
+
residual_diff_threshold,
|
89 |
+
max_consecutive_cache_hits=-1,
|
90 |
+
start=0.0,
|
91 |
+
end=1.0,
|
92 |
+
):
|
93 |
+
if residual_diff_threshold <= 0.0 or max_consecutive_cache_hits == 0:
|
94 |
+
return (model, )
|
95 |
+
|
96 |
+
first_block_cache.patch_get_output_data()
|
97 |
+
|
98 |
+
using_validation = max_consecutive_cache_hits >= 0 or start > 0 or end < 1
|
99 |
+
if using_validation:
|
100 |
+
model_sampling = model.get_model_object("model_sampling")
|
101 |
+
start_sigma, end_sigma = (float(
|
102 |
+
model_sampling.percent_to_sigma(pct)) for pct in (start, end))
|
103 |
+
del model_sampling
|
104 |
+
|
105 |
+
@torch.compiler.disable()
|
106 |
+
def validate_use_cache(use_cached):
|
107 |
+
nonlocal consecutive_cache_hits
|
108 |
+
use_cached = use_cached and end_sigma <= current_timestep <= start_sigma
|
109 |
+
use_cached = use_cached and (max_consecutive_cache_hits < 0
|
110 |
+
or consecutive_cache_hits
|
111 |
+
< max_consecutive_cache_hits)
|
112 |
+
consecutive_cache_hits = consecutive_cache_hits + 1 if use_cached else 0
|
113 |
+
return use_cached
|
114 |
+
else:
|
115 |
+
validate_use_cache = None
|
116 |
+
|
117 |
+
prev_timestep = None
|
118 |
+
prev_input_state = None
|
119 |
+
current_timestep = None
|
120 |
+
consecutive_cache_hits = 0
|
121 |
+
|
122 |
+
def reset_cache_state():
|
123 |
+
# Resets the cache state and hits/time tracking variables.
|
124 |
+
nonlocal prev_input_state, prev_timestep, consecutive_cache_hits
|
125 |
+
prev_input_state = prev_timestep = None
|
126 |
+
consecutive_cache_hits = 0
|
127 |
+
first_block_cache.set_current_cache_context(
|
128 |
+
first_block_cache.create_cache_context())
|
129 |
+
|
130 |
+
def ensure_cache_state(model_input: torch.Tensor, timestep: float):
|
131 |
+
# Validates the current cache state and hits/time tracking variables
|
132 |
+
# and triggers a reset if necessary. Also updates current_timestep and
|
133 |
+
# maintains the cache context sequence number.
|
134 |
+
nonlocal current_timestep
|
135 |
+
input_state = (model_input.shape, model_input.dtype, model_input.device)
|
136 |
+
cache_context = first_block_cache.get_current_cache_context()
|
137 |
+
# We reset when:
|
138 |
+
need_reset = (
|
139 |
+
# The previous timestep or input state is not set
|
140 |
+
prev_timestep is None or
|
141 |
+
prev_input_state is None or
|
142 |
+
# Or dtype/device have changed
|
143 |
+
prev_input_state[1:] != input_state[1:] or
|
144 |
+
# Or the input state after the batch dimension has changed
|
145 |
+
prev_input_state[0][1:] != input_state[0][1:] or
|
146 |
+
# Or there is no cache context (in this case reset is just making a context)
|
147 |
+
cache_context is None or
|
148 |
+
# Or the current timestep is higher than the previous one
|
149 |
+
timestep > prev_timestep
|
150 |
+
)
|
151 |
+
if need_reset:
|
152 |
+
reset_cache_state()
|
153 |
+
elif timestep == prev_timestep:
|
154 |
+
# When the current timestep is the same as the previous, we assume ComfyUI has split up
|
155 |
+
# the model evaluation into multiple chunks. In this case, we increment the sequence number.
|
156 |
+
# Note: No need to check if cache_context is None for these branches as need_reset would be True
|
157 |
+
# if so.
|
158 |
+
cache_context.sequence_num += 1
|
159 |
+
elif timestep < prev_timestep:
|
160 |
+
# When the timestep is less than the previous one, we can reset the context sequence number
|
161 |
+
cache_context.sequence_num = 0
|
162 |
+
current_timestep = timestep
|
163 |
+
|
164 |
+
def update_cache_state(model_input: torch.Tensor, timestep: float):
|
165 |
+
# Updates the previous timestep and input state validation variables.
|
166 |
+
nonlocal prev_timestep, prev_input_state
|
167 |
+
prev_timestep = timestep
|
168 |
+
prev_input_state = (model_input.shape, model_input.dtype, model_input.device)
|
169 |
+
|
170 |
+
model = model.clone()
|
171 |
+
diffusion_model = model.get_model_object(object_to_patch)
|
172 |
+
|
173 |
+
if diffusion_model.__class__.__name__ in ("UNetModel", "Flux"):
|
174 |
+
|
175 |
+
if diffusion_model.__class__.__name__ == "UNetModel":
|
176 |
+
create_patch_function = first_block_cache.create_patch_unet_model__forward
|
177 |
+
elif diffusion_model.__class__.__name__ == "Flux":
|
178 |
+
create_patch_function = first_block_cache.create_patch_flux_forward_orig
|
179 |
+
else:
|
180 |
+
raise ValueError(
|
181 |
+
f"Unsupported model {diffusion_model.__class__.__name__}")
|
182 |
+
|
183 |
+
patch_forward = create_patch_function(
|
184 |
+
diffusion_model,
|
185 |
+
residual_diff_threshold=residual_diff_threshold,
|
186 |
+
validate_can_use_cache_function=validate_use_cache,
|
187 |
+
)
|
188 |
+
|
189 |
+
def model_unet_function_wrapper(model_function, kwargs):
|
190 |
+
try:
|
191 |
+
input = kwargs["input"]
|
192 |
+
timestep = kwargs["timestep"]
|
193 |
+
c = kwargs["c"]
|
194 |
+
t = timestep[0].item()
|
195 |
+
|
196 |
+
ensure_cache_state(input, t)
|
197 |
+
|
198 |
+
with patch_forward():
|
199 |
+
result = model_function(input, timestep, **c)
|
200 |
+
update_cache_state(input, t)
|
201 |
+
return result
|
202 |
+
except Exception as exc:
|
203 |
+
reset_cache_state()
|
204 |
+
raise exc from None
|
205 |
+
else:
|
206 |
+
is_non_native_ltxv = False
|
207 |
+
if diffusion_model.__class__.__name__ == "LTXVTransformer3D":
|
208 |
+
is_non_native_ltxv = True
|
209 |
+
diffusion_model = diffusion_model.transformer
|
210 |
+
|
211 |
+
double_blocks_name = None
|
212 |
+
single_blocks_name = None
|
213 |
+
if hasattr(diffusion_model, "transformer_blocks"):
|
214 |
+
double_blocks_name = "transformer_blocks"
|
215 |
+
elif hasattr(diffusion_model, "double_blocks"):
|
216 |
+
double_blocks_name = "double_blocks"
|
217 |
+
elif hasattr(diffusion_model, "joint_blocks"):
|
218 |
+
double_blocks_name = "joint_blocks"
|
219 |
+
else:
|
220 |
+
raise ValueError(
|
221 |
+
f"No double blocks found for {diffusion_model.__class__.__name__}"
|
222 |
+
)
|
223 |
+
|
224 |
+
if hasattr(diffusion_model, "single_blocks"):
|
225 |
+
single_blocks_name = "single_blocks"
|
226 |
+
|
227 |
+
if is_non_native_ltxv:
|
228 |
+
original_create_skip_layer_mask = getattr(
|
229 |
+
diffusion_model, "create_skip_layer_mask", None)
|
230 |
+
if original_create_skip_layer_mask is not None:
|
231 |
+
# original_double_blocks = getattr(diffusion_model,
|
232 |
+
# double_blocks_name)
|
233 |
+
|
234 |
+
def new_create_skip_layer_mask(self, *args, **kwargs):
|
235 |
+
# with unittest.mock.patch.object(self, double_blocks_name,
|
236 |
+
# original_double_blocks):
|
237 |
+
# return original_create_skip_layer_mask(*args, **kwargs)
|
238 |
+
# return original_create_skip_layer_mask(*args, **kwargs)
|
239 |
+
raise RuntimeError(
|
240 |
+
"STG is not supported with FBCache yet")
|
241 |
+
|
242 |
+
diffusion_model.create_skip_layer_mask = new_create_skip_layer_mask.__get__(
|
243 |
+
diffusion_model)
|
244 |
+
|
245 |
+
cached_transformer_blocks = torch.nn.ModuleList([
|
246 |
+
first_block_cache.CachedTransformerBlocks(
|
247 |
+
None if double_blocks_name is None else getattr(
|
248 |
+
diffusion_model, double_blocks_name),
|
249 |
+
None if single_blocks_name is None else getattr(
|
250 |
+
diffusion_model, single_blocks_name),
|
251 |
+
residual_diff_threshold=residual_diff_threshold,
|
252 |
+
validate_can_use_cache_function=validate_use_cache,
|
253 |
+
cat_hidden_states_first=diffusion_model.__class__.__name__
|
254 |
+
== "HunyuanVideo",
|
255 |
+
return_hidden_states_only=diffusion_model.__class__.
|
256 |
+
__name__ == "LTXVModel" or is_non_native_ltxv,
|
257 |
+
clone_original_hidden_states=diffusion_model.__class__.
|
258 |
+
__name__ == "LTXVModel",
|
259 |
+
return_hidden_states_first=diffusion_model.__class__.
|
260 |
+
__name__ != "OpenAISignatureMMDITWrapper",
|
261 |
+
accept_hidden_states_first=diffusion_model.__class__.
|
262 |
+
__name__ != "OpenAISignatureMMDITWrapper",
|
263 |
+
)
|
264 |
+
])
|
265 |
+
dummy_single_transformer_blocks = torch.nn.ModuleList()
|
266 |
+
|
267 |
+
def model_unet_function_wrapper(model_function, kwargs):
|
268 |
+
try:
|
269 |
+
input = kwargs["input"]
|
270 |
+
timestep = kwargs["timestep"]
|
271 |
+
c = kwargs["c"]
|
272 |
+
t = timestep[0].item()
|
273 |
+
|
274 |
+
ensure_cache_state(input, t)
|
275 |
+
|
276 |
+
with unittest.mock.patch.object(
|
277 |
+
diffusion_model,
|
278 |
+
double_blocks_name,
|
279 |
+
cached_transformer_blocks,
|
280 |
+
), unittest.mock.patch.object(
|
281 |
+
diffusion_model,
|
282 |
+
single_blocks_name,
|
283 |
+
dummy_single_transformer_blocks,
|
284 |
+
) if single_blocks_name is not None else contextlib.nullcontext(
|
285 |
+
):
|
286 |
+
result = model_function(input, timestep, **c)
|
287 |
+
update_cache_state(input, t)
|
288 |
+
return result
|
289 |
+
except Exception as exc:
|
290 |
+
reset_cache_state()
|
291 |
+
raise exc from None
|
292 |
+
|
293 |
+
model.set_model_unet_function_wrapper(model_unet_function_wrapper)
|
294 |
+
return (model, )
|
custom_nodes/Comfy-WaveSpeed/first_block_cache.py
ADDED
@@ -0,0 +1,841 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import contextlib
|
2 |
+
import dataclasses
|
3 |
+
import unittest
|
4 |
+
from collections import defaultdict
|
5 |
+
from typing import DefaultDict, Dict
|
6 |
+
|
7 |
+
import torch
|
8 |
+
|
9 |
+
|
10 |
+
@dataclasses.dataclass
|
11 |
+
class CacheContext:
|
12 |
+
buffers: Dict[str, list] = dataclasses.field(default_factory=dict)
|
13 |
+
incremental_name_counters: DefaultDict[str, int] = dataclasses.field(
|
14 |
+
default_factory=lambda: defaultdict(int))
|
15 |
+
sequence_num: int = 0
|
16 |
+
use_cache: bool = False
|
17 |
+
|
18 |
+
def get_incremental_name(self, name=None):
|
19 |
+
if name is None:
|
20 |
+
name = "default"
|
21 |
+
idx = self.incremental_name_counters[name]
|
22 |
+
self.incremental_name_counters[name] += 1
|
23 |
+
return f"{name}_{idx}"
|
24 |
+
|
25 |
+
def reset_incremental_names(self):
|
26 |
+
self.incremental_name_counters.clear()
|
27 |
+
|
28 |
+
@torch.compiler.disable()
|
29 |
+
def get_buffer(self, name):
|
30 |
+
item = self.buffers.get(name)
|
31 |
+
if item is None or self.sequence_num >= len(item):
|
32 |
+
return None
|
33 |
+
return item[self.sequence_num]
|
34 |
+
|
35 |
+
@torch.compiler.disable()
|
36 |
+
def set_buffer(self, name, buffer):
|
37 |
+
curr_item = self.buffers.get(name)
|
38 |
+
if curr_item is None:
|
39 |
+
curr_item = []
|
40 |
+
self.buffers[name] = curr_item
|
41 |
+
curr_item += [None] * (self.sequence_num - len(curr_item) + 1)
|
42 |
+
curr_item[self.sequence_num] = buffer
|
43 |
+
|
44 |
+
def clear_buffers(self):
|
45 |
+
self.sequence_num = 0
|
46 |
+
self.buffers.clear()
|
47 |
+
|
48 |
+
|
49 |
+
@torch.compiler.disable()
|
50 |
+
def get_buffer(name):
|
51 |
+
cache_context = get_current_cache_context()
|
52 |
+
assert cache_context is not None, "cache_context must be set before"
|
53 |
+
return cache_context.get_buffer(name)
|
54 |
+
|
55 |
+
|
56 |
+
@torch.compiler.disable()
|
57 |
+
def set_buffer(name, buffer):
|
58 |
+
cache_context = get_current_cache_context()
|
59 |
+
assert cache_context is not None, "cache_context must be set before"
|
60 |
+
cache_context.set_buffer(name, buffer)
|
61 |
+
|
62 |
+
|
63 |
+
_current_cache_context = None
|
64 |
+
|
65 |
+
|
66 |
+
def create_cache_context():
|
67 |
+
return CacheContext()
|
68 |
+
|
69 |
+
|
70 |
+
def get_current_cache_context():
|
71 |
+
return _current_cache_context
|
72 |
+
|
73 |
+
|
74 |
+
def set_current_cache_context(cache_context=None):
|
75 |
+
global _current_cache_context
|
76 |
+
_current_cache_context = cache_context
|
77 |
+
|
78 |
+
|
79 |
+
@contextlib.contextmanager
|
80 |
+
def cache_context(cache_context):
|
81 |
+
global _current_cache_context
|
82 |
+
old_cache_context = _current_cache_context
|
83 |
+
_current_cache_context = cache_context
|
84 |
+
try:
|
85 |
+
yield
|
86 |
+
finally:
|
87 |
+
_current_cache_context = old_cache_context
|
88 |
+
|
89 |
+
|
90 |
+
def patch_get_output_data():
|
91 |
+
import execution
|
92 |
+
|
93 |
+
get_output_data = getattr(execution, "get_output_data", None)
|
94 |
+
if get_output_data is None:
|
95 |
+
return
|
96 |
+
|
97 |
+
if getattr(get_output_data, "_patched", False):
|
98 |
+
return
|
99 |
+
|
100 |
+
def new_get_output_data(*args, **kwargs):
|
101 |
+
out = get_output_data(*args, **kwargs)
|
102 |
+
cache_context = get_current_cache_context()
|
103 |
+
if cache_context is not None:
|
104 |
+
cache_context.clear_buffers()
|
105 |
+
set_current_cache_context(None)
|
106 |
+
return out
|
107 |
+
|
108 |
+
new_get_output_data._patched = True
|
109 |
+
execution.get_output_data = new_get_output_data
|
110 |
+
|
111 |
+
|
112 |
+
@torch.compiler.disable()
|
113 |
+
def are_two_tensors_similar(t1, t2, *, threshold, only_shape=False):
|
114 |
+
if t1.shape != t2.shape:
|
115 |
+
return False
|
116 |
+
elif only_shape:
|
117 |
+
return True
|
118 |
+
mean_diff = (t1 - t2).abs().mean()
|
119 |
+
mean_t1 = t1.abs().mean()
|
120 |
+
diff = mean_diff / mean_t1
|
121 |
+
return diff.item() < threshold
|
122 |
+
|
123 |
+
|
124 |
+
@torch.compiler.disable()
|
125 |
+
def apply_prev_hidden_states_residual(hidden_states,
|
126 |
+
encoder_hidden_states=None):
|
127 |
+
hidden_states_residual = get_buffer("hidden_states_residual")
|
128 |
+
assert hidden_states_residual is not None, "hidden_states_residual must be set before"
|
129 |
+
hidden_states = hidden_states_residual + hidden_states
|
130 |
+
hidden_states = hidden_states.contiguous()
|
131 |
+
|
132 |
+
if encoder_hidden_states is None:
|
133 |
+
return hidden_states
|
134 |
+
|
135 |
+
encoder_hidden_states_residual = get_buffer(
|
136 |
+
"encoder_hidden_states_residual")
|
137 |
+
if encoder_hidden_states_residual is None:
|
138 |
+
encoder_hidden_states = None
|
139 |
+
else:
|
140 |
+
encoder_hidden_states = encoder_hidden_states_residual + encoder_hidden_states
|
141 |
+
encoder_hidden_states = encoder_hidden_states.contiguous()
|
142 |
+
|
143 |
+
return hidden_states, encoder_hidden_states
|
144 |
+
|
145 |
+
|
146 |
+
@torch.compiler.disable()
|
147 |
+
def get_can_use_cache(first_hidden_states_residual,
|
148 |
+
threshold,
|
149 |
+
parallelized=False,
|
150 |
+
validation_function=None):
|
151 |
+
prev_first_hidden_states_residual = get_buffer(
|
152 |
+
"first_hidden_states_residual")
|
153 |
+
cache_context = get_current_cache_context()
|
154 |
+
if cache_context is None or prev_first_hidden_states_residual is None:
|
155 |
+
return False
|
156 |
+
can_use_cache = are_two_tensors_similar(
|
157 |
+
prev_first_hidden_states_residual,
|
158 |
+
first_hidden_states_residual,
|
159 |
+
threshold=threshold,
|
160 |
+
only_shape=cache_context.sequence_num > 0,
|
161 |
+
)
|
162 |
+
if cache_context.sequence_num > 0:
|
163 |
+
cache_context.use_cache &= can_use_cache
|
164 |
+
else:
|
165 |
+
if validation_function is not None:
|
166 |
+
can_use_cache = validation_function(can_use_cache)
|
167 |
+
cache_context.use_cache = can_use_cache
|
168 |
+
return cache_context.use_cache
|
169 |
+
|
170 |
+
|
171 |
+
class CachedTransformerBlocks(torch.nn.Module):
|
172 |
+
|
173 |
+
def __init__(
|
174 |
+
self,
|
175 |
+
transformer_blocks,
|
176 |
+
single_transformer_blocks=None,
|
177 |
+
*,
|
178 |
+
residual_diff_threshold,
|
179 |
+
validate_can_use_cache_function=None,
|
180 |
+
return_hidden_states_first=True,
|
181 |
+
accept_hidden_states_first=True,
|
182 |
+
cat_hidden_states_first=False,
|
183 |
+
return_hidden_states_only=False,
|
184 |
+
clone_original_hidden_states=False,
|
185 |
+
):
|
186 |
+
super().__init__()
|
187 |
+
self.transformer_blocks = transformer_blocks
|
188 |
+
self.single_transformer_blocks = single_transformer_blocks
|
189 |
+
self.residual_diff_threshold = residual_diff_threshold
|
190 |
+
self.validate_can_use_cache_function = validate_can_use_cache_function
|
191 |
+
self.return_hidden_states_first = return_hidden_states_first
|
192 |
+
self.accept_hidden_states_first = accept_hidden_states_first
|
193 |
+
self.cat_hidden_states_first = cat_hidden_states_first
|
194 |
+
self.return_hidden_states_only = return_hidden_states_only
|
195 |
+
self.clone_original_hidden_states = clone_original_hidden_states
|
196 |
+
|
197 |
+
def forward(self, *args, **kwargs):
|
198 |
+
img_arg_name = None
|
199 |
+
if "img" in kwargs:
|
200 |
+
img_arg_name = "img"
|
201 |
+
elif "hidden_states" in kwargs:
|
202 |
+
img_arg_name = "hidden_states"
|
203 |
+
txt_arg_name = None
|
204 |
+
if "txt" in kwargs:
|
205 |
+
txt_arg_name = "txt"
|
206 |
+
elif "context" in kwargs:
|
207 |
+
txt_arg_name = "context"
|
208 |
+
elif "encoder_hidden_states" in kwargs:
|
209 |
+
txt_arg_name = "encoder_hidden_states"
|
210 |
+
if self.accept_hidden_states_first:
|
211 |
+
if args:
|
212 |
+
img = args[0]
|
213 |
+
args = args[1:]
|
214 |
+
else:
|
215 |
+
img = kwargs.pop(img_arg_name)
|
216 |
+
if args:
|
217 |
+
txt = args[0]
|
218 |
+
args = args[1:]
|
219 |
+
else:
|
220 |
+
txt = kwargs.pop(txt_arg_name)
|
221 |
+
else:
|
222 |
+
if args:
|
223 |
+
txt = args[0]
|
224 |
+
args = args[1:]
|
225 |
+
else:
|
226 |
+
txt = kwargs.pop(txt_arg_name)
|
227 |
+
if args:
|
228 |
+
img = args[0]
|
229 |
+
args = args[1:]
|
230 |
+
else:
|
231 |
+
img = kwargs.pop(img_arg_name)
|
232 |
+
hidden_states = img
|
233 |
+
encoder_hidden_states = txt
|
234 |
+
if self.residual_diff_threshold <= 0.0:
|
235 |
+
for block in self.transformer_blocks:
|
236 |
+
if txt_arg_name == "encoder_hidden_states":
|
237 |
+
hidden_states = block(
|
238 |
+
hidden_states,
|
239 |
+
*args,
|
240 |
+
encoder_hidden_states=encoder_hidden_states,
|
241 |
+
**kwargs)
|
242 |
+
else:
|
243 |
+
if self.accept_hidden_states_first:
|
244 |
+
hidden_states = block(hidden_states,
|
245 |
+
encoder_hidden_states, *args,
|
246 |
+
**kwargs)
|
247 |
+
else:
|
248 |
+
hidden_states = block(encoder_hidden_states,
|
249 |
+
hidden_states, *args, **kwargs)
|
250 |
+
if not self.return_hidden_states_only:
|
251 |
+
hidden_states, encoder_hidden_states = hidden_states
|
252 |
+
if not self.return_hidden_states_first:
|
253 |
+
hidden_states, encoder_hidden_states = encoder_hidden_states, hidden_states
|
254 |
+
if self.single_transformer_blocks is not None:
|
255 |
+
hidden_states = torch.cat(
|
256 |
+
[hidden_states, encoder_hidden_states]
|
257 |
+
if self.cat_hidden_states_first else
|
258 |
+
[encoder_hidden_states, hidden_states],
|
259 |
+
dim=1)
|
260 |
+
for block in self.single_transformer_blocks:
|
261 |
+
hidden_states = block(hidden_states, *args, **kwargs)
|
262 |
+
hidden_states = hidden_states[:,
|
263 |
+
encoder_hidden_states.shape[1]:]
|
264 |
+
if self.return_hidden_states_only:
|
265 |
+
return hidden_states
|
266 |
+
else:
|
267 |
+
return ((hidden_states, encoder_hidden_states)
|
268 |
+
if self.return_hidden_states_first else
|
269 |
+
(encoder_hidden_states, hidden_states))
|
270 |
+
|
271 |
+
original_hidden_states = hidden_states
|
272 |
+
if self.clone_original_hidden_states:
|
273 |
+
original_hidden_states = original_hidden_states.clone()
|
274 |
+
first_transformer_block = self.transformer_blocks[0]
|
275 |
+
if txt_arg_name == "encoder_hidden_states":
|
276 |
+
hidden_states = first_transformer_block(
|
277 |
+
hidden_states,
|
278 |
+
*args,
|
279 |
+
encoder_hidden_states=encoder_hidden_states,
|
280 |
+
**kwargs)
|
281 |
+
else:
|
282 |
+
if self.accept_hidden_states_first:
|
283 |
+
hidden_states = first_transformer_block(
|
284 |
+
hidden_states, encoder_hidden_states, *args, **kwargs)
|
285 |
+
else:
|
286 |
+
hidden_states = first_transformer_block(
|
287 |
+
encoder_hidden_states, hidden_states, *args, **kwargs)
|
288 |
+
if not self.return_hidden_states_only:
|
289 |
+
hidden_states, encoder_hidden_states = hidden_states
|
290 |
+
if not self.return_hidden_states_first:
|
291 |
+
hidden_states, encoder_hidden_states = encoder_hidden_states, hidden_states
|
292 |
+
first_hidden_states_residual = hidden_states - original_hidden_states
|
293 |
+
del original_hidden_states
|
294 |
+
|
295 |
+
can_use_cache = get_can_use_cache(
|
296 |
+
first_hidden_states_residual,
|
297 |
+
threshold=self.residual_diff_threshold,
|
298 |
+
validation_function=self.validate_can_use_cache_function,
|
299 |
+
)
|
300 |
+
|
301 |
+
torch._dynamo.graph_break()
|
302 |
+
if can_use_cache:
|
303 |
+
del first_hidden_states_residual
|
304 |
+
hidden_states, encoder_hidden_states = apply_prev_hidden_states_residual(
|
305 |
+
hidden_states, encoder_hidden_states)
|
306 |
+
else:
|
307 |
+
set_buffer("first_hidden_states_residual",
|
308 |
+
first_hidden_states_residual)
|
309 |
+
del first_hidden_states_residual
|
310 |
+
(
|
311 |
+
hidden_states,
|
312 |
+
encoder_hidden_states,
|
313 |
+
hidden_states_residual,
|
314 |
+
encoder_hidden_states_residual,
|
315 |
+
) = self.call_remaining_transformer_blocks(
|
316 |
+
hidden_states,
|
317 |
+
encoder_hidden_states,
|
318 |
+
*args,
|
319 |
+
txt_arg_name=txt_arg_name,
|
320 |
+
**kwargs)
|
321 |
+
set_buffer("hidden_states_residual", hidden_states_residual)
|
322 |
+
if encoder_hidden_states_residual is not None:
|
323 |
+
set_buffer("encoder_hidden_states_residual",
|
324 |
+
encoder_hidden_states_residual)
|
325 |
+
torch._dynamo.graph_break()
|
326 |
+
|
327 |
+
if self.return_hidden_states_only:
|
328 |
+
return hidden_states
|
329 |
+
else:
|
330 |
+
return ((hidden_states, encoder_hidden_states)
|
331 |
+
if self.return_hidden_states_first else
|
332 |
+
(encoder_hidden_states, hidden_states))
|
333 |
+
|
334 |
+
def call_remaining_transformer_blocks(self,
|
335 |
+
hidden_states,
|
336 |
+
encoder_hidden_states,
|
337 |
+
*args,
|
338 |
+
txt_arg_name=None,
|
339 |
+
**kwargs):
|
340 |
+
original_hidden_states = hidden_states
|
341 |
+
original_encoder_hidden_states = encoder_hidden_states
|
342 |
+
if self.clone_original_hidden_states:
|
343 |
+
original_hidden_states = original_hidden_states.clone()
|
344 |
+
original_encoder_hidden_states = original_encoder_hidden_states.clone(
|
345 |
+
)
|
346 |
+
for block in self.transformer_blocks[1:]:
|
347 |
+
if txt_arg_name == "encoder_hidden_states":
|
348 |
+
hidden_states = block(
|
349 |
+
hidden_states,
|
350 |
+
*args,
|
351 |
+
encoder_hidden_states=encoder_hidden_states,
|
352 |
+
**kwargs)
|
353 |
+
else:
|
354 |
+
if self.accept_hidden_states_first:
|
355 |
+
hidden_states = block(hidden_states, encoder_hidden_states,
|
356 |
+
*args, **kwargs)
|
357 |
+
else:
|
358 |
+
hidden_states = block(encoder_hidden_states, hidden_states,
|
359 |
+
*args, **kwargs)
|
360 |
+
if not self.return_hidden_states_only:
|
361 |
+
hidden_states, encoder_hidden_states = hidden_states
|
362 |
+
if not self.return_hidden_states_first:
|
363 |
+
hidden_states, encoder_hidden_states = encoder_hidden_states, hidden_states
|
364 |
+
if self.single_transformer_blocks is not None:
|
365 |
+
hidden_states = torch.cat([hidden_states, encoder_hidden_states]
|
366 |
+
if self.cat_hidden_states_first else
|
367 |
+
[encoder_hidden_states, hidden_states],
|
368 |
+
dim=1)
|
369 |
+
for block in self.single_transformer_blocks:
|
370 |
+
hidden_states = block(hidden_states, *args, **kwargs)
|
371 |
+
if self.cat_hidden_states_first:
|
372 |
+
hidden_states, encoder_hidden_states = hidden_states.split(
|
373 |
+
[
|
374 |
+
hidden_states.shape[1] -
|
375 |
+
encoder_hidden_states.shape[1],
|
376 |
+
encoder_hidden_states.shape[1]
|
377 |
+
],
|
378 |
+
dim=1)
|
379 |
+
else:
|
380 |
+
encoder_hidden_states, hidden_states = hidden_states.split(
|
381 |
+
[
|
382 |
+
encoder_hidden_states.shape[1],
|
383 |
+
hidden_states.shape[1] - encoder_hidden_states.shape[1]
|
384 |
+
],
|
385 |
+
dim=1)
|
386 |
+
|
387 |
+
hidden_states_shape = hidden_states.shape
|
388 |
+
hidden_states = hidden_states.flatten().contiguous().reshape(
|
389 |
+
hidden_states_shape)
|
390 |
+
|
391 |
+
if encoder_hidden_states is not None:
|
392 |
+
encoder_hidden_states_shape = encoder_hidden_states.shape
|
393 |
+
encoder_hidden_states = encoder_hidden_states.flatten().contiguous(
|
394 |
+
).reshape(encoder_hidden_states_shape)
|
395 |
+
|
396 |
+
hidden_states_residual = hidden_states - original_hidden_states
|
397 |
+
if encoder_hidden_states is None:
|
398 |
+
encoder_hidden_states_residual = None
|
399 |
+
else:
|
400 |
+
encoder_hidden_states_residual = encoder_hidden_states - original_encoder_hidden_states
|
401 |
+
return hidden_states, encoder_hidden_states, hidden_states_residual, encoder_hidden_states_residual
|
402 |
+
|
403 |
+
|
404 |
+
# Based on 90f349f93df3083a507854d7fc7c3e1bb9014e24
|
405 |
+
def create_patch_unet_model__forward(model,
|
406 |
+
*,
|
407 |
+
residual_diff_threshold,
|
408 |
+
validate_can_use_cache_function=None):
|
409 |
+
from comfy.ldm.modules.diffusionmodules.openaimodel import timestep_embedding, forward_timestep_embed, apply_control
|
410 |
+
|
411 |
+
def call_remaining_blocks(self, transformer_options, control,
|
412 |
+
transformer_patches, hs, h, *args, **kwargs):
|
413 |
+
original_hidden_states = h
|
414 |
+
|
415 |
+
for id, module in enumerate(self.input_blocks):
|
416 |
+
if id < 2:
|
417 |
+
continue
|
418 |
+
transformer_options["block"] = ("input", id)
|
419 |
+
h = forward_timestep_embed(module, h, *args, **kwargs)
|
420 |
+
h = apply_control(h, control, 'input')
|
421 |
+
if "input_block_patch" in transformer_patches:
|
422 |
+
patch = transformer_patches["input_block_patch"]
|
423 |
+
for p in patch:
|
424 |
+
h = p(h, transformer_options)
|
425 |
+
|
426 |
+
hs.append(h)
|
427 |
+
if "input_block_patch_after_skip" in transformer_patches:
|
428 |
+
patch = transformer_patches["input_block_patch_after_skip"]
|
429 |
+
for p in patch:
|
430 |
+
h = p(h, transformer_options)
|
431 |
+
|
432 |
+
transformer_options["block"] = ("middle", 0)
|
433 |
+
if self.middle_block is not None:
|
434 |
+
h = forward_timestep_embed(self.middle_block, h, *args, **kwargs)
|
435 |
+
h = apply_control(h, control, 'middle')
|
436 |
+
|
437 |
+
for id, module in enumerate(self.output_blocks):
|
438 |
+
transformer_options["block"] = ("output", id)
|
439 |
+
hsp = hs.pop()
|
440 |
+
hsp = apply_control(hsp, control, 'output')
|
441 |
+
|
442 |
+
if "output_block_patch" in transformer_patches:
|
443 |
+
patch = transformer_patches["output_block_patch"]
|
444 |
+
for p in patch:
|
445 |
+
h, hsp = p(h, hsp, transformer_options)
|
446 |
+
|
447 |
+
h = torch.cat([h, hsp], dim=1)
|
448 |
+
del hsp
|
449 |
+
if len(hs) > 0:
|
450 |
+
output_shape = hs[-1].shape
|
451 |
+
else:
|
452 |
+
output_shape = None
|
453 |
+
h = forward_timestep_embed(module, h, *args, output_shape,
|
454 |
+
**kwargs)
|
455 |
+
hidden_states_residual = h - original_hidden_states
|
456 |
+
return h, hidden_states_residual
|
457 |
+
|
458 |
+
def unet_model__forward(self,
|
459 |
+
x,
|
460 |
+
timesteps=None,
|
461 |
+
context=None,
|
462 |
+
y=None,
|
463 |
+
control=None,
|
464 |
+
transformer_options={},
|
465 |
+
**kwargs):
|
466 |
+
"""
|
467 |
+
Apply the model to an input batch.
|
468 |
+
:param x: an [N x C x ...] Tensor of inputs.
|
469 |
+
:param timesteps: a 1-D batch of timesteps.
|
470 |
+
:param context: conditioning plugged in via crossattn
|
471 |
+
:param y: an [N] Tensor of labels, if class-conditional.
|
472 |
+
:return: an [N x C x ...] Tensor of outputs.
|
473 |
+
"""
|
474 |
+
transformer_options["original_shape"] = list(x.shape)
|
475 |
+
transformer_options["transformer_index"] = 0
|
476 |
+
transformer_patches = transformer_options.get("patches", {})
|
477 |
+
|
478 |
+
num_video_frames = kwargs.get("num_video_frames",
|
479 |
+
self.default_num_video_frames)
|
480 |
+
image_only_indicator = kwargs.get("image_only_indicator", None)
|
481 |
+
time_context = kwargs.get("time_context", None)
|
482 |
+
|
483 |
+
assert (y is not None) == (
|
484 |
+
self.num_classes is not None
|
485 |
+
), "must specify y if and only if the model is class-conditional"
|
486 |
+
hs = []
|
487 |
+
t_emb = timestep_embedding(timesteps,
|
488 |
+
self.model_channels,
|
489 |
+
repeat_only=False).to(x.dtype)
|
490 |
+
emb = self.time_embed(t_emb)
|
491 |
+
|
492 |
+
if "emb_patch" in transformer_patches:
|
493 |
+
patch = transformer_patches["emb_patch"]
|
494 |
+
for p in patch:
|
495 |
+
emb = p(emb, self.model_channels, transformer_options)
|
496 |
+
|
497 |
+
if self.num_classes is not None:
|
498 |
+
assert y.shape[0] == x.shape[0]
|
499 |
+
emb = emb + self.label_emb(y)
|
500 |
+
|
501 |
+
can_use_cache = False
|
502 |
+
|
503 |
+
h = x
|
504 |
+
for id, module in enumerate(self.input_blocks):
|
505 |
+
if id >= 2:
|
506 |
+
break
|
507 |
+
transformer_options["block"] = ("input", id)
|
508 |
+
if id == 1:
|
509 |
+
original_h = h
|
510 |
+
h = forward_timestep_embed(
|
511 |
+
module,
|
512 |
+
h,
|
513 |
+
emb,
|
514 |
+
context,
|
515 |
+
transformer_options,
|
516 |
+
time_context=time_context,
|
517 |
+
num_video_frames=num_video_frames,
|
518 |
+
image_only_indicator=image_only_indicator)
|
519 |
+
h = apply_control(h, control, 'input')
|
520 |
+
if "input_block_patch" in transformer_patches:
|
521 |
+
patch = transformer_patches["input_block_patch"]
|
522 |
+
for p in patch:
|
523 |
+
h = p(h, transformer_options)
|
524 |
+
|
525 |
+
hs.append(h)
|
526 |
+
if "input_block_patch_after_skip" in transformer_patches:
|
527 |
+
patch = transformer_patches["input_block_patch_after_skip"]
|
528 |
+
for p in patch:
|
529 |
+
h = p(h, transformer_options)
|
530 |
+
|
531 |
+
if id == 1:
|
532 |
+
first_hidden_states_residual = h - original_h
|
533 |
+
can_use_cache = get_can_use_cache(
|
534 |
+
first_hidden_states_residual,
|
535 |
+
threshold=residual_diff_threshold,
|
536 |
+
validation_function=validate_can_use_cache_function,
|
537 |
+
)
|
538 |
+
if not can_use_cache:
|
539 |
+
set_buffer("first_hidden_states_residual",
|
540 |
+
first_hidden_states_residual)
|
541 |
+
del first_hidden_states_residual
|
542 |
+
|
543 |
+
torch._dynamo.graph_break()
|
544 |
+
if can_use_cache:
|
545 |
+
h = apply_prev_hidden_states_residual(h)
|
546 |
+
else:
|
547 |
+
h, hidden_states_residual = call_remaining_blocks(
|
548 |
+
self,
|
549 |
+
transformer_options,
|
550 |
+
control,
|
551 |
+
transformer_patches,
|
552 |
+
hs,
|
553 |
+
h,
|
554 |
+
emb,
|
555 |
+
context,
|
556 |
+
transformer_options,
|
557 |
+
time_context=time_context,
|
558 |
+
num_video_frames=num_video_frames,
|
559 |
+
image_only_indicator=image_only_indicator)
|
560 |
+
set_buffer("hidden_states_residual", hidden_states_residual)
|
561 |
+
torch._dynamo.graph_break()
|
562 |
+
|
563 |
+
h = h.type(x.dtype)
|
564 |
+
|
565 |
+
if self.predict_codebook_ids:
|
566 |
+
return self.id_predictor(h)
|
567 |
+
else:
|
568 |
+
return self.out(h)
|
569 |
+
|
570 |
+
new__forward = unet_model__forward.__get__(model)
|
571 |
+
|
572 |
+
@contextlib.contextmanager
|
573 |
+
def patch__forward():
|
574 |
+
with unittest.mock.patch.object(model, "_forward", new__forward):
|
575 |
+
yield
|
576 |
+
|
577 |
+
return patch__forward
|
578 |
+
|
579 |
+
|
580 |
+
# Based on 90f349f93df3083a507854d7fc7c3e1bb9014e24
|
581 |
+
def create_patch_flux_forward_orig(model,
|
582 |
+
*,
|
583 |
+
residual_diff_threshold,
|
584 |
+
validate_can_use_cache_function=None):
|
585 |
+
from torch import Tensor
|
586 |
+
from comfy.ldm.flux.model import timestep_embedding
|
587 |
+
|
588 |
+
def call_remaining_blocks(self, blocks_replace, control, img, txt, vec, pe,
|
589 |
+
attn_mask, ca_idx, timesteps, transformer_options):
|
590 |
+
original_hidden_states = img
|
591 |
+
|
592 |
+
extra_block_forward_kwargs = {}
|
593 |
+
if attn_mask is not None:
|
594 |
+
extra_block_forward_kwargs["attn_mask"] = attn_mask
|
595 |
+
|
596 |
+
for i, block in enumerate(self.double_blocks):
|
597 |
+
if i < 1:
|
598 |
+
continue
|
599 |
+
if ("double_block", i) in blocks_replace:
|
600 |
+
|
601 |
+
def block_wrap(args):
|
602 |
+
out = {}
|
603 |
+
out["img"], out["txt"] = block(
|
604 |
+
img=args["img"],
|
605 |
+
txt=args["txt"],
|
606 |
+
vec=args["vec"],
|
607 |
+
pe=args["pe"],
|
608 |
+
**extra_block_forward_kwargs)
|
609 |
+
return out
|
610 |
+
|
611 |
+
out = blocks_replace[("double_block",
|
612 |
+
i)]({
|
613 |
+
"img": img,
|
614 |
+
"txt": txt,
|
615 |
+
"vec": vec,
|
616 |
+
"pe": pe,
|
617 |
+
**extra_block_forward_kwargs
|
618 |
+
}, {
|
619 |
+
"original_block": block_wrap,
|
620 |
+
"transformer_options": transformer_options
|
621 |
+
})
|
622 |
+
txt = out["txt"]
|
623 |
+
img = out["img"]
|
624 |
+
else:
|
625 |
+
img, txt = block(img=img,
|
626 |
+
txt=txt,
|
627 |
+
vec=vec,
|
628 |
+
pe=pe,
|
629 |
+
**extra_block_forward_kwargs)
|
630 |
+
|
631 |
+
if control is not None: # Controlnet
|
632 |
+
control_i = control.get("input")
|
633 |
+
if i < len(control_i):
|
634 |
+
add = control_i[i]
|
635 |
+
if add is not None:
|
636 |
+
img += add
|
637 |
+
|
638 |
+
# PuLID attention
|
639 |
+
if getattr(self, "pulid_data", {}):
|
640 |
+
if i % self.pulid_double_interval == 0:
|
641 |
+
# Will calculate influence of all pulid nodes at once
|
642 |
+
for _, node_data in self.pulid_data.items():
|
643 |
+
if torch.any((node_data['sigma_start'] >= timesteps)
|
644 |
+
& (timesteps >= node_data['sigma_end'])):
|
645 |
+
img = img + node_data['weight'] * self.pulid_ca[
|
646 |
+
ca_idx](node_data['embedding'], img)
|
647 |
+
ca_idx += 1
|
648 |
+
|
649 |
+
img = torch.cat((txt, img), 1)
|
650 |
+
|
651 |
+
for i, block in enumerate(self.single_blocks):
|
652 |
+
if ("single_block", i) in blocks_replace:
|
653 |
+
|
654 |
+
def block_wrap(args):
|
655 |
+
out = {}
|
656 |
+
out["img"] = block(args["img"],
|
657 |
+
vec=args["vec"],
|
658 |
+
pe=args["pe"],
|
659 |
+
**extra_block_forward_kwargs)
|
660 |
+
return out
|
661 |
+
|
662 |
+
out = blocks_replace[("single_block",
|
663 |
+
i)]({
|
664 |
+
"img": img,
|
665 |
+
"vec": vec,
|
666 |
+
"pe": pe,
|
667 |
+
**extra_block_forward_kwargs
|
668 |
+
}, {
|
669 |
+
"original_block": block_wrap,
|
670 |
+
"transformer_options": transformer_options
|
671 |
+
})
|
672 |
+
img = out["img"]
|
673 |
+
else:
|
674 |
+
img = block(img, vec=vec, pe=pe, **extra_block_forward_kwargs)
|
675 |
+
|
676 |
+
if control is not None: # Controlnet
|
677 |
+
control_o = control.get("output")
|
678 |
+
if i < len(control_o):
|
679 |
+
add = control_o[i]
|
680 |
+
if add is not None:
|
681 |
+
img[:, txt.shape[1]:, ...] += add
|
682 |
+
|
683 |
+
# PuLID attention
|
684 |
+
if getattr(self, "pulid_data", {}):
|
685 |
+
real_img, txt = img[:, txt.shape[1]:,
|
686 |
+
...], img[:, :txt.shape[1], ...]
|
687 |
+
if i % self.pulid_single_interval == 0:
|
688 |
+
# Will calculate influence of all nodes at once
|
689 |
+
for _, node_data in self.pulid_data.items():
|
690 |
+
if torch.any((node_data['sigma_start'] >= timesteps)
|
691 |
+
& (timesteps >= node_data['sigma_end'])):
|
692 |
+
real_img = real_img + node_data[
|
693 |
+
'weight'] * self.pulid_ca[ca_idx](
|
694 |
+
node_data['embedding'], real_img)
|
695 |
+
ca_idx += 1
|
696 |
+
img = torch.cat((txt, real_img), 1)
|
697 |
+
|
698 |
+
img = img[:, txt.shape[1]:, ...]
|
699 |
+
|
700 |
+
img = img.contiguous()
|
701 |
+
hidden_states_residual = img - original_hidden_states
|
702 |
+
return img, hidden_states_residual
|
703 |
+
|
704 |
+
def forward_orig(
|
705 |
+
self,
|
706 |
+
img: Tensor,
|
707 |
+
img_ids: Tensor,
|
708 |
+
txt: Tensor,
|
709 |
+
txt_ids: Tensor,
|
710 |
+
timesteps: Tensor,
|
711 |
+
y: Tensor,
|
712 |
+
guidance: Tensor = None,
|
713 |
+
control=None,
|
714 |
+
transformer_options={},
|
715 |
+
attn_mask: Tensor = None,
|
716 |
+
) -> Tensor:
|
717 |
+
patches_replace = transformer_options.get("patches_replace", {})
|
718 |
+
if img.ndim != 3 or txt.ndim != 3:
|
719 |
+
raise ValueError(
|
720 |
+
"Input img and txt tensors must have 3 dimensions.")
|
721 |
+
|
722 |
+
# running on sequences img
|
723 |
+
img = self.img_in(img)
|
724 |
+
vec = self.time_in(timestep_embedding(timesteps, 256).to(img.dtype))
|
725 |
+
if self.params.guidance_embed:
|
726 |
+
if guidance is None:
|
727 |
+
raise ValueError(
|
728 |
+
"Didn't get guidance strength for guidance distilled model."
|
729 |
+
)
|
730 |
+
vec = vec + self.guidance_in(
|
731 |
+
timestep_embedding(guidance, 256).to(img.dtype))
|
732 |
+
|
733 |
+
vec = vec + self.vector_in(y[:, :self.params.vec_in_dim])
|
734 |
+
txt = self.txt_in(txt)
|
735 |
+
|
736 |
+
ids = torch.cat((txt_ids, img_ids), dim=1)
|
737 |
+
pe = self.pe_embedder(ids)
|
738 |
+
|
739 |
+
ca_idx = 0
|
740 |
+
extra_block_forward_kwargs = {}
|
741 |
+
if attn_mask is not None:
|
742 |
+
extra_block_forward_kwargs["attn_mask"] = attn_mask
|
743 |
+
blocks_replace = patches_replace.get("dit", {})
|
744 |
+
for i, block in enumerate(self.double_blocks):
|
745 |
+
if i >= 1:
|
746 |
+
break
|
747 |
+
if ("double_block", i) in blocks_replace:
|
748 |
+
|
749 |
+
def block_wrap(args):
|
750 |
+
out = {}
|
751 |
+
out["img"], out["txt"] = block(
|
752 |
+
img=args["img"],
|
753 |
+
txt=args["txt"],
|
754 |
+
vec=args["vec"],
|
755 |
+
pe=args["pe"],
|
756 |
+
**extra_block_forward_kwargs)
|
757 |
+
return out
|
758 |
+
|
759 |
+
out = blocks_replace[("double_block",
|
760 |
+
i)]({
|
761 |
+
"img": img,
|
762 |
+
"txt": txt,
|
763 |
+
"vec": vec,
|
764 |
+
"pe": pe,
|
765 |
+
**extra_block_forward_kwargs
|
766 |
+
}, {
|
767 |
+
"original_block": block_wrap,
|
768 |
+
"transformer_options": transformer_options
|
769 |
+
})
|
770 |
+
txt = out["txt"]
|
771 |
+
img = out["img"]
|
772 |
+
else:
|
773 |
+
img, txt = block(img=img,
|
774 |
+
txt=txt,
|
775 |
+
vec=vec,
|
776 |
+
pe=pe,
|
777 |
+
**extra_block_forward_kwargs)
|
778 |
+
|
779 |
+
if control is not None: # Controlnet
|
780 |
+
control_i = control.get("input")
|
781 |
+
if i < len(control_i):
|
782 |
+
add = control_i[i]
|
783 |
+
if add is not None:
|
784 |
+
img += add
|
785 |
+
|
786 |
+
# PuLID attention
|
787 |
+
if getattr(self, "pulid_data", {}):
|
788 |
+
if i % self.pulid_double_interval == 0:
|
789 |
+
# Will calculate influence of all pulid nodes at once
|
790 |
+
for _, node_data in self.pulid_data.items():
|
791 |
+
if torch.any((node_data['sigma_start'] >= timesteps)
|
792 |
+
& (timesteps >= node_data['sigma_end'])):
|
793 |
+
img = img + node_data['weight'] * self.pulid_ca[
|
794 |
+
ca_idx](node_data['embedding'], img)
|
795 |
+
ca_idx += 1
|
796 |
+
|
797 |
+
if i == 0:
|
798 |
+
first_hidden_states_residual = img
|
799 |
+
can_use_cache = get_can_use_cache(
|
800 |
+
first_hidden_states_residual,
|
801 |
+
threshold=residual_diff_threshold,
|
802 |
+
validation_function=validate_can_use_cache_function,
|
803 |
+
)
|
804 |
+
if not can_use_cache:
|
805 |
+
set_buffer("first_hidden_states_residual",
|
806 |
+
first_hidden_states_residual)
|
807 |
+
del first_hidden_states_residual
|
808 |
+
|
809 |
+
torch._dynamo.graph_break()
|
810 |
+
if can_use_cache:
|
811 |
+
img = apply_prev_hidden_states_residual(img)
|
812 |
+
else:
|
813 |
+
img, hidden_states_residual = call_remaining_blocks(
|
814 |
+
self,
|
815 |
+
blocks_replace,
|
816 |
+
control,
|
817 |
+
img,
|
818 |
+
txt,
|
819 |
+
vec,
|
820 |
+
pe,
|
821 |
+
attn_mask,
|
822 |
+
ca_idx,
|
823 |
+
timesteps,
|
824 |
+
transformer_options,
|
825 |
+
)
|
826 |
+
set_buffer("hidden_states_residual", hidden_states_residual)
|
827 |
+
torch._dynamo.graph_break()
|
828 |
+
|
829 |
+
img = self.final_layer(img,
|
830 |
+
vec) # (N, T, patch_size ** 2 * out_channels)
|
831 |
+
return img
|
832 |
+
|
833 |
+
new_forward_orig = forward_orig.__get__(model)
|
834 |
+
|
835 |
+
@contextlib.contextmanager
|
836 |
+
def patch_forward_orig():
|
837 |
+
with unittest.mock.patch.object(model, "forward_orig",
|
838 |
+
new_forward_orig):
|
839 |
+
yield
|
840 |
+
|
841 |
+
return patch_forward_orig
|
custom_nodes/Comfy-WaveSpeed/misc_nodes.py
ADDED
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import folder_paths
|
2 |
+
import importlib
|
3 |
+
import json
|
4 |
+
import comfy.sd
|
5 |
+
|
6 |
+
from . import utils
|
7 |
+
|
8 |
+
|
9 |
+
class EnhancedLoadDiffusionModel:
|
10 |
+
@classmethod
|
11 |
+
def INPUT_TYPES(s):
|
12 |
+
return {
|
13 |
+
"required": {
|
14 |
+
"unet_name": (folder_paths.get_filename_list("diffusion_models"),),
|
15 |
+
**utils.get_weight_dtype_inputs(),
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
+
RETURN_TYPES = ("MODEL",)
|
20 |
+
FUNCTION = "load_unet"
|
21 |
+
|
22 |
+
CATEGORY = "wavespeed"
|
23 |
+
|
24 |
+
def load_unet(self, unet_name, weight_dtype):
|
25 |
+
model_options = {}
|
26 |
+
model_options = utils.parse_weight_dtype(model_options, weight_dtype)
|
27 |
+
|
28 |
+
unet_path = folder_paths.get_full_path_or_raise("diffusion_models", unet_name)
|
29 |
+
model = comfy.sd.load_diffusion_model(unet_path, model_options=model_options)
|
30 |
+
return (model,)
|
31 |
+
|
32 |
+
|
33 |
+
class EnhancedCompileModel:
|
34 |
+
|
35 |
+
@classmethod
|
36 |
+
def INPUT_TYPES(s):
|
37 |
+
return {
|
38 |
+
"required": {
|
39 |
+
"model": (utils.any_typ,),
|
40 |
+
"is_patcher": (
|
41 |
+
"BOOLEAN",
|
42 |
+
{
|
43 |
+
"default": True,
|
44 |
+
},
|
45 |
+
),
|
46 |
+
"object_to_patch": (
|
47 |
+
"STRING",
|
48 |
+
{
|
49 |
+
"default": "diffusion_model",
|
50 |
+
},
|
51 |
+
),
|
52 |
+
"compiler": (
|
53 |
+
"STRING",
|
54 |
+
{
|
55 |
+
"default": "torch.compile",
|
56 |
+
}
|
57 |
+
),
|
58 |
+
"fullgraph": (
|
59 |
+
"BOOLEAN",
|
60 |
+
{
|
61 |
+
"default": False,
|
62 |
+
},
|
63 |
+
),
|
64 |
+
"dynamic": ("BOOLEAN", {"default": False}),
|
65 |
+
"mode": (
|
66 |
+
"STRING",
|
67 |
+
{
|
68 |
+
"multiline": True,
|
69 |
+
"default": "",
|
70 |
+
},
|
71 |
+
),
|
72 |
+
"options": (
|
73 |
+
"STRING",
|
74 |
+
{
|
75 |
+
"multiline": True,
|
76 |
+
# "default": "{}",
|
77 |
+
},
|
78 |
+
),
|
79 |
+
"disable": (
|
80 |
+
"BOOLEAN",
|
81 |
+
{
|
82 |
+
"default": False,
|
83 |
+
},
|
84 |
+
),
|
85 |
+
"backend": (
|
86 |
+
"STRING",
|
87 |
+
{
|
88 |
+
"default": "inductor",
|
89 |
+
},
|
90 |
+
),
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
RETURN_TYPES = (utils.any_typ,)
|
95 |
+
FUNCTION = "patch"
|
96 |
+
|
97 |
+
CATEGORY = "wavespeed"
|
98 |
+
|
99 |
+
def patch(
|
100 |
+
self,
|
101 |
+
model,
|
102 |
+
is_patcher,
|
103 |
+
object_to_patch,
|
104 |
+
compiler,
|
105 |
+
fullgraph,
|
106 |
+
dynamic,
|
107 |
+
mode,
|
108 |
+
options,
|
109 |
+
disable,
|
110 |
+
backend,
|
111 |
+
):
|
112 |
+
utils.patch_optimized_module()
|
113 |
+
utils.patch_same_meta()
|
114 |
+
|
115 |
+
import_path, function_name = compiler.rsplit(".", 1)
|
116 |
+
module = importlib.import_module(import_path)
|
117 |
+
compile_function = getattr(module, function_name)
|
118 |
+
|
119 |
+
mode = mode if mode else None
|
120 |
+
options = json.loads(options) if options else None
|
121 |
+
|
122 |
+
if compiler == "torch.compile" and backend == "inductor" and dynamic:
|
123 |
+
# TODO: Fix this
|
124 |
+
# File "pytorch/torch/_inductor/fx_passes/post_grad.py", line 643, in same_meta
|
125 |
+
# and statically_known_true(sym_eq(val1.size(), val2.size()))
|
126 |
+
# AttributeError: 'SymInt' object has no attribute 'size'
|
127 |
+
pass
|
128 |
+
|
129 |
+
if is_patcher:
|
130 |
+
patcher = model.clone()
|
131 |
+
else:
|
132 |
+
patcher = model.patcher
|
133 |
+
patcher = patcher.clone()
|
134 |
+
|
135 |
+
patcher.add_object_patch(
|
136 |
+
object_to_patch,
|
137 |
+
compile_function(
|
138 |
+
patcher.get_model_object(object_to_patch),
|
139 |
+
fullgraph=fullgraph,
|
140 |
+
dynamic=dynamic,
|
141 |
+
mode=mode,
|
142 |
+
options=options,
|
143 |
+
disable=disable,
|
144 |
+
backend=backend,
|
145 |
+
),
|
146 |
+
)
|
147 |
+
|
148 |
+
if is_patcher:
|
149 |
+
return (patcher,)
|
150 |
+
else:
|
151 |
+
model.patcher = patcher
|
152 |
+
return (model,)
|
custom_nodes/Comfy-WaveSpeed/patchers.py
ADDED
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import contextlib
|
2 |
+
import copy
|
3 |
+
import unittest
|
4 |
+
|
5 |
+
import comfy.model_management
|
6 |
+
import comfy.model_patcher
|
7 |
+
import comfy.sd
|
8 |
+
import comfy.utils
|
9 |
+
import torch
|
10 |
+
|
11 |
+
|
12 |
+
class QuantizedModelPatcher(comfy.model_patcher.ModelPatcher):
|
13 |
+
_object_to_patch_default = None
|
14 |
+
_quantize_fn_default = None
|
15 |
+
_lowvram_default = True
|
16 |
+
_full_load_default = True
|
17 |
+
_is_quantized_default = False
|
18 |
+
|
19 |
+
_load_device = None
|
20 |
+
_offload_device = None
|
21 |
+
_disable_load = False
|
22 |
+
|
23 |
+
@classmethod
|
24 |
+
@contextlib.contextmanager
|
25 |
+
def _override_defaults(cls, **kwargs):
|
26 |
+
old_defaults = {}
|
27 |
+
for k in ("object_to_patch", "quantize_fn", "lowvram", "full_load"):
|
28 |
+
if k in kwargs:
|
29 |
+
old_defaults[k] = getattr(cls, f"_{k}_default")
|
30 |
+
setattr(cls, f"_{k}_default", kwargs[k])
|
31 |
+
try:
|
32 |
+
yield
|
33 |
+
finally:
|
34 |
+
for k in old_defaults:
|
35 |
+
setattr(cls, f"_{k}_default", old_defaults[k])
|
36 |
+
|
37 |
+
@classmethod
|
38 |
+
@contextlib.contextmanager
|
39 |
+
def _set_disable_load(cls, disable_load=True):
|
40 |
+
old_disable_load = cls._disable_load
|
41 |
+
cls._disable_load = disable_load
|
42 |
+
try:
|
43 |
+
yield
|
44 |
+
finally:
|
45 |
+
cls._disable_load = old_disable_load
|
46 |
+
|
47 |
+
def __init__(self, *args, **kwargs):
|
48 |
+
super().__init__(*args, **kwargs)
|
49 |
+
self._object_to_patch = QuantizedModelPatcher._object_to_patch_default
|
50 |
+
self._quantize_fn = QuantizedModelPatcher._quantize_fn_default
|
51 |
+
self._lowvram = QuantizedModelPatcher._lowvram_default
|
52 |
+
self._full_load = QuantizedModelPatcher._full_load_default
|
53 |
+
self._is_quantized = QuantizedModelPatcher._is_quantized_default
|
54 |
+
|
55 |
+
def load(
|
56 |
+
self, device_to=None, force_patch_weights=False, full_load=False, **kwargs
|
57 |
+
):
|
58 |
+
if self._disable_load:
|
59 |
+
return
|
60 |
+
|
61 |
+
if self._is_quantized:
|
62 |
+
super().load(
|
63 |
+
device_to=device_to,
|
64 |
+
force_patch_weights=force_patch_weights,
|
65 |
+
full_load=full_load,
|
66 |
+
**kwargs,
|
67 |
+
)
|
68 |
+
return
|
69 |
+
|
70 |
+
with unittest.mock.patch.object(
|
71 |
+
QuantizedModelPatcher, "_load_device", self.load_device
|
72 |
+
), unittest.mock.patch.object(
|
73 |
+
QuantizedModelPatcher, "_offload_device", self.offload_device
|
74 |
+
):
|
75 |
+
# always call `patch_weight_to_device` even for lowvram
|
76 |
+
super().load(
|
77 |
+
torch.device("cpu") if self._lowvram else device_to,
|
78 |
+
force_patch_weights=True,
|
79 |
+
full_load=self._full_load or full_load,
|
80 |
+
**kwargs,
|
81 |
+
)
|
82 |
+
|
83 |
+
if self._quantize_fn is not None:
|
84 |
+
if self._object_to_patch is None:
|
85 |
+
target_model = self.model
|
86 |
+
else:
|
87 |
+
target_model = comfy.utils.get_attr(
|
88 |
+
self.model, self._object_to_patch
|
89 |
+
)
|
90 |
+
target_model = self._quantize_fn(target_model)
|
91 |
+
if self._object_to_patch is None:
|
92 |
+
self.model = target_model
|
93 |
+
else:
|
94 |
+
comfy.utils.set_attr(
|
95 |
+
self.model, self._object_to_patch, target_model
|
96 |
+
)
|
97 |
+
|
98 |
+
if self._lowvram:
|
99 |
+
if device_to.type == "cuda":
|
100 |
+
torch.cuda.empty_cache()
|
101 |
+
self.model.to(device_to)
|
102 |
+
|
103 |
+
self._is_quantized = True
|
104 |
+
|
105 |
+
# def model_size(self):
|
106 |
+
# return super().model_size() // 2
|
107 |
+
|
108 |
+
def clone(self, *args, **kwargs):
|
109 |
+
n = QuantizedModelPatcher(
|
110 |
+
self.model,
|
111 |
+
self.load_device,
|
112 |
+
self.offload_device,
|
113 |
+
self.size,
|
114 |
+
weight_inplace_update=self.weight_inplace_update,
|
115 |
+
)
|
116 |
+
n.patches = {}
|
117 |
+
for k in self.patches:
|
118 |
+
n.patches[k] = self.patches[k][:]
|
119 |
+
n.patches_uuid = self.patches_uuid
|
120 |
+
|
121 |
+
n.object_patches = self.object_patches.copy()
|
122 |
+
n.model_options = copy.deepcopy(self.model_options)
|
123 |
+
n.backup = self.backup
|
124 |
+
n.object_patches_backup = self.object_patches_backup
|
125 |
+
|
126 |
+
n._object_to_patch = getattr(
|
127 |
+
self, "_object_to_patch", QuantizedModelPatcher._object_to_patch_default
|
128 |
+
)
|
129 |
+
n._quantize_fn = getattr(
|
130 |
+
self, "_quantize_fn", QuantizedModelPatcher._quantize_fn_default
|
131 |
+
)
|
132 |
+
n._lowvram = getattr(self, "_lowvram", QuantizedModelPatcher._lowvram_default)
|
133 |
+
n._full_load = getattr(
|
134 |
+
self, "_full_load", QuantizedModelPatcher._full_load_default
|
135 |
+
)
|
136 |
+
n._is_quantized = getattr(
|
137 |
+
self, "_is_quantized", QuantizedModelPatcher._is_quantized_default
|
138 |
+
)
|
139 |
+
return n
|
custom_nodes/Comfy-WaveSpeed/pyproject.toml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[project]
|
2 |
+
name = "wavespeed"
|
3 |
+
description = "The all in one inference optimization solution for ComfyUI, universal, flexible, and fast."
|
4 |
+
version = "1.1.8"
|
5 |
+
license = {file = "LICENSE"}
|
6 |
+
|
7 |
+
[project.urls]
|
8 |
+
Repository = "https://github.com/chengzeyi/Comfy-WaveSpeed"
|
9 |
+
# Used by Comfy Registry https://comfyregistry.org
|
10 |
+
|
11 |
+
[tool.comfy]
|
12 |
+
PublisherId = "chengzeyi"
|
13 |
+
DisplayName = "Comfy-WaveSpeed"
|
14 |
+
Icon = ""
|
custom_nodes/Comfy-WaveSpeed/utils.py
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import contextlib
|
2 |
+
import unittest
|
3 |
+
|
4 |
+
import torch
|
5 |
+
|
6 |
+
|
7 |
+
# wildcard trick is taken from pythongossss's
|
8 |
+
class AnyType(str):
|
9 |
+
|
10 |
+
def __ne__(self, __value: object) -> bool:
|
11 |
+
return False
|
12 |
+
|
13 |
+
|
14 |
+
any_typ = AnyType("*")
|
15 |
+
|
16 |
+
|
17 |
+
def get_weight_dtype_inputs():
|
18 |
+
return {
|
19 |
+
"weight_dtype": (
|
20 |
+
[
|
21 |
+
"default",
|
22 |
+
"float32",
|
23 |
+
"float64",
|
24 |
+
"bfloat16",
|
25 |
+
"float16",
|
26 |
+
"fp8_e4m3fn",
|
27 |
+
"fp8_e4m3fn_fast",
|
28 |
+
"fp8_e5m2",
|
29 |
+
],
|
30 |
+
),
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
def parse_weight_dtype(model_options, weight_dtype):
|
35 |
+
dtype = {
|
36 |
+
"float32": torch.float32,
|
37 |
+
"float64": torch.float64,
|
38 |
+
"bfloat16": torch.bfloat16,
|
39 |
+
"float16": torch.float16,
|
40 |
+
"fp8_e4m3fn": torch.float8_e4m3fn,
|
41 |
+
"fp8_e4m3fn_fast": torch.float8_e4m3fn,
|
42 |
+
"fp8_e5m2": torch.float8_e5m2,
|
43 |
+
}.get(weight_dtype, None)
|
44 |
+
if dtype is not None:
|
45 |
+
model_options["dtype"] = dtype
|
46 |
+
if weight_dtype == "fp8_e4m3fn_fast":
|
47 |
+
model_options["fp8_optimizations"] = True
|
48 |
+
return model_options
|
49 |
+
|
50 |
+
|
51 |
+
@contextlib.contextmanager
|
52 |
+
def disable_load_models_gpu():
|
53 |
+
def foo(*args, **kwargs):
|
54 |
+
pass
|
55 |
+
|
56 |
+
from comfy import model_management
|
57 |
+
|
58 |
+
with unittest.mock.patch.object(model_management, "load_models_gpu", foo):
|
59 |
+
yield
|
60 |
+
|
61 |
+
|
62 |
+
def patch_optimized_module():
|
63 |
+
try:
|
64 |
+
from torch._dynamo.eval_frame import OptimizedModule
|
65 |
+
except ImportError:
|
66 |
+
return
|
67 |
+
|
68 |
+
if getattr(OptimizedModule, "_patched", False):
|
69 |
+
return
|
70 |
+
|
71 |
+
def __getattribute__(self, name):
|
72 |
+
if name == "_orig_mod":
|
73 |
+
return object.__getattribute__(self, "_modules")[name]
|
74 |
+
if name in (
|
75 |
+
"__class__",
|
76 |
+
"_modules",
|
77 |
+
"state_dict",
|
78 |
+
"load_state_dict",
|
79 |
+
"parameters",
|
80 |
+
"named_parameters",
|
81 |
+
"buffers",
|
82 |
+
"named_buffers",
|
83 |
+
"children",
|
84 |
+
"named_children",
|
85 |
+
"modules",
|
86 |
+
"named_modules",
|
87 |
+
):
|
88 |
+
return getattr(object.__getattribute__(self, "_orig_mod"), name)
|
89 |
+
return object.__getattribute__(self, name)
|
90 |
+
|
91 |
+
def __delattr__(self, name):
|
92 |
+
# unload_lora_weights() wants to del peft_config
|
93 |
+
return delattr(self._orig_mod, name)
|
94 |
+
|
95 |
+
@classmethod
|
96 |
+
def __instancecheck__(cls, instance):
|
97 |
+
return isinstance(instance, OptimizedModule) or issubclass(
|
98 |
+
object.__getattribute__(instance, "__class__"), cls
|
99 |
+
)
|
100 |
+
|
101 |
+
OptimizedModule.__getattribute__ = __getattribute__
|
102 |
+
OptimizedModule.__delattr__ = __delattr__
|
103 |
+
OptimizedModule.__instancecheck__ = __instancecheck__
|
104 |
+
OptimizedModule._patched = True
|
105 |
+
|
106 |
+
|
107 |
+
def patch_same_meta():
|
108 |
+
try:
|
109 |
+
from torch._inductor.fx_passes import post_grad
|
110 |
+
except ImportError:
|
111 |
+
return
|
112 |
+
|
113 |
+
same_meta = getattr(post_grad, "same_meta", None)
|
114 |
+
if same_meta is None:
|
115 |
+
return
|
116 |
+
|
117 |
+
if getattr(same_meta, "_patched", False):
|
118 |
+
return
|
119 |
+
|
120 |
+
def new_same_meta(a, b):
|
121 |
+
try:
|
122 |
+
return same_meta(a, b)
|
123 |
+
except Exception:
|
124 |
+
return False
|
125 |
+
|
126 |
+
post_grad.same_meta = new_same_meta
|
127 |
+
new_same_meta._patched = True
|
custom_nodes/Comfy-WaveSpeed/velocator_nodes.py
ADDED
@@ -0,0 +1,413 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import functools
|
2 |
+
import importlib
|
3 |
+
import json
|
4 |
+
import unittest
|
5 |
+
|
6 |
+
import comfy.model_management
|
7 |
+
import comfy.model_patcher
|
8 |
+
import comfy.sd
|
9 |
+
import folder_paths
|
10 |
+
import torch
|
11 |
+
|
12 |
+
from . import patchers, utils
|
13 |
+
|
14 |
+
HAS_VELOCATOR = importlib.util.find_spec("xelerate") is not None
|
15 |
+
|
16 |
+
|
17 |
+
def get_quant_inputs():
|
18 |
+
return {
|
19 |
+
"quant_type": (
|
20 |
+
[
|
21 |
+
"int8_dynamic",
|
22 |
+
"e4m3_e4m3_dynamic",
|
23 |
+
"e4m3_e4m3_dynamic_per_tensor",
|
24 |
+
"int8_weightonly",
|
25 |
+
"e4m3_weightonly",
|
26 |
+
"e4m3_e4m3_weightonly",
|
27 |
+
"e4m3_e4m3_weightonly_per_tensor",
|
28 |
+
"nf4_weightonly",
|
29 |
+
"af4_weightonly",
|
30 |
+
"int4_weightonly",
|
31 |
+
],
|
32 |
+
),
|
33 |
+
"filter_fn": (
|
34 |
+
"STRING",
|
35 |
+
{
|
36 |
+
"default": "fnmatch_matches_fqn",
|
37 |
+
},
|
38 |
+
),
|
39 |
+
"filter_fn_kwargs": (
|
40 |
+
"STRING",
|
41 |
+
{
|
42 |
+
"multiline": True,
|
43 |
+
"default": '{"pattern": ["*"]}',
|
44 |
+
},
|
45 |
+
),
|
46 |
+
"kwargs": (
|
47 |
+
"STRING",
|
48 |
+
{
|
49 |
+
"multiline": True,
|
50 |
+
# "default": "{}",
|
51 |
+
},
|
52 |
+
),
|
53 |
+
}
|
54 |
+
|
55 |
+
|
56 |
+
class VelocatorLoadAndQuantizeDiffusionModel:
|
57 |
+
@classmethod
|
58 |
+
def INPUT_TYPES(s):
|
59 |
+
return {
|
60 |
+
"required": {
|
61 |
+
"unet_name": (folder_paths.get_filename_list("diffusion_models"),),
|
62 |
+
**utils.get_weight_dtype_inputs(),
|
63 |
+
"lowvram": ("BOOLEAN", {"default": True}),
|
64 |
+
"full_load": ("BOOLEAN", {"default": True}),
|
65 |
+
"quantize": ("BOOLEAN", {"default": True}),
|
66 |
+
"quantize_on_load_device": ("BOOLEAN", {"default": True}),
|
67 |
+
**get_quant_inputs(),
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
RETURN_TYPES = ("MODEL",)
|
72 |
+
FUNCTION = "load_unet"
|
73 |
+
|
74 |
+
CATEGORY = "wavespeed/velocator"
|
75 |
+
|
76 |
+
def load_unet(
|
77 |
+
self,
|
78 |
+
unet_name,
|
79 |
+
weight_dtype,
|
80 |
+
lowvram,
|
81 |
+
full_load,
|
82 |
+
quantize,
|
83 |
+
quantize_on_load_device,
|
84 |
+
quant_type,
|
85 |
+
filter_fn,
|
86 |
+
filter_fn_kwargs,
|
87 |
+
kwargs,
|
88 |
+
):
|
89 |
+
model_options = {}
|
90 |
+
if lowvram:
|
91 |
+
model_options["initial_device"] = torch.device("cpu")
|
92 |
+
model_options = utils.parse_weight_dtype(model_options, weight_dtype)
|
93 |
+
|
94 |
+
unet_path = folder_paths.get_full_path_or_raise("diffusion_models", unet_name)
|
95 |
+
|
96 |
+
quantize_fn = None
|
97 |
+
if quantize:
|
98 |
+
assert HAS_VELOCATOR, "velocator is not installed"
|
99 |
+
from xelerate.ao.quant import quantize
|
100 |
+
|
101 |
+
kwargs = json.loads(kwargs) if kwargs else {}
|
102 |
+
|
103 |
+
if lowvram and quantize_on_load_device:
|
104 |
+
preprocessor = lambda t: (
|
105 |
+
t.to(patchers.QuantizedModelPatcher._load_device)
|
106 |
+
if patchers.QuantizedModelPatcher._load_device is not None
|
107 |
+
else t
|
108 |
+
)
|
109 |
+
kwargs["preprocessor"] = preprocessor
|
110 |
+
postprocessor = lambda t: (t.to(torch.device("cpu")))
|
111 |
+
kwargs["postprocessor"] = postprocessor
|
112 |
+
|
113 |
+
quantize_fn = functools.partial(
|
114 |
+
quantize,
|
115 |
+
quant_type=quant_type,
|
116 |
+
filter_fn=filter_fn,
|
117 |
+
filter_fn_kwargs=(
|
118 |
+
json.loads(filter_fn_kwargs) if filter_fn_kwargs else {}
|
119 |
+
),
|
120 |
+
**kwargs,
|
121 |
+
)
|
122 |
+
|
123 |
+
with patchers.QuantizedModelPatcher._override_defaults(
|
124 |
+
quantize_fn=quantize_fn,
|
125 |
+
lowvram=lowvram,
|
126 |
+
full_load=full_load,
|
127 |
+
), utils.disable_load_models_gpu(), unittest.mock.patch.object(
|
128 |
+
comfy.model_patcher, "ModelPatcher", patchers.QuantizedModelPatcher
|
129 |
+
):
|
130 |
+
model = comfy.sd.load_diffusion_model(
|
131 |
+
unet_path, model_options=model_options
|
132 |
+
)
|
133 |
+
|
134 |
+
return (model,)
|
135 |
+
|
136 |
+
|
137 |
+
class VelocatorLoadAndQuantizeClip:
|
138 |
+
@classmethod
|
139 |
+
def INPUT_TYPES(s):
|
140 |
+
return {
|
141 |
+
"required": {
|
142 |
+
"clip_name1": ([""] + folder_paths.get_filename_list("text_encoders"),),
|
143 |
+
"clip_name2": ([""] + folder_paths.get_filename_list("text_encoders"),),
|
144 |
+
"clip_name3": ([""] + folder_paths.get_filename_list("text_encoders"),),
|
145 |
+
"type": ([member.name.lower() for member in comfy.sd.CLIPType],),
|
146 |
+
**utils.get_weight_dtype_inputs(),
|
147 |
+
"lowvram": ("BOOLEAN", {"default": True}),
|
148 |
+
"full_load": ("BOOLEAN", {"default": True}),
|
149 |
+
"quantize": ("BOOLEAN", {"default": True}),
|
150 |
+
"quantize_on_load_device": ("BOOLEAN", {"default": True}),
|
151 |
+
**get_quant_inputs(),
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
RETURN_TYPES = ("CLIP",)
|
156 |
+
FUNCTION = "load_clip"
|
157 |
+
|
158 |
+
CATEGORY = "wavespeed/velocator"
|
159 |
+
|
160 |
+
def load_clip(
|
161 |
+
self,
|
162 |
+
clip_name1,
|
163 |
+
clip_name2,
|
164 |
+
clip_name3,
|
165 |
+
type,
|
166 |
+
weight_dtype,
|
167 |
+
lowvram,
|
168 |
+
full_load,
|
169 |
+
quantize,
|
170 |
+
quantize_on_load_device,
|
171 |
+
quant_type,
|
172 |
+
filter_fn,
|
173 |
+
filter_fn_kwargs,
|
174 |
+
kwargs,
|
175 |
+
):
|
176 |
+
model_options = {}
|
177 |
+
if lowvram:
|
178 |
+
model_options["initial_device"] = torch.device("cpu")
|
179 |
+
model_options = utils.parse_weight_dtype(model_options, weight_dtype)
|
180 |
+
|
181 |
+
clip_paths = []
|
182 |
+
clip_type = None
|
183 |
+
for clip_type_ in comfy.sd.CLIPType:
|
184 |
+
if clip_type_.name.lower() == type:
|
185 |
+
clip_type = clip_type_
|
186 |
+
break
|
187 |
+
assert clip_type is not None, f"Invalid clip type: {type}"
|
188 |
+
for clip_name in [clip_name1, clip_name2, clip_name3]:
|
189 |
+
if clip_name:
|
190 |
+
clip_path = folder_paths.get_full_path_or_raise(
|
191 |
+
"text_encoders", clip_name
|
192 |
+
)
|
193 |
+
clip_paths.append(clip_path)
|
194 |
+
|
195 |
+
quantize_fn = None
|
196 |
+
if quantize:
|
197 |
+
assert HAS_VELOCATOR, "velocator is not installed"
|
198 |
+
from xelerate.ao.quant import quantize
|
199 |
+
|
200 |
+
kwargs = json.loads(kwargs) if kwargs else {}
|
201 |
+
|
202 |
+
if lowvram and quantize_on_load_device:
|
203 |
+
preprocessor = lambda t: (
|
204 |
+
t.to(patchers.QuantizedModelPatcher._load_device)
|
205 |
+
if patchers.QuantizedModelPatcher._load_device is not None
|
206 |
+
else t
|
207 |
+
)
|
208 |
+
kwargs["preprocessor"] = preprocessor
|
209 |
+
postprocessor = lambda t: (t.to(torch.device("cpu")))
|
210 |
+
kwargs["postprocessor"] = postprocessor
|
211 |
+
|
212 |
+
quantize_fn = functools.partial(
|
213 |
+
quantize,
|
214 |
+
quant_type=quant_type,
|
215 |
+
filter_fn=filter_fn,
|
216 |
+
filter_fn_kwargs=(
|
217 |
+
json.loads(filter_fn_kwargs) if filter_fn_kwargs else {}
|
218 |
+
),
|
219 |
+
**kwargs,
|
220 |
+
)
|
221 |
+
|
222 |
+
with patchers.QuantizedModelPatcher._override_defaults(
|
223 |
+
quantize_fn=quantize_fn,
|
224 |
+
lowvram=lowvram,
|
225 |
+
full_load=full_load,
|
226 |
+
), utils.disable_load_models_gpu(), unittest.mock.patch.object(
|
227 |
+
comfy.model_patcher, "ModelPatcher", patchers.QuantizedModelPatcher
|
228 |
+
):
|
229 |
+
clip = comfy.sd.load_clip(
|
230 |
+
ckpt_paths=clip_paths,
|
231 |
+
embedding_directory=folder_paths.get_folder_paths("embeddings"),
|
232 |
+
clip_type=clip_type,
|
233 |
+
model_options=model_options,
|
234 |
+
)
|
235 |
+
|
236 |
+
return (clip,)
|
237 |
+
|
238 |
+
|
239 |
+
class VelocatorQuantizeModel:
|
240 |
+
@classmethod
|
241 |
+
def INPUT_TYPES(s):
|
242 |
+
return {
|
243 |
+
"required": {
|
244 |
+
"model": ("MODEL",),
|
245 |
+
"object_to_patch": (
|
246 |
+
"STRING",
|
247 |
+
{
|
248 |
+
"default": "diffusion_model",
|
249 |
+
},
|
250 |
+
),
|
251 |
+
**get_quant_inputs(),
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
+
RETURN_TYPES = ("MODEL",)
|
256 |
+
FUNCTION = "patch"
|
257 |
+
|
258 |
+
CATEGORY = "wavespeed/velocator"
|
259 |
+
|
260 |
+
def patch(
|
261 |
+
self,
|
262 |
+
model,
|
263 |
+
object_to_patch,
|
264 |
+
quantize,
|
265 |
+
quant_type,
|
266 |
+
filter_fn,
|
267 |
+
filter_fn_kwargs,
|
268 |
+
kwargs,
|
269 |
+
):
|
270 |
+
assert HAS_VELOCATOR, "velocator is not installed"
|
271 |
+
|
272 |
+
from xelerate.ao.quant import quantize
|
273 |
+
|
274 |
+
if quantize:
|
275 |
+
comfy.model_management.unload_all_models()
|
276 |
+
comfy.model_management.load_models_gpu(
|
277 |
+
[model], force_patch_weights=True, force_full_load=True
|
278 |
+
)
|
279 |
+
|
280 |
+
filter_fn_kwargs = json.loads(filter_fn_kwargs) if filter_fn_kwargs else {}
|
281 |
+
kwargs = json.loads(kwargs) if kwargs else {}
|
282 |
+
|
283 |
+
model = model.clone()
|
284 |
+
model.add_object_patch(
|
285 |
+
object_to_patch,
|
286 |
+
quantize(
|
287 |
+
model.get_model_object(object_to_patch),
|
288 |
+
quant_type=quant_type,
|
289 |
+
filter_fn=filter_fn,
|
290 |
+
filter_fn_kwargs=filter_fn_kwargs,
|
291 |
+
**kwargs,
|
292 |
+
),
|
293 |
+
)
|
294 |
+
|
295 |
+
return (model,)
|
296 |
+
|
297 |
+
|
298 |
+
class VelocatorCompileModel:
|
299 |
+
@classmethod
|
300 |
+
def INPUT_TYPES(s):
|
301 |
+
return {
|
302 |
+
"required": {
|
303 |
+
"model": (utils.any_typ,),
|
304 |
+
"is_patcher": (
|
305 |
+
"BOOLEAN",
|
306 |
+
{
|
307 |
+
"default": True,
|
308 |
+
},
|
309 |
+
),
|
310 |
+
"object_to_patch": (
|
311 |
+
"STRING",
|
312 |
+
{
|
313 |
+
"default": "diffusion_model",
|
314 |
+
},
|
315 |
+
),
|
316 |
+
"memory_format": (
|
317 |
+
["channels_last", "contiguous_format", "preserve_format"],
|
318 |
+
),
|
319 |
+
"fullgraph": (
|
320 |
+
"BOOLEAN",
|
321 |
+
{
|
322 |
+
"default": False,
|
323 |
+
},
|
324 |
+
),
|
325 |
+
"dynamic": ("BOOLEAN", {"default": False}),
|
326 |
+
"mode": (
|
327 |
+
"STRING",
|
328 |
+
{
|
329 |
+
"multiline": True,
|
330 |
+
"default": "cache-all:max-autotune:low-precision",
|
331 |
+
},
|
332 |
+
),
|
333 |
+
"options": (
|
334 |
+
"STRING",
|
335 |
+
{
|
336 |
+
"multiline": True,
|
337 |
+
# "default": "{}",
|
338 |
+
},
|
339 |
+
),
|
340 |
+
"disable": (
|
341 |
+
"BOOLEAN",
|
342 |
+
{
|
343 |
+
"default": False,
|
344 |
+
},
|
345 |
+
),
|
346 |
+
"backend": (
|
347 |
+
"STRING",
|
348 |
+
{
|
349 |
+
"default": "velocator",
|
350 |
+
},
|
351 |
+
),
|
352 |
+
}
|
353 |
+
}
|
354 |
+
|
355 |
+
RETURN_TYPES = (utils.any_typ,)
|
356 |
+
FUNCTION = "patch"
|
357 |
+
|
358 |
+
CATEGORY = "wavespeed/velocator"
|
359 |
+
|
360 |
+
def patch(
|
361 |
+
self,
|
362 |
+
model,
|
363 |
+
is_patcher,
|
364 |
+
object_to_patch,
|
365 |
+
memory_format,
|
366 |
+
fullgraph,
|
367 |
+
dynamic,
|
368 |
+
mode,
|
369 |
+
options,
|
370 |
+
disable,
|
371 |
+
backend,
|
372 |
+
):
|
373 |
+
assert HAS_VELOCATOR, "velocator is not installed"
|
374 |
+
|
375 |
+
from xelerate.compilers.xelerate_compiler import xelerate_compile
|
376 |
+
from xelerate.utils.memory_format import apply_memory_format
|
377 |
+
|
378 |
+
compile_function = xelerate_compile
|
379 |
+
|
380 |
+
memory_format = getattr(torch, memory_format)
|
381 |
+
|
382 |
+
mode = mode if mode else None
|
383 |
+
options = json.loads(options) if options else None
|
384 |
+
if backend == "velocator":
|
385 |
+
backend = "xelerate"
|
386 |
+
|
387 |
+
if is_patcher:
|
388 |
+
patcher = model.clone()
|
389 |
+
else:
|
390 |
+
patcher = model.patcher
|
391 |
+
patcher = patcher.clone()
|
392 |
+
|
393 |
+
patcher.add_object_patch(
|
394 |
+
object_to_patch,
|
395 |
+
compile_function(
|
396 |
+
apply_memory_format(
|
397 |
+
patcher.get_model_object(object_to_patch),
|
398 |
+
memory_format=memory_format,
|
399 |
+
),
|
400 |
+
fullgraph=fullgraph,
|
401 |
+
dynamic=dynamic,
|
402 |
+
mode=mode,
|
403 |
+
options=options,
|
404 |
+
disable=disable,
|
405 |
+
backend=backend,
|
406 |
+
),
|
407 |
+
)
|
408 |
+
|
409 |
+
if is_patcher:
|
410 |
+
return (patcher,)
|
411 |
+
else:
|
412 |
+
model.patcher = patcher
|
413 |
+
return (model,)
|
custom_nodes/Comfy-WaveSpeed/workflows/flux.json
ADDED
@@ -0,0 +1,994 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 39,
|
3 |
+
"last_link_id": 119,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 17,
|
7 |
+
"type": "BasicScheduler",
|
8 |
+
"pos": [
|
9 |
+
480,
|
10 |
+
1008
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
315,
|
14 |
+
106
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 16,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [
|
20 |
+
{
|
21 |
+
"name": "model",
|
22 |
+
"type": "MODEL",
|
23 |
+
"link": 55,
|
24 |
+
"slot_index": 0
|
25 |
+
}
|
26 |
+
],
|
27 |
+
"outputs": [
|
28 |
+
{
|
29 |
+
"name": "SIGMAS",
|
30 |
+
"type": "SIGMAS",
|
31 |
+
"links": [
|
32 |
+
20
|
33 |
+
],
|
34 |
+
"shape": 3
|
35 |
+
}
|
36 |
+
],
|
37 |
+
"properties": {
|
38 |
+
"Node name for S&R": "BasicScheduler"
|
39 |
+
},
|
40 |
+
"widgets_values": [
|
41 |
+
"simple",
|
42 |
+
20,
|
43 |
+
1
|
44 |
+
]
|
45 |
+
},
|
46 |
+
{
|
47 |
+
"id": 16,
|
48 |
+
"type": "KSamplerSelect",
|
49 |
+
"pos": [
|
50 |
+
480,
|
51 |
+
912
|
52 |
+
],
|
53 |
+
"size": [
|
54 |
+
315,
|
55 |
+
58
|
56 |
+
],
|
57 |
+
"flags": {},
|
58 |
+
"order": 0,
|
59 |
+
"mode": 0,
|
60 |
+
"inputs": [],
|
61 |
+
"outputs": [
|
62 |
+
{
|
63 |
+
"name": "SAMPLER",
|
64 |
+
"type": "SAMPLER",
|
65 |
+
"links": [
|
66 |
+
19
|
67 |
+
],
|
68 |
+
"shape": 3
|
69 |
+
}
|
70 |
+
],
|
71 |
+
"properties": {
|
72 |
+
"Node name for S&R": "KSamplerSelect"
|
73 |
+
},
|
74 |
+
"widgets_values": [
|
75 |
+
"euler"
|
76 |
+
]
|
77 |
+
},
|
78 |
+
{
|
79 |
+
"id": 26,
|
80 |
+
"type": "FluxGuidance",
|
81 |
+
"pos": [
|
82 |
+
480,
|
83 |
+
144
|
84 |
+
],
|
85 |
+
"size": [
|
86 |
+
317.4000244140625,
|
87 |
+
58
|
88 |
+
],
|
89 |
+
"flags": {},
|
90 |
+
"order": 13,
|
91 |
+
"mode": 0,
|
92 |
+
"inputs": [
|
93 |
+
{
|
94 |
+
"name": "conditioning",
|
95 |
+
"type": "CONDITIONING",
|
96 |
+
"link": 41
|
97 |
+
}
|
98 |
+
],
|
99 |
+
"outputs": [
|
100 |
+
{
|
101 |
+
"name": "CONDITIONING",
|
102 |
+
"type": "CONDITIONING",
|
103 |
+
"links": [
|
104 |
+
42
|
105 |
+
],
|
106 |
+
"slot_index": 0,
|
107 |
+
"shape": 3
|
108 |
+
}
|
109 |
+
],
|
110 |
+
"properties": {
|
111 |
+
"Node name for S&R": "FluxGuidance"
|
112 |
+
},
|
113 |
+
"widgets_values": [
|
114 |
+
3.5
|
115 |
+
],
|
116 |
+
"color": "#233",
|
117 |
+
"bgcolor": "#355"
|
118 |
+
},
|
119 |
+
{
|
120 |
+
"id": 22,
|
121 |
+
"type": "BasicGuider",
|
122 |
+
"pos": [
|
123 |
+
576,
|
124 |
+
48
|
125 |
+
],
|
126 |
+
"size": [
|
127 |
+
222.3482666015625,
|
128 |
+
46
|
129 |
+
],
|
130 |
+
"flags": {},
|
131 |
+
"order": 15,
|
132 |
+
"mode": 0,
|
133 |
+
"inputs": [
|
134 |
+
{
|
135 |
+
"name": "model",
|
136 |
+
"type": "MODEL",
|
137 |
+
"link": 54,
|
138 |
+
"slot_index": 0
|
139 |
+
},
|
140 |
+
{
|
141 |
+
"name": "conditioning",
|
142 |
+
"type": "CONDITIONING",
|
143 |
+
"link": 42,
|
144 |
+
"slot_index": 1
|
145 |
+
}
|
146 |
+
],
|
147 |
+
"outputs": [
|
148 |
+
{
|
149 |
+
"name": "GUIDER",
|
150 |
+
"type": "GUIDER",
|
151 |
+
"links": [
|
152 |
+
30
|
153 |
+
],
|
154 |
+
"slot_index": 0,
|
155 |
+
"shape": 3
|
156 |
+
}
|
157 |
+
],
|
158 |
+
"properties": {
|
159 |
+
"Node name for S&R": "BasicGuider"
|
160 |
+
},
|
161 |
+
"widgets_values": []
|
162 |
+
},
|
163 |
+
{
|
164 |
+
"id": 13,
|
165 |
+
"type": "SamplerCustomAdvanced",
|
166 |
+
"pos": [
|
167 |
+
864,
|
168 |
+
192
|
169 |
+
],
|
170 |
+
"size": [
|
171 |
+
272.3617858886719,
|
172 |
+
124.53733825683594
|
173 |
+
],
|
174 |
+
"flags": {},
|
175 |
+
"order": 17,
|
176 |
+
"mode": 0,
|
177 |
+
"inputs": [
|
178 |
+
{
|
179 |
+
"name": "noise",
|
180 |
+
"type": "NOISE",
|
181 |
+
"link": 37,
|
182 |
+
"slot_index": 0
|
183 |
+
},
|
184 |
+
{
|
185 |
+
"name": "guider",
|
186 |
+
"type": "GUIDER",
|
187 |
+
"link": 30,
|
188 |
+
"slot_index": 1
|
189 |
+
},
|
190 |
+
{
|
191 |
+
"name": "sampler",
|
192 |
+
"type": "SAMPLER",
|
193 |
+
"link": 19,
|
194 |
+
"slot_index": 2
|
195 |
+
},
|
196 |
+
{
|
197 |
+
"name": "sigmas",
|
198 |
+
"type": "SIGMAS",
|
199 |
+
"link": 20,
|
200 |
+
"slot_index": 3
|
201 |
+
},
|
202 |
+
{
|
203 |
+
"name": "latent_image",
|
204 |
+
"type": "LATENT",
|
205 |
+
"link": 116,
|
206 |
+
"slot_index": 4
|
207 |
+
}
|
208 |
+
],
|
209 |
+
"outputs": [
|
210 |
+
{
|
211 |
+
"name": "output",
|
212 |
+
"type": "LATENT",
|
213 |
+
"links": [
|
214 |
+
24
|
215 |
+
],
|
216 |
+
"slot_index": 0,
|
217 |
+
"shape": 3
|
218 |
+
},
|
219 |
+
{
|
220 |
+
"name": "denoised_output",
|
221 |
+
"type": "LATENT",
|
222 |
+
"links": null,
|
223 |
+
"shape": 3
|
224 |
+
}
|
225 |
+
],
|
226 |
+
"properties": {
|
227 |
+
"Node name for S&R": "SamplerCustomAdvanced"
|
228 |
+
},
|
229 |
+
"widgets_values": []
|
230 |
+
},
|
231 |
+
{
|
232 |
+
"id": 8,
|
233 |
+
"type": "VAEDecode",
|
234 |
+
"pos": [
|
235 |
+
866,
|
236 |
+
367
|
237 |
+
],
|
238 |
+
"size": [
|
239 |
+
210,
|
240 |
+
46
|
241 |
+
],
|
242 |
+
"flags": {},
|
243 |
+
"order": 18,
|
244 |
+
"mode": 0,
|
245 |
+
"inputs": [
|
246 |
+
{
|
247 |
+
"name": "samples",
|
248 |
+
"type": "LATENT",
|
249 |
+
"link": 24
|
250 |
+
},
|
251 |
+
{
|
252 |
+
"name": "vae",
|
253 |
+
"type": "VAE",
|
254 |
+
"link": 12
|
255 |
+
}
|
256 |
+
],
|
257 |
+
"outputs": [
|
258 |
+
{
|
259 |
+
"name": "IMAGE",
|
260 |
+
"type": "IMAGE",
|
261 |
+
"links": [
|
262 |
+
9
|
263 |
+
],
|
264 |
+
"slot_index": 0
|
265 |
+
}
|
266 |
+
],
|
267 |
+
"properties": {
|
268 |
+
"Node name for S&R": "VAEDecode"
|
269 |
+
},
|
270 |
+
"widgets_values": []
|
271 |
+
},
|
272 |
+
{
|
273 |
+
"id": 6,
|
274 |
+
"type": "CLIPTextEncode",
|
275 |
+
"pos": [
|
276 |
+
384,
|
277 |
+
240
|
278 |
+
],
|
279 |
+
"size": [
|
280 |
+
422.84503173828125,
|
281 |
+
164.31304931640625
|
282 |
+
],
|
283 |
+
"flags": {},
|
284 |
+
"order": 11,
|
285 |
+
"mode": 0,
|
286 |
+
"inputs": [
|
287 |
+
{
|
288 |
+
"name": "clip",
|
289 |
+
"type": "CLIP",
|
290 |
+
"link": 10
|
291 |
+
}
|
292 |
+
],
|
293 |
+
"outputs": [
|
294 |
+
{
|
295 |
+
"name": "CONDITIONING",
|
296 |
+
"type": "CONDITIONING",
|
297 |
+
"links": [
|
298 |
+
41
|
299 |
+
],
|
300 |
+
"slot_index": 0
|
301 |
+
}
|
302 |
+
],
|
303 |
+
"title": "CLIP Text Encode (Positive Prompt)",
|
304 |
+
"properties": {
|
305 |
+
"Node name for S&R": "CLIPTextEncode"
|
306 |
+
},
|
307 |
+
"widgets_values": [
|
308 |
+
"cute anime girl with massive fluffy fennec ears and a big fluffy tail blonde messy long hair blue eyes wearing a maid outfit with a long black gold leaf pattern dress and a white apron mouth open holding a fancy black forest cake with candles on top in the kitchen of an old dark Victorian mansion lit by candlelight with a bright window to the foggy forest and very expensive stuff everywhere"
|
309 |
+
],
|
310 |
+
"color": "#232",
|
311 |
+
"bgcolor": "#353"
|
312 |
+
},
|
313 |
+
{
|
314 |
+
"id": 27,
|
315 |
+
"type": "EmptySD3LatentImage",
|
316 |
+
"pos": [
|
317 |
+
480,
|
318 |
+
624
|
319 |
+
],
|
320 |
+
"size": [
|
321 |
+
315,
|
322 |
+
106
|
323 |
+
],
|
324 |
+
"flags": {},
|
325 |
+
"order": 9,
|
326 |
+
"mode": 0,
|
327 |
+
"inputs": [
|
328 |
+
{
|
329 |
+
"name": "width",
|
330 |
+
"type": "INT",
|
331 |
+
"link": 112,
|
332 |
+
"widget": {
|
333 |
+
"name": "width"
|
334 |
+
}
|
335 |
+
},
|
336 |
+
{
|
337 |
+
"name": "height",
|
338 |
+
"type": "INT",
|
339 |
+
"link": 113,
|
340 |
+
"widget": {
|
341 |
+
"name": "height"
|
342 |
+
}
|
343 |
+
}
|
344 |
+
],
|
345 |
+
"outputs": [
|
346 |
+
{
|
347 |
+
"name": "LATENT",
|
348 |
+
"type": "LATENT",
|
349 |
+
"links": [
|
350 |
+
116
|
351 |
+
],
|
352 |
+
"slot_index": 0,
|
353 |
+
"shape": 3
|
354 |
+
}
|
355 |
+
],
|
356 |
+
"properties": {
|
357 |
+
"Node name for S&R": "EmptySD3LatentImage"
|
358 |
+
},
|
359 |
+
"widgets_values": [
|
360 |
+
1024,
|
361 |
+
1024,
|
362 |
+
1
|
363 |
+
]
|
364 |
+
},
|
365 |
+
{
|
366 |
+
"id": 34,
|
367 |
+
"type": "PrimitiveNode",
|
368 |
+
"pos": [
|
369 |
+
432,
|
370 |
+
480
|
371 |
+
],
|
372 |
+
"size": [
|
373 |
+
210,
|
374 |
+
82
|
375 |
+
],
|
376 |
+
"flags": {},
|
377 |
+
"order": 1,
|
378 |
+
"mode": 0,
|
379 |
+
"inputs": [],
|
380 |
+
"outputs": [
|
381 |
+
{
|
382 |
+
"name": "INT",
|
383 |
+
"type": "INT",
|
384 |
+
"links": [
|
385 |
+
112,
|
386 |
+
115
|
387 |
+
],
|
388 |
+
"slot_index": 0,
|
389 |
+
"widget": {
|
390 |
+
"name": "width"
|
391 |
+
}
|
392 |
+
}
|
393 |
+
],
|
394 |
+
"title": "width",
|
395 |
+
"properties": {
|
396 |
+
"Run widget replace on values": false
|
397 |
+
},
|
398 |
+
"widgets_values": [
|
399 |
+
1024,
|
400 |
+
"fixed"
|
401 |
+
],
|
402 |
+
"color": "#323",
|
403 |
+
"bgcolor": "#535"
|
404 |
+
},
|
405 |
+
{
|
406 |
+
"id": 35,
|
407 |
+
"type": "PrimitiveNode",
|
408 |
+
"pos": [
|
409 |
+
672,
|
410 |
+
480
|
411 |
+
],
|
412 |
+
"size": [
|
413 |
+
210,
|
414 |
+
82
|
415 |
+
],
|
416 |
+
"flags": {},
|
417 |
+
"order": 2,
|
418 |
+
"mode": 0,
|
419 |
+
"inputs": [],
|
420 |
+
"outputs": [
|
421 |
+
{
|
422 |
+
"name": "INT",
|
423 |
+
"type": "INT",
|
424 |
+
"links": [
|
425 |
+
113,
|
426 |
+
114
|
427 |
+
],
|
428 |
+
"slot_index": 0,
|
429 |
+
"widget": {
|
430 |
+
"name": "height"
|
431 |
+
}
|
432 |
+
}
|
433 |
+
],
|
434 |
+
"title": "height",
|
435 |
+
"properties": {
|
436 |
+
"Run widget replace on values": false
|
437 |
+
},
|
438 |
+
"widgets_values": [
|
439 |
+
1024,
|
440 |
+
"fixed"
|
441 |
+
],
|
442 |
+
"color": "#323",
|
443 |
+
"bgcolor": "#535"
|
444 |
+
},
|
445 |
+
{
|
446 |
+
"id": 9,
|
447 |
+
"type": "SaveImage",
|
448 |
+
"pos": [
|
449 |
+
1155,
|
450 |
+
196
|
451 |
+
],
|
452 |
+
"size": [
|
453 |
+
985.3012084960938,
|
454 |
+
1060.3828125
|
455 |
+
],
|
456 |
+
"flags": {},
|
457 |
+
"order": 19,
|
458 |
+
"mode": 0,
|
459 |
+
"inputs": [
|
460 |
+
{
|
461 |
+
"name": "images",
|
462 |
+
"type": "IMAGE",
|
463 |
+
"link": 9
|
464 |
+
}
|
465 |
+
],
|
466 |
+
"outputs": [],
|
467 |
+
"properties": {},
|
468 |
+
"widgets_values": [
|
469 |
+
"ComfyUI"
|
470 |
+
]
|
471 |
+
},
|
472 |
+
{
|
473 |
+
"id": 37,
|
474 |
+
"type": "Note",
|
475 |
+
"pos": [
|
476 |
+
480,
|
477 |
+
1344
|
478 |
+
],
|
479 |
+
"size": [
|
480 |
+
314.99755859375,
|
481 |
+
117.98363494873047
|
482 |
+
],
|
483 |
+
"flags": {},
|
484 |
+
"order": 3,
|
485 |
+
"mode": 0,
|
486 |
+
"inputs": [],
|
487 |
+
"outputs": [],
|
488 |
+
"properties": {
|
489 |
+
"text": ""
|
490 |
+
},
|
491 |
+
"widgets_values": [
|
492 |
+
"The reference sampling implementation auto adjusts the shift value based on the resolution, if you don't want this you can just bypass (CTRL-B) this ModelSamplingFlux node.\n"
|
493 |
+
],
|
494 |
+
"color": "#432",
|
495 |
+
"bgcolor": "#653"
|
496 |
+
},
|
497 |
+
{
|
498 |
+
"id": 10,
|
499 |
+
"type": "VAELoader",
|
500 |
+
"pos": [
|
501 |
+
48,
|
502 |
+
432
|
503 |
+
],
|
504 |
+
"size": [
|
505 |
+
311.81634521484375,
|
506 |
+
60.429901123046875
|
507 |
+
],
|
508 |
+
"flags": {},
|
509 |
+
"order": 4,
|
510 |
+
"mode": 0,
|
511 |
+
"inputs": [],
|
512 |
+
"outputs": [
|
513 |
+
{
|
514 |
+
"name": "VAE",
|
515 |
+
"type": "VAE",
|
516 |
+
"links": [
|
517 |
+
12
|
518 |
+
],
|
519 |
+
"slot_index": 0,
|
520 |
+
"shape": 3
|
521 |
+
}
|
522 |
+
],
|
523 |
+
"properties": {
|
524 |
+
"Node name for S&R": "VAELoader"
|
525 |
+
},
|
526 |
+
"widgets_values": [
|
527 |
+
"ae.safetensors"
|
528 |
+
]
|
529 |
+
},
|
530 |
+
{
|
531 |
+
"id": 28,
|
532 |
+
"type": "Note",
|
533 |
+
"pos": [
|
534 |
+
48,
|
535 |
+
576
|
536 |
+
],
|
537 |
+
"size": [
|
538 |
+
336,
|
539 |
+
288
|
540 |
+
],
|
541 |
+
"flags": {},
|
542 |
+
"order": 5,
|
543 |
+
"mode": 0,
|
544 |
+
"inputs": [],
|
545 |
+
"outputs": [],
|
546 |
+
"properties": {
|
547 |
+
"text": ""
|
548 |
+
},
|
549 |
+
"widgets_values": [
|
550 |
+
"If you get an error in any of the nodes above make sure the files are in the correct directories.\n\nSee the top of the examples page for the links : https://comfyanonymous.github.io/ComfyUI_examples/flux/\n\nflux1-dev.safetensors goes in: ComfyUI/models/unet/\n\nt5xxl_fp16.safetensors and clip_l.safetensors go in: ComfyUI/models/clip/\n\nae.safetensors goes in: ComfyUI/models/vae/\n\n\nTip: You can set the weight_dtype above to one of the fp8 types if you have memory issues."
|
551 |
+
],
|
552 |
+
"color": "#432",
|
553 |
+
"bgcolor": "#653"
|
554 |
+
},
|
555 |
+
{
|
556 |
+
"id": 30,
|
557 |
+
"type": "ModelSamplingFlux",
|
558 |
+
"pos": [
|
559 |
+
480,
|
560 |
+
1152
|
561 |
+
],
|
562 |
+
"size": [
|
563 |
+
315,
|
564 |
+
130
|
565 |
+
],
|
566 |
+
"flags": {},
|
567 |
+
"order": 14,
|
568 |
+
"mode": 0,
|
569 |
+
"inputs": [
|
570 |
+
{
|
571 |
+
"name": "model",
|
572 |
+
"type": "MODEL",
|
573 |
+
"link": 119,
|
574 |
+
"slot_index": 0
|
575 |
+
},
|
576 |
+
{
|
577 |
+
"name": "width",
|
578 |
+
"type": "INT",
|
579 |
+
"link": 115,
|
580 |
+
"slot_index": 1,
|
581 |
+
"widget": {
|
582 |
+
"name": "width"
|
583 |
+
}
|
584 |
+
},
|
585 |
+
{
|
586 |
+
"name": "height",
|
587 |
+
"type": "INT",
|
588 |
+
"link": 114,
|
589 |
+
"slot_index": 2,
|
590 |
+
"widget": {
|
591 |
+
"name": "height"
|
592 |
+
}
|
593 |
+
}
|
594 |
+
],
|
595 |
+
"outputs": [
|
596 |
+
{
|
597 |
+
"name": "MODEL",
|
598 |
+
"type": "MODEL",
|
599 |
+
"links": [
|
600 |
+
54,
|
601 |
+
55
|
602 |
+
],
|
603 |
+
"slot_index": 0,
|
604 |
+
"shape": 3
|
605 |
+
}
|
606 |
+
],
|
607 |
+
"properties": {
|
608 |
+
"Node name for S&R": "ModelSamplingFlux"
|
609 |
+
},
|
610 |
+
"widgets_values": [
|
611 |
+
1.15,
|
612 |
+
0.5,
|
613 |
+
1024,
|
614 |
+
1024
|
615 |
+
]
|
616 |
+
},
|
617 |
+
{
|
618 |
+
"id": 39,
|
619 |
+
"type": "EnhancedCompileModel",
|
620 |
+
"pos": [
|
621 |
+
0,
|
622 |
+
1200
|
623 |
+
],
|
624 |
+
"size": [
|
625 |
+
400,
|
626 |
+
294
|
627 |
+
],
|
628 |
+
"flags": {},
|
629 |
+
"order": 12,
|
630 |
+
"mode": 0,
|
631 |
+
"inputs": [
|
632 |
+
{
|
633 |
+
"name": "model",
|
634 |
+
"type": "*",
|
635 |
+
"link": 118
|
636 |
+
}
|
637 |
+
],
|
638 |
+
"outputs": [
|
639 |
+
{
|
640 |
+
"name": "*",
|
641 |
+
"type": "*",
|
642 |
+
"links": [
|
643 |
+
119
|
644 |
+
],
|
645 |
+
"slot_index": 0
|
646 |
+
}
|
647 |
+
],
|
648 |
+
"properties": {
|
649 |
+
"Node name for S&R": "EnhancedCompileModel"
|
650 |
+
},
|
651 |
+
"widgets_values": [
|
652 |
+
true,
|
653 |
+
"diffusion_model",
|
654 |
+
"torch.compile",
|
655 |
+
false,
|
656 |
+
false,
|
657 |
+
"",
|
658 |
+
"",
|
659 |
+
false,
|
660 |
+
"inductor"
|
661 |
+
]
|
662 |
+
},
|
663 |
+
{
|
664 |
+
"id": 38,
|
665 |
+
"type": "ApplyFBCacheOnModel",
|
666 |
+
"pos": [
|
667 |
+
50,
|
668 |
+
960
|
669 |
+
],
|
670 |
+
"size": [
|
671 |
+
315,
|
672 |
+
154
|
673 |
+
],
|
674 |
+
"flags": {},
|
675 |
+
"order": 10,
|
676 |
+
"mode": 0,
|
677 |
+
"inputs": [
|
678 |
+
{
|
679 |
+
"name": "model",
|
680 |
+
"type": "MODEL",
|
681 |
+
"link": 117
|
682 |
+
}
|
683 |
+
],
|
684 |
+
"outputs": [
|
685 |
+
{
|
686 |
+
"name": "MODEL",
|
687 |
+
"type": "MODEL",
|
688 |
+
"links": [
|
689 |
+
118
|
690 |
+
],
|
691 |
+
"slot_index": 0
|
692 |
+
}
|
693 |
+
],
|
694 |
+
"properties": {
|
695 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
696 |
+
},
|
697 |
+
"widgets_values": [
|
698 |
+
"diffusion_model",
|
699 |
+
0.12,
|
700 |
+
0,
|
701 |
+
1,
|
702 |
+
-1
|
703 |
+
]
|
704 |
+
},
|
705 |
+
{
|
706 |
+
"id": 12,
|
707 |
+
"type": "UNETLoader",
|
708 |
+
"pos": [
|
709 |
+
48,
|
710 |
+
144
|
711 |
+
],
|
712 |
+
"size": [
|
713 |
+
315,
|
714 |
+
82
|
715 |
+
],
|
716 |
+
"flags": {},
|
717 |
+
"order": 6,
|
718 |
+
"mode": 0,
|
719 |
+
"inputs": [],
|
720 |
+
"outputs": [
|
721 |
+
{
|
722 |
+
"name": "MODEL",
|
723 |
+
"type": "MODEL",
|
724 |
+
"links": [
|
725 |
+
117
|
726 |
+
],
|
727 |
+
"slot_index": 0,
|
728 |
+
"shape": 3
|
729 |
+
}
|
730 |
+
],
|
731 |
+
"properties": {
|
732 |
+
"Node name for S&R": "UNETLoader"
|
733 |
+
},
|
734 |
+
"widgets_values": [
|
735 |
+
"flux1-dev.safetensors",
|
736 |
+
"fp8_e4m3fn_fast"
|
737 |
+
],
|
738 |
+
"color": "#223",
|
739 |
+
"bgcolor": "#335"
|
740 |
+
},
|
741 |
+
{
|
742 |
+
"id": 11,
|
743 |
+
"type": "DualCLIPLoader",
|
744 |
+
"pos": [
|
745 |
+
48,
|
746 |
+
288
|
747 |
+
],
|
748 |
+
"size": [
|
749 |
+
315,
|
750 |
+
106
|
751 |
+
],
|
752 |
+
"flags": {},
|
753 |
+
"order": 7,
|
754 |
+
"mode": 0,
|
755 |
+
"inputs": [],
|
756 |
+
"outputs": [
|
757 |
+
{
|
758 |
+
"name": "CLIP",
|
759 |
+
"type": "CLIP",
|
760 |
+
"links": [
|
761 |
+
10
|
762 |
+
],
|
763 |
+
"slot_index": 0,
|
764 |
+
"shape": 3
|
765 |
+
}
|
766 |
+
],
|
767 |
+
"properties": {
|
768 |
+
"Node name for S&R": "DualCLIPLoader"
|
769 |
+
},
|
770 |
+
"widgets_values": [
|
771 |
+
"t5xxl_fp8_e4m3fn.safetensors",
|
772 |
+
"clip_l.safetensors",
|
773 |
+
"flux",
|
774 |
+
"default"
|
775 |
+
]
|
776 |
+
},
|
777 |
+
{
|
778 |
+
"id": 25,
|
779 |
+
"type": "RandomNoise",
|
780 |
+
"pos": [
|
781 |
+
480,
|
782 |
+
768
|
783 |
+
],
|
784 |
+
"size": [
|
785 |
+
315,
|
786 |
+
82
|
787 |
+
],
|
788 |
+
"flags": {},
|
789 |
+
"order": 8,
|
790 |
+
"mode": 0,
|
791 |
+
"inputs": [],
|
792 |
+
"outputs": [
|
793 |
+
{
|
794 |
+
"name": "NOISE",
|
795 |
+
"type": "NOISE",
|
796 |
+
"links": [
|
797 |
+
37
|
798 |
+
],
|
799 |
+
"shape": 3
|
800 |
+
}
|
801 |
+
],
|
802 |
+
"properties": {
|
803 |
+
"Node name for S&R": "RandomNoise"
|
804 |
+
},
|
805 |
+
"widgets_values": [
|
806 |
+
0,
|
807 |
+
"fixed"
|
808 |
+
],
|
809 |
+
"color": "#2a363b",
|
810 |
+
"bgcolor": "#3f5159"
|
811 |
+
}
|
812 |
+
],
|
813 |
+
"links": [
|
814 |
+
[
|
815 |
+
9,
|
816 |
+
8,
|
817 |
+
0,
|
818 |
+
9,
|
819 |
+
0,
|
820 |
+
"IMAGE"
|
821 |
+
],
|
822 |
+
[
|
823 |
+
10,
|
824 |
+
11,
|
825 |
+
0,
|
826 |
+
6,
|
827 |
+
0,
|
828 |
+
"CLIP"
|
829 |
+
],
|
830 |
+
[
|
831 |
+
12,
|
832 |
+
10,
|
833 |
+
0,
|
834 |
+
8,
|
835 |
+
1,
|
836 |
+
"VAE"
|
837 |
+
],
|
838 |
+
[
|
839 |
+
19,
|
840 |
+
16,
|
841 |
+
0,
|
842 |
+
13,
|
843 |
+
2,
|
844 |
+
"SAMPLER"
|
845 |
+
],
|
846 |
+
[
|
847 |
+
20,
|
848 |
+
17,
|
849 |
+
0,
|
850 |
+
13,
|
851 |
+
3,
|
852 |
+
"SIGMAS"
|
853 |
+
],
|
854 |
+
[
|
855 |
+
24,
|
856 |
+
13,
|
857 |
+
0,
|
858 |
+
8,
|
859 |
+
0,
|
860 |
+
"LATENT"
|
861 |
+
],
|
862 |
+
[
|
863 |
+
30,
|
864 |
+
22,
|
865 |
+
0,
|
866 |
+
13,
|
867 |
+
1,
|
868 |
+
"GUIDER"
|
869 |
+
],
|
870 |
+
[
|
871 |
+
37,
|
872 |
+
25,
|
873 |
+
0,
|
874 |
+
13,
|
875 |
+
0,
|
876 |
+
"NOISE"
|
877 |
+
],
|
878 |
+
[
|
879 |
+
41,
|
880 |
+
6,
|
881 |
+
0,
|
882 |
+
26,
|
883 |
+
0,
|
884 |
+
"CONDITIONING"
|
885 |
+
],
|
886 |
+
[
|
887 |
+
42,
|
888 |
+
26,
|
889 |
+
0,
|
890 |
+
22,
|
891 |
+
1,
|
892 |
+
"CONDITIONING"
|
893 |
+
],
|
894 |
+
[
|
895 |
+
54,
|
896 |
+
30,
|
897 |
+
0,
|
898 |
+
22,
|
899 |
+
0,
|
900 |
+
"MODEL"
|
901 |
+
],
|
902 |
+
[
|
903 |
+
55,
|
904 |
+
30,
|
905 |
+
0,
|
906 |
+
17,
|
907 |
+
0,
|
908 |
+
"MODEL"
|
909 |
+
],
|
910 |
+
[
|
911 |
+
112,
|
912 |
+
34,
|
913 |
+
0,
|
914 |
+
27,
|
915 |
+
0,
|
916 |
+
"INT"
|
917 |
+
],
|
918 |
+
[
|
919 |
+
113,
|
920 |
+
35,
|
921 |
+
0,
|
922 |
+
27,
|
923 |
+
1,
|
924 |
+
"INT"
|
925 |
+
],
|
926 |
+
[
|
927 |
+
114,
|
928 |
+
35,
|
929 |
+
0,
|
930 |
+
30,
|
931 |
+
2,
|
932 |
+
"INT"
|
933 |
+
],
|
934 |
+
[
|
935 |
+
115,
|
936 |
+
34,
|
937 |
+
0,
|
938 |
+
30,
|
939 |
+
1,
|
940 |
+
"INT"
|
941 |
+
],
|
942 |
+
[
|
943 |
+
116,
|
944 |
+
27,
|
945 |
+
0,
|
946 |
+
13,
|
947 |
+
4,
|
948 |
+
"LATENT"
|
949 |
+
],
|
950 |
+
[
|
951 |
+
117,
|
952 |
+
12,
|
953 |
+
0,
|
954 |
+
38,
|
955 |
+
0,
|
956 |
+
"MODEL"
|
957 |
+
],
|
958 |
+
[
|
959 |
+
118,
|
960 |
+
38,
|
961 |
+
0,
|
962 |
+
39,
|
963 |
+
0,
|
964 |
+
"*"
|
965 |
+
],
|
966 |
+
[
|
967 |
+
119,
|
968 |
+
39,
|
969 |
+
0,
|
970 |
+
30,
|
971 |
+
0,
|
972 |
+
"MODEL"
|
973 |
+
]
|
974 |
+
],
|
975 |
+
"groups": [],
|
976 |
+
"config": {},
|
977 |
+
"extra": {
|
978 |
+
"ds": {
|
979 |
+
"scale": 0.7513148009015777,
|
980 |
+
"offset": [
|
981 |
+
548.4488064056912,
|
982 |
+
100.33731670597518
|
983 |
+
]
|
984 |
+
},
|
985 |
+
"groupNodes": {},
|
986 |
+
"node_versions": {
|
987 |
+
"comfy-core": "v0.3.10-44-g2ff3104f",
|
988 |
+
"Comfy-WaveSpeed": "21140cdf8c43946acd9ea522b4fda66df5d859c9"
|
989 |
+
},
|
990 |
+
"VHS_latentpreview": false,
|
991 |
+
"VHS_latentpreviewrate": 0
|
992 |
+
},
|
993 |
+
"version": 0.4
|
994 |
+
}
|
custom_nodes/Comfy-WaveSpeed/workflows/flux_controlnet.json
ADDED
@@ -0,0 +1,888 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 37,
|
3 |
+
"last_link_id": 65,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 3,
|
7 |
+
"type": "KSampler",
|
8 |
+
"pos": [
|
9 |
+
1280,
|
10 |
+
100
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
315,
|
14 |
+
262
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 15,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [
|
20 |
+
{
|
21 |
+
"name": "model",
|
22 |
+
"type": "MODEL",
|
23 |
+
"link": 65
|
24 |
+
},
|
25 |
+
{
|
26 |
+
"name": "positive",
|
27 |
+
"type": "CONDITIONING",
|
28 |
+
"link": 18
|
29 |
+
},
|
30 |
+
{
|
31 |
+
"name": "negative",
|
32 |
+
"type": "CONDITIONING",
|
33 |
+
"link": 19
|
34 |
+
},
|
35 |
+
{
|
36 |
+
"name": "latent_image",
|
37 |
+
"type": "LATENT",
|
38 |
+
"link": 54
|
39 |
+
}
|
40 |
+
],
|
41 |
+
"outputs": [
|
42 |
+
{
|
43 |
+
"name": "LATENT",
|
44 |
+
"type": "LATENT",
|
45 |
+
"links": [
|
46 |
+
7
|
47 |
+
],
|
48 |
+
"slot_index": 0
|
49 |
+
}
|
50 |
+
],
|
51 |
+
"properties": {
|
52 |
+
"Node name for S&R": "KSampler"
|
53 |
+
},
|
54 |
+
"widgets_values": [
|
55 |
+
0,
|
56 |
+
"fixed",
|
57 |
+
20,
|
58 |
+
1,
|
59 |
+
"euler",
|
60 |
+
"normal",
|
61 |
+
1
|
62 |
+
]
|
63 |
+
},
|
64 |
+
{
|
65 |
+
"id": 7,
|
66 |
+
"type": "CLIPTextEncode",
|
67 |
+
"pos": [
|
68 |
+
212,
|
69 |
+
417
|
70 |
+
],
|
71 |
+
"size": [
|
72 |
+
425.27801513671875,
|
73 |
+
180.6060791015625
|
74 |
+
],
|
75 |
+
"flags": {
|
76 |
+
"collapsed": true
|
77 |
+
},
|
78 |
+
"order": 9,
|
79 |
+
"mode": 0,
|
80 |
+
"inputs": [
|
81 |
+
{
|
82 |
+
"name": "clip",
|
83 |
+
"type": "CLIP",
|
84 |
+
"link": 59
|
85 |
+
}
|
86 |
+
],
|
87 |
+
"outputs": [
|
88 |
+
{
|
89 |
+
"name": "CONDITIONING",
|
90 |
+
"type": "CONDITIONING",
|
91 |
+
"links": [
|
92 |
+
17
|
93 |
+
],
|
94 |
+
"slot_index": 0
|
95 |
+
}
|
96 |
+
],
|
97 |
+
"title": "CLIP Text Encode (Negative Prompt)",
|
98 |
+
"properties": {
|
99 |
+
"Node name for S&R": "CLIPTextEncode"
|
100 |
+
},
|
101 |
+
"widgets_values": [
|
102 |
+
""
|
103 |
+
],
|
104 |
+
"color": "#322",
|
105 |
+
"bgcolor": "#533"
|
106 |
+
},
|
107 |
+
{
|
108 |
+
"id": 8,
|
109 |
+
"type": "VAEDecode",
|
110 |
+
"pos": [
|
111 |
+
1620,
|
112 |
+
98
|
113 |
+
],
|
114 |
+
"size": [
|
115 |
+
210,
|
116 |
+
46
|
117 |
+
],
|
118 |
+
"flags": {},
|
119 |
+
"order": 16,
|
120 |
+
"mode": 0,
|
121 |
+
"inputs": [
|
122 |
+
{
|
123 |
+
"name": "samples",
|
124 |
+
"type": "LATENT",
|
125 |
+
"link": 7
|
126 |
+
},
|
127 |
+
{
|
128 |
+
"name": "vae",
|
129 |
+
"type": "VAE",
|
130 |
+
"link": 62
|
131 |
+
}
|
132 |
+
],
|
133 |
+
"outputs": [
|
134 |
+
{
|
135 |
+
"name": "IMAGE",
|
136 |
+
"type": "IMAGE",
|
137 |
+
"links": [
|
138 |
+
9
|
139 |
+
],
|
140 |
+
"slot_index": 0
|
141 |
+
}
|
142 |
+
],
|
143 |
+
"properties": {
|
144 |
+
"Node name for S&R": "VAEDecode"
|
145 |
+
},
|
146 |
+
"widgets_values": []
|
147 |
+
},
|
148 |
+
{
|
149 |
+
"id": 9,
|
150 |
+
"type": "SaveImage",
|
151 |
+
"pos": [
|
152 |
+
1865,
|
153 |
+
99
|
154 |
+
],
|
155 |
+
"size": [
|
156 |
+
828.9535522460938,
|
157 |
+
893.8475341796875
|
158 |
+
],
|
159 |
+
"flags": {},
|
160 |
+
"order": 17,
|
161 |
+
"mode": 0,
|
162 |
+
"inputs": [
|
163 |
+
{
|
164 |
+
"name": "images",
|
165 |
+
"type": "IMAGE",
|
166 |
+
"link": 9
|
167 |
+
}
|
168 |
+
],
|
169 |
+
"outputs": [],
|
170 |
+
"properties": {},
|
171 |
+
"widgets_values": [
|
172 |
+
"ComfyUI"
|
173 |
+
]
|
174 |
+
},
|
175 |
+
{
|
176 |
+
"id": 14,
|
177 |
+
"type": "ControlNetApplySD3",
|
178 |
+
"pos": [
|
179 |
+
930,
|
180 |
+
100
|
181 |
+
],
|
182 |
+
"size": [
|
183 |
+
315,
|
184 |
+
186
|
185 |
+
],
|
186 |
+
"flags": {},
|
187 |
+
"order": 14,
|
188 |
+
"mode": 0,
|
189 |
+
"inputs": [
|
190 |
+
{
|
191 |
+
"name": "positive",
|
192 |
+
"type": "CONDITIONING",
|
193 |
+
"link": 42
|
194 |
+
},
|
195 |
+
{
|
196 |
+
"name": "negative",
|
197 |
+
"type": "CONDITIONING",
|
198 |
+
"link": 17
|
199 |
+
},
|
200 |
+
{
|
201 |
+
"name": "control_net",
|
202 |
+
"type": "CONTROL_NET",
|
203 |
+
"link": 52
|
204 |
+
},
|
205 |
+
{
|
206 |
+
"name": "vae",
|
207 |
+
"type": "VAE",
|
208 |
+
"link": 60
|
209 |
+
},
|
210 |
+
{
|
211 |
+
"name": "image",
|
212 |
+
"type": "IMAGE",
|
213 |
+
"link": 50
|
214 |
+
}
|
215 |
+
],
|
216 |
+
"outputs": [
|
217 |
+
{
|
218 |
+
"name": "positive",
|
219 |
+
"type": "CONDITIONING",
|
220 |
+
"links": [
|
221 |
+
18
|
222 |
+
],
|
223 |
+
"slot_index": 0,
|
224 |
+
"shape": 3
|
225 |
+
},
|
226 |
+
{
|
227 |
+
"name": "negative",
|
228 |
+
"type": "CONDITIONING",
|
229 |
+
"links": [
|
230 |
+
19
|
231 |
+
],
|
232 |
+
"slot_index": 1,
|
233 |
+
"shape": 3
|
234 |
+
}
|
235 |
+
],
|
236 |
+
"properties": {
|
237 |
+
"Node name for S&R": "ControlNetApplySD3"
|
238 |
+
},
|
239 |
+
"widgets_values": [
|
240 |
+
0.4,
|
241 |
+
0,
|
242 |
+
1
|
243 |
+
]
|
244 |
+
},
|
245 |
+
{
|
246 |
+
"id": 15,
|
247 |
+
"type": "ControlNetLoader",
|
248 |
+
"pos": [
|
249 |
+
570,
|
250 |
+
-60
|
251 |
+
],
|
252 |
+
"size": [
|
253 |
+
315,
|
254 |
+
58
|
255 |
+
],
|
256 |
+
"flags": {},
|
257 |
+
"order": 0,
|
258 |
+
"mode": 0,
|
259 |
+
"inputs": [],
|
260 |
+
"outputs": [
|
261 |
+
{
|
262 |
+
"name": "CONTROL_NET",
|
263 |
+
"type": "CONTROL_NET",
|
264 |
+
"links": [
|
265 |
+
52
|
266 |
+
],
|
267 |
+
"slot_index": 0,
|
268 |
+
"shape": 3
|
269 |
+
}
|
270 |
+
],
|
271 |
+
"properties": {
|
272 |
+
"Node name for S&R": "ControlNetLoader"
|
273 |
+
},
|
274 |
+
"widgets_values": [
|
275 |
+
"instantx_flux_canny.safetensors"
|
276 |
+
]
|
277 |
+
},
|
278 |
+
{
|
279 |
+
"id": 17,
|
280 |
+
"type": "LoadImage",
|
281 |
+
"pos": [
|
282 |
+
220,
|
283 |
+
530
|
284 |
+
],
|
285 |
+
"size": [
|
286 |
+
315,
|
287 |
+
314.0000305175781
|
288 |
+
],
|
289 |
+
"flags": {},
|
290 |
+
"order": 1,
|
291 |
+
"mode": 0,
|
292 |
+
"inputs": [],
|
293 |
+
"outputs": [
|
294 |
+
{
|
295 |
+
"name": "IMAGE",
|
296 |
+
"type": "IMAGE",
|
297 |
+
"links": [
|
298 |
+
49
|
299 |
+
],
|
300 |
+
"slot_index": 0,
|
301 |
+
"shape": 3
|
302 |
+
},
|
303 |
+
{
|
304 |
+
"name": "MASK",
|
305 |
+
"type": "MASK",
|
306 |
+
"links": null,
|
307 |
+
"shape": 3
|
308 |
+
}
|
309 |
+
],
|
310 |
+
"properties": {
|
311 |
+
"Node name for S&R": "LoadImage"
|
312 |
+
},
|
313 |
+
"widgets_values": [
|
314 |
+
"girl_in_field.png",
|
315 |
+
"image"
|
316 |
+
]
|
317 |
+
},
|
318 |
+
{
|
319 |
+
"id": 18,
|
320 |
+
"type": "Canny",
|
321 |
+
"pos": [
|
322 |
+
560,
|
323 |
+
530
|
324 |
+
],
|
325 |
+
"size": [
|
326 |
+
315,
|
327 |
+
82
|
328 |
+
],
|
329 |
+
"flags": {},
|
330 |
+
"order": 7,
|
331 |
+
"mode": 0,
|
332 |
+
"inputs": [
|
333 |
+
{
|
334 |
+
"name": "image",
|
335 |
+
"type": "IMAGE",
|
336 |
+
"link": 49
|
337 |
+
}
|
338 |
+
],
|
339 |
+
"outputs": [
|
340 |
+
{
|
341 |
+
"name": "IMAGE",
|
342 |
+
"type": "IMAGE",
|
343 |
+
"links": [
|
344 |
+
26,
|
345 |
+
50
|
346 |
+
],
|
347 |
+
"slot_index": 0,
|
348 |
+
"shape": 3
|
349 |
+
}
|
350 |
+
],
|
351 |
+
"properties": {
|
352 |
+
"Node name for S&R": "Canny"
|
353 |
+
},
|
354 |
+
"widgets_values": [
|
355 |
+
0.2,
|
356 |
+
0.3
|
357 |
+
]
|
358 |
+
},
|
359 |
+
{
|
360 |
+
"id": 19,
|
361 |
+
"type": "PreviewImage",
|
362 |
+
"pos": [
|
363 |
+
900,
|
364 |
+
530
|
365 |
+
],
|
366 |
+
"size": [
|
367 |
+
571.5869140625,
|
368 |
+
625.5296020507812
|
369 |
+
],
|
370 |
+
"flags": {},
|
371 |
+
"order": 11,
|
372 |
+
"mode": 0,
|
373 |
+
"inputs": [
|
374 |
+
{
|
375 |
+
"name": "images",
|
376 |
+
"type": "IMAGE",
|
377 |
+
"link": 26
|
378 |
+
}
|
379 |
+
],
|
380 |
+
"outputs": [],
|
381 |
+
"properties": {
|
382 |
+
"Node name for S&R": "PreviewImage"
|
383 |
+
},
|
384 |
+
"widgets_values": []
|
385 |
+
},
|
386 |
+
{
|
387 |
+
"id": 23,
|
388 |
+
"type": "CLIPTextEncode",
|
389 |
+
"pos": [
|
390 |
+
210,
|
391 |
+
196
|
392 |
+
],
|
393 |
+
"size": [
|
394 |
+
422.84503173828125,
|
395 |
+
164.31304931640625
|
396 |
+
],
|
397 |
+
"flags": {},
|
398 |
+
"order": 10,
|
399 |
+
"mode": 0,
|
400 |
+
"inputs": [
|
401 |
+
{
|
402 |
+
"name": "clip",
|
403 |
+
"type": "CLIP",
|
404 |
+
"link": 61
|
405 |
+
}
|
406 |
+
],
|
407 |
+
"outputs": [
|
408 |
+
{
|
409 |
+
"name": "CONDITIONING",
|
410 |
+
"type": "CONDITIONING",
|
411 |
+
"links": [
|
412 |
+
41
|
413 |
+
],
|
414 |
+
"slot_index": 0
|
415 |
+
}
|
416 |
+
],
|
417 |
+
"title": "CLIP Text Encode (Positive Prompt)",
|
418 |
+
"properties": {
|
419 |
+
"Node name for S&R": "CLIPTextEncode"
|
420 |
+
},
|
421 |
+
"widgets_values": [
|
422 |
+
"anime girl smiling with long hair standing in a football arena with a single massive sword hanging from her back"
|
423 |
+
],
|
424 |
+
"color": "#232",
|
425 |
+
"bgcolor": "#353"
|
426 |
+
},
|
427 |
+
{
|
428 |
+
"id": 26,
|
429 |
+
"type": "FluxGuidance",
|
430 |
+
"pos": [
|
431 |
+
570,
|
432 |
+
50
|
433 |
+
],
|
434 |
+
"size": [
|
435 |
+
317.4000244140625,
|
436 |
+
58
|
437 |
+
],
|
438 |
+
"flags": {},
|
439 |
+
"order": 13,
|
440 |
+
"mode": 0,
|
441 |
+
"inputs": [
|
442 |
+
{
|
443 |
+
"name": "conditioning",
|
444 |
+
"type": "CONDITIONING",
|
445 |
+
"link": 41
|
446 |
+
}
|
447 |
+
],
|
448 |
+
"outputs": [
|
449 |
+
{
|
450 |
+
"name": "CONDITIONING",
|
451 |
+
"type": "CONDITIONING",
|
452 |
+
"links": [
|
453 |
+
42
|
454 |
+
],
|
455 |
+
"slot_index": 0,
|
456 |
+
"shape": 3
|
457 |
+
}
|
458 |
+
],
|
459 |
+
"properties": {
|
460 |
+
"Node name for S&R": "FluxGuidance"
|
461 |
+
},
|
462 |
+
"widgets_values": [
|
463 |
+
3.5
|
464 |
+
]
|
465 |
+
},
|
466 |
+
{
|
467 |
+
"id": 28,
|
468 |
+
"type": "EmptySD3LatentImage",
|
469 |
+
"pos": [
|
470 |
+
930,
|
471 |
+
340
|
472 |
+
],
|
473 |
+
"size": [
|
474 |
+
315,
|
475 |
+
106
|
476 |
+
],
|
477 |
+
"flags": {},
|
478 |
+
"order": 2,
|
479 |
+
"mode": 0,
|
480 |
+
"inputs": [],
|
481 |
+
"outputs": [
|
482 |
+
{
|
483 |
+
"name": "LATENT",
|
484 |
+
"type": "LATENT",
|
485 |
+
"links": [
|
486 |
+
54
|
487 |
+
],
|
488 |
+
"slot_index": 0,
|
489 |
+
"shape": 3
|
490 |
+
}
|
491 |
+
],
|
492 |
+
"properties": {
|
493 |
+
"Node name for S&R": "EmptySD3LatentImage"
|
494 |
+
},
|
495 |
+
"widgets_values": [
|
496 |
+
1024,
|
497 |
+
1024,
|
498 |
+
1
|
499 |
+
]
|
500 |
+
},
|
501 |
+
{
|
502 |
+
"id": 32,
|
503 |
+
"type": "VAELoader",
|
504 |
+
"pos": [
|
505 |
+
-180,
|
506 |
+
230
|
507 |
+
],
|
508 |
+
"size": [
|
509 |
+
311.81634521484375,
|
510 |
+
60.429901123046875
|
511 |
+
],
|
512 |
+
"flags": {},
|
513 |
+
"order": 6,
|
514 |
+
"mode": 0,
|
515 |
+
"inputs": [],
|
516 |
+
"outputs": [
|
517 |
+
{
|
518 |
+
"name": "VAE",
|
519 |
+
"type": "VAE",
|
520 |
+
"links": [
|
521 |
+
60,
|
522 |
+
62
|
523 |
+
],
|
524 |
+
"slot_index": 0,
|
525 |
+
"shape": 3
|
526 |
+
}
|
527 |
+
],
|
528 |
+
"properties": {
|
529 |
+
"Node name for S&R": "VAELoader"
|
530 |
+
},
|
531 |
+
"widgets_values": [
|
532 |
+
"ae.safetensors"
|
533 |
+
]
|
534 |
+
},
|
535 |
+
{
|
536 |
+
"id": 33,
|
537 |
+
"type": "Note",
|
538 |
+
"pos": [
|
539 |
+
-180,
|
540 |
+
380
|
541 |
+
],
|
542 |
+
"size": [
|
543 |
+
336,
|
544 |
+
288
|
545 |
+
],
|
546 |
+
"flags": {},
|
547 |
+
"order": 3,
|
548 |
+
"mode": 0,
|
549 |
+
"inputs": [],
|
550 |
+
"outputs": [],
|
551 |
+
"properties": {
|
552 |
+
"text": ""
|
553 |
+
},
|
554 |
+
"widgets_values": [
|
555 |
+
"If you get an error in any of the nodes above make sure the files are in the correct directories.\n\nSee the top of the examples page for the links : https://comfyanonymous.github.io/ComfyUI_examples/flux/\n\nflux1-dev.safetensors goes in: ComfyUI/models/unet/\n\nt5xxl_fp16.safetensors and clip_l.safetensors go in: ComfyUI/models/clip/\n\nae.safetensors goes in: ComfyUI/models/vae/\n\n\nTip: You can set the weight_dtype above to one of the fp8 types if you have memory issues."
|
556 |
+
],
|
557 |
+
"color": "#432",
|
558 |
+
"bgcolor": "#653"
|
559 |
+
},
|
560 |
+
{
|
561 |
+
"id": 34,
|
562 |
+
"type": "UNETLoader",
|
563 |
+
"pos": [
|
564 |
+
-180,
|
565 |
+
-60
|
566 |
+
],
|
567 |
+
"size": [
|
568 |
+
315,
|
569 |
+
82
|
570 |
+
],
|
571 |
+
"flags": {},
|
572 |
+
"order": 4,
|
573 |
+
"mode": 0,
|
574 |
+
"inputs": [],
|
575 |
+
"outputs": [
|
576 |
+
{
|
577 |
+
"name": "MODEL",
|
578 |
+
"type": "MODEL",
|
579 |
+
"links": [
|
580 |
+
63
|
581 |
+
],
|
582 |
+
"slot_index": 0,
|
583 |
+
"shape": 3
|
584 |
+
}
|
585 |
+
],
|
586 |
+
"properties": {
|
587 |
+
"Node name for S&R": "UNETLoader"
|
588 |
+
},
|
589 |
+
"widgets_values": [
|
590 |
+
"flux1-dev.safetensors",
|
591 |
+
"fp8_e4m3fn_fast"
|
592 |
+
],
|
593 |
+
"color": "#223",
|
594 |
+
"bgcolor": "#335"
|
595 |
+
},
|
596 |
+
{
|
597 |
+
"id": 35,
|
598 |
+
"type": "DualCLIPLoader",
|
599 |
+
"pos": [
|
600 |
+
-180,
|
601 |
+
90
|
602 |
+
],
|
603 |
+
"size": [
|
604 |
+
315,
|
605 |
+
106
|
606 |
+
],
|
607 |
+
"flags": {},
|
608 |
+
"order": 5,
|
609 |
+
"mode": 0,
|
610 |
+
"inputs": [],
|
611 |
+
"outputs": [
|
612 |
+
{
|
613 |
+
"name": "CLIP",
|
614 |
+
"type": "CLIP",
|
615 |
+
"links": [
|
616 |
+
59,
|
617 |
+
61
|
618 |
+
],
|
619 |
+
"slot_index": 0,
|
620 |
+
"shape": 3
|
621 |
+
}
|
622 |
+
],
|
623 |
+
"properties": {
|
624 |
+
"Node name for S&R": "DualCLIPLoader"
|
625 |
+
},
|
626 |
+
"widgets_values": [
|
627 |
+
"t5xxl_fp8_e4m3fn.safetensors",
|
628 |
+
"clip_l.safetensors",
|
629 |
+
"flux",
|
630 |
+
"default"
|
631 |
+
]
|
632 |
+
},
|
633 |
+
{
|
634 |
+
"id": 36,
|
635 |
+
"type": "ApplyFBCacheOnModel",
|
636 |
+
"pos": [
|
637 |
+
200,
|
638 |
+
-160
|
639 |
+
],
|
640 |
+
"size": [
|
641 |
+
315,
|
642 |
+
154
|
643 |
+
],
|
644 |
+
"flags": {},
|
645 |
+
"order": 8,
|
646 |
+
"mode": 0,
|
647 |
+
"inputs": [
|
648 |
+
{
|
649 |
+
"name": "model",
|
650 |
+
"type": "MODEL",
|
651 |
+
"link": 63
|
652 |
+
}
|
653 |
+
],
|
654 |
+
"outputs": [
|
655 |
+
{
|
656 |
+
"name": "MODEL",
|
657 |
+
"type": "MODEL",
|
658 |
+
"links": [
|
659 |
+
64
|
660 |
+
],
|
661 |
+
"slot_index": 0
|
662 |
+
}
|
663 |
+
],
|
664 |
+
"properties": {
|
665 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
666 |
+
},
|
667 |
+
"widgets_values": [
|
668 |
+
"diffusion_model",
|
669 |
+
0.12,
|
670 |
+
0,
|
671 |
+
1,
|
672 |
+
-1
|
673 |
+
]
|
674 |
+
},
|
675 |
+
{
|
676 |
+
"id": 37,
|
677 |
+
"type": "EnhancedCompileModel",
|
678 |
+
"pos": [
|
679 |
+
560,
|
680 |
+
-410
|
681 |
+
],
|
682 |
+
"size": [
|
683 |
+
400,
|
684 |
+
294
|
685 |
+
],
|
686 |
+
"flags": {},
|
687 |
+
"order": 12,
|
688 |
+
"mode": 0,
|
689 |
+
"inputs": [
|
690 |
+
{
|
691 |
+
"name": "model",
|
692 |
+
"type": "*",
|
693 |
+
"link": 64
|
694 |
+
}
|
695 |
+
],
|
696 |
+
"outputs": [
|
697 |
+
{
|
698 |
+
"name": "*",
|
699 |
+
"type": "*",
|
700 |
+
"links": [
|
701 |
+
65
|
702 |
+
],
|
703 |
+
"slot_index": 0
|
704 |
+
}
|
705 |
+
],
|
706 |
+
"properties": {
|
707 |
+
"Node name for S&R": "EnhancedCompileModel"
|
708 |
+
},
|
709 |
+
"widgets_values": [
|
710 |
+
true,
|
711 |
+
"diffusion_model",
|
712 |
+
"torch.compile",
|
713 |
+
false,
|
714 |
+
false,
|
715 |
+
"",
|
716 |
+
"",
|
717 |
+
false,
|
718 |
+
"inductor"
|
719 |
+
]
|
720 |
+
}
|
721 |
+
],
|
722 |
+
"links": [
|
723 |
+
[
|
724 |
+
7,
|
725 |
+
3,
|
726 |
+
0,
|
727 |
+
8,
|
728 |
+
0,
|
729 |
+
"LATENT"
|
730 |
+
],
|
731 |
+
[
|
732 |
+
9,
|
733 |
+
8,
|
734 |
+
0,
|
735 |
+
9,
|
736 |
+
0,
|
737 |
+
"IMAGE"
|
738 |
+
],
|
739 |
+
[
|
740 |
+
17,
|
741 |
+
7,
|
742 |
+
0,
|
743 |
+
14,
|
744 |
+
1,
|
745 |
+
"CONDITIONING"
|
746 |
+
],
|
747 |
+
[
|
748 |
+
18,
|
749 |
+
14,
|
750 |
+
0,
|
751 |
+
3,
|
752 |
+
1,
|
753 |
+
"CONDITIONING"
|
754 |
+
],
|
755 |
+
[
|
756 |
+
19,
|
757 |
+
14,
|
758 |
+
1,
|
759 |
+
3,
|
760 |
+
2,
|
761 |
+
"CONDITIONING"
|
762 |
+
],
|
763 |
+
[
|
764 |
+
26,
|
765 |
+
18,
|
766 |
+
0,
|
767 |
+
19,
|
768 |
+
0,
|
769 |
+
"IMAGE"
|
770 |
+
],
|
771 |
+
[
|
772 |
+
41,
|
773 |
+
23,
|
774 |
+
0,
|
775 |
+
26,
|
776 |
+
0,
|
777 |
+
"CONDITIONING"
|
778 |
+
],
|
779 |
+
[
|
780 |
+
42,
|
781 |
+
26,
|
782 |
+
0,
|
783 |
+
14,
|
784 |
+
0,
|
785 |
+
"CONDITIONING"
|
786 |
+
],
|
787 |
+
[
|
788 |
+
49,
|
789 |
+
17,
|
790 |
+
0,
|
791 |
+
18,
|
792 |
+
0,
|
793 |
+
"IMAGE"
|
794 |
+
],
|
795 |
+
[
|
796 |
+
50,
|
797 |
+
18,
|
798 |
+
0,
|
799 |
+
14,
|
800 |
+
4,
|
801 |
+
"IMAGE"
|
802 |
+
],
|
803 |
+
[
|
804 |
+
52,
|
805 |
+
15,
|
806 |
+
0,
|
807 |
+
14,
|
808 |
+
2,
|
809 |
+
"CONTROL_NET"
|
810 |
+
],
|
811 |
+
[
|
812 |
+
54,
|
813 |
+
28,
|
814 |
+
0,
|
815 |
+
3,
|
816 |
+
3,
|
817 |
+
"LATENT"
|
818 |
+
],
|
819 |
+
[
|
820 |
+
59,
|
821 |
+
35,
|
822 |
+
0,
|
823 |
+
7,
|
824 |
+
0,
|
825 |
+
"CLIP"
|
826 |
+
],
|
827 |
+
[
|
828 |
+
60,
|
829 |
+
32,
|
830 |
+
0,
|
831 |
+
14,
|
832 |
+
3,
|
833 |
+
"VAE"
|
834 |
+
],
|
835 |
+
[
|
836 |
+
61,
|
837 |
+
35,
|
838 |
+
0,
|
839 |
+
23,
|
840 |
+
0,
|
841 |
+
"CLIP"
|
842 |
+
],
|
843 |
+
[
|
844 |
+
62,
|
845 |
+
32,
|
846 |
+
0,
|
847 |
+
8,
|
848 |
+
1,
|
849 |
+
"VAE"
|
850 |
+
],
|
851 |
+
[
|
852 |
+
63,
|
853 |
+
34,
|
854 |
+
0,
|
855 |
+
36,
|
856 |
+
0,
|
857 |
+
"MODEL"
|
858 |
+
],
|
859 |
+
[
|
860 |
+
64,
|
861 |
+
36,
|
862 |
+
0,
|
863 |
+
37,
|
864 |
+
0,
|
865 |
+
"*"
|
866 |
+
],
|
867 |
+
[
|
868 |
+
65,
|
869 |
+
37,
|
870 |
+
0,
|
871 |
+
3,
|
872 |
+
0,
|
873 |
+
"MODEL"
|
874 |
+
]
|
875 |
+
],
|
876 |
+
"groups": [],
|
877 |
+
"config": {},
|
878 |
+
"extra": {
|
879 |
+
"ds": {
|
880 |
+
"scale": 0.5131581182307068,
|
881 |
+
"offset": [
|
882 |
+
230.9978013084971,
|
883 |
+
284.1700529197747
|
884 |
+
]
|
885 |
+
}
|
886 |
+
},
|
887 |
+
"version": 0.4
|
888 |
+
}
|
custom_nodes/Comfy-WaveSpeed/workflows/hunyuan_video.json
ADDED
@@ -0,0 +1,851 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 78,
|
3 |
+
"last_link_id": 217,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 16,
|
7 |
+
"type": "KSamplerSelect",
|
8 |
+
"pos": [
|
9 |
+
484,
|
10 |
+
751
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
315,
|
14 |
+
58
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 0,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [],
|
20 |
+
"outputs": [
|
21 |
+
{
|
22 |
+
"name": "SAMPLER",
|
23 |
+
"type": "SAMPLER",
|
24 |
+
"links": [
|
25 |
+
19
|
26 |
+
],
|
27 |
+
"shape": 3
|
28 |
+
}
|
29 |
+
],
|
30 |
+
"properties": {
|
31 |
+
"Node name for S&R": "KSamplerSelect"
|
32 |
+
},
|
33 |
+
"widgets_values": [
|
34 |
+
"euler"
|
35 |
+
]
|
36 |
+
},
|
37 |
+
{
|
38 |
+
"id": 17,
|
39 |
+
"type": "BasicScheduler",
|
40 |
+
"pos": [
|
41 |
+
478,
|
42 |
+
860
|
43 |
+
],
|
44 |
+
"size": [
|
45 |
+
315,
|
46 |
+
106
|
47 |
+
],
|
48 |
+
"flags": {},
|
49 |
+
"order": 8,
|
50 |
+
"mode": 0,
|
51 |
+
"inputs": [
|
52 |
+
{
|
53 |
+
"name": "model",
|
54 |
+
"type": "MODEL",
|
55 |
+
"link": 190,
|
56 |
+
"slot_index": 0
|
57 |
+
}
|
58 |
+
],
|
59 |
+
"outputs": [
|
60 |
+
{
|
61 |
+
"name": "SIGMAS",
|
62 |
+
"type": "SIGMAS",
|
63 |
+
"links": [
|
64 |
+
20
|
65 |
+
],
|
66 |
+
"shape": 3
|
67 |
+
}
|
68 |
+
],
|
69 |
+
"properties": {
|
70 |
+
"Node name for S&R": "BasicScheduler"
|
71 |
+
},
|
72 |
+
"widgets_values": [
|
73 |
+
"simple",
|
74 |
+
20,
|
75 |
+
1
|
76 |
+
]
|
77 |
+
},
|
78 |
+
{
|
79 |
+
"id": 26,
|
80 |
+
"type": "FluxGuidance",
|
81 |
+
"pos": [
|
82 |
+
520,
|
83 |
+
100
|
84 |
+
],
|
85 |
+
"size": [
|
86 |
+
317.4000244140625,
|
87 |
+
58
|
88 |
+
],
|
89 |
+
"flags": {},
|
90 |
+
"order": 12,
|
91 |
+
"mode": 0,
|
92 |
+
"inputs": [
|
93 |
+
{
|
94 |
+
"name": "conditioning",
|
95 |
+
"type": "CONDITIONING",
|
96 |
+
"link": 175
|
97 |
+
}
|
98 |
+
],
|
99 |
+
"outputs": [
|
100 |
+
{
|
101 |
+
"name": "CONDITIONING",
|
102 |
+
"type": "CONDITIONING",
|
103 |
+
"links": [
|
104 |
+
129
|
105 |
+
],
|
106 |
+
"slot_index": 0,
|
107 |
+
"shape": 3
|
108 |
+
}
|
109 |
+
],
|
110 |
+
"properties": {
|
111 |
+
"Node name for S&R": "FluxGuidance"
|
112 |
+
},
|
113 |
+
"widgets_values": [
|
114 |
+
6
|
115 |
+
],
|
116 |
+
"color": "#233",
|
117 |
+
"bgcolor": "#355"
|
118 |
+
},
|
119 |
+
{
|
120 |
+
"id": 45,
|
121 |
+
"type": "EmptyHunyuanLatentVideo",
|
122 |
+
"pos": [
|
123 |
+
475.540771484375,
|
124 |
+
432.673583984375
|
125 |
+
],
|
126 |
+
"size": [
|
127 |
+
315,
|
128 |
+
130
|
129 |
+
],
|
130 |
+
"flags": {},
|
131 |
+
"order": 1,
|
132 |
+
"mode": 0,
|
133 |
+
"inputs": [],
|
134 |
+
"outputs": [
|
135 |
+
{
|
136 |
+
"name": "LATENT",
|
137 |
+
"type": "LATENT",
|
138 |
+
"links": [
|
139 |
+
180
|
140 |
+
],
|
141 |
+
"slot_index": 0
|
142 |
+
}
|
143 |
+
],
|
144 |
+
"properties": {
|
145 |
+
"Node name for S&R": "EmptyHunyuanLatentVideo"
|
146 |
+
},
|
147 |
+
"widgets_values": [
|
148 |
+
848,
|
149 |
+
480,
|
150 |
+
73,
|
151 |
+
1
|
152 |
+
]
|
153 |
+
},
|
154 |
+
{
|
155 |
+
"id": 22,
|
156 |
+
"type": "BasicGuider",
|
157 |
+
"pos": [
|
158 |
+
600,
|
159 |
+
0
|
160 |
+
],
|
161 |
+
"size": [
|
162 |
+
222.3482666015625,
|
163 |
+
46
|
164 |
+
],
|
165 |
+
"flags": {},
|
166 |
+
"order": 13,
|
167 |
+
"mode": 0,
|
168 |
+
"inputs": [
|
169 |
+
{
|
170 |
+
"name": "model",
|
171 |
+
"type": "MODEL",
|
172 |
+
"link": 195,
|
173 |
+
"slot_index": 0
|
174 |
+
},
|
175 |
+
{
|
176 |
+
"name": "conditioning",
|
177 |
+
"type": "CONDITIONING",
|
178 |
+
"link": 129,
|
179 |
+
"slot_index": 1
|
180 |
+
}
|
181 |
+
],
|
182 |
+
"outputs": [
|
183 |
+
{
|
184 |
+
"name": "GUIDER",
|
185 |
+
"type": "GUIDER",
|
186 |
+
"links": [
|
187 |
+
30
|
188 |
+
],
|
189 |
+
"slot_index": 0,
|
190 |
+
"shape": 3
|
191 |
+
}
|
192 |
+
],
|
193 |
+
"properties": {
|
194 |
+
"Node name for S&R": "BasicGuider"
|
195 |
+
},
|
196 |
+
"widgets_values": []
|
197 |
+
},
|
198 |
+
{
|
199 |
+
"id": 73,
|
200 |
+
"type": "VAEDecodeTiled",
|
201 |
+
"pos": [
|
202 |
+
1150,
|
203 |
+
200
|
204 |
+
],
|
205 |
+
"size": [
|
206 |
+
210,
|
207 |
+
150
|
208 |
+
],
|
209 |
+
"flags": {},
|
210 |
+
"order": 16,
|
211 |
+
"mode": 0,
|
212 |
+
"inputs": [
|
213 |
+
{
|
214 |
+
"name": "samples",
|
215 |
+
"type": "LATENT",
|
216 |
+
"link": 210
|
217 |
+
},
|
218 |
+
{
|
219 |
+
"name": "vae",
|
220 |
+
"type": "VAE",
|
221 |
+
"link": 211
|
222 |
+
}
|
223 |
+
],
|
224 |
+
"outputs": [
|
225 |
+
{
|
226 |
+
"name": "IMAGE",
|
227 |
+
"type": "IMAGE",
|
228 |
+
"links": [
|
229 |
+
215
|
230 |
+
],
|
231 |
+
"slot_index": 0
|
232 |
+
}
|
233 |
+
],
|
234 |
+
"properties": {
|
235 |
+
"Node name for S&R": "VAEDecodeTiled"
|
236 |
+
},
|
237 |
+
"widgets_values": [
|
238 |
+
256,
|
239 |
+
64,
|
240 |
+
64,
|
241 |
+
8
|
242 |
+
]
|
243 |
+
},
|
244 |
+
{
|
245 |
+
"id": 8,
|
246 |
+
"type": "VAEDecode",
|
247 |
+
"pos": [
|
248 |
+
1150,
|
249 |
+
90
|
250 |
+
],
|
251 |
+
"size": [
|
252 |
+
210,
|
253 |
+
46
|
254 |
+
],
|
255 |
+
"flags": {},
|
256 |
+
"order": 15,
|
257 |
+
"mode": 2,
|
258 |
+
"inputs": [
|
259 |
+
{
|
260 |
+
"name": "samples",
|
261 |
+
"type": "LATENT",
|
262 |
+
"link": 181
|
263 |
+
},
|
264 |
+
{
|
265 |
+
"name": "vae",
|
266 |
+
"type": "VAE",
|
267 |
+
"link": 206
|
268 |
+
}
|
269 |
+
],
|
270 |
+
"outputs": [
|
271 |
+
{
|
272 |
+
"name": "IMAGE",
|
273 |
+
"type": "IMAGE",
|
274 |
+
"links": [],
|
275 |
+
"slot_index": 0
|
276 |
+
}
|
277 |
+
],
|
278 |
+
"properties": {
|
279 |
+
"Node name for S&R": "VAEDecode"
|
280 |
+
},
|
281 |
+
"widgets_values": []
|
282 |
+
},
|
283 |
+
{
|
284 |
+
"id": 74,
|
285 |
+
"type": "Note",
|
286 |
+
"pos": [
|
287 |
+
1150,
|
288 |
+
360
|
289 |
+
],
|
290 |
+
"size": [
|
291 |
+
210,
|
292 |
+
170
|
293 |
+
],
|
294 |
+
"flags": {},
|
295 |
+
"order": 2,
|
296 |
+
"mode": 0,
|
297 |
+
"inputs": [],
|
298 |
+
"outputs": [],
|
299 |
+
"properties": {},
|
300 |
+
"widgets_values": [
|
301 |
+
"Use the tiled decode node by default because most people will need it.\n\nLower the tile_size and overlap if you run out of memory."
|
302 |
+
],
|
303 |
+
"color": "#432",
|
304 |
+
"bgcolor": "#653"
|
305 |
+
},
|
306 |
+
{
|
307 |
+
"id": 77,
|
308 |
+
"type": "Note",
|
309 |
+
"pos": [
|
310 |
+
0,
|
311 |
+
0
|
312 |
+
],
|
313 |
+
"size": [
|
314 |
+
350,
|
315 |
+
110
|
316 |
+
],
|
317 |
+
"flags": {},
|
318 |
+
"order": 3,
|
319 |
+
"mode": 0,
|
320 |
+
"inputs": [],
|
321 |
+
"outputs": [],
|
322 |
+
"properties": {},
|
323 |
+
"widgets_values": [
|
324 |
+
"Select a fp8 weight_dtype if you are running out of memory."
|
325 |
+
],
|
326 |
+
"color": "#432",
|
327 |
+
"bgcolor": "#653"
|
328 |
+
},
|
329 |
+
{
|
330 |
+
"id": 13,
|
331 |
+
"type": "SamplerCustomAdvanced",
|
332 |
+
"pos": [
|
333 |
+
860,
|
334 |
+
200
|
335 |
+
],
|
336 |
+
"size": [
|
337 |
+
272.3617858886719,
|
338 |
+
124.53733825683594
|
339 |
+
],
|
340 |
+
"flags": {},
|
341 |
+
"order": 14,
|
342 |
+
"mode": 0,
|
343 |
+
"inputs": [
|
344 |
+
{
|
345 |
+
"name": "noise",
|
346 |
+
"type": "NOISE",
|
347 |
+
"link": 37,
|
348 |
+
"slot_index": 0
|
349 |
+
},
|
350 |
+
{
|
351 |
+
"name": "guider",
|
352 |
+
"type": "GUIDER",
|
353 |
+
"link": 30,
|
354 |
+
"slot_index": 1
|
355 |
+
},
|
356 |
+
{
|
357 |
+
"name": "sampler",
|
358 |
+
"type": "SAMPLER",
|
359 |
+
"link": 19,
|
360 |
+
"slot_index": 2
|
361 |
+
},
|
362 |
+
{
|
363 |
+
"name": "sigmas",
|
364 |
+
"type": "SIGMAS",
|
365 |
+
"link": 20,
|
366 |
+
"slot_index": 3
|
367 |
+
},
|
368 |
+
{
|
369 |
+
"name": "latent_image",
|
370 |
+
"type": "LATENT",
|
371 |
+
"link": 180,
|
372 |
+
"slot_index": 4
|
373 |
+
}
|
374 |
+
],
|
375 |
+
"outputs": [
|
376 |
+
{
|
377 |
+
"name": "output",
|
378 |
+
"type": "LATENT",
|
379 |
+
"links": [
|
380 |
+
181,
|
381 |
+
210
|
382 |
+
],
|
383 |
+
"slot_index": 0,
|
384 |
+
"shape": 3
|
385 |
+
},
|
386 |
+
{
|
387 |
+
"name": "denoised_output",
|
388 |
+
"type": "LATENT",
|
389 |
+
"links": null,
|
390 |
+
"shape": 3
|
391 |
+
}
|
392 |
+
],
|
393 |
+
"properties": {
|
394 |
+
"Node name for S&R": "SamplerCustomAdvanced"
|
395 |
+
},
|
396 |
+
"widgets_values": []
|
397 |
+
},
|
398 |
+
{
|
399 |
+
"id": 44,
|
400 |
+
"type": "CLIPTextEncode",
|
401 |
+
"pos": [
|
402 |
+
420,
|
403 |
+
200
|
404 |
+
],
|
405 |
+
"size": [
|
406 |
+
422.84503173828125,
|
407 |
+
164.31304931640625
|
408 |
+
],
|
409 |
+
"flags": {},
|
410 |
+
"order": 10,
|
411 |
+
"mode": 0,
|
412 |
+
"inputs": [
|
413 |
+
{
|
414 |
+
"name": "clip",
|
415 |
+
"type": "CLIP",
|
416 |
+
"link": 205
|
417 |
+
}
|
418 |
+
],
|
419 |
+
"outputs": [
|
420 |
+
{
|
421 |
+
"name": "CONDITIONING",
|
422 |
+
"type": "CONDITIONING",
|
423 |
+
"links": [
|
424 |
+
175
|
425 |
+
],
|
426 |
+
"slot_index": 0
|
427 |
+
}
|
428 |
+
],
|
429 |
+
"title": "CLIP Text Encode (Positive Prompt)",
|
430 |
+
"properties": {
|
431 |
+
"Node name for S&R": "CLIPTextEncode"
|
432 |
+
},
|
433 |
+
"widgets_values": [
|
434 |
+
"anime style anime girl with massive fennec ears and one big fluffy tail, she has blonde hair long hair blue eyes wearing a pink sweater and a long blue skirt walking in a beautiful outdoor scenery with snow mountains in the background"
|
435 |
+
],
|
436 |
+
"color": "#232",
|
437 |
+
"bgcolor": "#353"
|
438 |
+
},
|
439 |
+
{
|
440 |
+
"id": 75,
|
441 |
+
"type": "SaveAnimatedWEBP",
|
442 |
+
"pos": [
|
443 |
+
1410,
|
444 |
+
200
|
445 |
+
],
|
446 |
+
"size": [
|
447 |
+
315,
|
448 |
+
366
|
449 |
+
],
|
450 |
+
"flags": {},
|
451 |
+
"order": 17,
|
452 |
+
"mode": 0,
|
453 |
+
"inputs": [
|
454 |
+
{
|
455 |
+
"name": "images",
|
456 |
+
"type": "IMAGE",
|
457 |
+
"link": 215
|
458 |
+
}
|
459 |
+
],
|
460 |
+
"outputs": [],
|
461 |
+
"properties": {},
|
462 |
+
"widgets_values": [
|
463 |
+
"ComfyUI",
|
464 |
+
24,
|
465 |
+
false,
|
466 |
+
80,
|
467 |
+
"default",
|
468 |
+
null
|
469 |
+
]
|
470 |
+
},
|
471 |
+
{
|
472 |
+
"id": 12,
|
473 |
+
"type": "UNETLoader",
|
474 |
+
"pos": [
|
475 |
+
0,
|
476 |
+
150
|
477 |
+
],
|
478 |
+
"size": [
|
479 |
+
350,
|
480 |
+
82
|
481 |
+
],
|
482 |
+
"flags": {},
|
483 |
+
"order": 4,
|
484 |
+
"mode": 0,
|
485 |
+
"inputs": [],
|
486 |
+
"outputs": [
|
487 |
+
{
|
488 |
+
"name": "MODEL",
|
489 |
+
"type": "MODEL",
|
490 |
+
"links": [
|
491 |
+
190,
|
492 |
+
216
|
493 |
+
],
|
494 |
+
"slot_index": 0,
|
495 |
+
"shape": 3
|
496 |
+
}
|
497 |
+
],
|
498 |
+
"properties": {
|
499 |
+
"Node name for S&R": "UNETLoader"
|
500 |
+
},
|
501 |
+
"widgets_values": [
|
502 |
+
"hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors",
|
503 |
+
"fp8_e4m3fn_fast"
|
504 |
+
],
|
505 |
+
"color": "#223",
|
506 |
+
"bgcolor": "#335"
|
507 |
+
},
|
508 |
+
{
|
509 |
+
"id": 11,
|
510 |
+
"type": "DualCLIPLoader",
|
511 |
+
"pos": [
|
512 |
+
0,
|
513 |
+
270
|
514 |
+
],
|
515 |
+
"size": [
|
516 |
+
350,
|
517 |
+
106
|
518 |
+
],
|
519 |
+
"flags": {},
|
520 |
+
"order": 5,
|
521 |
+
"mode": 0,
|
522 |
+
"inputs": [],
|
523 |
+
"outputs": [
|
524 |
+
{
|
525 |
+
"name": "CLIP",
|
526 |
+
"type": "CLIP",
|
527 |
+
"links": [
|
528 |
+
205
|
529 |
+
],
|
530 |
+
"slot_index": 0,
|
531 |
+
"shape": 3
|
532 |
+
}
|
533 |
+
],
|
534 |
+
"properties": {
|
535 |
+
"Node name for S&R": "DualCLIPLoader"
|
536 |
+
},
|
537 |
+
"widgets_values": [
|
538 |
+
"clip_l.safetensors",
|
539 |
+
"llava_llama3_fp8_scaled.safetensors",
|
540 |
+
"hunyuan_video",
|
541 |
+
"default"
|
542 |
+
]
|
543 |
+
},
|
544 |
+
{
|
545 |
+
"id": 10,
|
546 |
+
"type": "VAELoader",
|
547 |
+
"pos": [
|
548 |
+
0,
|
549 |
+
420
|
550 |
+
],
|
551 |
+
"size": [
|
552 |
+
350,
|
553 |
+
60
|
554 |
+
],
|
555 |
+
"flags": {},
|
556 |
+
"order": 6,
|
557 |
+
"mode": 0,
|
558 |
+
"inputs": [],
|
559 |
+
"outputs": [
|
560 |
+
{
|
561 |
+
"name": "VAE",
|
562 |
+
"type": "VAE",
|
563 |
+
"links": [
|
564 |
+
206,
|
565 |
+
211
|
566 |
+
],
|
567 |
+
"slot_index": 0,
|
568 |
+
"shape": 3
|
569 |
+
}
|
570 |
+
],
|
571 |
+
"properties": {
|
572 |
+
"Node name for S&R": "VAELoader"
|
573 |
+
},
|
574 |
+
"widgets_values": [
|
575 |
+
"hunyuan_video_vae_bf16.safetensors"
|
576 |
+
]
|
577 |
+
},
|
578 |
+
{
|
579 |
+
"id": 67,
|
580 |
+
"type": "ModelSamplingSD3",
|
581 |
+
"pos": [
|
582 |
+
360,
|
583 |
+
0
|
584 |
+
],
|
585 |
+
"size": [
|
586 |
+
210,
|
587 |
+
58
|
588 |
+
],
|
589 |
+
"flags": {},
|
590 |
+
"order": 11,
|
591 |
+
"mode": 0,
|
592 |
+
"inputs": [
|
593 |
+
{
|
594 |
+
"name": "model",
|
595 |
+
"type": "MODEL",
|
596 |
+
"link": 217
|
597 |
+
}
|
598 |
+
],
|
599 |
+
"outputs": [
|
600 |
+
{
|
601 |
+
"name": "MODEL",
|
602 |
+
"type": "MODEL",
|
603 |
+
"links": [
|
604 |
+
195
|
605 |
+
],
|
606 |
+
"slot_index": 0
|
607 |
+
}
|
608 |
+
],
|
609 |
+
"properties": {
|
610 |
+
"Node name for S&R": "ModelSamplingSD3"
|
611 |
+
},
|
612 |
+
"widgets_values": [
|
613 |
+
7
|
614 |
+
]
|
615 |
+
},
|
616 |
+
{
|
617 |
+
"id": 25,
|
618 |
+
"type": "RandomNoise",
|
619 |
+
"pos": [
|
620 |
+
479,
|
621 |
+
618
|
622 |
+
],
|
623 |
+
"size": [
|
624 |
+
315,
|
625 |
+
82
|
626 |
+
],
|
627 |
+
"flags": {},
|
628 |
+
"order": 7,
|
629 |
+
"mode": 0,
|
630 |
+
"inputs": [],
|
631 |
+
"outputs": [
|
632 |
+
{
|
633 |
+
"name": "NOISE",
|
634 |
+
"type": "NOISE",
|
635 |
+
"links": [
|
636 |
+
37
|
637 |
+
],
|
638 |
+
"shape": 3
|
639 |
+
}
|
640 |
+
],
|
641 |
+
"properties": {
|
642 |
+
"Node name for S&R": "RandomNoise"
|
643 |
+
},
|
644 |
+
"widgets_values": [
|
645 |
+
0,
|
646 |
+
"fixed"
|
647 |
+
],
|
648 |
+
"color": "#2a363b",
|
649 |
+
"bgcolor": "#3f5159"
|
650 |
+
},
|
651 |
+
{
|
652 |
+
"id": 78,
|
653 |
+
"type": "ApplyFBCacheOnModel",
|
654 |
+
"pos": [
|
655 |
+
10,
|
656 |
+
-220
|
657 |
+
],
|
658 |
+
"size": [
|
659 |
+
315,
|
660 |
+
154
|
661 |
+
],
|
662 |
+
"flags": {},
|
663 |
+
"order": 9,
|
664 |
+
"mode": 0,
|
665 |
+
"inputs": [
|
666 |
+
{
|
667 |
+
"name": "model",
|
668 |
+
"type": "MODEL",
|
669 |
+
"link": 216
|
670 |
+
}
|
671 |
+
],
|
672 |
+
"outputs": [
|
673 |
+
{
|
674 |
+
"name": "MODEL",
|
675 |
+
"type": "MODEL",
|
676 |
+
"links": [
|
677 |
+
217
|
678 |
+
],
|
679 |
+
"slot_index": 0
|
680 |
+
}
|
681 |
+
],
|
682 |
+
"properties": {
|
683 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
684 |
+
},
|
685 |
+
"widgets_values": [
|
686 |
+
"diffusion_model",
|
687 |
+
0.1,
|
688 |
+
0,
|
689 |
+
1,
|
690 |
+
-1
|
691 |
+
]
|
692 |
+
}
|
693 |
+
],
|
694 |
+
"links": [
|
695 |
+
[
|
696 |
+
19,
|
697 |
+
16,
|
698 |
+
0,
|
699 |
+
13,
|
700 |
+
2,
|
701 |
+
"SAMPLER"
|
702 |
+
],
|
703 |
+
[
|
704 |
+
20,
|
705 |
+
17,
|
706 |
+
0,
|
707 |
+
13,
|
708 |
+
3,
|
709 |
+
"SIGMAS"
|
710 |
+
],
|
711 |
+
[
|
712 |
+
30,
|
713 |
+
22,
|
714 |
+
0,
|
715 |
+
13,
|
716 |
+
1,
|
717 |
+
"GUIDER"
|
718 |
+
],
|
719 |
+
[
|
720 |
+
37,
|
721 |
+
25,
|
722 |
+
0,
|
723 |
+
13,
|
724 |
+
0,
|
725 |
+
"NOISE"
|
726 |
+
],
|
727 |
+
[
|
728 |
+
129,
|
729 |
+
26,
|
730 |
+
0,
|
731 |
+
22,
|
732 |
+
1,
|
733 |
+
"CONDITIONING"
|
734 |
+
],
|
735 |
+
[
|
736 |
+
175,
|
737 |
+
44,
|
738 |
+
0,
|
739 |
+
26,
|
740 |
+
0,
|
741 |
+
"CONDITIONING"
|
742 |
+
],
|
743 |
+
[
|
744 |
+
180,
|
745 |
+
45,
|
746 |
+
0,
|
747 |
+
13,
|
748 |
+
4,
|
749 |
+
"LATENT"
|
750 |
+
],
|
751 |
+
[
|
752 |
+
181,
|
753 |
+
13,
|
754 |
+
0,
|
755 |
+
8,
|
756 |
+
0,
|
757 |
+
"LATENT"
|
758 |
+
],
|
759 |
+
[
|
760 |
+
190,
|
761 |
+
12,
|
762 |
+
0,
|
763 |
+
17,
|
764 |
+
0,
|
765 |
+
"MODEL"
|
766 |
+
],
|
767 |
+
[
|
768 |
+
195,
|
769 |
+
67,
|
770 |
+
0,
|
771 |
+
22,
|
772 |
+
0,
|
773 |
+
"MODEL"
|
774 |
+
],
|
775 |
+
[
|
776 |
+
205,
|
777 |
+
11,
|
778 |
+
0,
|
779 |
+
44,
|
780 |
+
0,
|
781 |
+
"CLIP"
|
782 |
+
],
|
783 |
+
[
|
784 |
+
206,
|
785 |
+
10,
|
786 |
+
0,
|
787 |
+
8,
|
788 |
+
1,
|
789 |
+
"VAE"
|
790 |
+
],
|
791 |
+
[
|
792 |
+
210,
|
793 |
+
13,
|
794 |
+
0,
|
795 |
+
73,
|
796 |
+
0,
|
797 |
+
"LATENT"
|
798 |
+
],
|
799 |
+
[
|
800 |
+
211,
|
801 |
+
10,
|
802 |
+
0,
|
803 |
+
73,
|
804 |
+
1,
|
805 |
+
"VAE"
|
806 |
+
],
|
807 |
+
[
|
808 |
+
215,
|
809 |
+
73,
|
810 |
+
0,
|
811 |
+
75,
|
812 |
+
0,
|
813 |
+
"IMAGE"
|
814 |
+
],
|
815 |
+
[
|
816 |
+
216,
|
817 |
+
12,
|
818 |
+
0,
|
819 |
+
78,
|
820 |
+
0,
|
821 |
+
"MODEL"
|
822 |
+
],
|
823 |
+
[
|
824 |
+
217,
|
825 |
+
78,
|
826 |
+
0,
|
827 |
+
67,
|
828 |
+
0,
|
829 |
+
"MODEL"
|
830 |
+
]
|
831 |
+
],
|
832 |
+
"groups": [],
|
833 |
+
"config": {},
|
834 |
+
"extra": {
|
835 |
+
"ds": {
|
836 |
+
"scale": 1.0238870172519845,
|
837 |
+
"offset": [
|
838 |
+
170.98964291539164,
|
839 |
+
220.91105213566834
|
840 |
+
]
|
841 |
+
},
|
842 |
+
"groupNodes": {},
|
843 |
+
"node_versions": {
|
844 |
+
"comfy-core": "v0.3.10-44-g2ff3104f",
|
845 |
+
"Comfy-WaveSpeed": "e1e0e4c143ba15dd8f11b25741b4b491751f229a"
|
846 |
+
},
|
847 |
+
"VHS_latentpreview": false,
|
848 |
+
"VHS_latentpreviewrate": 0
|
849 |
+
},
|
850 |
+
"version": 0.4
|
851 |
+
}
|
custom_nodes/Comfy-WaveSpeed/workflows/ltxv.json
ADDED
@@ -0,0 +1,723 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 78,
|
3 |
+
"last_link_id": 186,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 6,
|
7 |
+
"type": "CLIPTextEncode",
|
8 |
+
"pos": [
|
9 |
+
420,
|
10 |
+
190
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
422.84503173828125,
|
14 |
+
164.31304931640625
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 6,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [
|
20 |
+
{
|
21 |
+
"name": "clip",
|
22 |
+
"type": "CLIP",
|
23 |
+
"link": 74
|
24 |
+
}
|
25 |
+
],
|
26 |
+
"outputs": [
|
27 |
+
{
|
28 |
+
"name": "CONDITIONING",
|
29 |
+
"type": "CONDITIONING",
|
30 |
+
"links": [
|
31 |
+
169
|
32 |
+
],
|
33 |
+
"slot_index": 0
|
34 |
+
}
|
35 |
+
],
|
36 |
+
"title": "CLIP Text Encode (Positive Prompt)",
|
37 |
+
"properties": {
|
38 |
+
"Node name for S&R": "CLIPTextEncode"
|
39 |
+
},
|
40 |
+
"widgets_values": [
|
41 |
+
"A woman with long brown hair and light skin smiles at another woman with long blonde hair. The woman with brown hair wears a black jacket and has a small, barely noticeable mole on her right cheek. The camera angle is a close-up, focused on the woman with brown hair's face. The lighting is warm and natural, likely from the setting sun, casting a soft glow on the scene. The scene appears to be real-life footage."
|
42 |
+
],
|
43 |
+
"color": "#232",
|
44 |
+
"bgcolor": "#353"
|
45 |
+
},
|
46 |
+
{
|
47 |
+
"id": 7,
|
48 |
+
"type": "CLIPTextEncode",
|
49 |
+
"pos": [
|
50 |
+
420,
|
51 |
+
390
|
52 |
+
],
|
53 |
+
"size": [
|
54 |
+
425.27801513671875,
|
55 |
+
180.6060791015625
|
56 |
+
],
|
57 |
+
"flags": {},
|
58 |
+
"order": 7,
|
59 |
+
"mode": 0,
|
60 |
+
"inputs": [
|
61 |
+
{
|
62 |
+
"name": "clip",
|
63 |
+
"type": "CLIP",
|
64 |
+
"link": 75
|
65 |
+
}
|
66 |
+
],
|
67 |
+
"outputs": [
|
68 |
+
{
|
69 |
+
"name": "CONDITIONING",
|
70 |
+
"type": "CONDITIONING",
|
71 |
+
"links": [
|
72 |
+
170
|
73 |
+
],
|
74 |
+
"slot_index": 0
|
75 |
+
}
|
76 |
+
],
|
77 |
+
"title": "CLIP Text Encode (Negative Prompt)",
|
78 |
+
"properties": {
|
79 |
+
"Node name for S&R": "CLIPTextEncode"
|
80 |
+
},
|
81 |
+
"widgets_values": [
|
82 |
+
"low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly"
|
83 |
+
],
|
84 |
+
"color": "#322",
|
85 |
+
"bgcolor": "#533"
|
86 |
+
},
|
87 |
+
{
|
88 |
+
"id": 8,
|
89 |
+
"type": "VAEDecode",
|
90 |
+
"pos": [
|
91 |
+
1600,
|
92 |
+
30
|
93 |
+
],
|
94 |
+
"size": [
|
95 |
+
210,
|
96 |
+
46
|
97 |
+
],
|
98 |
+
"flags": {},
|
99 |
+
"order": 12,
|
100 |
+
"mode": 0,
|
101 |
+
"inputs": [
|
102 |
+
{
|
103 |
+
"name": "samples",
|
104 |
+
"type": "LATENT",
|
105 |
+
"link": 171
|
106 |
+
},
|
107 |
+
{
|
108 |
+
"name": "vae",
|
109 |
+
"type": "VAE",
|
110 |
+
"link": 87
|
111 |
+
}
|
112 |
+
],
|
113 |
+
"outputs": [
|
114 |
+
{
|
115 |
+
"name": "IMAGE",
|
116 |
+
"type": "IMAGE",
|
117 |
+
"links": [
|
118 |
+
106
|
119 |
+
],
|
120 |
+
"slot_index": 0
|
121 |
+
}
|
122 |
+
],
|
123 |
+
"properties": {
|
124 |
+
"Node name for S&R": "VAEDecode"
|
125 |
+
},
|
126 |
+
"widgets_values": []
|
127 |
+
},
|
128 |
+
{
|
129 |
+
"id": 38,
|
130 |
+
"type": "CLIPLoader",
|
131 |
+
"pos": [
|
132 |
+
60,
|
133 |
+
190
|
134 |
+
],
|
135 |
+
"size": [
|
136 |
+
315,
|
137 |
+
82
|
138 |
+
],
|
139 |
+
"flags": {},
|
140 |
+
"order": 3,
|
141 |
+
"mode": 0,
|
142 |
+
"inputs": [],
|
143 |
+
"outputs": [
|
144 |
+
{
|
145 |
+
"name": "CLIP",
|
146 |
+
"type": "CLIP",
|
147 |
+
"links": [
|
148 |
+
74,
|
149 |
+
75
|
150 |
+
],
|
151 |
+
"slot_index": 0
|
152 |
+
}
|
153 |
+
],
|
154 |
+
"properties": {
|
155 |
+
"Node name for S&R": "CLIPLoader"
|
156 |
+
},
|
157 |
+
"widgets_values": [
|
158 |
+
"t5xxl_fp8_e4m3fn.safetensors",
|
159 |
+
"ltxv",
|
160 |
+
"default"
|
161 |
+
]
|
162 |
+
},
|
163 |
+
{
|
164 |
+
"id": 41,
|
165 |
+
"type": "SaveAnimatedWEBP",
|
166 |
+
"pos": [
|
167 |
+
1830,
|
168 |
+
30
|
169 |
+
],
|
170 |
+
"size": [
|
171 |
+
680,
|
172 |
+
610
|
173 |
+
],
|
174 |
+
"flags": {},
|
175 |
+
"order": 13,
|
176 |
+
"mode": 0,
|
177 |
+
"inputs": [
|
178 |
+
{
|
179 |
+
"name": "images",
|
180 |
+
"type": "IMAGE",
|
181 |
+
"link": 106
|
182 |
+
}
|
183 |
+
],
|
184 |
+
"outputs": [],
|
185 |
+
"properties": {},
|
186 |
+
"widgets_values": [
|
187 |
+
"ComfyUI",
|
188 |
+
24,
|
189 |
+
false,
|
190 |
+
90,
|
191 |
+
"default",
|
192 |
+
null
|
193 |
+
]
|
194 |
+
},
|
195 |
+
{
|
196 |
+
"id": 44,
|
197 |
+
"type": "CheckpointLoaderSimple",
|
198 |
+
"pos": [
|
199 |
+
520,
|
200 |
+
30
|
201 |
+
],
|
202 |
+
"size": [
|
203 |
+
315,
|
204 |
+
98
|
205 |
+
],
|
206 |
+
"flags": {},
|
207 |
+
"order": 4,
|
208 |
+
"mode": 0,
|
209 |
+
"inputs": [],
|
210 |
+
"outputs": [
|
211 |
+
{
|
212 |
+
"name": "MODEL",
|
213 |
+
"type": "MODEL",
|
214 |
+
"links": [
|
215 |
+
183
|
216 |
+
],
|
217 |
+
"slot_index": 0
|
218 |
+
},
|
219 |
+
{
|
220 |
+
"name": "CLIP",
|
221 |
+
"type": "CLIP",
|
222 |
+
"links": null
|
223 |
+
},
|
224 |
+
{
|
225 |
+
"name": "VAE",
|
226 |
+
"type": "VAE",
|
227 |
+
"links": [
|
228 |
+
87
|
229 |
+
],
|
230 |
+
"slot_index": 2
|
231 |
+
}
|
232 |
+
],
|
233 |
+
"properties": {
|
234 |
+
"Node name for S&R": "CheckpointLoaderSimple"
|
235 |
+
},
|
236 |
+
"widgets_values": [
|
237 |
+
"ltx-video-2b-v0.9.1.safetensors"
|
238 |
+
]
|
239 |
+
},
|
240 |
+
{
|
241 |
+
"id": 69,
|
242 |
+
"type": "LTXVConditioning",
|
243 |
+
"pos": [
|
244 |
+
920,
|
245 |
+
60
|
246 |
+
],
|
247 |
+
"size": [
|
248 |
+
223.8660125732422,
|
249 |
+
78
|
250 |
+
],
|
251 |
+
"flags": {},
|
252 |
+
"order": 9,
|
253 |
+
"mode": 0,
|
254 |
+
"inputs": [
|
255 |
+
{
|
256 |
+
"name": "positive",
|
257 |
+
"type": "CONDITIONING",
|
258 |
+
"link": 169
|
259 |
+
},
|
260 |
+
{
|
261 |
+
"name": "negative",
|
262 |
+
"type": "CONDITIONING",
|
263 |
+
"link": 170
|
264 |
+
}
|
265 |
+
],
|
266 |
+
"outputs": [
|
267 |
+
{
|
268 |
+
"name": "positive",
|
269 |
+
"type": "CONDITIONING",
|
270 |
+
"links": [
|
271 |
+
166
|
272 |
+
],
|
273 |
+
"slot_index": 0
|
274 |
+
},
|
275 |
+
{
|
276 |
+
"name": "negative",
|
277 |
+
"type": "CONDITIONING",
|
278 |
+
"links": [
|
279 |
+
167
|
280 |
+
],
|
281 |
+
"slot_index": 1
|
282 |
+
}
|
283 |
+
],
|
284 |
+
"properties": {
|
285 |
+
"Node name for S&R": "LTXVConditioning"
|
286 |
+
},
|
287 |
+
"widgets_values": [
|
288 |
+
25
|
289 |
+
]
|
290 |
+
},
|
291 |
+
{
|
292 |
+
"id": 70,
|
293 |
+
"type": "EmptyLTXVLatentVideo",
|
294 |
+
"pos": [
|
295 |
+
860,
|
296 |
+
240
|
297 |
+
],
|
298 |
+
"size": [
|
299 |
+
315,
|
300 |
+
130
|
301 |
+
],
|
302 |
+
"flags": {},
|
303 |
+
"order": 0,
|
304 |
+
"mode": 0,
|
305 |
+
"inputs": [],
|
306 |
+
"outputs": [
|
307 |
+
{
|
308 |
+
"name": "LATENT",
|
309 |
+
"type": "LATENT",
|
310 |
+
"links": [
|
311 |
+
168,
|
312 |
+
175
|
313 |
+
],
|
314 |
+
"slot_index": 0
|
315 |
+
}
|
316 |
+
],
|
317 |
+
"properties": {
|
318 |
+
"Node name for S&R": "EmptyLTXVLatentVideo"
|
319 |
+
},
|
320 |
+
"widgets_values": [
|
321 |
+
768,
|
322 |
+
512,
|
323 |
+
97,
|
324 |
+
1
|
325 |
+
]
|
326 |
+
},
|
327 |
+
{
|
328 |
+
"id": 71,
|
329 |
+
"type": "LTXVScheduler",
|
330 |
+
"pos": [
|
331 |
+
856,
|
332 |
+
531
|
333 |
+
],
|
334 |
+
"size": [
|
335 |
+
315,
|
336 |
+
154
|
337 |
+
],
|
338 |
+
"flags": {},
|
339 |
+
"order": 5,
|
340 |
+
"mode": 0,
|
341 |
+
"inputs": [
|
342 |
+
{
|
343 |
+
"name": "latent",
|
344 |
+
"type": "LATENT",
|
345 |
+
"link": 168,
|
346 |
+
"shape": 7
|
347 |
+
}
|
348 |
+
],
|
349 |
+
"outputs": [
|
350 |
+
{
|
351 |
+
"name": "SIGMAS",
|
352 |
+
"type": "SIGMAS",
|
353 |
+
"links": [
|
354 |
+
182
|
355 |
+
],
|
356 |
+
"slot_index": 0
|
357 |
+
}
|
358 |
+
],
|
359 |
+
"properties": {
|
360 |
+
"Node name for S&R": "LTXVScheduler"
|
361 |
+
},
|
362 |
+
"widgets_values": [
|
363 |
+
30,
|
364 |
+
2.05,
|
365 |
+
0.95,
|
366 |
+
true,
|
367 |
+
0.1
|
368 |
+
]
|
369 |
+
},
|
370 |
+
{
|
371 |
+
"id": 72,
|
372 |
+
"type": "SamplerCustom",
|
373 |
+
"pos": [
|
374 |
+
1201,
|
375 |
+
32
|
376 |
+
],
|
377 |
+
"size": [
|
378 |
+
355.20001220703125,
|
379 |
+
230
|
380 |
+
],
|
381 |
+
"flags": {},
|
382 |
+
"order": 11,
|
383 |
+
"mode": 0,
|
384 |
+
"inputs": [
|
385 |
+
{
|
386 |
+
"name": "model",
|
387 |
+
"type": "MODEL",
|
388 |
+
"link": 186
|
389 |
+
},
|
390 |
+
{
|
391 |
+
"name": "positive",
|
392 |
+
"type": "CONDITIONING",
|
393 |
+
"link": 166
|
394 |
+
},
|
395 |
+
{
|
396 |
+
"name": "negative",
|
397 |
+
"type": "CONDITIONING",
|
398 |
+
"link": 167
|
399 |
+
},
|
400 |
+
{
|
401 |
+
"name": "sampler",
|
402 |
+
"type": "SAMPLER",
|
403 |
+
"link": 172
|
404 |
+
},
|
405 |
+
{
|
406 |
+
"name": "sigmas",
|
407 |
+
"type": "SIGMAS",
|
408 |
+
"link": 182
|
409 |
+
},
|
410 |
+
{
|
411 |
+
"name": "latent_image",
|
412 |
+
"type": "LATENT",
|
413 |
+
"link": 175
|
414 |
+
}
|
415 |
+
],
|
416 |
+
"outputs": [
|
417 |
+
{
|
418 |
+
"name": "output",
|
419 |
+
"type": "LATENT",
|
420 |
+
"links": [
|
421 |
+
171
|
422 |
+
],
|
423 |
+
"slot_index": 0
|
424 |
+
},
|
425 |
+
{
|
426 |
+
"name": "denoised_output",
|
427 |
+
"type": "LATENT",
|
428 |
+
"links": null
|
429 |
+
}
|
430 |
+
],
|
431 |
+
"properties": {
|
432 |
+
"Node name for S&R": "SamplerCustom"
|
433 |
+
},
|
434 |
+
"widgets_values": [
|
435 |
+
true,
|
436 |
+
0,
|
437 |
+
"fixed",
|
438 |
+
3
|
439 |
+
]
|
440 |
+
},
|
441 |
+
{
|
442 |
+
"id": 73,
|
443 |
+
"type": "KSamplerSelect",
|
444 |
+
"pos": [
|
445 |
+
860,
|
446 |
+
420
|
447 |
+
],
|
448 |
+
"size": [
|
449 |
+
315,
|
450 |
+
58
|
451 |
+
],
|
452 |
+
"flags": {},
|
453 |
+
"order": 1,
|
454 |
+
"mode": 0,
|
455 |
+
"inputs": [],
|
456 |
+
"outputs": [
|
457 |
+
{
|
458 |
+
"name": "SAMPLER",
|
459 |
+
"type": "SAMPLER",
|
460 |
+
"links": [
|
461 |
+
172
|
462 |
+
]
|
463 |
+
}
|
464 |
+
],
|
465 |
+
"properties": {
|
466 |
+
"Node name for S&R": "KSamplerSelect"
|
467 |
+
},
|
468 |
+
"widgets_values": [
|
469 |
+
"euler"
|
470 |
+
]
|
471 |
+
},
|
472 |
+
{
|
473 |
+
"id": 76,
|
474 |
+
"type": "Note",
|
475 |
+
"pos": [
|
476 |
+
40,
|
477 |
+
350
|
478 |
+
],
|
479 |
+
"size": [
|
480 |
+
360,
|
481 |
+
200
|
482 |
+
],
|
483 |
+
"flags": {},
|
484 |
+
"order": 2,
|
485 |
+
"mode": 0,
|
486 |
+
"inputs": [],
|
487 |
+
"outputs": [],
|
488 |
+
"properties": {},
|
489 |
+
"widgets_values": [
|
490 |
+
"This model needs long descriptive prompts, if the prompt is too short the quality will suffer greatly."
|
491 |
+
],
|
492 |
+
"color": "#432",
|
493 |
+
"bgcolor": "#653"
|
494 |
+
},
|
495 |
+
{
|
496 |
+
"id": 77,
|
497 |
+
"type": "ApplyFBCacheOnModel",
|
498 |
+
"pos": [
|
499 |
+
840,
|
500 |
+
-160
|
501 |
+
],
|
502 |
+
"size": [
|
503 |
+
315,
|
504 |
+
82
|
505 |
+
],
|
506 |
+
"flags": {},
|
507 |
+
"order": 8,
|
508 |
+
"mode": 0,
|
509 |
+
"inputs": [
|
510 |
+
{
|
511 |
+
"name": "model",
|
512 |
+
"type": "MODEL",
|
513 |
+
"link": 183
|
514 |
+
}
|
515 |
+
],
|
516 |
+
"outputs": [
|
517 |
+
{
|
518 |
+
"name": "MODEL",
|
519 |
+
"type": "MODEL",
|
520 |
+
"links": [
|
521 |
+
185
|
522 |
+
],
|
523 |
+
"slot_index": 0
|
524 |
+
}
|
525 |
+
],
|
526 |
+
"properties": {
|
527 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
528 |
+
},
|
529 |
+
"widgets_values": [
|
530 |
+
"diffusion_model",
|
531 |
+
0.1
|
532 |
+
]
|
533 |
+
},
|
534 |
+
{
|
535 |
+
"id": 78,
|
536 |
+
"type": "EnhancedCompileModel",
|
537 |
+
"pos": [
|
538 |
+
1200,
|
539 |
+
-370
|
540 |
+
],
|
541 |
+
"size": [
|
542 |
+
400,
|
543 |
+
294
|
544 |
+
],
|
545 |
+
"flags": {},
|
546 |
+
"order": 10,
|
547 |
+
"mode": 0,
|
548 |
+
"inputs": [
|
549 |
+
{
|
550 |
+
"name": "model",
|
551 |
+
"type": "*",
|
552 |
+
"link": 185
|
553 |
+
}
|
554 |
+
],
|
555 |
+
"outputs": [
|
556 |
+
{
|
557 |
+
"name": "*",
|
558 |
+
"type": "*",
|
559 |
+
"links": [
|
560 |
+
186
|
561 |
+
],
|
562 |
+
"slot_index": 0
|
563 |
+
}
|
564 |
+
],
|
565 |
+
"properties": {
|
566 |
+
"Node name for S&R": "EnhancedCompileModel"
|
567 |
+
},
|
568 |
+
"widgets_values": [
|
569 |
+
true,
|
570 |
+
"diffusion_model",
|
571 |
+
"torch.compile",
|
572 |
+
false,
|
573 |
+
false,
|
574 |
+
"",
|
575 |
+
"",
|
576 |
+
false,
|
577 |
+
"inductor"
|
578 |
+
]
|
579 |
+
}
|
580 |
+
],
|
581 |
+
"links": [
|
582 |
+
[
|
583 |
+
74,
|
584 |
+
38,
|
585 |
+
0,
|
586 |
+
6,
|
587 |
+
0,
|
588 |
+
"CLIP"
|
589 |
+
],
|
590 |
+
[
|
591 |
+
75,
|
592 |
+
38,
|
593 |
+
0,
|
594 |
+
7,
|
595 |
+
0,
|
596 |
+
"CLIP"
|
597 |
+
],
|
598 |
+
[
|
599 |
+
87,
|
600 |
+
44,
|
601 |
+
2,
|
602 |
+
8,
|
603 |
+
1,
|
604 |
+
"VAE"
|
605 |
+
],
|
606 |
+
[
|
607 |
+
106,
|
608 |
+
8,
|
609 |
+
0,
|
610 |
+
41,
|
611 |
+
0,
|
612 |
+
"IMAGE"
|
613 |
+
],
|
614 |
+
[
|
615 |
+
166,
|
616 |
+
69,
|
617 |
+
0,
|
618 |
+
72,
|
619 |
+
1,
|
620 |
+
"CONDITIONING"
|
621 |
+
],
|
622 |
+
[
|
623 |
+
167,
|
624 |
+
69,
|
625 |
+
1,
|
626 |
+
72,
|
627 |
+
2,
|
628 |
+
"CONDITIONING"
|
629 |
+
],
|
630 |
+
[
|
631 |
+
168,
|
632 |
+
70,
|
633 |
+
0,
|
634 |
+
71,
|
635 |
+
0,
|
636 |
+
"LATENT"
|
637 |
+
],
|
638 |
+
[
|
639 |
+
169,
|
640 |
+
6,
|
641 |
+
0,
|
642 |
+
69,
|
643 |
+
0,
|
644 |
+
"CONDITIONING"
|
645 |
+
],
|
646 |
+
[
|
647 |
+
170,
|
648 |
+
7,
|
649 |
+
0,
|
650 |
+
69,
|
651 |
+
1,
|
652 |
+
"CONDITIONING"
|
653 |
+
],
|
654 |
+
[
|
655 |
+
171,
|
656 |
+
72,
|
657 |
+
0,
|
658 |
+
8,
|
659 |
+
0,
|
660 |
+
"LATENT"
|
661 |
+
],
|
662 |
+
[
|
663 |
+
172,
|
664 |
+
73,
|
665 |
+
0,
|
666 |
+
72,
|
667 |
+
3,
|
668 |
+
"SAMPLER"
|
669 |
+
],
|
670 |
+
[
|
671 |
+
175,
|
672 |
+
70,
|
673 |
+
0,
|
674 |
+
72,
|
675 |
+
5,
|
676 |
+
"LATENT"
|
677 |
+
],
|
678 |
+
[
|
679 |
+
182,
|
680 |
+
71,
|
681 |
+
0,
|
682 |
+
72,
|
683 |
+
4,
|
684 |
+
"SIGMAS"
|
685 |
+
],
|
686 |
+
[
|
687 |
+
183,
|
688 |
+
44,
|
689 |
+
0,
|
690 |
+
77,
|
691 |
+
0,
|
692 |
+
"MODEL"
|
693 |
+
],
|
694 |
+
[
|
695 |
+
185,
|
696 |
+
77,
|
697 |
+
0,
|
698 |
+
78,
|
699 |
+
0,
|
700 |
+
"*"
|
701 |
+
],
|
702 |
+
[
|
703 |
+
186,
|
704 |
+
78,
|
705 |
+
0,
|
706 |
+
72,
|
707 |
+
0,
|
708 |
+
"MODEL"
|
709 |
+
]
|
710 |
+
],
|
711 |
+
"groups": [],
|
712 |
+
"config": {},
|
713 |
+
"extra": {
|
714 |
+
"ds": {
|
715 |
+
"scale": 0.5644739300537776,
|
716 |
+
"offset": {
|
717 |
+
"0": 40.9691162109375,
|
718 |
+
"1": 495.14727783203125
|
719 |
+
}
|
720 |
+
}
|
721 |
+
},
|
722 |
+
"version": 0.4
|
723 |
+
}
|
custom_nodes/Comfy-WaveSpeed/workflows/sd3.5.json
ADDED
@@ -0,0 +1,657 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 55,
|
3 |
+
"last_link_id": 104,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 3,
|
7 |
+
"type": "KSampler",
|
8 |
+
"pos": [
|
9 |
+
864,
|
10 |
+
96
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
315,
|
14 |
+
262
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 11,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [
|
20 |
+
{
|
21 |
+
"name": "model",
|
22 |
+
"type": "MODEL",
|
23 |
+
"link": 104,
|
24 |
+
"slot_index": 0
|
25 |
+
},
|
26 |
+
{
|
27 |
+
"name": "positive",
|
28 |
+
"type": "CONDITIONING",
|
29 |
+
"link": 21
|
30 |
+
},
|
31 |
+
{
|
32 |
+
"name": "negative",
|
33 |
+
"type": "CONDITIONING",
|
34 |
+
"link": 80
|
35 |
+
},
|
36 |
+
{
|
37 |
+
"name": "latent_image",
|
38 |
+
"type": "LATENT",
|
39 |
+
"link": 100
|
40 |
+
}
|
41 |
+
],
|
42 |
+
"outputs": [
|
43 |
+
{
|
44 |
+
"name": "LATENT",
|
45 |
+
"type": "LATENT",
|
46 |
+
"links": [
|
47 |
+
7
|
48 |
+
],
|
49 |
+
"slot_index": 0
|
50 |
+
}
|
51 |
+
],
|
52 |
+
"properties": {
|
53 |
+
"Node name for S&R": "KSampler"
|
54 |
+
},
|
55 |
+
"widgets_values": [
|
56 |
+
0,
|
57 |
+
"fixed",
|
58 |
+
30,
|
59 |
+
5.45,
|
60 |
+
"euler",
|
61 |
+
"sgm_uniform",
|
62 |
+
1
|
63 |
+
]
|
64 |
+
},
|
65 |
+
{
|
66 |
+
"id": 4,
|
67 |
+
"type": "CheckpointLoaderSimple",
|
68 |
+
"pos": [
|
69 |
+
-96,
|
70 |
+
480
|
71 |
+
],
|
72 |
+
"size": [
|
73 |
+
384.75592041015625,
|
74 |
+
98
|
75 |
+
],
|
76 |
+
"flags": {},
|
77 |
+
"order": 6,
|
78 |
+
"mode": 0,
|
79 |
+
"inputs": [],
|
80 |
+
"outputs": [
|
81 |
+
{
|
82 |
+
"name": "MODEL",
|
83 |
+
"type": "MODEL",
|
84 |
+
"links": [
|
85 |
+
101
|
86 |
+
],
|
87 |
+
"slot_index": 0
|
88 |
+
},
|
89 |
+
{
|
90 |
+
"name": "CLIP",
|
91 |
+
"type": "CLIP",
|
92 |
+
"links": [],
|
93 |
+
"slot_index": 1
|
94 |
+
},
|
95 |
+
{
|
96 |
+
"name": "VAE",
|
97 |
+
"type": "VAE",
|
98 |
+
"links": [
|
99 |
+
53
|
100 |
+
],
|
101 |
+
"slot_index": 2
|
102 |
+
}
|
103 |
+
],
|
104 |
+
"properties": {
|
105 |
+
"Node name for S&R": "CheckpointLoaderSimple"
|
106 |
+
},
|
107 |
+
"widgets_values": [
|
108 |
+
"sd3.5_large_fp8_scaled.safetensors"
|
109 |
+
]
|
110 |
+
},
|
111 |
+
{
|
112 |
+
"id": 8,
|
113 |
+
"type": "VAEDecode",
|
114 |
+
"pos": [
|
115 |
+
1200,
|
116 |
+
96
|
117 |
+
],
|
118 |
+
"size": [
|
119 |
+
210,
|
120 |
+
46
|
121 |
+
],
|
122 |
+
"flags": {},
|
123 |
+
"order": 12,
|
124 |
+
"mode": 0,
|
125 |
+
"inputs": [
|
126 |
+
{
|
127 |
+
"name": "samples",
|
128 |
+
"type": "LATENT",
|
129 |
+
"link": 7
|
130 |
+
},
|
131 |
+
{
|
132 |
+
"name": "vae",
|
133 |
+
"type": "VAE",
|
134 |
+
"link": 53,
|
135 |
+
"slot_index": 1
|
136 |
+
}
|
137 |
+
],
|
138 |
+
"outputs": [
|
139 |
+
{
|
140 |
+
"name": "IMAGE",
|
141 |
+
"type": "IMAGE",
|
142 |
+
"links": [
|
143 |
+
51
|
144 |
+
],
|
145 |
+
"slot_index": 0
|
146 |
+
}
|
147 |
+
],
|
148 |
+
"properties": {
|
149 |
+
"Node name for S&R": "VAEDecode"
|
150 |
+
},
|
151 |
+
"widgets_values": []
|
152 |
+
},
|
153 |
+
{
|
154 |
+
"id": 9,
|
155 |
+
"type": "SaveImage",
|
156 |
+
"pos": [
|
157 |
+
1440,
|
158 |
+
96
|
159 |
+
],
|
160 |
+
"size": [
|
161 |
+
952.5112915039062,
|
162 |
+
1007.9328002929688
|
163 |
+
],
|
164 |
+
"flags": {},
|
165 |
+
"order": 13,
|
166 |
+
"mode": 0,
|
167 |
+
"inputs": [
|
168 |
+
{
|
169 |
+
"name": "images",
|
170 |
+
"type": "IMAGE",
|
171 |
+
"link": 51,
|
172 |
+
"slot_index": 0
|
173 |
+
}
|
174 |
+
],
|
175 |
+
"outputs": [],
|
176 |
+
"properties": {},
|
177 |
+
"widgets_values": [
|
178 |
+
"ComfyUI"
|
179 |
+
]
|
180 |
+
},
|
181 |
+
{
|
182 |
+
"id": 16,
|
183 |
+
"type": "CLIPTextEncode",
|
184 |
+
"pos": [
|
185 |
+
384,
|
186 |
+
96
|
187 |
+
],
|
188 |
+
"size": [
|
189 |
+
432,
|
190 |
+
192
|
191 |
+
],
|
192 |
+
"flags": {},
|
193 |
+
"order": 7,
|
194 |
+
"mode": 0,
|
195 |
+
"inputs": [
|
196 |
+
{
|
197 |
+
"name": "clip",
|
198 |
+
"type": "CLIP",
|
199 |
+
"link": 96
|
200 |
+
}
|
201 |
+
],
|
202 |
+
"outputs": [
|
203 |
+
{
|
204 |
+
"name": "CONDITIONING",
|
205 |
+
"type": "CONDITIONING",
|
206 |
+
"links": [
|
207 |
+
21
|
208 |
+
],
|
209 |
+
"slot_index": 0
|
210 |
+
}
|
211 |
+
],
|
212 |
+
"title": "Positive Prompt",
|
213 |
+
"properties": {
|
214 |
+
"Node name for S&R": "CLIPTextEncode"
|
215 |
+
},
|
216 |
+
"widgets_values": [
|
217 |
+
"a bottle with a rainbow galaxy inside it on top of a wooden table on a snowy mountain top with the ocean and clouds in the background"
|
218 |
+
],
|
219 |
+
"color": "#232",
|
220 |
+
"bgcolor": "#353"
|
221 |
+
},
|
222 |
+
{
|
223 |
+
"id": 40,
|
224 |
+
"type": "CLIPTextEncode",
|
225 |
+
"pos": [
|
226 |
+
384,
|
227 |
+
336
|
228 |
+
],
|
229 |
+
"size": [
|
230 |
+
432,
|
231 |
+
192
|
232 |
+
],
|
233 |
+
"flags": {},
|
234 |
+
"order": 8,
|
235 |
+
"mode": 0,
|
236 |
+
"inputs": [
|
237 |
+
{
|
238 |
+
"name": "clip",
|
239 |
+
"type": "CLIP",
|
240 |
+
"link": 97
|
241 |
+
}
|
242 |
+
],
|
243 |
+
"outputs": [
|
244 |
+
{
|
245 |
+
"name": "CONDITIONING",
|
246 |
+
"type": "CONDITIONING",
|
247 |
+
"links": [
|
248 |
+
80
|
249 |
+
],
|
250 |
+
"slot_index": 0,
|
251 |
+
"shape": 3
|
252 |
+
}
|
253 |
+
],
|
254 |
+
"title": "Negative Prompt",
|
255 |
+
"properties": {
|
256 |
+
"Node name for S&R": "CLIPTextEncode"
|
257 |
+
},
|
258 |
+
"widgets_values": [
|
259 |
+
""
|
260 |
+
],
|
261 |
+
"color": "#322",
|
262 |
+
"bgcolor": "#533"
|
263 |
+
},
|
264 |
+
{
|
265 |
+
"id": 41,
|
266 |
+
"type": "CLIPLoader",
|
267 |
+
"pos": [
|
268 |
+
-96,
|
269 |
+
0
|
270 |
+
],
|
271 |
+
"size": [
|
272 |
+
315,
|
273 |
+
82
|
274 |
+
],
|
275 |
+
"flags": {},
|
276 |
+
"order": 0,
|
277 |
+
"mode": 0,
|
278 |
+
"inputs": [],
|
279 |
+
"outputs": [
|
280 |
+
{
|
281 |
+
"name": "CLIP",
|
282 |
+
"type": "CLIP",
|
283 |
+
"links": [],
|
284 |
+
"slot_index": 0,
|
285 |
+
"shape": 3
|
286 |
+
}
|
287 |
+
],
|
288 |
+
"properties": {
|
289 |
+
"Node name for S&R": "CLIPLoader"
|
290 |
+
},
|
291 |
+
"widgets_values": [
|
292 |
+
"t5xxl_fp8_e4m3fn.safetensors",
|
293 |
+
"sd3",
|
294 |
+
"default"
|
295 |
+
]
|
296 |
+
},
|
297 |
+
{
|
298 |
+
"id": 42,
|
299 |
+
"type": "DualCLIPLoader",
|
300 |
+
"pos": [
|
301 |
+
-96,
|
302 |
+
144
|
303 |
+
],
|
304 |
+
"size": [
|
305 |
+
315,
|
306 |
+
106
|
307 |
+
],
|
308 |
+
"flags": {},
|
309 |
+
"order": 1,
|
310 |
+
"mode": 0,
|
311 |
+
"inputs": [],
|
312 |
+
"outputs": [
|
313 |
+
{
|
314 |
+
"name": "CLIP",
|
315 |
+
"type": "CLIP",
|
316 |
+
"links": [],
|
317 |
+
"slot_index": 0,
|
318 |
+
"shape": 3
|
319 |
+
}
|
320 |
+
],
|
321 |
+
"properties": {
|
322 |
+
"Node name for S&R": "DualCLIPLoader"
|
323 |
+
},
|
324 |
+
"widgets_values": [
|
325 |
+
"clip_l.safetensors",
|
326 |
+
"clip_g.safetensors",
|
327 |
+
"sd3",
|
328 |
+
"default"
|
329 |
+
]
|
330 |
+
},
|
331 |
+
{
|
332 |
+
"id": 43,
|
333 |
+
"type": "TripleCLIPLoader",
|
334 |
+
"pos": [
|
335 |
+
-96,
|
336 |
+
288
|
337 |
+
],
|
338 |
+
"size": [
|
339 |
+
315,
|
340 |
+
106
|
341 |
+
],
|
342 |
+
"flags": {},
|
343 |
+
"order": 5,
|
344 |
+
"mode": 0,
|
345 |
+
"inputs": [],
|
346 |
+
"outputs": [
|
347 |
+
{
|
348 |
+
"name": "CLIP",
|
349 |
+
"type": "CLIP",
|
350 |
+
"links": [
|
351 |
+
96,
|
352 |
+
97
|
353 |
+
],
|
354 |
+
"slot_index": 0,
|
355 |
+
"shape": 3
|
356 |
+
}
|
357 |
+
],
|
358 |
+
"properties": {
|
359 |
+
"Node name for S&R": "TripleCLIPLoader"
|
360 |
+
},
|
361 |
+
"widgets_values": [
|
362 |
+
"clip_l.safetensors",
|
363 |
+
"clip_g.safetensors",
|
364 |
+
"t5xxl_fp8_e4m3fn.safetensors"
|
365 |
+
]
|
366 |
+
},
|
367 |
+
{
|
368 |
+
"id": 50,
|
369 |
+
"type": "Note",
|
370 |
+
"pos": [
|
371 |
+
-384,
|
372 |
+
144
|
373 |
+
],
|
374 |
+
"size": [
|
375 |
+
223.34756469726562,
|
376 |
+
254.37765502929688
|
377 |
+
],
|
378 |
+
"flags": {},
|
379 |
+
"order": 2,
|
380 |
+
"mode": 0,
|
381 |
+
"inputs": [],
|
382 |
+
"outputs": [],
|
383 |
+
"properties": {
|
384 |
+
"text": ""
|
385 |
+
},
|
386 |
+
"widgets_values": [
|
387 |
+
"SD3 supports different text encoder configurations, you can see how to load them here.\n\n\nMake sure to put these files:\nclip_g.safetensors\nclip_l.safetensors\nt5xxl_fp8.safetensors\n\n\nIn the ComfyUI/models/clip directory"
|
388 |
+
],
|
389 |
+
"color": "#432",
|
390 |
+
"bgcolor": "#653"
|
391 |
+
},
|
392 |
+
{
|
393 |
+
"id": 51,
|
394 |
+
"type": "Note",
|
395 |
+
"pos": [
|
396 |
+
-96,
|
397 |
+
624
|
398 |
+
],
|
399 |
+
"size": [
|
400 |
+
384,
|
401 |
+
192
|
402 |
+
],
|
403 |
+
"flags": {},
|
404 |
+
"order": 3,
|
405 |
+
"mode": 0,
|
406 |
+
"inputs": [],
|
407 |
+
"outputs": [],
|
408 |
+
"properties": {
|
409 |
+
"text": ""
|
410 |
+
},
|
411 |
+
"widgets_values": [
|
412 |
+
"sd3.5_large_fp8.safetensors is the file that does not contain any CLIP/text encoder weights so you need to load them separately.\n\nThis file goes in the ComfyUI/models/checkpoints directory."
|
413 |
+
],
|
414 |
+
"color": "#432",
|
415 |
+
"bgcolor": "#653"
|
416 |
+
},
|
417 |
+
{
|
418 |
+
"id": 53,
|
419 |
+
"type": "EmptySD3LatentImage",
|
420 |
+
"pos": [
|
421 |
+
480,
|
422 |
+
576
|
423 |
+
],
|
424 |
+
"size": [
|
425 |
+
315,
|
426 |
+
106
|
427 |
+
],
|
428 |
+
"flags": {},
|
429 |
+
"order": 4,
|
430 |
+
"mode": 0,
|
431 |
+
"inputs": [],
|
432 |
+
"outputs": [
|
433 |
+
{
|
434 |
+
"name": "LATENT",
|
435 |
+
"type": "LATENT",
|
436 |
+
"links": [
|
437 |
+
100
|
438 |
+
],
|
439 |
+
"slot_index": 0,
|
440 |
+
"shape": 3
|
441 |
+
}
|
442 |
+
],
|
443 |
+
"properties": {
|
444 |
+
"Node name for S&R": "EmptySD3LatentImage"
|
445 |
+
},
|
446 |
+
"widgets_values": [
|
447 |
+
1024,
|
448 |
+
1024,
|
449 |
+
1
|
450 |
+
]
|
451 |
+
},
|
452 |
+
{
|
453 |
+
"id": 54,
|
454 |
+
"type": "ApplyFBCacheOnModel",
|
455 |
+
"pos": [
|
456 |
+
340,
|
457 |
+
750
|
458 |
+
],
|
459 |
+
"size": [
|
460 |
+
315,
|
461 |
+
154
|
462 |
+
],
|
463 |
+
"flags": {},
|
464 |
+
"order": 9,
|
465 |
+
"mode": 0,
|
466 |
+
"inputs": [
|
467 |
+
{
|
468 |
+
"name": "model",
|
469 |
+
"type": "MODEL",
|
470 |
+
"link": 101
|
471 |
+
}
|
472 |
+
],
|
473 |
+
"outputs": [
|
474 |
+
{
|
475 |
+
"name": "MODEL",
|
476 |
+
"type": "MODEL",
|
477 |
+
"links": [
|
478 |
+
103
|
479 |
+
],
|
480 |
+
"slot_index": 0
|
481 |
+
}
|
482 |
+
],
|
483 |
+
"properties": {
|
484 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
485 |
+
},
|
486 |
+
"widgets_values": [
|
487 |
+
"diffusion_model",
|
488 |
+
0.12,
|
489 |
+
0,
|
490 |
+
1,
|
491 |
+
-1
|
492 |
+
]
|
493 |
+
},
|
494 |
+
{
|
495 |
+
"id": 55,
|
496 |
+
"type": "EnhancedCompileModel",
|
497 |
+
"pos": [
|
498 |
+
730,
|
499 |
+
750
|
500 |
+
],
|
501 |
+
"size": [
|
502 |
+
400,
|
503 |
+
294
|
504 |
+
],
|
505 |
+
"flags": {},
|
506 |
+
"order": 10,
|
507 |
+
"mode": 0,
|
508 |
+
"inputs": [
|
509 |
+
{
|
510 |
+
"name": "model",
|
511 |
+
"type": "*",
|
512 |
+
"link": 103
|
513 |
+
}
|
514 |
+
],
|
515 |
+
"outputs": [
|
516 |
+
{
|
517 |
+
"name": "*",
|
518 |
+
"type": "*",
|
519 |
+
"links": [
|
520 |
+
104
|
521 |
+
],
|
522 |
+
"slot_index": 0
|
523 |
+
}
|
524 |
+
],
|
525 |
+
"properties": {
|
526 |
+
"Node name for S&R": "EnhancedCompileModel"
|
527 |
+
},
|
528 |
+
"widgets_values": [
|
529 |
+
true,
|
530 |
+
"diffusion_model",
|
531 |
+
"torch.compile",
|
532 |
+
false,
|
533 |
+
false,
|
534 |
+
"",
|
535 |
+
"",
|
536 |
+
false,
|
537 |
+
"inductor"
|
538 |
+
]
|
539 |
+
}
|
540 |
+
],
|
541 |
+
"links": [
|
542 |
+
[
|
543 |
+
7,
|
544 |
+
3,
|
545 |
+
0,
|
546 |
+
8,
|
547 |
+
0,
|
548 |
+
"LATENT"
|
549 |
+
],
|
550 |
+
[
|
551 |
+
21,
|
552 |
+
16,
|
553 |
+
0,
|
554 |
+
3,
|
555 |
+
1,
|
556 |
+
"CONDITIONING"
|
557 |
+
],
|
558 |
+
[
|
559 |
+
51,
|
560 |
+
8,
|
561 |
+
0,
|
562 |
+
9,
|
563 |
+
0,
|
564 |
+
"IMAGE"
|
565 |
+
],
|
566 |
+
[
|
567 |
+
53,
|
568 |
+
4,
|
569 |
+
2,
|
570 |
+
8,
|
571 |
+
1,
|
572 |
+
"VAE"
|
573 |
+
],
|
574 |
+
[
|
575 |
+
80,
|
576 |
+
40,
|
577 |
+
0,
|
578 |
+
3,
|
579 |
+
2,
|
580 |
+
"CONDITIONING"
|
581 |
+
],
|
582 |
+
[
|
583 |
+
96,
|
584 |
+
43,
|
585 |
+
0,
|
586 |
+
16,
|
587 |
+
0,
|
588 |
+
"CLIP"
|
589 |
+
],
|
590 |
+
[
|
591 |
+
97,
|
592 |
+
43,
|
593 |
+
0,
|
594 |
+
40,
|
595 |
+
0,
|
596 |
+
"CLIP"
|
597 |
+
],
|
598 |
+
[
|
599 |
+
100,
|
600 |
+
53,
|
601 |
+
0,
|
602 |
+
3,
|
603 |
+
3,
|
604 |
+
"LATENT"
|
605 |
+
],
|
606 |
+
[
|
607 |
+
101,
|
608 |
+
4,
|
609 |
+
0,
|
610 |
+
54,
|
611 |
+
0,
|
612 |
+
"MODEL"
|
613 |
+
],
|
614 |
+
[
|
615 |
+
103,
|
616 |
+
54,
|
617 |
+
0,
|
618 |
+
55,
|
619 |
+
0,
|
620 |
+
"*"
|
621 |
+
],
|
622 |
+
[
|
623 |
+
104,
|
624 |
+
55,
|
625 |
+
0,
|
626 |
+
3,
|
627 |
+
0,
|
628 |
+
"MODEL"
|
629 |
+
]
|
630 |
+
],
|
631 |
+
"groups": [
|
632 |
+
{
|
633 |
+
"id": 1,
|
634 |
+
"title": "Different Text Encoder Configurations",
|
635 |
+
"bounding": [
|
636 |
+
-140,
|
637 |
+
-100,
|
638 |
+
480,
|
639 |
+
528
|
640 |
+
],
|
641 |
+
"color": "#3f789e",
|
642 |
+
"font_size": 24,
|
643 |
+
"flags": {}
|
644 |
+
}
|
645 |
+
],
|
646 |
+
"config": {},
|
647 |
+
"extra": {
|
648 |
+
"ds": {
|
649 |
+
"scale": 0.6830134553650711,
|
650 |
+
"offset": [
|
651 |
+
-94.64810292225889,
|
652 |
+
94.43701306285806
|
653 |
+
]
|
654 |
+
}
|
655 |
+
},
|
656 |
+
"version": 0.4
|
657 |
+
}
|
custom_nodes/Comfy-WaveSpeed/workflows/sdxl.json
ADDED
@@ -0,0 +1,706 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"last_node_id": 36,
|
3 |
+
"last_link_id": 55,
|
4 |
+
"nodes": [
|
5 |
+
{
|
6 |
+
"id": 33,
|
7 |
+
"type": "CLIPTextEncodeSDXL",
|
8 |
+
"pos": [
|
9 |
+
860,
|
10 |
+
160
|
11 |
+
],
|
12 |
+
"size": [
|
13 |
+
220,
|
14 |
+
220
|
15 |
+
],
|
16 |
+
"flags": {},
|
17 |
+
"order": 10,
|
18 |
+
"mode": 0,
|
19 |
+
"inputs": [
|
20 |
+
{
|
21 |
+
"name": "clip",
|
22 |
+
"type": "CLIP",
|
23 |
+
"link": 50
|
24 |
+
},
|
25 |
+
{
|
26 |
+
"name": "text_g",
|
27 |
+
"type": "STRING",
|
28 |
+
"link": 47,
|
29 |
+
"slot_index": 1,
|
30 |
+
"widget": {
|
31 |
+
"name": "text_g"
|
32 |
+
}
|
33 |
+
},
|
34 |
+
{
|
35 |
+
"name": "text_l",
|
36 |
+
"type": "STRING",
|
37 |
+
"link": 48,
|
38 |
+
"widget": {
|
39 |
+
"name": "text_l"
|
40 |
+
}
|
41 |
+
}
|
42 |
+
],
|
43 |
+
"outputs": [
|
44 |
+
{
|
45 |
+
"name": "CONDITIONING",
|
46 |
+
"type": "CONDITIONING",
|
47 |
+
"links": [
|
48 |
+
51
|
49 |
+
],
|
50 |
+
"slot_index": 0,
|
51 |
+
"shape": 3
|
52 |
+
}
|
53 |
+
],
|
54 |
+
"properties": {
|
55 |
+
"Node name for S&R": "CLIPTextEncodeSDXL"
|
56 |
+
},
|
57 |
+
"widgets_values": [
|
58 |
+
4096,
|
59 |
+
4096,
|
60 |
+
0,
|
61 |
+
0,
|
62 |
+
4096,
|
63 |
+
4096,
|
64 |
+
"blurry, animation, 3d render, illustration, toy, puppet, claymation, low quality, flag, nasa, mission patch",
|
65 |
+
"blurry, animation, 3d render, illustration, toy, puppet, claymation, low quality, flag, nasa, mission patch"
|
66 |
+
],
|
67 |
+
"color": "#322",
|
68 |
+
"bgcolor": "#533"
|
69 |
+
},
|
70 |
+
{
|
71 |
+
"id": 5,
|
72 |
+
"type": "EmptyLatentImage",
|
73 |
+
"pos": [
|
74 |
+
860,
|
75 |
+
440
|
76 |
+
],
|
77 |
+
"size": [
|
78 |
+
220,
|
79 |
+
106
|
80 |
+
],
|
81 |
+
"flags": {},
|
82 |
+
"order": 0,
|
83 |
+
"mode": 0,
|
84 |
+
"inputs": [],
|
85 |
+
"outputs": [
|
86 |
+
{
|
87 |
+
"name": "LATENT",
|
88 |
+
"type": "LATENT",
|
89 |
+
"links": [
|
90 |
+
2
|
91 |
+
],
|
92 |
+
"slot_index": 0
|
93 |
+
}
|
94 |
+
],
|
95 |
+
"properties": {
|
96 |
+
"Node name for S&R": "EmptyLatentImage"
|
97 |
+
},
|
98 |
+
"widgets_values": [
|
99 |
+
1024,
|
100 |
+
1024,
|
101 |
+
1
|
102 |
+
],
|
103 |
+
"color": "#323",
|
104 |
+
"bgcolor": "#535"
|
105 |
+
},
|
106 |
+
{
|
107 |
+
"id": 11,
|
108 |
+
"type": "Note",
|
109 |
+
"pos": [
|
110 |
+
80,
|
111 |
+
-200
|
112 |
+
],
|
113 |
+
"size": [
|
114 |
+
282.48541259765625,
|
115 |
+
197.0584259033203
|
116 |
+
],
|
117 |
+
"flags": {},
|
118 |
+
"order": 1,
|
119 |
+
"mode": 0,
|
120 |
+
"inputs": [],
|
121 |
+
"outputs": [],
|
122 |
+
"properties": {
|
123 |
+
"text": ""
|
124 |
+
},
|
125 |
+
"widgets_values": [
|
126 |
+
"BASIC SDXL WORKFLOW WITH BASE MODEL ONLY\n========================================\n\nThis basic workflow only uses the BASE SDXL model. This can be useful for systems with limited resources as the REFINER takes another 6GB or ram.\n\nIf you use the embedded VAE be sure to download the \"0.9vae\" version because the 1.0 vae is considered defective."
|
127 |
+
],
|
128 |
+
"color": "#432",
|
129 |
+
"bgcolor": "#653"
|
130 |
+
},
|
131 |
+
{
|
132 |
+
"id": 29,
|
133 |
+
"type": "Note",
|
134 |
+
"pos": [
|
135 |
+
620,
|
136 |
+
440
|
137 |
+
],
|
138 |
+
"size": [
|
139 |
+
210,
|
140 |
+
477.3874816894531
|
141 |
+
],
|
142 |
+
"flags": {},
|
143 |
+
"order": 2,
|
144 |
+
"mode": 0,
|
145 |
+
"inputs": [],
|
146 |
+
"outputs": [],
|
147 |
+
"properties": {
|
148 |
+
"text": ""
|
149 |
+
},
|
150 |
+
"widgets_values": [
|
151 |
+
"SUPPORTED RESOLUTIONS\n=====================\n\nratio resolution\n-----------------\n0.5: 704×1408\n0.52: 704×1344\n0.57: 768×1344\n0.6: 768×1280\n0.68: 832×1216\n0.72: 832×1152\n0.78: 896×1152\n0.82: 896×1088\n0.88: 960×1088\n0.94: 960×1024\n1.0: 1024×1024\n1.07: 1024×960\n1.13: 1088×960\n1.21: 1088×896\n1.29: 1152×896\n1.38: 1152×832\n1.46: 1216×832\n1.67: 1280×768\n1.75: 1344×768\n1.91: 1344×704\n2.0: 1408×704\n2.09: 1472×704\n2.4: 1536×640\n2.5: 1600×640\n2.89: 1664×576\n3.0: 1728×576"
|
152 |
+
],
|
153 |
+
"color": "#432",
|
154 |
+
"bgcolor": "#653"
|
155 |
+
},
|
156 |
+
{
|
157 |
+
"id": 28,
|
158 |
+
"type": "SaveImage",
|
159 |
+
"pos": [
|
160 |
+
1730,
|
161 |
+
50
|
162 |
+
],
|
163 |
+
"size": [
|
164 |
+
688.129150390625,
|
165 |
+
728.7603759765625
|
166 |
+
],
|
167 |
+
"flags": {},
|
168 |
+
"order": 13,
|
169 |
+
"mode": 0,
|
170 |
+
"inputs": [
|
171 |
+
{
|
172 |
+
"name": "images",
|
173 |
+
"type": "IMAGE",
|
174 |
+
"link": 41
|
175 |
+
}
|
176 |
+
],
|
177 |
+
"outputs": [],
|
178 |
+
"properties": {},
|
179 |
+
"widgets_values": [
|
180 |
+
"ComfyUI"
|
181 |
+
]
|
182 |
+
},
|
183 |
+
{
|
184 |
+
"id": 32,
|
185 |
+
"type": "PrimitiveNode",
|
186 |
+
"pos": [
|
187 |
+
460,
|
188 |
+
180
|
189 |
+
],
|
190 |
+
"size": [
|
191 |
+
338.24078369140625,
|
192 |
+
179.58128356933594
|
193 |
+
],
|
194 |
+
"flags": {},
|
195 |
+
"order": 3,
|
196 |
+
"mode": 0,
|
197 |
+
"inputs": [],
|
198 |
+
"outputs": [
|
199 |
+
{
|
200 |
+
"name": "STRING",
|
201 |
+
"type": "STRING",
|
202 |
+
"links": [
|
203 |
+
47,
|
204 |
+
48
|
205 |
+
],
|
206 |
+
"slot_index": 0,
|
207 |
+
"widget": {
|
208 |
+
"name": "text_g"
|
209 |
+
}
|
210 |
+
}
|
211 |
+
],
|
212 |
+
"title": "negative",
|
213 |
+
"properties": {
|
214 |
+
"Run widget replace on values": false
|
215 |
+
},
|
216 |
+
"widgets_values": [
|
217 |
+
"blurry, animation, 3d render, illustration, toy, puppet, claymation, low quality, flag, nasa, mission patch"
|
218 |
+
],
|
219 |
+
"color": "#322",
|
220 |
+
"bgcolor": "#533"
|
221 |
+
},
|
222 |
+
{
|
223 |
+
"id": 34,
|
224 |
+
"type": "Note",
|
225 |
+
"pos": [
|
226 |
+
870,
|
227 |
+
-300
|
228 |
+
],
|
229 |
+
"size": [
|
230 |
+
210,
|
231 |
+
130
|
232 |
+
],
|
233 |
+
"flags": {},
|
234 |
+
"order": 4,
|
235 |
+
"mode": 0,
|
236 |
+
"inputs": [],
|
237 |
+
"outputs": [],
|
238 |
+
"properties": {
|
239 |
+
"text": ""
|
240 |
+
},
|
241 |
+
"widgets_values": [
|
242 |
+
"WIDTH/HEIGHT and TARGET_WIDTH/HEIGHT are both 4 times the latent size.\n\nThis generally grants a higher definition image."
|
243 |
+
],
|
244 |
+
"color": "#432",
|
245 |
+
"bgcolor": "#653"
|
246 |
+
},
|
247 |
+
{
|
248 |
+
"id": 31,
|
249 |
+
"type": "PrimitiveNode",
|
250 |
+
"pos": [
|
251 |
+
460,
|
252 |
+
-90
|
253 |
+
],
|
254 |
+
"size": [
|
255 |
+
338.24078369140625,
|
256 |
+
179.58128356933594
|
257 |
+
],
|
258 |
+
"flags": {},
|
259 |
+
"order": 5,
|
260 |
+
"mode": 0,
|
261 |
+
"inputs": [],
|
262 |
+
"outputs": [
|
263 |
+
{
|
264 |
+
"name": "STRING",
|
265 |
+
"type": "STRING",
|
266 |
+
"links": [
|
267 |
+
45,
|
268 |
+
46
|
269 |
+
],
|
270 |
+
"slot_index": 0,
|
271 |
+
"widget": {
|
272 |
+
"name": "text_g"
|
273 |
+
}
|
274 |
+
}
|
275 |
+
],
|
276 |
+
"title": "positive",
|
277 |
+
"properties": {
|
278 |
+
"Run widget replace on values": false
|
279 |
+
},
|
280 |
+
"widgets_values": [
|
281 |
+
"a photo of an anthropomorphic fox wearing a spacesuit inside a sci-fi spaceship\n\ncinematic, dramatic lighting, high resolution, detailed, 4k"
|
282 |
+
],
|
283 |
+
"color": "#232",
|
284 |
+
"bgcolor": "#353"
|
285 |
+
},
|
286 |
+
{
|
287 |
+
"id": 35,
|
288 |
+
"type": "Note",
|
289 |
+
"pos": [
|
290 |
+
464,
|
291 |
+
-235
|
292 |
+
],
|
293 |
+
"size": [
|
294 |
+
330.7162780761719,
|
295 |
+
95.14419555664062
|
296 |
+
],
|
297 |
+
"flags": {},
|
298 |
+
"order": 6,
|
299 |
+
"mode": 0,
|
300 |
+
"inputs": [],
|
301 |
+
"outputs": [],
|
302 |
+
"properties": {
|
303 |
+
"text": ""
|
304 |
+
},
|
305 |
+
"widgets_values": [
|
306 |
+
"Note that we send the same prompt to both TEXT_G and TEXT_L, you can experiment with different prompts but using the same seems to lead to more predictable results."
|
307 |
+
],
|
308 |
+
"color": "#432",
|
309 |
+
"bgcolor": "#653"
|
310 |
+
},
|
311 |
+
{
|
312 |
+
"id": 30,
|
313 |
+
"type": "CLIPTextEncodeSDXL",
|
314 |
+
"pos": [
|
315 |
+
860,
|
316 |
+
-120
|
317 |
+
],
|
318 |
+
"size": [
|
319 |
+
220,
|
320 |
+
220
|
321 |
+
],
|
322 |
+
"flags": {},
|
323 |
+
"order": 9,
|
324 |
+
"mode": 0,
|
325 |
+
"inputs": [
|
326 |
+
{
|
327 |
+
"name": "clip",
|
328 |
+
"type": "CLIP",
|
329 |
+
"link": 49
|
330 |
+
},
|
331 |
+
{
|
332 |
+
"name": "text_g",
|
333 |
+
"type": "STRING",
|
334 |
+
"link": 45,
|
335 |
+
"slot_index": 1,
|
336 |
+
"widget": {
|
337 |
+
"name": "text_g"
|
338 |
+
}
|
339 |
+
},
|
340 |
+
{
|
341 |
+
"name": "text_l",
|
342 |
+
"type": "STRING",
|
343 |
+
"link": 46,
|
344 |
+
"widget": {
|
345 |
+
"name": "text_l"
|
346 |
+
}
|
347 |
+
}
|
348 |
+
],
|
349 |
+
"outputs": [
|
350 |
+
{
|
351 |
+
"name": "CONDITIONING",
|
352 |
+
"type": "CONDITIONING",
|
353 |
+
"links": [
|
354 |
+
52
|
355 |
+
],
|
356 |
+
"slot_index": 0,
|
357 |
+
"shape": 3
|
358 |
+
}
|
359 |
+
],
|
360 |
+
"properties": {
|
361 |
+
"Node name for S&R": "CLIPTextEncodeSDXL"
|
362 |
+
},
|
363 |
+
"widgets_values": [
|
364 |
+
4096,
|
365 |
+
4096,
|
366 |
+
0,
|
367 |
+
0,
|
368 |
+
4096,
|
369 |
+
4096,
|
370 |
+
"a photo of an anthropomorphic fox wearing a spacesuit inside a sci-fi spaceship\n\ncinematic, dramatic lighting, high resolution, detailed, 4k",
|
371 |
+
"a photo of an anthropomorphic fox wearing a spacesuit inside a sci-fi spaceship\n\ncinematic, dramatic lighting, high resolution, detailed, 4k"
|
372 |
+
],
|
373 |
+
"color": "#232",
|
374 |
+
"bgcolor": "#353"
|
375 |
+
},
|
376 |
+
{
|
377 |
+
"id": 4,
|
378 |
+
"type": "CheckpointLoaderSimple",
|
379 |
+
"pos": [
|
380 |
+
-27,
|
381 |
+
62
|
382 |
+
],
|
383 |
+
"size": [
|
384 |
+
398.7421875,
|
385 |
+
98
|
386 |
+
],
|
387 |
+
"flags": {},
|
388 |
+
"order": 7,
|
389 |
+
"mode": 0,
|
390 |
+
"inputs": [],
|
391 |
+
"outputs": [
|
392 |
+
{
|
393 |
+
"name": "MODEL",
|
394 |
+
"type": "MODEL",
|
395 |
+
"links": [
|
396 |
+
54
|
397 |
+
],
|
398 |
+
"slot_index": 0
|
399 |
+
},
|
400 |
+
{
|
401 |
+
"name": "CLIP",
|
402 |
+
"type": "CLIP",
|
403 |
+
"links": [
|
404 |
+
49,
|
405 |
+
50
|
406 |
+
],
|
407 |
+
"slot_index": 1
|
408 |
+
},
|
409 |
+
{
|
410 |
+
"name": "VAE",
|
411 |
+
"type": "VAE",
|
412 |
+
"links": [
|
413 |
+
43
|
414 |
+
],
|
415 |
+
"slot_index": 2
|
416 |
+
}
|
417 |
+
],
|
418 |
+
"properties": {
|
419 |
+
"Node name for S&R": "CheckpointLoaderSimple"
|
420 |
+
},
|
421 |
+
"widgets_values": [
|
422 |
+
"sd_xl_base_1.0.safetensors"
|
423 |
+
],
|
424 |
+
"color": "#223",
|
425 |
+
"bgcolor": "#335"
|
426 |
+
},
|
427 |
+
{
|
428 |
+
"id": 8,
|
429 |
+
"type": "VAEDecode",
|
430 |
+
"pos": [
|
431 |
+
1540,
|
432 |
+
40
|
433 |
+
],
|
434 |
+
"size": [
|
435 |
+
140,
|
436 |
+
60
|
437 |
+
],
|
438 |
+
"flags": {},
|
439 |
+
"order": 12,
|
440 |
+
"mode": 0,
|
441 |
+
"inputs": [
|
442 |
+
{
|
443 |
+
"name": "samples",
|
444 |
+
"type": "LATENT",
|
445 |
+
"link": 53
|
446 |
+
},
|
447 |
+
{
|
448 |
+
"name": "vae",
|
449 |
+
"type": "VAE",
|
450 |
+
"link": 43
|
451 |
+
}
|
452 |
+
],
|
453 |
+
"outputs": [
|
454 |
+
{
|
455 |
+
"name": "IMAGE",
|
456 |
+
"type": "IMAGE",
|
457 |
+
"links": [
|
458 |
+
41
|
459 |
+
],
|
460 |
+
"slot_index": 0
|
461 |
+
}
|
462 |
+
],
|
463 |
+
"properties": {
|
464 |
+
"Node name for S&R": "VAEDecode"
|
465 |
+
},
|
466 |
+
"widgets_values": [],
|
467 |
+
"color": "#323",
|
468 |
+
"bgcolor": "#535"
|
469 |
+
},
|
470 |
+
{
|
471 |
+
"id": 3,
|
472 |
+
"type": "KSampler",
|
473 |
+
"pos": [
|
474 |
+
1190,
|
475 |
+
30
|
476 |
+
],
|
477 |
+
"size": [
|
478 |
+
300,
|
479 |
+
262
|
480 |
+
],
|
481 |
+
"flags": {},
|
482 |
+
"order": 11,
|
483 |
+
"mode": 0,
|
484 |
+
"inputs": [
|
485 |
+
{
|
486 |
+
"name": "model",
|
487 |
+
"type": "MODEL",
|
488 |
+
"link": 55
|
489 |
+
},
|
490 |
+
{
|
491 |
+
"name": "positive",
|
492 |
+
"type": "CONDITIONING",
|
493 |
+
"link": 52
|
494 |
+
},
|
495 |
+
{
|
496 |
+
"name": "negative",
|
497 |
+
"type": "CONDITIONING",
|
498 |
+
"link": 51
|
499 |
+
},
|
500 |
+
{
|
501 |
+
"name": "latent_image",
|
502 |
+
"type": "LATENT",
|
503 |
+
"link": 2
|
504 |
+
}
|
505 |
+
],
|
506 |
+
"outputs": [
|
507 |
+
{
|
508 |
+
"name": "LATENT",
|
509 |
+
"type": "LATENT",
|
510 |
+
"links": [
|
511 |
+
53
|
512 |
+
],
|
513 |
+
"slot_index": 0
|
514 |
+
}
|
515 |
+
],
|
516 |
+
"properties": {
|
517 |
+
"Node name for S&R": "KSampler"
|
518 |
+
},
|
519 |
+
"widgets_values": [
|
520 |
+
0,
|
521 |
+
"fixed",
|
522 |
+
25,
|
523 |
+
6.5,
|
524 |
+
"dpmpp_2m_sde",
|
525 |
+
"exponential",
|
526 |
+
1
|
527 |
+
],
|
528 |
+
"color": "#2a363b",
|
529 |
+
"bgcolor": "#3f5159"
|
530 |
+
},
|
531 |
+
{
|
532 |
+
"id": 36,
|
533 |
+
"type": "ApplyFBCacheOnModel",
|
534 |
+
"pos": [
|
535 |
+
1180,
|
536 |
+
-250
|
537 |
+
],
|
538 |
+
"size": [
|
539 |
+
315,
|
540 |
+
154
|
541 |
+
],
|
542 |
+
"flags": {},
|
543 |
+
"order": 8,
|
544 |
+
"mode": 0,
|
545 |
+
"inputs": [
|
546 |
+
{
|
547 |
+
"name": "model",
|
548 |
+
"type": "MODEL",
|
549 |
+
"link": 54
|
550 |
+
}
|
551 |
+
],
|
552 |
+
"outputs": [
|
553 |
+
{
|
554 |
+
"name": "MODEL",
|
555 |
+
"type": "MODEL",
|
556 |
+
"links": [
|
557 |
+
55
|
558 |
+
],
|
559 |
+
"slot_index": 0
|
560 |
+
}
|
561 |
+
],
|
562 |
+
"properties": {
|
563 |
+
"Node name for S&R": "ApplyFBCacheOnModel"
|
564 |
+
},
|
565 |
+
"widgets_values": [
|
566 |
+
"diffusion_model",
|
567 |
+
0.2,
|
568 |
+
0,
|
569 |
+
1,
|
570 |
+
-1
|
571 |
+
]
|
572 |
+
}
|
573 |
+
],
|
574 |
+
"links": [
|
575 |
+
[
|
576 |
+
2,
|
577 |
+
5,
|
578 |
+
0,
|
579 |
+
3,
|
580 |
+
3,
|
581 |
+
"LATENT"
|
582 |
+
],
|
583 |
+
[
|
584 |
+
41,
|
585 |
+
8,
|
586 |
+
0,
|
587 |
+
28,
|
588 |
+
0,
|
589 |
+
"IMAGE"
|
590 |
+
],
|
591 |
+
[
|
592 |
+
43,
|
593 |
+
4,
|
594 |
+
2,
|
595 |
+
8,
|
596 |
+
1,
|
597 |
+
"VAE"
|
598 |
+
],
|
599 |
+
[
|
600 |
+
45,
|
601 |
+
31,
|
602 |
+
0,
|
603 |
+
30,
|
604 |
+
1,
|
605 |
+
"STRING"
|
606 |
+
],
|
607 |
+
[
|
608 |
+
46,
|
609 |
+
31,
|
610 |
+
0,
|
611 |
+
30,
|
612 |
+
2,
|
613 |
+
"STRING"
|
614 |
+
],
|
615 |
+
[
|
616 |
+
47,
|
617 |
+
32,
|
618 |
+
0,
|
619 |
+
33,
|
620 |
+
1,
|
621 |
+
"STRING"
|
622 |
+
],
|
623 |
+
[
|
624 |
+
48,
|
625 |
+
32,
|
626 |
+
0,
|
627 |
+
33,
|
628 |
+
2,
|
629 |
+
"STRING"
|
630 |
+
],
|
631 |
+
[
|
632 |
+
49,
|
633 |
+
4,
|
634 |
+
1,
|
635 |
+
30,
|
636 |
+
0,
|
637 |
+
"CLIP"
|
638 |
+
],
|
639 |
+
[
|
640 |
+
50,
|
641 |
+
4,
|
642 |
+
1,
|
643 |
+
33,
|
644 |
+
0,
|
645 |
+
"CLIP"
|
646 |
+
],
|
647 |
+
[
|
648 |
+
51,
|
649 |
+
33,
|
650 |
+
0,
|
651 |
+
3,
|
652 |
+
2,
|
653 |
+
"CONDITIONING"
|
654 |
+
],
|
655 |
+
[
|
656 |
+
52,
|
657 |
+
30,
|
658 |
+
0,
|
659 |
+
3,
|
660 |
+
1,
|
661 |
+
"CONDITIONING"
|
662 |
+
],
|
663 |
+
[
|
664 |
+
53,
|
665 |
+
3,
|
666 |
+
0,
|
667 |
+
8,
|
668 |
+
0,
|
669 |
+
"LATENT"
|
670 |
+
],
|
671 |
+
[
|
672 |
+
54,
|
673 |
+
4,
|
674 |
+
0,
|
675 |
+
36,
|
676 |
+
0,
|
677 |
+
"MODEL"
|
678 |
+
],
|
679 |
+
[
|
680 |
+
55,
|
681 |
+
36,
|
682 |
+
0,
|
683 |
+
3,
|
684 |
+
0,
|
685 |
+
"MODEL"
|
686 |
+
]
|
687 |
+
],
|
688 |
+
"groups": [],
|
689 |
+
"config": {},
|
690 |
+
"extra": {
|
691 |
+
"ds": {
|
692 |
+
"scale": 0.6993286095567135,
|
693 |
+
"offset": [
|
694 |
+
370.5282918698711,
|
695 |
+
500.1938384498709
|
696 |
+
]
|
697 |
+
},
|
698 |
+
"node_versions": {
|
699 |
+
"comfy-core": "v0.3.10-44-g2ff3104f",
|
700 |
+
"Comfy-WaveSpeed": "805b67c2900f885bbc89de97d143e1a55a5881e9"
|
701 |
+
},
|
702 |
+
"VHS_latentpreview": false,
|
703 |
+
"VHS_latentpreviewrate": 0
|
704 |
+
},
|
705 |
+
"version": 0.4
|
706 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/.gitattributes
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# Auto detect text files and perform LF normalization
|
2 |
+
* text=auto
|
custom_nodes/ComfyUI-3D-Pack/.github/FUNDING.yml
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# These are supported funding model platforms
|
2 |
+
|
3 |
+
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
4 |
+
patreon: # Replace with a single Patreon username
|
5 |
+
open_collective: # Replace with a single Open Collective username
|
6 |
+
ko_fi: # Replace with a single Ko-fi username
|
7 |
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
8 |
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
9 |
+
liberapay: # Replace with a single Liberapay username
|
10 |
+
issuehunt: # Replace with a single IssueHunt username
|
11 |
+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
12 |
+
polar: # Replace with a single Polar username
|
13 |
+
custom: ['https://twitter.com/janusch_patas']
|
custom_nodes/ComfyUI-3D-Pack/.github/workflows/publish.yml
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Publish to Comfy registry
|
2 |
+
on:
|
3 |
+
workflow_dispatch:
|
4 |
+
push:
|
5 |
+
branches:
|
6 |
+
- main
|
7 |
+
paths:
|
8 |
+
- "pyproject.toml"
|
9 |
+
|
10 |
+
jobs:
|
11 |
+
publish-node:
|
12 |
+
name: Publish Custom Node to registry
|
13 |
+
runs-on: ubuntu-latest
|
14 |
+
steps:
|
15 |
+
- name: Check out code
|
16 |
+
uses: actions/checkout@v4
|
17 |
+
- name: Publish Custom Node
|
18 |
+
uses: Comfy-Org/publish-node-action@main
|
19 |
+
with:
|
20 |
+
## Add your own personal access token to your Github Repository secrets and reference it here.
|
21 |
+
personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|
custom_nodes/ComfyUI-3D-Pack/.gitignore
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# poetry
|
98 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100 |
+
# commonly ignored for libraries.
|
101 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
102 |
+
#poetry.lock
|
103 |
+
|
104 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
105 |
+
__pypackages__/
|
106 |
+
|
107 |
+
# Celery stuff
|
108 |
+
celerybeat-schedule
|
109 |
+
celerybeat.pid
|
110 |
+
|
111 |
+
# SageMath parsed files
|
112 |
+
*.sage.py
|
113 |
+
|
114 |
+
# Environments
|
115 |
+
.env
|
116 |
+
.venv
|
117 |
+
env/
|
118 |
+
venv/
|
119 |
+
ENV/
|
120 |
+
env.bak/
|
121 |
+
venv.bak/
|
122 |
+
|
123 |
+
# Spyder project settings
|
124 |
+
.spyderproject
|
125 |
+
.spyproject
|
126 |
+
|
127 |
+
# Rope project settings
|
128 |
+
.ropeproject
|
129 |
+
|
130 |
+
# mkdocs documentation
|
131 |
+
/site
|
132 |
+
|
133 |
+
# mypy
|
134 |
+
.mypy_cache/
|
135 |
+
.dmypy.json
|
136 |
+
dmypy.json
|
137 |
+
|
138 |
+
# Pyre type checker
|
139 |
+
.pyre/
|
140 |
+
|
141 |
+
# pytype static type analyzer
|
142 |
+
.pytype/
|
143 |
+
|
144 |
+
# Cython debug symbols
|
145 |
+
cython_debug/
|
146 |
+
|
147 |
+
# PyCharm
|
148 |
+
# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
|
149 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
150 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
151 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
152 |
+
#.idea/
|
153 |
+
|
154 |
+
# Model files
|
155 |
+
*.ckpt
|
156 |
+
*.bin
|
157 |
+
*.pth
|
158 |
+
*.safetensors
|
159 |
+
*.pkl
|
160 |
+
*.pt
|
161 |
+
.huggingface
|
162 |
+
|
163 |
+
# Ignore test outputs
|
164 |
+
outputs/
|
165 |
+
output/
|
166 |
+
|
167 |
+
# Ignore folders only used for build dependencies
|
168 |
+
_Pre_Builds/_Build_Dependencies
|
169 |
+
_Pre_Builds/_Build_Wheels
|
170 |
+
_Pre_Builds/_Libs
|
171 |
+
|
172 |
+
.idea
|
custom_nodes/ComfyUI-3D-Pack/.vscode/settings.json
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cmake.sourceDirectory": "C:/Users/reall/Softwares/ComfyUI_windows_portable/ComfyUI/custom_nodes/ComfyUI-3D-Pack/diff-gaussian-rasterization",
|
3 |
+
"python.analysis.extraPaths": [
|
4 |
+
"./gen_3d_modules",
|
5 |
+
"./MVs_Algorithms",
|
6 |
+
"./_Pre_Builds/_Build_Scripts"
|
7 |
+
]
|
8 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CRM/Put Convolutional Reconstruction Model here.txt
ADDED
File without changes
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CRM_T2I_V3/Put CRM_T2I_V3 model here.txt
ADDED
File without changes
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/.gitattributes
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/2D_Stage/models/image_encoder/config.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "./image_encoder",
|
3 |
+
"architectures": [
|
4 |
+
"CLIPVisionModelWithProjection"
|
5 |
+
],
|
6 |
+
"attention_dropout": 0.0,
|
7 |
+
"dropout": 0.0,
|
8 |
+
"hidden_act": "gelu",
|
9 |
+
"hidden_size": 1280,
|
10 |
+
"image_size": 224,
|
11 |
+
"initializer_factor": 1.0,
|
12 |
+
"initializer_range": 0.02,
|
13 |
+
"intermediate_size": 5120,
|
14 |
+
"layer_norm_eps": 1e-05,
|
15 |
+
"model_type": "clip_vision_model",
|
16 |
+
"num_attention_heads": 16,
|
17 |
+
"num_channels": 3,
|
18 |
+
"num_hidden_layers": 32,
|
19 |
+
"patch_size": 14,
|
20 |
+
"projection_dim": 1024,
|
21 |
+
"torch_dtype": "float16",
|
22 |
+
"transformers_version": "4.28.0.dev0"
|
23 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/README.md
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: apache-2.0
|
3 |
+
tags:
|
4 |
+
- dino
|
5 |
+
- vision
|
6 |
+
---
|
7 |
+
|
8 |
+
# Vision Transformer (base-sized model) trained using DINOv2
|
9 |
+
|
10 |
+
Vision Transformer (ViT) model trained using the DINOv2 method. It was introduced in the paper [DINOv2: Learning Robust Visual Features without Supervision](https://arxiv.org/abs/2304.07193) by Oquab et al. and first released in [this repository](https://github.com/facebookresearch/dinov2).
|
11 |
+
|
12 |
+
Disclaimer: The team releasing DINOv2 did not write a model card for this model so this model card has been written by the Hugging Face team.
|
13 |
+
|
14 |
+
## Model description
|
15 |
+
|
16 |
+
The Vision Transformer (ViT) is a transformer encoder model (BERT-like) pretrained on a large collection of images in a self-supervised fashion.
|
17 |
+
|
18 |
+
Images are presented to the model as a sequence of fixed-size patches, which are linearly embedded. One also adds a [CLS] token to the beginning of a sequence to use it for classification tasks. One also adds absolute position embeddings before feeding the sequence to the layers of the Transformer encoder.
|
19 |
+
|
20 |
+
Note that this model does not include any fine-tuned heads.
|
21 |
+
|
22 |
+
By pre-training the model, it learns an inner representation of images that can then be used to extract features useful for downstream tasks: if you have a dataset of labeled images for instance, you can train a standard classifier by placing a linear layer on top of the pre-trained encoder. One typically places a linear layer on top of the [CLS] token, as the last hidden state of this token can be seen as a representation of an entire image.
|
23 |
+
|
24 |
+
## Intended uses & limitations
|
25 |
+
|
26 |
+
You can use the raw model for feature extraction. See the [model hub](https://huggingface.co/models?search=facebook/dinov2) to look for
|
27 |
+
fine-tuned versions on a task that interests you.
|
28 |
+
|
29 |
+
### How to use
|
30 |
+
|
31 |
+
Here is how to use this model:
|
32 |
+
|
33 |
+
```python
|
34 |
+
from transformers import AutoImageProcessor, AutoModel
|
35 |
+
from PIL import Image
|
36 |
+
import requests
|
37 |
+
|
38 |
+
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
|
39 |
+
image = Image.open(requests.get(url, stream=True).raw)
|
40 |
+
|
41 |
+
processor = AutoImageProcessor.from_pretrained('facebook/dinov2-base')
|
42 |
+
model = AutoModel.from_pretrained('facebook/dinov2-base')
|
43 |
+
|
44 |
+
inputs = processor(images=image, return_tensors="pt")
|
45 |
+
outputs = model(**inputs)
|
46 |
+
last_hidden_states = outputs.last_hidden_state
|
47 |
+
```
|
48 |
+
|
49 |
+
### BibTeX entry and citation info
|
50 |
+
|
51 |
+
```bibtex
|
52 |
+
misc{oquab2023dinov2,
|
53 |
+
title={DINOv2: Learning Robust Visual Features without Supervision},
|
54 |
+
author={Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu and Hervé Jegou and Julien Mairal and Patrick Labatut and Armand Joulin and Piotr Bojanowski},
|
55 |
+
year={2023},
|
56 |
+
eprint={2304.07193},
|
57 |
+
archivePrefix={arXiv},
|
58 |
+
primaryClass={cs.CV}
|
59 |
+
}
|
60 |
+
```
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/config.json
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"architectures": [
|
3 |
+
"Dinov2Model"
|
4 |
+
],
|
5 |
+
"attention_probs_dropout_prob": 0.0,
|
6 |
+
"drop_path_rate": 0.0,
|
7 |
+
"hidden_act": "gelu",
|
8 |
+
"hidden_dropout_prob": 0.0,
|
9 |
+
"hidden_size": 768,
|
10 |
+
"image_size": 518,
|
11 |
+
"initializer_range": 0.02,
|
12 |
+
"layer_norm_eps": 1e-06,
|
13 |
+
"layerscale_value": 1.0,
|
14 |
+
"mlp_ratio": 4,
|
15 |
+
"model_type": "dinov2",
|
16 |
+
"num_attention_heads": 12,
|
17 |
+
"num_channels": 3,
|
18 |
+
"num_hidden_layers": 12,
|
19 |
+
"patch_size": 14,
|
20 |
+
"qkv_bias": true,
|
21 |
+
"torch_dtype": "float32",
|
22 |
+
"transformers_version": "4.31.0.dev0",
|
23 |
+
"use_swiglu_ffn": false
|
24 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/3D_Stage/models/base/preprocessor_config.json
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"crop_size": {
|
3 |
+
"height": 256,
|
4 |
+
"width": 256
|
5 |
+
},
|
6 |
+
"do_center_crop": false,
|
7 |
+
"do_convert_rgb": false,
|
8 |
+
"do_normalize": true,
|
9 |
+
"do_rescale": true,
|
10 |
+
"do_resize": false,
|
11 |
+
"image_mean": [
|
12 |
+
0.485,
|
13 |
+
0.456,
|
14 |
+
0.406
|
15 |
+
],
|
16 |
+
"image_processor_type": "BitImageProcessor",
|
17 |
+
"image_std": [
|
18 |
+
0.229,
|
19 |
+
0.224,
|
20 |
+
0.225
|
21 |
+
],
|
22 |
+
"resample": 3,
|
23 |
+
"rescale_factor": 0.00392156862745098,
|
24 |
+
"size": {
|
25 |
+
"shortest_edge": 256
|
26 |
+
}
|
27 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/Put CharacterGen Model here.txt
ADDED
File without changes
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/CharacterGen/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: apache-2.0
|
3 |
+
language:
|
4 |
+
- en
|
5 |
+
pipeline_tag: image-to-3d
|
6 |
+
---
|
7 |
+
|
8 |
+
This is the model parameters of [CharacterGen](https://github.com/zjp-shadow/CharacterGen).
|
9 |
+
Thanks for downloading the checkpoint~
|
10 |
+
If you find our work helpful, please consider citing
|
11 |
+
|
12 |
+
```bibtex
|
13 |
+
@article
|
14 |
+
{peng2024charactergen,
|
15 |
+
title ={CharacterGen: Efficient 3D Character Generation from Single Images with Multi-View Pose Canonicalization},
|
16 |
+
author ={Hao-Yang Peng and Jia-Peng Zhang and Meng-Hao Guo and Yan-Pei Cao and Shi-Min Hu},
|
17 |
+
journal ={ACM Transactions on Graphics (TOG)},
|
18 |
+
year ={2024},
|
19 |
+
volume ={43},
|
20 |
+
number ={4},
|
21 |
+
doi ={10.1145/3658217}
|
22 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Craftsman/image-to-shape-diffusion/clip-mvrgb-modln-l256-e64-ne8-nd16-nl6-aligned-vae/Put Craftsman Model here.txt
ADDED
File without changes
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/JeffreyXiang/TRELLIS-image-large/.gitattributes
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/JeffreyXiang/TRELLIS-image-large/README.md
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
library_name: trellis
|
3 |
+
pipeline_tag: image-to-3d
|
4 |
+
license: mit
|
5 |
+
language:
|
6 |
+
- en
|
7 |
+
---
|
8 |
+
# TRELLIS Image Large
|
9 |
+
|
10 |
+
<!-- Provide a quick summary of what the model is/does. -->
|
11 |
+
|
12 |
+
The image conditioned version of TRELLIS, a large 3D genetive model. It was introduced in the paper [Structured 3D Latents for Scalable and Versatile 3D Generation](https://huggingface.co/papers/2412.01506).
|
13 |
+
|
14 |
+
Project page: https://trellis3d.github.io/
|
15 |
+
|
16 |
+
Code: https://github.com/Microsoft/TRELLIS
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/.gitattributes
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/README.md
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: mit
|
3 |
+
---
|
4 |
+
To enable download model using huggingface_hub package
|
5 |
+
<br>Copied from https://huggingface.co/spaces/Wuvin/Unique3D/tree/main/ckpt
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_valid_processor_keys": [
|
3 |
+
"images",
|
4 |
+
"do_resize",
|
5 |
+
"size",
|
6 |
+
"resample",
|
7 |
+
"do_center_crop",
|
8 |
+
"crop_size",
|
9 |
+
"do_rescale",
|
10 |
+
"rescale_factor",
|
11 |
+
"do_normalize",
|
12 |
+
"image_mean",
|
13 |
+
"image_std",
|
14 |
+
"do_convert_rgb",
|
15 |
+
"return_tensors",
|
16 |
+
"data_format",
|
17 |
+
"input_data_format"
|
18 |
+
],
|
19 |
+
"crop_size": {
|
20 |
+
"height": 224,
|
21 |
+
"width": 224
|
22 |
+
},
|
23 |
+
"do_center_crop": true,
|
24 |
+
"do_convert_rgb": true,
|
25 |
+
"do_normalize": true,
|
26 |
+
"do_rescale": true,
|
27 |
+
"do_resize": true,
|
28 |
+
"image_mean": [
|
29 |
+
0.48145466,
|
30 |
+
0.4578275,
|
31 |
+
0.40821073
|
32 |
+
],
|
33 |
+
"image_processor_type": "CLIPImageProcessor",
|
34 |
+
"image_std": [
|
35 |
+
0.26862954,
|
36 |
+
0.26130258,
|
37 |
+
0.27577711
|
38 |
+
],
|
39 |
+
"resample": 3,
|
40 |
+
"rescale_factor": 0.00392156862745098,
|
41 |
+
"size": {
|
42 |
+
"shortest_edge": 224
|
43 |
+
}
|
44 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/image_encoder/config.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "lambdalabs/sd-image-variations-diffusers",
|
3 |
+
"architectures": [
|
4 |
+
"CLIPVisionModelWithProjection"
|
5 |
+
],
|
6 |
+
"attention_dropout": 0.0,
|
7 |
+
"dropout": 0.0,
|
8 |
+
"hidden_act": "quick_gelu",
|
9 |
+
"hidden_size": 1024,
|
10 |
+
"image_size": 224,
|
11 |
+
"initializer_factor": 1.0,
|
12 |
+
"initializer_range": 0.02,
|
13 |
+
"intermediate_size": 4096,
|
14 |
+
"layer_norm_eps": 1e-05,
|
15 |
+
"model_type": "clip_vision_model",
|
16 |
+
"num_attention_heads": 16,
|
17 |
+
"num_channels": 3,
|
18 |
+
"num_hidden_layers": 24,
|
19 |
+
"patch_size": 14,
|
20 |
+
"projection_dim": 768,
|
21 |
+
"torch_dtype": "float32",
|
22 |
+
"transformers_version": "4.39.3"
|
23 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/model_index.json
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_class_name": "StableDiffusionImage2MVCustomPipeline",
|
3 |
+
"_diffusers_version": "0.27.2",
|
4 |
+
"_name_or_path": "lambdalabs/sd-image-variations-diffusers",
|
5 |
+
"condition_offset": true,
|
6 |
+
"feature_extractor": [
|
7 |
+
"transformers",
|
8 |
+
"CLIPImageProcessor"
|
9 |
+
],
|
10 |
+
"image_encoder": [
|
11 |
+
"transformers",
|
12 |
+
"CLIPVisionModelWithProjection"
|
13 |
+
],
|
14 |
+
"requires_safety_checker": true,
|
15 |
+
"safety_checker": [
|
16 |
+
null,
|
17 |
+
null
|
18 |
+
],
|
19 |
+
"scheduler": [
|
20 |
+
"diffusers",
|
21 |
+
"DDIMScheduler"
|
22 |
+
],
|
23 |
+
"unet": [
|
24 |
+
"diffusers",
|
25 |
+
"UNet2DConditionModel"
|
26 |
+
],
|
27 |
+
"vae": [
|
28 |
+
"diffusers",
|
29 |
+
"AutoencoderKL"
|
30 |
+
]
|
31 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/scheduler/scheduler_config.json
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_class_name": "DDIMScheduler",
|
3 |
+
"_diffusers_version": "0.27.2",
|
4 |
+
"beta_end": 0.012,
|
5 |
+
"beta_schedule": "scaled_linear",
|
6 |
+
"beta_start": 0.00085,
|
7 |
+
"clip_sample": false,
|
8 |
+
"clip_sample_range": 1.0,
|
9 |
+
"dynamic_thresholding_ratio": 0.995,
|
10 |
+
"num_train_timesteps": 1000,
|
11 |
+
"prediction_type": "epsilon",
|
12 |
+
"rescale_betas_zero_snr": false,
|
13 |
+
"sample_max_value": 1.0,
|
14 |
+
"set_alpha_to_one": false,
|
15 |
+
"skip_prk_steps": true,
|
16 |
+
"steps_offset": 1,
|
17 |
+
"thresholding": false,
|
18 |
+
"timestep_spacing": "leading",
|
19 |
+
"trained_betas": null
|
20 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/unet/config.json
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_class_name": "UnifieldWrappedUNet",
|
3 |
+
"_diffusers_version": "0.27.2",
|
4 |
+
"_name_or_path": "lambdalabs/sd-image-variations-diffusers",
|
5 |
+
"act_fn": "silu",
|
6 |
+
"addition_embed_type": null,
|
7 |
+
"addition_embed_type_num_heads": 64,
|
8 |
+
"addition_time_embed_dim": null,
|
9 |
+
"attention_head_dim": 8,
|
10 |
+
"attention_type": "default",
|
11 |
+
"block_out_channels": [
|
12 |
+
320,
|
13 |
+
640,
|
14 |
+
1280,
|
15 |
+
1280
|
16 |
+
],
|
17 |
+
"center_input_sample": false,
|
18 |
+
"class_embed_type": null,
|
19 |
+
"class_embeddings_concat": false,
|
20 |
+
"conv_in_kernel": 3,
|
21 |
+
"conv_out_kernel": 3,
|
22 |
+
"cross_attention_dim": 768,
|
23 |
+
"cross_attention_norm": null,
|
24 |
+
"down_block_types": [
|
25 |
+
"CrossAttnDownBlock2D",
|
26 |
+
"CrossAttnDownBlock2D",
|
27 |
+
"CrossAttnDownBlock2D",
|
28 |
+
"DownBlock2D"
|
29 |
+
],
|
30 |
+
"downsample_padding": 1,
|
31 |
+
"dropout": 0.0,
|
32 |
+
"dual_cross_attention": false,
|
33 |
+
"encoder_hid_dim": null,
|
34 |
+
"encoder_hid_dim_type": null,
|
35 |
+
"flip_sin_to_cos": true,
|
36 |
+
"freq_shift": 0,
|
37 |
+
"in_channels": 8,
|
38 |
+
"layers_per_block": 2,
|
39 |
+
"mid_block_only_cross_attention": null,
|
40 |
+
"mid_block_scale_factor": 1,
|
41 |
+
"mid_block_type": "UNetMidBlock2DCrossAttn",
|
42 |
+
"norm_eps": 1e-05,
|
43 |
+
"norm_num_groups": 32,
|
44 |
+
"num_attention_heads": null,
|
45 |
+
"num_class_embeds": 8,
|
46 |
+
"only_cross_attention": false,
|
47 |
+
"out_channels": 4,
|
48 |
+
"projection_class_embeddings_input_dim": null,
|
49 |
+
"resnet_out_scale_factor": 1.0,
|
50 |
+
"resnet_skip_time_act": false,
|
51 |
+
"resnet_time_scale_shift": "default",
|
52 |
+
"reverse_transformer_layers_per_block": null,
|
53 |
+
"sample_size": 64,
|
54 |
+
"time_cond_proj_dim": null,
|
55 |
+
"time_embedding_act_fn": null,
|
56 |
+
"time_embedding_dim": null,
|
57 |
+
"time_embedding_type": "positional",
|
58 |
+
"timestep_post_act": null,
|
59 |
+
"transformer_layers_per_block": 1,
|
60 |
+
"up_block_types": [
|
61 |
+
"UpBlock2D",
|
62 |
+
"CrossAttnUpBlock2D",
|
63 |
+
"CrossAttnUpBlock2D",
|
64 |
+
"CrossAttnUpBlock2D"
|
65 |
+
],
|
66 |
+
"upcast_attention": false,
|
67 |
+
"use_linear_projection": false
|
68 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/vae/config.json
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_class_name": "AutoencoderKL",
|
3 |
+
"_diffusers_version": "0.27.2",
|
4 |
+
"_name_or_path": "lambdalabs/sd-image-variations-diffusers",
|
5 |
+
"act_fn": "silu",
|
6 |
+
"block_out_channels": [
|
7 |
+
128,
|
8 |
+
256,
|
9 |
+
512,
|
10 |
+
512
|
11 |
+
],
|
12 |
+
"down_block_types": [
|
13 |
+
"DownEncoderBlock2D",
|
14 |
+
"DownEncoderBlock2D",
|
15 |
+
"DownEncoderBlock2D",
|
16 |
+
"DownEncoderBlock2D"
|
17 |
+
],
|
18 |
+
"force_upcast": true,
|
19 |
+
"in_channels": 3,
|
20 |
+
"latent_channels": 4,
|
21 |
+
"latents_mean": null,
|
22 |
+
"latents_std": null,
|
23 |
+
"layers_per_block": 2,
|
24 |
+
"norm_num_groups": 32,
|
25 |
+
"out_channels": 3,
|
26 |
+
"sample_size": 256,
|
27 |
+
"scaling_factor": 0.18215,
|
28 |
+
"up_block_types": [
|
29 |
+
"UpDecoderBlock2D",
|
30 |
+
"UpDecoderBlock2D",
|
31 |
+
"UpDecoderBlock2D",
|
32 |
+
"UpDecoderBlock2D"
|
33 |
+
]
|
34 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/feature_extractor/preprocessor_config.json
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_valid_processor_keys": [
|
3 |
+
"images",
|
4 |
+
"do_resize",
|
5 |
+
"size",
|
6 |
+
"resample",
|
7 |
+
"do_center_crop",
|
8 |
+
"crop_size",
|
9 |
+
"do_rescale",
|
10 |
+
"rescale_factor",
|
11 |
+
"do_normalize",
|
12 |
+
"image_mean",
|
13 |
+
"image_std",
|
14 |
+
"do_convert_rgb",
|
15 |
+
"return_tensors",
|
16 |
+
"data_format",
|
17 |
+
"input_data_format"
|
18 |
+
],
|
19 |
+
"crop_size": {
|
20 |
+
"height": 224,
|
21 |
+
"width": 224
|
22 |
+
},
|
23 |
+
"do_center_crop": true,
|
24 |
+
"do_convert_rgb": true,
|
25 |
+
"do_normalize": true,
|
26 |
+
"do_rescale": true,
|
27 |
+
"do_resize": true,
|
28 |
+
"image_mean": [
|
29 |
+
0.48145466,
|
30 |
+
0.4578275,
|
31 |
+
0.40821073
|
32 |
+
],
|
33 |
+
"image_processor_type": "CLIPImageProcessor",
|
34 |
+
"image_std": [
|
35 |
+
0.26862954,
|
36 |
+
0.26130258,
|
37 |
+
0.27577711
|
38 |
+
],
|
39 |
+
"resample": 3,
|
40 |
+
"rescale_factor": 0.00392156862745098,
|
41 |
+
"size": {
|
42 |
+
"shortest_edge": 224
|
43 |
+
}
|
44 |
+
}
|
custom_nodes/ComfyUI-3D-Pack/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/image_encoder/config.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "lambdalabs/sd-image-variations-diffusers",
|
3 |
+
"architectures": [
|
4 |
+
"CLIPVisionModelWithProjection"
|
5 |
+
],
|
6 |
+
"attention_dropout": 0.0,
|
7 |
+
"dropout": 0.0,
|
8 |
+
"hidden_act": "quick_gelu",
|
9 |
+
"hidden_size": 1024,
|
10 |
+
"image_size": 224,
|
11 |
+
"initializer_factor": 1.0,
|
12 |
+
"initializer_range": 0.02,
|
13 |
+
"intermediate_size": 4096,
|
14 |
+
"layer_norm_eps": 1e-05,
|
15 |
+
"model_type": "clip_vision_model",
|
16 |
+
"num_attention_heads": 16,
|
17 |
+
"num_channels": 3,
|
18 |
+
"num_hidden_layers": 24,
|
19 |
+
"patch_size": 14,
|
20 |
+
"projection_dim": 768,
|
21 |
+
"torch_dtype": "bfloat16",
|
22 |
+
"transformers_version": "4.39.3"
|
23 |
+
}
|