diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..1112c320 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,28 @@ +name: Publish to Comfy registry +on: + workflow_dispatch: + push: + branches: + - main + - master + paths: + - "pyproject.toml" + +permissions: + issues: write + +jobs: + publish-node: + name: Publish Custom Node to registry + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'aimfordeb' }} + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + submodules: true + - name: Publish Custom Node + uses: Comfy-Org/publish-node-action@v1 + with: + ## Add your own personal access token to your Github Repository secrets and reference it here. + personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} diff --git a/WanVideo PRO (StoryMem ver.).json b/WanVideo PRO (StoryMem ver.).json new file mode 100644 index 00000000..78b0e60f --- /dev/null +++ b/WanVideo PRO (StoryMem ver.).json @@ -0,0 +1,10967 @@ +{ + "id": "121e4a5b-3482-4256-9b5d-ceb54c3f14e1", + "revision": 0, + "last_node_id": 78, + "last_link_id": 508, + "nodes": [ + { + "id": 48, + "type": "RepeatImageBatch", + "pos": [ + 1939.3772827605799, + 446.57172905235933 + ], + "size": [ + 270, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "RepeatImageBatch", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {}, + "version": "7.4.1" + } + }, + "widgets_values": [ + 81 + ] + }, + { + "id": 33, + "type": "FunPackVideoStitch", + "pos": [ + 4413.284611539381, + 296.06847283224937 + ], + "size": [ + 270, + 198 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "video1", + "shape": 7, + "type": "IMAGE", + "link": 72 + }, + { + "name": "video2", + "shape": 7, + "type": "IMAGE", + "link": 73 + }, + { + "name": "video3", + "shape": 7, + "type": "IMAGE", + "link": 417 + }, + { + "name": "video4", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video5", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video6", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video7", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video8", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "name": "STITCHED", + "type": "IMAGE", + "links": [ + 75 + ] + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "cb018fd4511d6b4b8340b1484a6015abbdb14ba3", + "Node name for S&R": "FunPackVideoStitch", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {}, + "version": "7.4.1" + } + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 64, + "type": "FunPackVideoStitch", + "pos": [ + 4415.265527579787, + 540.8335092203581 + ], + "size": [ + 270, + 198 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "video1", + "shape": 7, + "type": "IMAGE", + "link": 444 + }, + { + "name": "video2", + "shape": 7, + "type": "IMAGE", + "link": 445 + }, + { + "name": "video3", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video4", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video5", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video6", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video7", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "video8", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "name": "STITCHED", + "type": "IMAGE", + "links": [ + 448 + ] + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "cb018fd4511d6b4b8340b1484a6015abbdb14ba3", + "Node name for S&R": "FunPackVideoStitch", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {}, + "version": "7.4.1" + } + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 34, + "type": "VHS_VideoCombine", + "pos": [ + 4709.26413933938, + 293.4755517322494 + ], + "size": [ + 228.36666870117188, + 617.015627861023 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 75 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "8923bd836bdab8b7bbdf4ed104b7d045e70c66e2", + "Node name for S&R": "VHS_VideoCombine", + "aux_id": "Kosinkadink/ComfyUI-VideoHelperSuite", + "ue_properties": { + "widget_ue_connectable": { + "frame_rate": true, + "loop_count": true, + "filename_prefix": true, + "format": true, + "pingpong": true, + "save_output": true, + "pix_fmt": true, + "crf": true, + "save_metadata": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "result4", + "format": "video/h265-mp4", + "pix_fmt": "yuv420p", + "crf": 17, + "save_metadata": true, + "pingpong": false, + "save_output": false, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "result4_00001.mp4", + "subfolder": "", + "type": "temp", + "format": "video/h265-mp4", + "frame_rate": 16, + "workflow": "result4_00001.png", + "fullpath": "/workspace/ComfyUI/temp/result4_00001.mp4" + } + } + } + }, + { + "id": 65, + "type": "VHS_VideoCombine", + "pos": [ + 4952.048510579785, + 291.0434082203582 + ], + "size": [ + 228.36666870117188, + 617.015627861023 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 448 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "8923bd836bdab8b7bbdf4ed104b7d045e70c66e2", + "Node name for S&R": "VHS_VideoCombine", + "aux_id": "Kosinkadink/ComfyUI-VideoHelperSuite", + "ue_properties": { + "widget_ue_connectable": { + "frame_rate": true, + "loop_count": true, + "filename_prefix": true, + "format": true, + "pingpong": true, + "save_output": true, + "pix_fmt": true, + "crf": true, + "save_metadata": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "result_23_4", + "format": "video/h265-mp4", + "pix_fmt": "yuv420p", + "crf": 17, + "save_metadata": true, + "pingpong": false, + "save_output": false, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "result_23_4_00001.mp4", + "subfolder": "", + "type": "temp", + "format": "video/h265-mp4", + "frame_rate": 16, + "workflow": "result_23_4_00001.png", + "fullpath": "/workspace/ComfyUI/temp/result_23_4_00001.mp4" + } + } + } + }, + { + "id": 22, + "type": "VHS_VideoCombine", + "pos": [ + 3329.423597818514, + 290.442478350992 + ], + "size": [ + 228.36666870117188, + 617.015627861023 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 22 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "8923bd836bdab8b7bbdf4ed104b7d045e70c66e2", + "Node name for S&R": "VHS_VideoCombine", + "aux_id": "Kosinkadink/ComfyUI-VideoHelperSuite", + "ue_properties": { + "widget_ue_connectable": { + "frame_rate": true, + "loop_count": true, + "filename_prefix": true, + "format": true, + "pingpong": true, + "save_output": true, + "pix_fmt": true, + "crf": true, + "save_metadata": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "second_sampler3", + "format": "video/h265-mp4", + "pix_fmt": "yuv420p", + "crf": 14, + "save_metadata": true, + "pingpong": false, + "save_output": false, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "second_sampler3_00001.mp4", + "subfolder": "", + "type": "temp", + "format": "video/h265-mp4", + "frame_rate": 16, + "workflow": "second_sampler3_00001.png", + "fullpath": "/workspace/ComfyUI/temp/second_sampler3_00001.mp4" + } + } + } + }, + { + "id": 18, + "type": "VHS_VideoCombine", + "pos": [ + 2484.9822206785175, + 291.26821959217034 + ], + "size": [ + 228.36666870117188, + 617.015627861023 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 18 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "8923bd836bdab8b7bbdf4ed104b7d045e70c66e2", + "Node name for S&R": "VHS_VideoCombine", + "aux_id": "Kosinkadink/ComfyUI-VideoHelperSuite", + "ue_properties": { + "widget_ue_connectable": { + "frame_rate": true, + "loop_count": true, + "filename_prefix": true, + "format": true, + "pingpong": true, + "save_output": true, + "pix_fmt": true, + "crf": true, + "save_metadata": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "first_sampler3", + "format": "video/h265-mp4", + "pix_fmt": "yuv420p", + "crf": 14, + "save_metadata": true, + "pingpong": false, + "save_output": false, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "first_sampler3_00001.mp4", + "subfolder": "", + "type": "temp", + "format": "video/h265-mp4", + "frame_rate": 16, + "workflow": "first_sampler3_00001.png", + "fullpath": "/workspace/ComfyUI/temp/first_sampler3_00001.mp4" + } + } + } + }, + { + "id": 6, + "type": "e23d5ebd-47a8-47df-8e3c-43f5d5f4dc6f", + "pos": [ + 1310.381987657945, + 446.31214318037786 + ], + "size": [ + 265.84000000000015, + 30.840000000000146 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "label": "text_encoder", + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "links": [ + 398, + 399, + 400 + ] + } + ], + "properties": { + "proxyWidgets": [], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 8, + "type": "2f75f8c8-81ce-4b21-813d-2d883c616125", + "pos": [ + 1312.5627548332386, + 371.4921431803779 + ], + "size": [ + 263.4200000000001, + 33.25999999999999 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "vae", + "type": "WANVAE", + "links": [ + 392, + 393, + 394, + 395, + 396, + 397 + ] + } + ], + "properties": { + "proxyWidgets": [], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 10, + "type": "fc8fe2eb-1dbb-48bc-a783-2e94b752c441", + "pos": [ + 1311.3527548332377, + 304.3403431803779 + ], + "size": [ + 263.4200000000001, + 26 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [ + 389, + 390, + 391 + ] + } + ], + "properties": { + "proxyWidgets": [], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 51, + "type": "WanVideoExperimentalArgs", + "pos": [ + 1608.939599471583, + 655.8868877260063 + ], + "size": [ + 255.53334045410156, + 374.73855732179663 + ], + "flags": {}, + "order": 4, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "exp_args", + "type": "EXPERIMENTALARGS", + "links": [ + 418, + 419 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "d3f33a9f09e774e43500eed1abf7d975997dd1ee", + "Node name for S&R": "WanVideoExperimentalArgs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper" + }, + "widgets_values": [ + "", + false, + false, + 0, + false, + 1, + 1.15, + 60, + false, + 1, + true, + false, + 0, + 0 + ] + }, + { + "id": 26, + "type": "VHS_VideoCombine", + "pos": [ + 4161.541439515632, + 286.3035664352763 + ], + "size": [ + 228.36666870117188, + 617.015627861023 + ], + "flags": { + "collapsed": false + }, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 35 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "8923bd836bdab8b7bbdf4ed104b7d045e70c66e2", + "Node name for S&R": "VHS_VideoCombine", + "aux_id": "Kosinkadink/ComfyUI-VideoHelperSuite", + "ue_properties": { + "widget_ue_connectable": { + "frame_rate": true, + "loop_count": true, + "filename_prefix": true, + "format": true, + "pingpong": true, + "save_output": true, + "pix_fmt": true, + "crf": true, + "save_metadata": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "third_sampler3", + "format": "video/h265-mp4", + "pix_fmt": "yuv420p", + "crf": 14, + "save_metadata": true, + "pingpong": false, + "save_output": false, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "third_sampler3_00001.mp4", + "subfolder": "", + "type": "temp", + "format": "video/h265-mp4", + "frame_rate": 16, + "workflow": "third_sampler3_00001.png", + "fullpath": "/workspace/ComfyUI/temp/third_sampler3_00001.mp4" + } + } + } + }, + { + "id": 24, + "type": "72c19279-7025-4a9a-bf8e-0e890c70044f", + "pos": [ + 3872.678278604839, + 293.38825552448054 + ], + "size": [ + 277.9499969482422, + 666.8307649381868 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "label": "text_embeds_3", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "link": 125 + }, + { + "label": "image_embeds_3", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 32 + }, + { + "label": "model_high_3", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 492 + }, + { + "label": "model_low_3", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 493 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 397 + }, + { + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "link": null + }, + { + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "link": null + }, + { + "name": "feta_args", + "type": "FETAARGS", + "link": null + }, + { + "name": "slg_args", + "type": "SLGARGS", + "link": null + } + ], + "outputs": [ + { + "label": "third_sampler_results", + "name": "images", + "type": "IMAGE", + "links": [ + 35, + 417, + 445 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "shift" + ], + [ + "-1", + "sigma" + ], + [ + "-1", + "vhslatentpreview" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "steps": true, + "cfg": true, + "shift": true, + "sigma": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5, + 1, + 5, + 0.9 + ] + }, + { + "id": 13, + "type": "3797c843-c451-413c-b3a4-2bf8a400ba28", + "pos": [ + 1892.8458258757269, + 308.9773041932841 + ], + "size": [ + 270.67999999999984, + 230 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 3 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 389 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 392 + } + ], + "outputs": [ + { + "name": "width", + "type": "INT", + "links": [ + 37, + 428 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 38, + 429 + ] + }, + { + "label": "image_embeds_1", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 360 + ] + }, + { + "label": "reference_image", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 432, + 433 + ] + }, + { + "name": "samples", + "type": "LATENT", + "links": [ + 430, + 431, + 434 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "-1", + "num_frames" + ], + [ + "-1", + "crop_position" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "num_frames": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 512, + 720, + 81, + "center" + ] + }, + { + "id": 17, + "type": "1f7cf909-f4b2-4a82-b3d5-8e1bde7a687e", + "pos": [ + 2187.017621798352, + 298.36623830880916 + ], + "size": [ + 274.46666717529297, + 681.931136246566 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "label": "text_embeds_1", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "link": 413 + }, + { + "label": "image_embeds_1", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 360 + }, + { + "label": "model_high_1", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 488 + }, + { + "label": "model_low_1", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 489 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 393 + }, + { + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "link": 418 + }, + { + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "link": 419 + }, + { + "name": "extra_latents", + "type": "LATENT", + "link": 434 + }, + { + "name": "feta_args", + "type": "FETAARGS", + "link": null + }, + { + "name": "slg_args", + "type": "SLGARGS", + "link": null + } + ], + "outputs": [ + { + "label": "first_sampler_results", + "name": "images", + "type": "IMAGE", + "links": [ + 18, + 72, + 446, + 486 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "shift" + ], + [ + "-1", + "sigma" + ], + [ + "-1", + "vhslatentpreview" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "steps": true, + "cfg": true, + "shift": true, + "sigma": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5, + 1, + 5, + 0.9 + ] + }, + { + "id": 21, + "type": "f8a1a675-ee93-411d-8a3c-9ea2a87d0a58", + "pos": [ + 3017.6903062431265, + 303.46164749238056 + ], + "size": [ + 294.16666412353516, + 689.6410220638736 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "label": "text_embeds_2", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "link": 100 + }, + { + "label": "image_embeds_2", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 24 + }, + { + "label": "model_high_2", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 490 + }, + { + "label": "model_low_2", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 491 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 394 + }, + { + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "link": null + }, + { + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "link": null + }, + { + "name": "feta_args", + "type": "FETAARGS", + "link": null + }, + { + "name": "slg_args", + "type": "SLGARGS", + "link": null + } + ], + "outputs": [ + { + "label": "second_sampler_results", + "name": "images", + "type": "IMAGE", + "links": [ + 22, + 73, + 444, + 447, + 487 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "shift" + ], + [ + "-1", + "sigma" + ], + [ + "-1", + "vhslatentpreview" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "steps": true, + "cfg": true, + "shift": true, + "sigma": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5, + 1, + 5, + 0.9 + ] + }, + { + "id": 2, + "type": "27ceba78-b0ec-46e1-977e-1a740f1d5d2b", + "pos": [ + 1308.6510029258905, + 520.2775531803773 + ], + "size": [ + 266.9284389999998, + 88.80999999999995 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "lora", + "type": "WANVIDLORA", + "link": 478 + }, + { + "name": "lora_1", + "type": "WANVIDLORA", + "link": 479 + } + ], + "outputs": [ + { + "label": "model_high", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 401, + 403, + 405 + ] + }, + { + "label": "model_low", + "name": "model_1", + "type": "WANVIDEOMODEL", + "links": [ + 402, + 404, + 406 + ] + } + ], + "properties": { + "proxyWidgets": [], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 4, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 1310.0350548332394, + 652.9980431803774 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null + }, + { + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 410, + 411, + 412, + 479 + ] + } + ], + "title": "LoRAs Low (Global)", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": { + "lora_0": true, + "strength_0": true, + "lora_1": true, + "strength_1": true, + "lora_2": true, + "strength_2": true, + "lora_3": true, + "strength_3": true, + "lora_4": true, + "strength_4": true, + "low_mem_load": true, + "merge_loras": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "none", + 0.25, + "none", + 0.3, + "none", + 1, + "none", + 1, + "none", + 0.6, + false, + false + ] + }, + { + "id": 3, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 1018.7396548332388, + 651.533943180378 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null + }, + { + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 407, + 408, + 409, + 478 + ] + } + ], + "title": "LoRAs High (Global)", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": { + "lora_0": true, + "strength_0": true, + "lora_1": true, + "strength_1": true, + "lora_2": true, + "strength_2": true, + "lora_3": true, + "strength_3": true, + "lora_4": true, + "strength_4": true, + "low_mem_load": true, + "merge_loras": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "none", + 0.25, + "none", + 0.3, + "none", + 1, + "none", + 1, + "none", + 0.6, + false, + false + ] + }, + { + "id": 11, + "type": "LoadImage", + "pos": [ + 1596.6235548332388, + 304.1308431803779 + ], + "size": [ + 274, + 314.00000000000006 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 3 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "LoadImage", + "ue_properties": { + "widget_ue_connectable": { + "image": true, + "upload": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "G4cM5PaXIAEhmKJ.jpg", + "image" + ] + }, + { + "id": 19, + "type": "c498c212-f2a5-4b86-b79a-d5e4deb32166", + "pos": [ + 2731.628005327023, + 290.2668523469005 + ], + "size": [ + 270.67999999999984, + 226 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 446 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 37 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 38 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 391 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 395 + }, + { + "name": "frame_count", + "type": "INT", + "link": null + }, + { + "label": "reference_image", + "name": "control_images", + "type": "IMAGE", + "link": 432 + }, + { + "name": "extra_latents", + "type": "LATENT", + "link": 430 + }, + { + "name": "memory_frames", + "type": "IMAGE", + "link": 486 + } + ], + "outputs": [ + { + "name": "width", + "type": "INT", + "links": [] + }, + { + "name": "height", + "type": "INT", + "links": [] + }, + { + "label": "image_embeds_2", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 24 + ] + }, + { + "name": "CONTINUED", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "-1", + "num_frames" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "num_frames": true, + "frame_count": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 1.5, + 1.5, + 81 + ] + }, + { + "id": 23, + "type": "0d5ea664-7ebe-4da9-b561-a899d31bb5d8", + "pos": [ + 3568.3717486048386, + 296.5427255244805 + ], + "size": [ + 270.67999999999984, + 230 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 447 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 428 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 429 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 390 + }, + { + "name": "vae", + "type": "WANVAE", + "link": 396 + }, + { + "name": "frame_count", + "type": "INT", + "link": null + }, + { + "label": "reference_image", + "name": "control_images", + "type": "IMAGE", + "link": 433 + }, + { + "name": "extra_latents", + "type": "LATENT", + "link": 431 + }, + { + "name": "image_2", + "type": "IMAGE", + "link": 487 + } + ], + "outputs": [ + { + "name": "width", + "type": "INT", + "links": null + }, + { + "name": "height", + "type": "INT", + "links": null + }, + { + "label": "image_embeds_3", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 32 + ] + }, + { + "name": "CONTINUED", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "-1", + "num_frames" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "num_frames": true, + "frame_count": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 1.5, + 1.5, + 81 + ] + }, + { + "id": 74, + "type": "PreviewAny", + "pos": [ + 1629.0013768720955, + 1080.6304337066454 + ], + "size": [ + 210, + 166 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "source", + "type": "*", + "link": 503 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.6.0", + "Node name for S&R": "PreviewAny" + }, + "widgets_values": [ + null, + null, + true + ] + }, + { + "id": 75, + "type": "PreviewAny", + "pos": [ + 1877.9834226535706, + 1075.7484328089695 + ], + "size": [ + 210, + 166 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "source", + "type": "*", + "link": 504 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.6.0", + "Node name for S&R": "PreviewAny" + }, + "widgets_values": [ + null, + null, + true + ] + }, + { + "id": 76, + "type": "PreviewAny", + "pos": [ + 2123.7108011699274, + 1074.1210991764106 + ], + "size": [ + 210, + 166 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "source", + "type": "*", + "link": 505 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.6.0", + "Node name for S&R": "PreviewAny" + }, + "widgets_values": [ + null, + null, + true + ] + }, + { + "id": 78, + "type": "FunPackStoryMemJSONConverter", + "pos": [ + 1151.4785240074166, + 1087.966184105397 + ], + "size": [ + 400, + 548.0000000000001 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "json_sampler_1", + "type": "STRING", + "links": [ + 503, + 506 + ] + }, + { + "name": "json_sampler_2", + "type": "STRING", + "links": [ + 504, + 507 + ] + }, + { + "name": "json_sampler_3", + "type": "STRING", + "links": [ + 505, + 508 + ] + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "36b32ea54b767fb32cc08fc8208354f002d7a6bf", + "Node name for S&R": "FunPackStoryMemJSONConverter" + }, + "widgets_values": [ + "My Story Title", + "Brief description of the overall story...", + "prompt 1\nprompt 2\nprompt 3", + "first frame 1\nfirst frame 2\nfirst frame 3", + "true, false, false", + "", + "", + "", + "", + "", + "" + ] + }, + { + "id": 27, + "type": "11ced874-ea26-4f3b-9f38-b2832afbf879", + "pos": [ + 1884.11511221599, + 580.8828997223293 + ], + "size": [ + 289.4013811508821, + 188 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "label": "model_high", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 401 + }, + { + "label": "model_low", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 402 + }, + { + "label": "text_encoder", + "name": "t5", + "type": "WANTEXTENCODER", + "link": 398 + }, + { + "label": "global_loras_h", + "name": "prev_lora", + "type": "WANVIDLORA", + "link": 407 + }, + { + "label": "global_loras_l", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "link": 410 + }, + { + "name": "qwen", + "type": "QWENMODEL", + "link": null + }, + { + "name": "prompt", + "type": "STRING", + "widget": { + "name": "prompt" + }, + "link": 506 + } + ], + "outputs": [ + { + "label": "text_embeds_1", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 413 + ] + }, + { + "label": "model_high_1", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 488 + ] + }, + { + "label": "model_low_1", + "name": "model_1", + "type": "WANVIDEOMODEL", + "links": [ + 489 + ] + }, + { + "label": "text_embeds_h_1", + "name": "text_embeds_1", + "type": "WANVIDEOTEXTEMBEDS", + "links": [] + }, + { + "label": "qwen_history", + "name": "STRING", + "type": "STRING", + "links": [ + 466 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "prompt" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": { + "positive_prompt": true + }, + "version": "7.4.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "" + ] + }, + { + "id": 39, + "type": "7c1d786b-9a8f-4ee0-8abf-2cd57b7d2882", + "pos": [ + 2730.4130862097595, + 562.9359828882817 + ], + "size": [ + 271.41848460874735, + 208 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "label": "text_encoder", + "name": "t5", + "type": "WANTEXTENCODER", + "link": 399 + }, + { + "label": "model_high", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 403 + }, + { + "label": "model_low", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 404 + }, + { + "label": "global_loras_h", + "name": "prev_lora", + "type": "WANVIDLORA", + "link": 408 + }, + { + "label": "global_loras_l", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "link": 411 + }, + { + "label": "qwen_history", + "name": "", + "type": "*", + "link": 466 + }, + { + "name": "qwen", + "type": "QWENMODEL", + "link": null + }, + { + "name": "prompt", + "type": "STRING", + "widget": { + "name": "prompt" + }, + "link": 507 + } + ], + "outputs": [ + { + "label": "text_embeds_2", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 100 + ] + }, + { + "label": "model_high_2", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 490 + ] + }, + { + "label": "model_low_2", + "name": "model_1", + "type": "WANVIDEOMODEL", + "links": [ + 491 + ] + }, + { + "label": "qwen_history", + "name": "STRING", + "type": "STRING", + "links": [ + 465 + ] + }, + { + "label": "next", + "name": "", + "type": "*", + "links": [] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "prompt" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {}, + "version": "7.4.1" + } + }, + "widgets_values": [ + "" + ] + }, + { + "id": 46, + "type": "4ac2bcc5-d41a-4215-9f81-c1806288f1de", + "pos": [ + 3576.8745459164475, + 569.8157218581448 + ], + "size": [ + 256.2617923259436, + 208 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "label": "text_encoder", + "name": "t5", + "type": "WANTEXTENCODER", + "link": 400 + }, + { + "label": "global_loras_h", + "name": "prev_lora", + "type": "WANVIDLORA", + "link": 409 + }, + { + "label": "global_loras_l", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "link": 412 + }, + { + "label": "model_high", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 405 + }, + { + "label": "model_low", + "name": "model_1", + "type": "WANVIDEOMODEL", + "link": 406 + }, + { + "label": "qwen_history", + "name": "", + "type": "*", + "link": 465 + }, + { + "name": "qwen", + "type": "QWENMODEL", + "link": null + }, + { + "name": "prompt", + "type": "STRING", + "widget": { + "name": "prompt" + }, + "link": 508 + } + ], + "outputs": [ + { + "label": "text_embeds_3", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 125 + ] + }, + { + "label": "model_high_3", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 492 + ] + }, + { + "label": "model_low_3", + "name": "model_1", + "type": "WANVIDEOMODEL", + "links": [ + 493 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "prompt" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.68", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {}, + "version": "7.4.1" + } + }, + "widgets_values": [ + "" + ] + } + ], + "links": [ + [ + 3, + 11, + 0, + 13, + 0, + "IMAGE" + ], + [ + 18, + 17, + 0, + 18, + 0, + "IMAGE" + ], + [ + 22, + 21, + 0, + 22, + 0, + "IMAGE" + ], + [ + 24, + 19, + 2, + 21, + 1, + "WANVIDIMAGE_EMBEDS" + ], + [ + 32, + 23, + 2, + 24, + 1, + "WANVIDIMAGE_EMBEDS" + ], + [ + 35, + 24, + 0, + 26, + 0, + "IMAGE" + ], + [ + 37, + 13, + 0, + 19, + 1, + "INT" + ], + [ + 38, + 13, + 1, + 19, + 2, + "INT" + ], + [ + 72, + 17, + 0, + 33, + 0, + "IMAGE" + ], + [ + 73, + 21, + 0, + 33, + 1, + "IMAGE" + ], + [ + 75, + 33, + 0, + 34, + 0, + "IMAGE" + ], + [ + 100, + 39, + 0, + 21, + 0, + "WANVIDEOTEXTEMBEDS" + ], + [ + 125, + 46, + 0, + 24, + 0, + "WANVIDEOTEXTEMBEDS" + ], + [ + 360, + 13, + 2, + 17, + 1, + "WANVIDIMAGE_EMBEDS" + ], + [ + 389, + 10, + 0, + 13, + 1, + "CLIP_VISION" + ], + [ + 390, + 10, + 0, + 23, + 3, + "CLIP_VISION" + ], + [ + 391, + 10, + 0, + 19, + 3, + "CLIP_VISION" + ], + [ + 392, + 8, + 0, + 13, + 2, + "WANVAE" + ], + [ + 393, + 8, + 0, + 17, + 4, + "WANVAE" + ], + [ + 394, + 8, + 0, + 21, + 4, + "WANVAE" + ], + [ + 395, + 8, + 0, + 19, + 4, + "WANVAE" + ], + [ + 396, + 8, + 0, + 23, + 4, + "WANVAE" + ], + [ + 397, + 8, + 0, + 24, + 4, + "WANVAE" + ], + [ + 398, + 6, + 0, + 27, + 2, + "WANTEXTENCODER" + ], + [ + 399, + 6, + 0, + 39, + 0, + "WANTEXTENCODER" + ], + [ + 400, + 6, + 0, + 46, + 0, + "WANTEXTENCODER" + ], + [ + 401, + 2, + 0, + 27, + 0, + "WANVIDEOMODEL" + ], + [ + 402, + 2, + 1, + 27, + 1, + "WANVIDEOMODEL" + ], + [ + 403, + 2, + 0, + 39, + 1, + "WANVIDEOMODEL" + ], + [ + 404, + 2, + 1, + 39, + 2, + "WANVIDEOMODEL" + ], + [ + 405, + 2, + 0, + 46, + 3, + "WANVIDEOMODEL" + ], + [ + 406, + 2, + 1, + 46, + 4, + "WANVIDEOMODEL" + ], + [ + 407, + 3, + 0, + 27, + 3, + "WANVIDLORA" + ], + [ + 408, + 3, + 0, + 39, + 3, + "WANVIDLORA" + ], + [ + 409, + 3, + 0, + 46, + 1, + "WANVIDLORA" + ], + [ + 410, + 4, + 0, + 27, + 4, + "WANVIDLORA" + ], + [ + 411, + 4, + 0, + 39, + 4, + "WANVIDLORA" + ], + [ + 412, + 4, + 0, + 46, + 2, + "WANVIDLORA" + ], + [ + 413, + 27, + 0, + 17, + 0, + "WANVIDEOTEXTEMBEDS" + ], + [ + 417, + 24, + 0, + 33, + 2, + "IMAGE" + ], + [ + 418, + 51, + 0, + 17, + 5, + "EXPERIMENTALARGS" + ], + [ + 419, + 51, + 0, + 17, + 6, + "EXPERIMENTALARGS" + ], + [ + 428, + 13, + 0, + 23, + 1, + "INT" + ], + [ + 429, + 13, + 1, + 23, + 2, + "INT" + ], + [ + 430, + 13, + 4, + 19, + 7, + "LATENT" + ], + [ + 431, + 13, + 4, + 23, + 7, + "LATENT" + ], + [ + 432, + 13, + 3, + 19, + 6, + "IMAGE" + ], + [ + 433, + 13, + 3, + 23, + 6, + "IMAGE" + ], + [ + 434, + 13, + 4, + 17, + 7, + "LATENT" + ], + [ + 444, + 21, + 0, + 64, + 0, + "IMAGE" + ], + [ + 445, + 24, + 0, + 64, + 1, + "IMAGE" + ], + [ + 446, + 17, + 0, + 19, + 0, + "IMAGE" + ], + [ + 447, + 21, + 0, + 23, + 0, + "IMAGE" + ], + [ + 448, + 64, + 0, + 65, + 0, + "IMAGE" + ], + [ + 465, + 39, + 3, + 46, + 5, + "*" + ], + [ + 466, + 27, + 4, + 39, + 5, + "*" + ], + [ + 478, + 3, + 0, + 2, + 0, + "WANVIDLORA" + ], + [ + 479, + 4, + 0, + 2, + 1, + "WANVIDLORA" + ], + [ + 486, + 17, + 0, + 19, + 8, + "IMAGE" + ], + [ + 487, + 21, + 0, + 23, + 8, + "IMAGE" + ], + [ + 488, + 27, + 1, + 17, + 2, + "WANVIDEOMODEL" + ], + [ + 489, + 27, + 2, + 17, + 3, + "WANVIDEOMODEL" + ], + [ + 490, + 39, + 1, + 21, + 2, + "WANVIDEOMODEL" + ], + [ + 491, + 39, + 2, + 21, + 3, + "WANVIDEOMODEL" + ], + [ + 492, + 46, + 1, + 24, + 2, + "WANVIDEOMODEL" + ], + [ + 493, + 46, + 2, + 24, + 3, + "WANVIDEOMODEL" + ], + [ + 503, + 78, + 0, + 74, + 0, + "STRING" + ], + [ + 504, + 78, + 1, + 75, + 0, + "STRING" + ], + [ + 505, + 78, + 2, + 76, + 0, + "STRING" + ], + [ + 506, + 78, + 0, + 27, + 6, + "STRING" + ], + [ + 507, + 78, + 1, + 39, + 7, + "STRING" + ], + [ + 508, + 78, + 2, + 46, + 7, + "STRING" + ] + ], + "groups": [], + "definitions": { + "subgraphs": [ + { + "id": "27ceba78-b0ec-46e1-977e-1a740f1d5d2b", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 9, + "lastLinkId": 23, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Model Loader", + "inputNode": { + "id": -10, + "bounding": [ + 1071.3141048332388, + 501.93395318037807, + 120, + 79.99999999999994 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2124.6141010185406, + 478.83395318037805, + 120, + 80.00000000000006 + ] + }, + "inputs": [ + { + "id": "908a19e7-04ba-4a91-8e6e-c98589cd1281", + "name": "lora", + "type": "WANVIDLORA", + "linkIds": [ + 22 + ], + "pos": [ + 1171.3141048332388, + 521.933953180378 + ] + }, + { + "id": "bbdd244c-5740-4305-a22e-47fb17a6abf6", + "name": "lora_1", + "type": "WANVIDLORA", + "linkIds": [ + 23 + ], + "pos": [ + 1171.3141048332388, + 541.933953180378 + ] + } + ], + "outputs": [ + { + "id": "99085ec7-5384-4b82-a94d-803e382e1186", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 21 + ], + "label": "model_high", + "pos": [ + 2144.6141010185406, + 498.83395318037805 + ] + }, + { + "id": "46a547f0-07b2-43e2-9eb5-082a92951355", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 20 + ], + "label": "model_low", + "pos": [ + 2144.6141010185406, + 518.8339531803781 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 3, + "type": "WanVideoBlockSwap", + "pos": [ + 1718.2976548332394, + 181.44854318037824 + ], + "size": [ + 281.33333587646484, + 202 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [], + "outputs": [ + { + "localized_name": "block_swap_args", + "name": "block_swap_args", + "type": "BLOCKSWAPARGS", + "links": [ + 3, + 6 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoBlockSwap", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 10, + false, + false, + true, + 0, + 1, + false + ] + }, + { + "id": 2, + "type": "WanVideoTorchCompileSettings", + "pos": [ + 1339.144760762576, + 144.6865664983665 + ], + "size": [ + 342.6666717529297, + 250 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [], + "outputs": [ + { + "localized_name": "torch_compile_args", + "name": "torch_compile_args", + "type": "WANCOMPILEARGS", + "links": [ + 2, + 5 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoTorchCompileSettings", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "inductor", + false, + "max-autotune-no-cudagraphs", + true, + 256, + true, + 512, + true, + false + ] + }, + { + "id": 1, + "type": "WanVideoModelLoader", + "pos": [ + 1410.81410483324, + 436.233953180378 + ], + "size": [ + 270.99999618530273, + 318 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "compile_args", + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": 2 + }, + { + "localized_name": "block_swap_args", + "name": "block_swap_args", + "shape": 7, + "type": "BLOCKSWAPARGS", + "link": 3 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 22 + }, + { + "localized_name": "vram_management_args", + "name": "vram_management_args", + "shape": 7, + "type": "VRAM_MANAGEMENTARGS", + "link": null + }, + { + "localized_name": "extra_model", + "name": "extra_model", + "shape": 7, + "type": "VACEPATH", + "link": null + }, + { + "localized_name": "fantasytalking_model", + "name": "fantasytalking_model", + "shape": 7, + "type": "FANTASYTALKINGMODEL", + "link": null + }, + { + "localized_name": "multitalk_model", + "name": "multitalk_model", + "shape": 7, + "type": "MULTITALKMODEL", + "link": null + }, + { + "localized_name": "fantasyportrait_model", + "name": "fantasyportrait_model", + "shape": 7, + "type": "FANTASYPORTRAITMODEL", + "link": null + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 21 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoModelLoader", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wanh.safetensors", + "fp16", + "disabled", + "main_device", + "comfy", + "default" + ] + }, + { + "id": 4, + "type": "WanVideoModelLoader", + "pos": [ + 1714.9976548332395, + 434.44854318037784 + ], + "size": [ + 270.99999618530273, + 318 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "compile_args", + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": 5 + }, + { + "localized_name": "block_swap_args", + "name": "block_swap_args", + "shape": 7, + "type": "BLOCKSWAPARGS", + "link": 6 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 23 + }, + { + "localized_name": "vram_management_args", + "name": "vram_management_args", + "shape": 7, + "type": "VRAM_MANAGEMENTARGS", + "link": null + }, + { + "localized_name": "extra_model", + "name": "extra_model", + "shape": 7, + "type": "VACEPATH", + "link": null + }, + { + "localized_name": "fantasytalking_model", + "name": "fantasytalking_model", + "shape": 7, + "type": "FANTASYTALKINGMODEL", + "link": null + }, + { + "localized_name": "multitalk_model", + "name": "multitalk_model", + "shape": 7, + "type": "MULTITALKMODEL", + "link": null + }, + { + "localized_name": "fantasyportrait_model", + "name": "fantasyportrait_model", + "shape": 7, + "type": "FANTASYPORTRAITMODEL", + "link": null + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 20 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoModelLoader", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wanl.safetensors", + "fp16", + "disabled", + "main_device", + "comfy", + "default" + ] + } + ], + "groups": [], + "links": [ + { + "id": 2, + "origin_id": 2, + "origin_slot": 0, + "target_id": 1, + "target_slot": 0, + "type": "WANCOMPILEARGS" + }, + { + "id": 3, + "origin_id": 3, + "origin_slot": 0, + "target_id": 1, + "target_slot": 1, + "type": "BLOCKSWAPARGS" + }, + { + "id": 5, + "origin_id": 2, + "origin_slot": 0, + "target_id": 4, + "target_slot": 0, + "type": "WANCOMPILEARGS" + }, + { + "id": 6, + "origin_id": 3, + "origin_slot": 0, + "target_id": 4, + "target_slot": 1, + "type": "BLOCKSWAPARGS" + }, + { + "id": 20, + "origin_id": 4, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "WANVIDEOMODEL" + }, + { + "id": 21, + "origin_id": 1, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 22, + "origin_id": -10, + "origin_slot": 0, + "target_id": 1, + "target_slot": 2, + "type": "WANVIDLORA" + }, + { + "id": 23, + "origin_id": -10, + "origin_slot": 1, + "target_id": 4, + "target_slot": 2, + "type": "WANVIDLORA" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "e23d5ebd-47a8-47df-8e3c-43f5d5f4dc6f", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 5, + "lastLinkId": 3, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Text Encoder Loader", + "inputNode": { + "id": -10, + "bounding": [ + 1414.4576548332386, + 549.9585431803778, + 120, + 40 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 1971.4243204826525, + 549.9585431803778, + 120, + 60 + ] + }, + "inputs": [], + "outputs": [ + { + "id": "2077e712-2b0f-4378-9dc5-c86aa1ecbcd6", + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "linkIds": [ + 3 + ], + "label": "text_encoder", + "pos": [ + 1991.4243204826525, + 569.9585431803778 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 5, + "type": "LoadWanVideoT5TextEncoder", + "pos": [ + 1594.4576548332386, + 519.9585431803778 + ], + "size": [ + 316.96666564941404, + 130 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "wan_t5_model", + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "links": [ + 3 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "LoadWanVideoT5TextEncoder", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "umt5.safetensors", + "fp32", + "main_device", + "disabled" + ] + } + ], + "groups": [], + "links": [ + { + "id": 3, + "origin_id": 5, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANTEXTENCODER" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "2f75f8c8-81ce-4b21-813d-2d883c616125", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 7, + "lastLinkId": 3, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "VAE Loader", + "inputNode": { + "id": -10, + "bounding": [ + 1110.7476548332384, + 329.938543180378, + 120, + 40 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 1620.7476548332384, + 329.938543180378, + 120, + 60 + ] + }, + "inputs": [], + "outputs": [ + { + "id": "2c2e5040-f283-4878-884d-555cabb993ae", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 3 + ], + "pos": [ + 1640.7476548332384, + 349.938543180378 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 7, + "type": "WanVideoVAELoader", + "pos": [ + 1290.7476548332384, + 323.938543180378 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "compile_args", + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "links": [ + 3 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoVAELoader", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2_1_vae.safetensors", + "fp32", + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 3, + "origin_id": 7, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANVAE" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "fc8fe2eb-1dbb-48bc-a783-2e94b752c441", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 9, + "lastLinkId": 3, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "CLIP Vision Loader", + "inputNode": { + "id": -10, + "bounding": [ + 1114.3776548332385, + 265.9085431803781, + 120, + 40 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 1624.3776548332385, + 265.9085431803781, + 120, + 60 + ] + }, + "inputs": [], + "outputs": [ + { + "id": "cd37a807-316c-49dc-8635-ec6891df1312", + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "linkIds": [ + 3 + ], + "pos": [ + 1644.3776548332385, + 285.9085431803781 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 9, + "type": "CLIPVisionLoader", + "pos": [ + 1294.3776548332385, + 271.9085431803781 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "CLIP_VISION", + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [ + 3 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPVisionLoader", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "nsfw_clip_vision.safetensors" + ] + } + ], + "groups": [], + "links": [ + { + "id": 3, + "origin_id": 9, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "CLIP_VISION" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "3797c843-c451-413c-b3a4-2bf8a400ba28", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 23, + "lastLinkId": 82, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Input Image Processing", + "inputNode": { + "id": -10, + "bounding": [ + 1422.9276548332389, + 822.7685431803775, + 120, + 180 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2378.2076548332393, + 788.8885431803775, + 135.0500030517578, + 140 + ] + }, + "inputs": [ + { + "id": "39721886-ae3d-442a-8d83-c802583cb505", + "name": "image", + "type": "IMAGE", + "linkIds": [ + 6 + ], + "pos": [ + 1522.9276548332389, + 842.7685431803775 + ] + }, + { + "id": "2db4cd36-5a5d-4051-abb3-dc19d946b189", + "name": "width", + "type": "INT", + "linkIds": [ + 7, + 50 + ], + "pos": [ + 1522.9276548332389, + 862.7685431803775 + ] + }, + { + "id": "594508e6-933c-43d3-bff2-d21eade0613f", + "name": "height", + "type": "INT", + "linkIds": [ + 8, + 51 + ], + "pos": [ + 1522.9276548332389, + 882.7685431803775 + ] + }, + { + "id": "bf17138c-3670-44cc-ac66-41fbbc07d698", + "name": "clip_vision", + "type": "CLIP_VISION", + "linkIds": [ + 11 + ], + "pos": [ + 1522.9276548332389, + 902.7685431803775 + ] + }, + { + "id": "39ec8261-e16f-4914-868b-acb6fbd42cf1", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 12, + 25, + 47 + ], + "pos": [ + 1522.9276548332389, + 922.7685431803775 + ] + }, + { + "id": "63c948c7-852e-48d4-b258-5bdc4b23a8d7", + "name": "num_frames", + "type": "INT", + "linkIds": [ + 17, + 34, + 52 + ], + "pos": [ + 1522.9276548332389, + 942.7685431803775 + ] + }, + { + "id": "af9976a6-cb73-46ec-ad67-c766435f49f5", + "name": "crop_position", + "type": "COMBO", + "linkIds": [ + 81 + ], + "pos": [ + 1522.9276548332389, + 962.7685431803775 + ] + } + ], + "outputs": [ + { + "id": "b89d7bd6-4d16-4625-ad4c-90bd0890b635", + "name": "width", + "type": "INT", + "linkIds": [ + 4 + ], + "pos": [ + 2398.2076548332393, + 808.8885431803775 + ] + }, + { + "id": "0c5dd3c7-f558-45df-ae7d-edb412b19cd3", + "name": "height", + "type": "INT", + "linkIds": [ + 5 + ], + "pos": [ + 2398.2076548332393, + 828.8885431803775 + ] + }, + { + "id": "e4e7c866-c217-4370-92f4-3401cffa0757", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 82 + ], + "label": "image_embeds_1", + "pos": [ + 2398.2076548332393, + 848.8885431803775 + ] + }, + { + "id": "f012d2a0-b9ef-4c59-bd5a-4bcf51c78236", + "name": "IMAGE", + "type": "IMAGE", + "linkIds": [ + 74 + ], + "label": "reference_image", + "pos": [ + 2398.2076548332393, + 868.8885431803775 + ] + }, + { + "id": "fc614828-2f7e-468a-a631-94ab412f2eb3", + "name": "samples", + "type": "LATENT", + "linkIds": [ + 23 + ], + "pos": [ + 2398.2076548332393, + 888.8885431803775 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 15, + "type": "WanVideoClipVisionEncode", + "pos": [ + 1944.1476548332394, + 402.5885431803783 + ], + "size": [ + 280.96666564941404, + 262 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "clip_vision", + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 11 + }, + { + "localized_name": "image_1", + "name": "image_1", + "type": "IMAGE", + "link": 10 + }, + { + "localized_name": "image_2", + "name": "image_2", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "negative_image", + "name": "negative_image", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_CLIPEMBEDS", + "links": [ + 48 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoClipVisionEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 1, + 1, + "disabled", + "average", + false, + 16, + 0.25 + ] + }, + { + "id": 17, + "type": "WanVideoEncode", + "pos": [ + 1962.8122999566372, + 1180.2532501959518 + ], + "size": [ + 270, + 242 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 25 + }, + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 24 + }, + { + "localized_name": "mask", + "name": "mask", + "shape": 7, + "type": "MASK", + "link": null + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 23 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "d3f33a9f09e774e43500eed1abf7d975997dd1ee", + "Node name for S&R": "WanVideoEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper" + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + 0, + 1 + ] + }, + { + "id": 12, + "type": "ImageResizeKJv2", + "pos": [ + 1602.9276548332389, + 714.7685431803775 + ], + "size": [ + 270, + 286 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 6 + }, + { + "localized_name": "mask", + "name": "mask", + "shape": 7, + "type": "MASK", + "link": null + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 7 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 8 + }, + { + "localized_name": "crop_position", + "name": "crop_position", + "type": "COMBO", + "widget": { + "name": "crop_position" + }, + "link": 81 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 3, + 10, + 18, + 24, + 74, + 78 + ] + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "links": [ + 4, + 35 + ] + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "links": [ + 5, + 36 + ] + }, + { + "localized_name": "mask", + "name": "mask", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-kjnodes", + "ver": "c661baadd9683c0033cd2a6ad90157c6d099a6c2", + "Node name for S&R": "ImageResizeKJv2", + "aux_id": "kijai/ComfyUI-KJNodes", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 512, + 720, + "lanczos", + "crop", + "0, 0, 0", + "center", + 16, + "cpu" + ] + }, + { + "id": 19, + "type": "WanVideoImageToVideoEncode", + "pos": [ + 1935.5472118252135, + 705.6014773163841 + ], + "size": [ + 308.5000061035156, + 434 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "shape": 7, + "type": "WANVAE", + "link": 47 + }, + { + "localized_name": "clip_embeds", + "name": "clip_embeds", + "shape": 7, + "type": "WANVIDIMAGE_CLIPEMBEDS", + "link": 48 + }, + { + "localized_name": "start_image", + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 78 + }, + { + "localized_name": "end_image", + "name": "end_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "control_embeds", + "name": "control_embeds", + "shape": 7, + "type": "WANVIDIMAGE_EMBEDS", + "link": null + }, + { + "localized_name": "temporal_mask", + "name": "temporal_mask", + "shape": 7, + "type": "MASK", + "link": null + }, + { + "localized_name": "extra_latents", + "name": "extra_latents", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "add_cond_latents", + "name": "add_cond_latents", + "shape": 7, + "type": "ADD_COND_LATENTS", + "link": null + }, + { + "localized_name": "empty_frame_pad_image", + "name": "empty_frame_pad_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 50 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 51 + }, + { + "localized_name": "num_frames", + "name": "num_frames", + "type": "INT", + "widget": { + "name": "num_frames" + }, + "link": 52 + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 82 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "44feb24290db02279988a2ce8845ee65e62f3cce", + "Node name for S&R": "WanVideoImageToVideoEncode" + }, + "widgets_values": [ + 512, + 720, + 81, + 0.03, + 1, + 1, + false, + false, + false, + 0 + ] + } + ], + "groups": [], + "links": [ + { + "id": 4, + "origin_id": 12, + "origin_slot": 1, + "target_id": -20, + "target_slot": 0, + "type": "INT" + }, + { + "id": 5, + "origin_id": 12, + "origin_slot": 2, + "target_id": -20, + "target_slot": 1, + "type": "INT" + }, + { + "id": 6, + "origin_id": -10, + "origin_slot": 0, + "target_id": 12, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 7, + "origin_id": -10, + "origin_slot": 1, + "target_id": 12, + "target_slot": 2, + "type": "INT" + }, + { + "id": 8, + "origin_id": -10, + "origin_slot": 2, + "target_id": 12, + "target_slot": 3, + "type": "INT" + }, + { + "id": 10, + "origin_id": 12, + "origin_slot": 0, + "target_id": 15, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 11, + "origin_id": -10, + "origin_slot": 3, + "target_id": 15, + "target_slot": 0, + "type": "CLIP_VISION" + }, + { + "id": 23, + "origin_id": 17, + "origin_slot": 0, + "target_id": -20, + "target_slot": 4, + "type": "LATENT" + }, + { + "id": 24, + "origin_id": 12, + "origin_slot": 0, + "target_id": 17, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 25, + "origin_id": -10, + "origin_slot": 4, + "target_id": 17, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 47, + "origin_id": -10, + "origin_slot": 4, + "target_id": 19, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 48, + "origin_id": 15, + "origin_slot": 0, + "target_id": 19, + "target_slot": 1, + "type": "WANVIDIMAGE_CLIPEMBEDS" + }, + { + "id": 50, + "origin_id": -10, + "origin_slot": 1, + "target_id": 19, + "target_slot": 9, + "type": "INT" + }, + { + "id": 51, + "origin_id": -10, + "origin_slot": 2, + "target_id": 19, + "target_slot": 10, + "type": "INT" + }, + { + "id": 52, + "origin_id": -10, + "origin_slot": 5, + "target_id": 19, + "target_slot": 11, + "type": "INT" + }, + { + "id": 74, + "origin_id": 12, + "origin_slot": 0, + "target_id": -20, + "target_slot": 3, + "type": "IMAGE" + }, + { + "id": 78, + "origin_id": 12, + "origin_slot": 0, + "target_id": 19, + "target_slot": 2, + "type": "IMAGE" + }, + { + "id": 81, + "origin_id": -10, + "origin_slot": 6, + "target_id": 12, + "target_slot": 4, + "type": "COMBO" + }, + { + "id": 82, + "origin_id": 19, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDIMAGE_EMBEDS" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "1f7cf909-f4b2-4a82-b3d5-8e1bde7a687e", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 36, + "lastLinkId": 113, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "First Sampler", + "inputNode": { + "id": -10, + "bounding": [ + 1805.2876548332397, + 593.6885431803782, + 152.66666412353516, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2917.4543189567758, + 517.7785431803774, + 156.8000030517578, + 60 + ] + }, + "inputs": [ + { + "id": "03555a5e-26f8-4c22-be6c-c04fd5730314", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 7, + 97, + 98 + ], + "localized_name": "text_embeds", + "label": "text_embeds_1", + "shape": 7, + "pos": [ + 1937.9543189567748, + 613.6885431803782 + ] + }, + { + "id": "13d993ea-fa10-43a2-ab24-0387043a359b", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 99, + 111 + ], + "label": "image_embeds_1", + "pos": [ + 1937.9543189567748, + 633.6885431803782 + ] + }, + { + "id": "74400b66-02e3-4e05-afac-fc522c50dc3e", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 101 + ], + "label": "model_high_1", + "pos": [ + 1937.9543189567748, + 653.6885431803782 + ] + }, + { + "id": "ba110be6-1231-44bb-9527-116b65d7ae4d", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 102 + ], + "label": "model_low_1", + "pos": [ + 1937.9543189567748, + 673.6885431803782 + ] + }, + { + "id": "0ca5aad8-2770-4b8c-adc6-5bdd325e6945", + "name": "steps", + "type": "INT", + "linkIds": [ + 45, + 87, + 88 + ], + "pos": [ + 1937.9543189567748, + 693.6885431803782 + ] + }, + { + "id": "1083f183-4997-432c-8172-a7f4c2ee9e3f", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 89, + 90 + ], + "pos": [ + 1937.9543189567748, + 713.6885431803782 + ] + }, + { + "id": "ed2443d0-56de-42a8-9f2c-92338421551c", + "name": "shift", + "type": "FLOAT", + "linkIds": [ + 91, + 92 + ], + "pos": [ + 1937.9543189567748, + 733.6885431803782 + ] + }, + { + "id": "4ac865ff-5a94-4a54-bc72-7acda1fa706b", + "name": "sigma", + "type": "FLOAT", + "linkIds": [ + 26 + ], + "pos": [ + 1937.9543189567748, + 753.6885431803782 + ] + }, + { + "id": "27c86e44-31fa-4880-a2d3-968f6ce2d00a", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 28 + ], + "pos": [ + 1937.9543189567748, + 773.6885431803782 + ] + }, + { + "id": "595299b8-9381-48cc-a5d4-2bc32f52ac2b", + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 104 + ], + "pos": [ + 1937.9543189567748, + 793.6885431803782 + ] + }, + { + "id": "681260e7-91eb-4409-ad77-fd4ae9c16f39", + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 105 + ], + "pos": [ + 1937.9543189567748, + 813.6885431803782 + ] + }, + { + "id": "8d079a04-391c-4c58-b02c-68f38a73cbf8", + "name": "extra_latents", + "type": "LATENT", + "linkIds": [], + "pos": [ + 1937.9543189567748, + 833.6885431803782 + ] + }, + { + "id": "ec4ba46e-851c-4f20-84b0-35dba9a9f51d", + "name": "feta_args", + "type": "FETAARGS", + "linkIds": [ + 106, + 107 + ], + "pos": [ + 1937.9543189567748, + 853.6885431803782 + ] + }, + { + "id": "9f8b4fe7-b70f-45b7-9905-bf8009b7789b", + "name": "slg_args", + "type": "SLGARGS", + "linkIds": [ + 108, + 109 + ], + "pos": [ + 1937.9543189567748, + 873.6885431803782 + ] + } + ], + "outputs": [ + { + "id": "6c75445b-3af8-4a18-9976-505cf96d932e", + "name": "images", + "type": "IMAGE", + "linkIds": [ + 29 + ], + "label": "first_sampler_results", + "pos": [ + 2937.4543189567758, + 537.7785431803774 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 19, + "type": "WanVideoDecode", + "pos": [ + 2910.9376548332393, + 304.578543180378 + ], + "size": [ + 270, + 198 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 28 + }, + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 103 + } + ], + "outputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "links": [ + 29 + ] + } + ], + "title": "Decode 1", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoDecode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + "default" + ] + }, + { + "id": 22, + "type": "CreateCFGScheduleFloatList", + "pos": [ + 1689.8013641635544, + 1000.9169895416974 + ], + "size": [ + 298.26666870117185, + 178 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 45 + } + ], + "outputs": [ + { + "localized_name": "float_list", + "name": "float_list", + "type": "FLOAT", + "links": [ + 46 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "e3c2a1431bcb7f0b9fd11a40d732d16ac117578a", + "Node name for S&R": "CreateCFGScheduleFloatList" + }, + "widgets_values": [ + 5, + 5, + 5, + "linear", + 0, + 0.01 + ] + }, + { + "id": 18, + "type": "WanVideoSigmaToStep", + "pos": [ + 1676.418041028482, + 520.6335974345466 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "sigma", + "name": "sigma", + "type": "FLOAT", + "widget": { + "name": "sigma" + }, + "link": 26 + } + ], + "outputs": [ + { + "localized_name": "step", + "name": "step", + "type": "INT", + "links": [ + 93, + 94 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSigmaToStep", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 0.9 + ] + }, + { + "id": 35, + "type": "WanVideoSampler", + "pos": [ + 2039.8581781198502, + 158.401896511617 + ], + "size": [ + 340.4500045776367, + 1154.7428635817307 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 101 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 99 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 97 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 106 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 108 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 104 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 87 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 89 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 91 + }, + { + "localized_name": "end_step", + "name": "end_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "end_step" + }, + "link": 93 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 113 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "1c24ef50f8dd289b3204e8c2453918ffd787d766", + "Node name for S&R": "WanVideoSampler" + }, + "widgets_values": [ + 5, + 1, + 5, + 402110663486119, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + true + ] + }, + { + "id": 36, + "type": "WanVideoSampler", + "pos": [ + 2413.4107713016906, + 152.62546673180512 + ], + "size": [ + 340.4500045776367, + 1154.7428635817307 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 102 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 111 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 98 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": 113 + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 107 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 109 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 105 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 88 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 90 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 92 + }, + { + "localized_name": "start_step", + "name": "start_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "start_step" + }, + "link": 94 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 103 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": null + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "1c24ef50f8dd289b3204e8c2453918ffd787d766", + "Node name for S&R": "WanVideoSampler" + }, + "widgets_values": [ + 5, + 1, + 5, + 76214059997879, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 26, + "origin_id": -10, + "origin_slot": 7, + "target_id": 18, + "target_slot": 0, + "type": "FLOAT" + }, + { + "id": 28, + "origin_id": -10, + "origin_slot": 8, + "target_id": 19, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 29, + "origin_id": 19, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 45, + "origin_id": -10, + "origin_slot": 4, + "target_id": 22, + "target_slot": 0, + "type": "INT" + }, + { + "id": 87, + "origin_id": -10, + "origin_slot": 4, + "target_id": 35, + "target_slot": 17, + "type": "INT" + }, + { + "id": 88, + "origin_id": -10, + "origin_slot": 4, + "target_id": 36, + "target_slot": 17, + "type": "INT" + }, + { + "id": 89, + "origin_id": -10, + "origin_slot": 5, + "target_id": 35, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 90, + "origin_id": -10, + "origin_slot": 5, + "target_id": 36, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 91, + "origin_id": -10, + "origin_slot": 6, + "target_id": 35, + "target_slot": 19, + "type": "FLOAT" + }, + { + "id": 92, + "origin_id": -10, + "origin_slot": 6, + "target_id": 36, + "target_slot": 19, + "type": "FLOAT" + }, + { + "id": 93, + "origin_id": 18, + "origin_slot": 0, + "target_id": 35, + "target_slot": 20, + "type": "INT" + }, + { + "id": 94, + "origin_id": 18, + "origin_slot": 0, + "target_id": 36, + "target_slot": 20, + "type": "INT" + }, + { + "id": 97, + "origin_id": -10, + "origin_slot": 0, + "target_id": 35, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 98, + "origin_id": -10, + "origin_slot": 0, + "target_id": 36, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 99, + "origin_id": -10, + "origin_slot": 1, + "target_id": 35, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 101, + "origin_id": -10, + "origin_slot": 2, + "target_id": 35, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 102, + "origin_id": -10, + "origin_slot": 3, + "target_id": 36, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 103, + "origin_id": 36, + "origin_slot": 0, + "target_id": 19, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 104, + "origin_id": -10, + "origin_slot": 9, + "target_id": 35, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 105, + "origin_id": -10, + "origin_slot": 10, + "target_id": 36, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 106, + "origin_id": -10, + "origin_slot": 12, + "target_id": 35, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 107, + "origin_id": -10, + "origin_slot": 12, + "target_id": 36, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 108, + "origin_id": -10, + "origin_slot": 13, + "target_id": 35, + "target_slot": 8, + "type": "SLGARGS" + }, + { + "id": 109, + "origin_id": -10, + "origin_slot": 13, + "target_id": 36, + "target_slot": 8, + "type": "SLGARGS" + }, + { + "id": 111, + "origin_id": -10, + "origin_slot": 1, + "target_id": 36, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 113, + "origin_id": 35, + "origin_slot": 0, + "target_id": 36, + "target_slot": 3, + "type": "LATENT" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "c498c212-f2a5-4b86-b79a-d5e4deb32166", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 34, + "lastLinkId": 97, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Input Image Processing (2nd)", + "inputNode": { + "id": -10, + "bounding": [ + 1422.9276548332389, + 822.7685431803775, + 135.0500030517578, + 240 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2378.2076548332393, + 788.8885431803775, + 138.31666564941406, + 120 + ] + }, + "inputs": [ + { + "id": "39721886-ae3d-442a-8d83-c802583cb505", + "name": "image", + "type": "IMAGE", + "linkIds": [ + 92, + 94 + ], + "pos": [ + 1537.9776578849967, + 842.7685431803775 + ] + }, + { + "id": "2db4cd36-5a5d-4051-abb3-dc19d946b189", + "name": "width", + "type": "INT", + "linkIds": [ + 54 + ], + "pos": [ + 1537.9776578849967, + 862.7685431803775 + ] + }, + { + "id": "594508e6-933c-43d3-bff2-d21eade0613f", + "name": "height", + "type": "INT", + "linkIds": [ + 55 + ], + "pos": [ + 1537.9776578849967, + 882.7685431803775 + ] + }, + { + "id": "bf17138c-3670-44cc-ac66-41fbbc07d698", + "name": "clip_vision", + "type": "CLIP_VISION", + "linkIds": [ + 11 + ], + "pos": [ + 1537.9776578849967, + 902.7685431803775 + ] + }, + { + "id": "39ec8261-e16f-4914-868b-acb6fbd42cf1", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 53, + 75 + ], + "pos": [ + 1537.9776578849967, + 922.7685431803775 + ] + }, + { + "id": "63c948c7-852e-48d4-b258-5bdc4b23a8d7", + "name": "num_frames", + "type": "INT", + "linkIds": [ + 56 + ], + "pos": [ + 1537.9776578849967, + 942.7685431803775 + ] + }, + { + "id": "1ac603fb-2437-4b77-aa6d-55f7c7fafe2c", + "name": "frame_count", + "type": "INT", + "linkIds": [], + "pos": [ + 1537.9776578849967, + 962.7685431803775 + ] + }, + { + "id": "63461d20-8499-4665-9ad7-040a032aa2ec", + "name": "control_images", + "type": "IMAGE", + "linkIds": [ + 40, + 50, + 67 + ], + "label": "reference_image", + "pos": [ + 1537.9776578849967, + 982.7685431803775 + ] + }, + { + "id": "e8ebad2a-15b6-47ef-8faa-68abce550cfe", + "name": "extra_latents", + "type": "LATENT", + "linkIds": [ + 41 + ], + "pos": [ + 1537.9776578849967, + 1002.7685431803775 + ] + }, + { + "id": "89cf4526-22cc-4d5d-8a87-1c7fcd714048", + "name": "memory_frames", + "type": "IMAGE", + "linkIds": [ + 95 + ], + "pos": [ + 1537.9776578849967, + 1022.7685431803775 + ] + } + ], + "outputs": [ + { + "id": "b89d7bd6-4d16-4625-ad4c-90bd0890b635", + "name": "width", + "type": "INT", + "linkIds": [ + 4 + ], + "pos": [ + 2398.2076548332393, + 808.8885431803775 + ] + }, + { + "id": "0c5dd3c7-f558-45df-ae7d-edb412b19cd3", + "name": "height", + "type": "INT", + "linkIds": [ + 5 + ], + "pos": [ + 2398.2076548332393, + 828.8885431803775 + ] + }, + { + "id": "e4e7c866-c217-4370-92f4-3401cffa0757", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 76 + ], + "label": "image_embeds_2", + "pos": [ + 2398.2076548332393, + 848.8885431803775 + ] + }, + { + "id": "80ef43d6-d5e2-4d14-8640-c391c081a33e", + "name": "CONTINUED", + "type": "IMAGE", + "linkIds": [], + "pos": [ + 2398.2076548332393, + 868.8885431803775 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 30, + "type": "WanVideoEncode", + "pos": [ + 1952.1260603826624, + 1212.2236245623783 + ], + "size": [ + 273.7666702270508, + 242 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 75 + }, + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 97 + }, + { + "localized_name": "mask", + "name": "mask", + "shape": 7, + "type": "MASK", + "link": null + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 78 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "95255c7ffa29d90af6b0597b10d59a7946618b61", + "Node name for S&R": "WanVideoEncode" + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + 0, + 1 + ] + }, + { + "id": 31, + "type": "WanVideoAddStoryMemLatents", + "pos": [ + 2296.0820515084633, + 1036.1990879274101 + ], + "size": [ + 262.0000061035156, + 46 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "embeds", + "name": "embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 77 + }, + { + "localized_name": "memory_latents", + "name": "memory_latents", + "type": "LATENT", + "link": 78 + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 76 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "95255c7ffa29d90af6b0597b10d59a7946618b61", + "Node name for S&R": "WanVideoAddStoryMemLatents" + }, + "widgets_values": [] + }, + { + "id": 15, + "type": "WanVideoClipVisionEncode", + "pos": [ + 1944.1476548332394, + 402.5885431803783 + ], + "size": [ + 280.96666564941404, + 262 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "clip_vision", + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 11 + }, + { + "localized_name": "image_1", + "name": "image_1", + "type": "IMAGE", + "link": 67 + }, + { + "localized_name": "image_2", + "name": "image_2", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "negative_image", + "name": "negative_image", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_CLIPEMBEDS", + "links": [ + 52 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoClipVisionEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 1, + 1, + "disabled", + "concat", + false, + 16, + 0.15 + ] + }, + { + "id": 23, + "type": "WanVideoImageToVideoEncode", + "pos": [ + 1939.2635702688156, + 730.142173231865 + ], + "size": [ + 308.5000061035156, + 434 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "shape": 7, + "type": "WANVAE", + "link": 53 + }, + { + "localized_name": "clip_embeds", + "name": "clip_embeds", + "shape": 7, + "type": "WANVIDIMAGE_CLIPEMBEDS", + "link": 52 + }, + { + "localized_name": "start_image", + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 93 + }, + { + "localized_name": "end_image", + "name": "end_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "control_embeds", + "name": "control_embeds", + "shape": 7, + "type": "WANVIDIMAGE_EMBEDS", + "link": null + }, + { + "localized_name": "temporal_mask", + "name": "temporal_mask", + "shape": 7, + "type": "MASK", + "link": null + }, + { + "localized_name": "extra_latents", + "name": "extra_latents", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "add_cond_latents", + "name": "add_cond_latents", + "shape": 7, + "type": "ADD_COND_LATENTS", + "link": null + }, + { + "localized_name": "empty_frame_pad_image", + "name": "empty_frame_pad_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 54 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 55 + }, + { + "localized_name": "num_frames", + "name": "num_frames", + "type": "INT", + "widget": { + "name": "num_frames" + }, + "link": 56 + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 77 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "44feb24290db02279988a2ce8845ee65e62f3cce", + "Node name for S&R": "WanVideoImageToVideoEncode" + }, + "widgets_values": [ + 1.5, + 1.5, + 81, + 0.03, + 1, + 1, + false, + false, + false, + 0 + ] + }, + { + "id": 33, + "type": "FunPackStoryMemKeyframeExtractor", + "pos": [ + 1543.7567571703735, + 1130.6690553792619 + ], + "size": [ + 360.58331909179685, + 174 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "frames", + "name": "frames", + "type": "IMAGE", + "link": 94 + }, + { + "localized_name": "memory_frames", + "name": "memory_frames", + "shape": 7, + "type": "IMAGE", + "link": 95 + } + ], + "outputs": [ + { + "localized_name": "keyframes", + "name": "keyframes", + "type": "IMAGE", + "links": [] + }, + { + "localized_name": "keyframe_count", + "name": "keyframe_count", + "type": "INT", + "links": null + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "6beaeeef3290e7fcf9f72b8ccd77c4930fdd6668", + "Node name for S&R": "FunPackStoryMemKeyframeExtractor" + }, + "widgets_values": [ + "nsfw_clip_vision.safetensors", + 8, + 0.9, + true, + 3 + ] + }, + { + "id": 34, + "type": "FunPackStoryMemLastFrameExtractor", + "pos": [ + 1588.3771789686366, + 893.5246793918927 + ], + "size": [ + 310.1333374023437, + 82.438182634251 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "localized_name": "frames", + "name": "frames", + "type": "IMAGE", + "link": 92 + } + ], + "outputs": [ + { + "localized_name": "last_frame", + "name": "last_frame", + "type": "IMAGE", + "links": [ + 93 + ] + }, + { + "localized_name": "motion_frames", + "name": "motion_frames", + "type": "IMAGE", + "links": [ + 97 + ] + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "6beaeeef3290e7fcf9f72b8ccd77c4930fdd6668", + "Node name for S&R": "FunPackStoryMemLastFrameExtractor" + }, + "widgets_values": [ + 5 + ] + } + ], + "groups": [], + "links": [ + { + "id": 11, + "origin_id": -10, + "origin_slot": 3, + "target_id": 15, + "target_slot": 0, + "type": "CLIP_VISION" + }, + { + "id": 52, + "origin_id": 15, + "origin_slot": 0, + "target_id": 23, + "target_slot": 1, + "type": "WANVIDIMAGE_CLIPEMBEDS" + }, + { + "id": 53, + "origin_id": -10, + "origin_slot": 4, + "target_id": 23, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 54, + "origin_id": -10, + "origin_slot": 1, + "target_id": 23, + "target_slot": 9, + "type": "INT" + }, + { + "id": 55, + "origin_id": -10, + "origin_slot": 2, + "target_id": 23, + "target_slot": 10, + "type": "INT" + }, + { + "id": 56, + "origin_id": -10, + "origin_slot": 5, + "target_id": 23, + "target_slot": 11, + "type": "INT" + }, + { + "id": 67, + "origin_id": -10, + "origin_slot": 7, + "target_id": 15, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 75, + "origin_id": -10, + "origin_slot": 4, + "target_id": 30, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 76, + "origin_id": 31, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 77, + "origin_id": 23, + "origin_slot": 0, + "target_id": 31, + "target_slot": 0, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 78, + "origin_id": 30, + "origin_slot": 0, + "target_id": 31, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 92, + "origin_id": -10, + "origin_slot": 0, + "target_id": 34, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 93, + "origin_id": 34, + "origin_slot": 0, + "target_id": 23, + "target_slot": 2, + "type": "IMAGE" + }, + { + "id": 94, + "origin_id": -10, + "origin_slot": 0, + "target_id": 33, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 95, + "origin_id": -10, + "origin_slot": 9, + "target_id": 33, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 97, + "origin_id": 34, + "origin_slot": 1, + "target_id": 30, + "target_slot": 1, + "type": "IMAGE" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "11ced874-ea26-4f3b-9f38-b2832afbf879", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 38, + "lastLinkId": 74, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "First Sampler Settings", + "inputNode": { + "id": -10, + "bounding": [ + 1667.468654833238, + 551.5005431803779, + 121.11666870117188, + 180 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2361.8937305789664, + 500.98833635058827, + 134.33333587646484, + 140 + ] + }, + "inputs": [ + { + "id": "471bfea9-04ce-4034-9e34-8f0f57458f3b", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 12 + ], + "label": "model_high", + "pos": [ + 1768.5853235344098, + 571.5005431803779 + ] + }, + { + "id": "82834c07-0e51-41fe-af68-85357f44487d", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 13 + ], + "label": "model_low", + "pos": [ + 1768.5853235344098, + 591.5005431803779 + ] + }, + { + "id": "86266dd6-70db-44c0-ac1b-8cf8b8ae7366", + "name": "t5", + "type": "WANTEXTENCODER", + "linkIds": [ + 17 + ], + "label": "text_encoder", + "pos": [ + 1768.5853235344098, + 611.5005431803779 + ] + }, + { + "id": "0fe1554b-9f58-420a-a2ad-2d61d7fd4cfe", + "name": "prev_lora", + "type": "WANVIDLORA", + "linkIds": [ + 19 + ], + "label": "global_loras_h", + "pos": [ + 1768.5853235344098, + 631.5005431803779 + ] + }, + { + "id": "df9a7eef-1cb4-4a80-8cc3-c5f413c10dde", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "linkIds": [ + 20 + ], + "label": "global_loras_l", + "pos": [ + 1768.5853235344098, + 651.5005431803779 + ] + }, + { + "id": "70a27afa-f504-4315-a664-b62a5d7ebb93", + "name": "qwen", + "type": "QWENMODEL", + "linkIds": [], + "pos": [ + 1768.5853235344098, + 671.5005431803779 + ] + }, + { + "id": "affff3aa-f848-4200-a01a-d6755d1b7d64", + "name": "prompt", + "type": "STRING", + "linkIds": [ + 74 + ], + "pos": [ + 1768.5853235344098, + 691.5005431803779 + ] + } + ], + "outputs": [ + { + "id": "b5e9fe79-c181-4a71-9614-1a51998fdee4", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 16 + ], + "localized_name": "text_embeds", + "label": "text_embeds_1", + "pos": [ + 2381.8937305789664, + 520.9883363505883 + ] + }, + { + "id": "de4bf3d1-ea64-4bec-808e-6f9c98d596fc", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 14 + ], + "label": "model_high_1", + "pos": [ + 2381.8937305789664, + 540.9883363505883 + ] + }, + { + "id": "2d83ee90-a1ae-43a1-bc21-f38bca374163", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 15 + ], + "label": "model_low_1", + "pos": [ + 2381.8937305789664, + 560.9883363505883 + ] + }, + { + "id": "64da2556-7669-4ed9-951e-a6707f23df15", + "name": "text_embeds_1", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 31 + ], + "label": "text_embeds_h_1", + "pos": [ + 2381.8937305789664, + 580.9883363505883 + ] + }, + { + "id": "09bc671a-6163-44c3-bf06-965f8a9ba745", + "name": "STRING", + "type": "STRING", + "linkIds": [], + "label": "qwen_history", + "pos": [ + 2381.8937305789664, + 600.9883363505883 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 18, + "type": "WanVideoSetLoRAs", + "pos": [ + 1896.1191475953115, + 1192.0482609053868 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 12 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 10 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 14 + ] + } + ], + "title": "Model H 1", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 19, + "type": "WanVideoSetLoRAs", + "pos": [ + 2164.6021093234176, + 1187.554822215377 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 13 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 11 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 15 + ] + } + ], + "title": "Model L 1", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 20, + "type": "WanVideoTextEncode", + "pos": [ + 1898.5967322194224, + 460.12081936003693 + ], + "size": [ + 400, + 234 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "t5", + "name": "t5", + "shape": 7, + "type": "WANTEXTENCODER", + "link": 17 + }, + { + "localized_name": "model_to_offload", + "name": "model_to_offload", + "shape": 7, + "type": "WANVIDEOMODEL", + "link": null + }, + { + "localized_name": "positive_prompt", + "name": "positive_prompt", + "type": "STRING", + "widget": { + "name": "positive_prompt" + }, + "link": 74 + } + ], + "outputs": [ + { + "localized_name": "text_embeds", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 16, + 31 + ] + } + ], + "title": "1st Sampler Text Encode", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoTextEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": { + "positive_prompt": true + } + } + }, + "widgets_values": [ + "", + "", + true, + false, + "gpu" + ] + }, + { + "id": 16, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 1828.717567245158, + 793.2555771669853 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 19 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 10 + ] + } + ], + "title": "1st Sampler LoRAs High", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "none", + 0.35, + "storymem_h.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + }, + { + "id": 17, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 2120.791082095819, + 793.2555771669853 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 20 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 11 + ] + } + ], + "title": "1st Sampler LoRAs Low", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "none", + 0.35, + "storymem_l.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 10, + "origin_id": 16, + "origin_slot": 0, + "target_id": 18, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 11, + "origin_id": 17, + "origin_slot": 0, + "target_id": 19, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 12, + "origin_id": -10, + "origin_slot": 0, + "target_id": 18, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 13, + "origin_id": -10, + "origin_slot": 1, + "target_id": 19, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 14, + "origin_id": 18, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "WANVIDEOMODEL" + }, + { + "id": 15, + "origin_id": 19, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDEOMODEL" + }, + { + "id": 16, + "origin_id": 20, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 17, + "origin_id": -10, + "origin_slot": 2, + "target_id": 20, + "target_slot": 0, + "type": "WANTEXTENCODER" + }, + { + "id": 19, + "origin_id": -10, + "origin_slot": 3, + "target_id": 16, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 20, + "origin_id": -10, + "origin_slot": 4, + "target_id": 17, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 31, + "origin_id": 20, + "origin_slot": 0, + "target_id": -20, + "target_slot": 3, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 74, + "origin_id": -10, + "origin_slot": 6, + "target_id": 20, + "target_slot": 2, + "type": "STRING" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "f8a1a675-ee93-411d-8a3c-9ea2a87d0a58", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 20, + "lastLinkId": 41, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Second Sampler", + "inputNode": { + "id": -10, + "bounding": [ + 1805.2876548332397, + 593.6885431803782, + 152.66666412353516, + 300 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2917.4543189567758, + 517.7785431803774, + 176.5, + 60 + ] + }, + "inputs": [ + { + "id": "03555a5e-26f8-4c22-be6c-c04fd5730314", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 7, + 15 + ], + "localized_name": "text_embeds", + "label": "text_embeds_2", + "shape": 7, + "pos": [ + 1937.9543189567748, + 613.6885431803782 + ] + }, + { + "id": "13d993ea-fa10-43a2-ab24-0387043a359b", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 10, + 14 + ], + "label": "image_embeds_2", + "pos": [ + 1937.9543189567748, + 633.6885431803782 + ] + }, + { + "id": "74400b66-02e3-4e05-afac-fc522c50dc3e", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 12 + ], + "label": "model_high_2", + "pos": [ + 1937.9543189567748, + 653.6885431803782 + ] + }, + { + "id": "ba110be6-1231-44bb-9527-116b65d7ae4d", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 13 + ], + "label": "model_low_2", + "pos": [ + 1937.9543189567748, + 673.6885431803782 + ] + }, + { + "id": "0ca5aad8-2770-4b8c-adc6-5bdd325e6945", + "name": "steps", + "type": "INT", + "linkIds": [ + 16, + 17 + ], + "pos": [ + 1937.9543189567748, + 693.6885431803782 + ] + }, + { + "id": "1083f183-4997-432c-8172-a7f4c2ee9e3f", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 19 + ], + "pos": [ + 1937.9543189567748, + 713.6885431803782 + ] + }, + { + "id": "ed2443d0-56de-42a8-9f2c-92338421551c", + "name": "shift", + "type": "FLOAT", + "linkIds": [ + 20, + 21 + ], + "pos": [ + 1937.9543189567748, + 733.6885431803782 + ] + }, + { + "id": "4ac865ff-5a94-4a54-bc72-7acda1fa706b", + "name": "sigma", + "type": "FLOAT", + "linkIds": [ + 26 + ], + "pos": [ + 1937.9543189567748, + 753.6885431803782 + ] + }, + { + "id": "27c86e44-31fa-4880-a2d3-968f6ce2d00a", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 28 + ], + "pos": [ + 1937.9543189567748, + 773.6885431803782 + ] + }, + { + "id": "16ca6036-fb6b-4513-85c4-4e16a5acfa7b", + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 31 + ], + "pos": [ + 1937.9543189567748, + 793.6885431803782 + ] + }, + { + "id": "37a73e06-f886-4038-9c7e-5921ecf72a32", + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 32 + ], + "pos": [ + 1937.9543189567748, + 813.6885431803782 + ] + }, + { + "id": "4369b3f6-b03a-4457-9dc4-927bcc204398", + "name": "feta_args", + "type": "FETAARGS", + "linkIds": [ + 36, + 37 + ], + "pos": [ + 1937.9543189567748, + 833.6885431803782 + ] + }, + { + "id": "5c5c0b35-e6e5-44be-bc82-dadbf60ed63d", + "name": "slg_args", + "type": "SLGARGS", + "linkIds": [ + 38, + 39 + ], + "pos": [ + 1937.9543189567748, + 853.6885431803782 + ] + } + ], + "outputs": [ + { + "id": "6c75445b-3af8-4a18-9976-505cf96d932e", + "name": "images", + "type": "IMAGE", + "linkIds": [ + 29 + ], + "label": "second_sampler_results", + "pos": [ + 2937.4543189567758, + 537.7785431803774 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 18, + "type": "WanVideoSigmaToStep", + "pos": [ + 1913.8976548332391, + 921.6785431803784 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "sigma", + "name": "sigma", + "type": "FLOAT", + "widget": { + "name": "sigma" + }, + "link": 26 + } + ], + "outputs": [ + { + "localized_name": "step", + "name": "step", + "type": "INT", + "links": [ + 24, + 25 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSigmaToStep", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 0.9 + ] + }, + { + "id": 19, + "type": "WanVideoDecode", + "pos": [ + 2910.9376548332393, + 304.578543180378 + ], + "size": [ + 270, + 198 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 28 + }, + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 27 + } + ], + "outputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "links": [ + 29 + ] + } + ], + "title": "Decode 2", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoDecode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + "default" + ] + }, + { + "id": 14, + "type": "WanVideoSampler", + "pos": [ + 2205.50765483324, + 298.52854318037816 + ], + "size": [ + 327.66666412353516, + 1136.7619011847528 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 12 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 10 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 7 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 36 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 38 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 31 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 16 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 20 + }, + { + "localized_name": "end_step", + "name": "end_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "end_step" + }, + "link": 24 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 11 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": null + } + ], + "title": "Sampler 2 H", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSampler", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 5, + 1, + 5, + 736643172496809, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + false + ] + }, + { + "id": 17, + "type": "WanVideoSampler", + "pos": [ + 2560.0376548332397, + 298.528543180378 + ], + "size": [ + 327.66666412353516, + 1136.7619011847528 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 13 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 14 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 15 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": 11 + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 37 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 39 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 32 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 17 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 19 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 21 + }, + { + "localized_name": "start_step", + "name": "start_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "start_step" + }, + "link": 25 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 27 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": null + } + ], + "title": "Sampler 2 L", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSampler", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": { + "steps": true, + "cfg": true, + "shift": true + } + } + }, + "widgets_values": [ + 5, + 1, + 5, + 45104975056808, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 7, + "origin_id": -10, + "origin_slot": 0, + "target_id": 14, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 10, + "origin_id": -10, + "origin_slot": 1, + "target_id": 14, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 11, + "origin_id": 14, + "origin_slot": 0, + "target_id": 17, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 12, + "origin_id": -10, + "origin_slot": 2, + "target_id": 14, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 13, + "origin_id": -10, + "origin_slot": 3, + "target_id": 17, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 14, + "origin_id": -10, + "origin_slot": 1, + "target_id": 17, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 15, + "origin_id": -10, + "origin_slot": 0, + "target_id": 17, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 16, + "origin_id": -10, + "origin_slot": 4, + "target_id": 14, + "target_slot": 17, + "type": "INT" + }, + { + "id": 17, + "origin_id": -10, + "origin_slot": 4, + "target_id": 17, + "target_slot": 17, + "type": "INT" + }, + { + "id": 19, + "origin_id": -10, + "origin_slot": 5, + "target_id": 17, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 20, + "origin_id": -10, + "origin_slot": 6, + "target_id": 14, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 21, + "origin_id": -10, + "origin_slot": 6, + "target_id": 17, + "target_slot": 19, + "type": "FLOAT" + }, + { + "id": 24, + "origin_id": 18, + "origin_slot": 0, + "target_id": 14, + "target_slot": 19, + "type": "INT" + }, + { + "id": 25, + "origin_id": 18, + "origin_slot": 0, + "target_id": 17, + "target_slot": 20, + "type": "INT" + }, + { + "id": 26, + "origin_id": -10, + "origin_slot": 7, + "target_id": 18, + "target_slot": 0, + "type": "FLOAT" + }, + { + "id": 27, + "origin_id": 17, + "origin_slot": 0, + "target_id": 19, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 28, + "origin_id": -10, + "origin_slot": 8, + "target_id": 19, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 29, + "origin_id": 19, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 31, + "origin_id": -10, + "origin_slot": 9, + "target_id": 14, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 32, + "origin_id": -10, + "origin_slot": 10, + "target_id": 17, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 36, + "origin_id": -10, + "origin_slot": 11, + "target_id": 14, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 37, + "origin_id": -10, + "origin_slot": 11, + "target_id": 17, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 38, + "origin_id": -10, + "origin_slot": 12, + "target_id": 14, + "target_slot": 8, + "type": "SLGARGS" + }, + { + "id": 39, + "origin_id": -10, + "origin_slot": 12, + "target_id": 17, + "target_slot": 8, + "type": "SLGARGS" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "0d5ea664-7ebe-4da9-b561-a899d31bb5d8", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 30, + "lastLinkId": 87, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Input Image Processing (3rd)", + "inputNode": { + "id": -10, + "bounding": [ + 1422.9276548332389, + 822.7685431803775, + 135.0500030517578, + 240 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2378.2076548332393, + 788.8885431803775, + 137.88333129882812, + 120 + ] + }, + "inputs": [ + { + "id": "39721886-ae3d-442a-8d83-c802583cb505", + "name": "image", + "type": "IMAGE", + "linkIds": [ + 80, + 82 + ], + "pos": [ + 1537.9776578849967, + 842.7685431803775 + ] + }, + { + "id": "2db4cd36-5a5d-4051-abb3-dc19d946b189", + "name": "width", + "type": "INT", + "linkIds": [ + 53 + ], + "pos": [ + 1537.9776578849967, + 862.7685431803775 + ] + }, + { + "id": "594508e6-933c-43d3-bff2-d21eade0613f", + "name": "height", + "type": "INT", + "linkIds": [ + 54 + ], + "pos": [ + 1537.9776578849967, + 882.7685431803775 + ] + }, + { + "id": "bf17138c-3670-44cc-ac66-41fbbc07d698", + "name": "clip_vision", + "type": "CLIP_VISION", + "linkIds": [ + 11 + ], + "pos": [ + 1537.9776578849967, + 902.7685431803775 + ] + }, + { + "id": "39ec8261-e16f-4914-868b-acb6fbd42cf1", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 50, + 68 + ], + "pos": [ + 1537.9776578849967, + 922.7685431803775 + ] + }, + { + "id": "63c948c7-852e-48d4-b258-5bdc4b23a8d7", + "name": "num_frames", + "type": "INT", + "linkIds": [ + 55 + ], + "pos": [ + 1537.9776578849967, + 942.7685431803775 + ] + }, + { + "id": "1ac603fb-2437-4b77-aa6d-55f7c7fafe2c", + "name": "frame_count", + "type": "INT", + "linkIds": [], + "pos": [ + 1537.9776578849967, + 962.7685431803775 + ] + }, + { + "id": "a4b5fc06-d47b-4559-b8a8-ee78102e3501", + "name": "control_images", + "type": "IMAGE", + "linkIds": [ + 39, + 49, + 60 + ], + "label": "reference_image", + "pos": [ + 1537.9776578849967, + 982.7685431803775 + ] + }, + { + "id": "6d169e89-7c46-4f11-8d7f-6980aa589459", + "name": "extra_latents", + "type": "LATENT", + "linkIds": [ + 40 + ], + "pos": [ + 1537.9776578849967, + 1002.7685431803775 + ] + }, + { + "id": "797a83b1-0d4b-4fdf-9fee-566f546c8db2", + "name": "image_2", + "type": "IMAGE", + "linkIds": [ + 85 + ], + "pos": [ + 1537.9776578849967, + 1022.7685431803775 + ] + } + ], + "outputs": [ + { + "id": "b89d7bd6-4d16-4625-ad4c-90bd0890b635", + "name": "width", + "type": "INT", + "linkIds": [ + 4 + ], + "pos": [ + 2398.2076548332393, + 808.8885431803775 + ] + }, + { + "id": "0c5dd3c7-f558-45df-ae7d-edb412b19cd3", + "name": "height", + "type": "INT", + "linkIds": [ + 5 + ], + "pos": [ + 2398.2076548332393, + 828.8885431803775 + ] + }, + { + "id": "e4e7c866-c217-4370-92f4-3401cffa0757", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 71 + ], + "label": "image_embeds_3", + "pos": [ + 2398.2076548332393, + 848.8885431803775 + ] + }, + { + "id": "f85e201e-40b7-455a-a376-c1e43c1403ec", + "name": "CONTINUED", + "type": "IMAGE", + "linkIds": [], + "pos": [ + 2398.2076548332393, + 868.8885431803775 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 15, + "type": "WanVideoClipVisionEncode", + "pos": [ + 1944.1476548332394, + 402.5885431803783 + ], + "size": [ + 280.96666564941404, + 262 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "clip_vision", + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 11 + }, + { + "localized_name": "image_1", + "name": "image_1", + "type": "IMAGE", + "link": 60 + }, + { + "localized_name": "image_2", + "name": "image_2", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "negative_image", + "name": "negative_image", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_CLIPEMBEDS", + "links": [ + 51 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoClipVisionEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + }, + "rejects_ue_links": true + }, + "widgets_values": [ + 1, + 1, + "disabled", + "concat", + false, + 16, + 0.15 + ] + }, + { + "id": 26, + "type": "WanVideoEncode", + "pos": [ + 1927.140646370735, + 1199.0942917197474 + ], + "size": [ + 273.7666702270508, + 242 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 68 + }, + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 87 + }, + { + "localized_name": "mask", + "name": "mask", + "shape": 7, + "type": "MASK", + "link": null + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 70 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "95255c7ffa29d90af6b0597b10d59a7946618b61", + "Node name for S&R": "WanVideoEncode" + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + 0, + 1 + ] + }, + { + "id": 27, + "type": "WanVideoAddStoryMemLatents", + "pos": [ + 2275.817602080614, + 979.2322268040388 + ], + "size": [ + 262.0000061035156, + 46 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "embeds", + "name": "embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 69 + }, + { + "localized_name": "memory_latents", + "name": "memory_latents", + "type": "LATENT", + "link": 70 + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 71 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "95255c7ffa29d90af6b0597b10d59a7946618b61", + "Node name for S&R": "WanVideoAddStoryMemLatents" + }, + "widgets_values": [] + }, + { + "id": 23, + "type": "WanVideoImageToVideoEncode", + "pos": [ + 1921.7958935011388, + 720.5014886078465 + ], + "size": [ + 308.5000061035156, + 434 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "shape": 7, + "type": "WANVAE", + "link": 50 + }, + { + "localized_name": "clip_embeds", + "name": "clip_embeds", + "shape": 7, + "type": "WANVIDIMAGE_CLIPEMBEDS", + "link": 51 + }, + { + "localized_name": "start_image", + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 83 + }, + { + "localized_name": "end_image", + "name": "end_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "control_embeds", + "name": "control_embeds", + "shape": 7, + "type": "WANVIDIMAGE_EMBEDS", + "link": null + }, + { + "localized_name": "temporal_mask", + "name": "temporal_mask", + "shape": 7, + "type": "MASK", + "link": null + }, + { + "localized_name": "extra_latents", + "name": "extra_latents", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "add_cond_latents", + "name": "add_cond_latents", + "shape": 7, + "type": "ADD_COND_LATENTS", + "link": null + }, + { + "localized_name": "empty_frame_pad_image", + "name": "empty_frame_pad_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 53 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 54 + }, + { + "localized_name": "num_frames", + "name": "num_frames", + "type": "INT", + "widget": { + "name": "num_frames" + }, + "link": 55 + } + ], + "outputs": [ + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "links": [ + 69 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "44feb24290db02279988a2ce8845ee65e62f3cce", + "Node name for S&R": "WanVideoImageToVideoEncode" + }, + "widgets_values": [ + 1.5, + 1.5, + 81, + 0.03, + 1, + 1, + false, + false, + false, + 0 + ] + }, + { + "id": 29, + "type": "FunPackStoryMemKeyframeExtractor", + "pos": [ + 1534.7448678326007, + 1158.6212920241023 + ], + "size": [ + 360.58331909179685, + 174 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "frames", + "name": "frames", + "type": "IMAGE", + "link": 80 + }, + { + "localized_name": "memory_frames", + "name": "memory_frames", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "localized_name": "keyframes", + "name": "keyframes", + "type": "IMAGE", + "links": [] + }, + { + "localized_name": "keyframe_count", + "name": "keyframe_count", + "type": "INT", + "links": null + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "6beaeeef3290e7fcf9f72b8ccd77c4930fdd6668", + "Node name for S&R": "FunPackStoryMemKeyframeExtractor" + }, + "widgets_values": [ + "nsfw_clip_vision.safetensors", + 8, + 0.9, + true, + 3 + ] + }, + { + "id": 30, + "type": "FunPackStoryMemLastFrameExtractor", + "pos": [ + 1582.4278217543063, + 859.0745302082616 + ], + "size": [ + 310.1333374023437, + 82.438182634251 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "localized_name": "frames", + "name": "frames", + "type": "IMAGE", + "link": 82 + } + ], + "outputs": [ + { + "localized_name": "last_frame", + "name": "last_frame", + "type": "IMAGE", + "links": [ + 83 + ] + }, + { + "localized_name": "motion_frames", + "name": "motion_frames", + "type": "IMAGE", + "links": [ + 87 + ] + } + ], + "properties": { + "aux_id": "olivv-cs/ComfyUI-FunPack", + "ver": "6beaeeef3290e7fcf9f72b8ccd77c4930fdd6668", + "Node name for S&R": "FunPackStoryMemLastFrameExtractor" + }, + "widgets_values": [ + 5 + ] + } + ], + "groups": [], + "links": [ + { + "id": 11, + "origin_id": -10, + "origin_slot": 3, + "target_id": 15, + "target_slot": 0, + "type": "CLIP_VISION" + }, + { + "id": 50, + "origin_id": -10, + "origin_slot": 4, + "target_id": 23, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 51, + "origin_id": 15, + "origin_slot": 0, + "target_id": 23, + "target_slot": 1, + "type": "WANVIDIMAGE_CLIPEMBEDS" + }, + { + "id": 53, + "origin_id": -10, + "origin_slot": 1, + "target_id": 23, + "target_slot": 9, + "type": "INT" + }, + { + "id": 54, + "origin_id": -10, + "origin_slot": 2, + "target_id": 23, + "target_slot": 10, + "type": "INT" + }, + { + "id": 55, + "origin_id": -10, + "origin_slot": 5, + "target_id": 23, + "target_slot": 11, + "type": "INT" + }, + { + "id": 60, + "origin_id": -10, + "origin_slot": 7, + "target_id": 15, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 68, + "origin_id": -10, + "origin_slot": 4, + "target_id": 26, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 69, + "origin_id": 23, + "origin_slot": 0, + "target_id": 27, + "target_slot": 0, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 70, + "origin_id": 26, + "origin_slot": 0, + "target_id": 27, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 71, + "origin_id": 27, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 80, + "origin_id": -10, + "origin_slot": 0, + "target_id": 29, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 82, + "origin_id": -10, + "origin_slot": 0, + "target_id": 30, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 83, + "origin_id": 30, + "origin_slot": 0, + "target_id": 23, + "target_slot": 2, + "type": "IMAGE" + }, + { + "id": 85, + "origin_id": -10, + "origin_slot": 9, + "target_id": 29, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 87, + "origin_id": 30, + "origin_slot": 1, + "target_id": 26, + "target_slot": 1, + "type": "IMAGE" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "72c19279-7025-4a9a-bf8e-0e890c70044f", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 20, + "lastLinkId": 41, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Third Sampler", + "inputNode": { + "id": -10, + "bounding": [ + 1805.2876548332397, + 593.6885431803782, + 152.66666412353516, + 300 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2917.4543189567758, + 517.7785431803774, + 160.28333282470703, + 60 + ] + }, + "inputs": [ + { + "id": "03555a5e-26f8-4c22-be6c-c04fd5730314", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 7, + 15 + ], + "localized_name": "text_embeds", + "label": "text_embeds_3", + "shape": 7, + "pos": [ + 1937.9543189567748, + 613.6885431803782 + ] + }, + { + "id": "13d993ea-fa10-43a2-ab24-0387043a359b", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "linkIds": [ + 10, + 14 + ], + "label": "image_embeds_3", + "pos": [ + 1937.9543189567748, + 633.6885431803782 + ] + }, + { + "id": "74400b66-02e3-4e05-afac-fc522c50dc3e", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 12 + ], + "label": "model_high_3", + "pos": [ + 1937.9543189567748, + 653.6885431803782 + ] + }, + { + "id": "ba110be6-1231-44bb-9527-116b65d7ae4d", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 13 + ], + "label": "model_low_3", + "pos": [ + 1937.9543189567748, + 673.6885431803782 + ] + }, + { + "id": "0ca5aad8-2770-4b8c-adc6-5bdd325e6945", + "name": "steps", + "type": "INT", + "linkIds": [ + 16, + 17 + ], + "pos": [ + 1937.9543189567748, + 693.6885431803782 + ] + }, + { + "id": "1083f183-4997-432c-8172-a7f4c2ee9e3f", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 19 + ], + "pos": [ + 1937.9543189567748, + 713.6885431803782 + ] + }, + { + "id": "ed2443d0-56de-42a8-9f2c-92338421551c", + "name": "shift", + "type": "FLOAT", + "linkIds": [ + 20, + 21 + ], + "pos": [ + 1937.9543189567748, + 733.6885431803782 + ] + }, + { + "id": "4ac865ff-5a94-4a54-bc72-7acda1fa706b", + "name": "sigma", + "type": "FLOAT", + "linkIds": [ + 26 + ], + "pos": [ + 1937.9543189567748, + 753.6885431803782 + ] + }, + { + "id": "27c86e44-31fa-4880-a2d3-968f6ce2d00a", + "name": "vae", + "type": "WANVAE", + "linkIds": [ + 28 + ], + "pos": [ + 1937.9543189567748, + 773.6885431803782 + ] + }, + { + "id": "a9119b00-fd81-436b-bfcc-e911b1683c19", + "name": "experimental_args", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 31 + ], + "pos": [ + 1937.9543189567748, + 793.6885431803782 + ] + }, + { + "id": "29c92312-7739-421a-9b44-1f32f3c3f243", + "name": "experimental_args_1", + "type": "EXPERIMENTALARGS", + "linkIds": [ + 32 + ], + "pos": [ + 1937.9543189567748, + 813.6885431803782 + ] + }, + { + "id": "f98e0a7e-59a3-47f0-bd5f-bbb3797a5d1c", + "name": "feta_args", + "type": "FETAARGS", + "linkIds": [ + 36, + 37 + ], + "pos": [ + 1937.9543189567748, + 833.6885431803782 + ] + }, + { + "id": "6e0f73cf-c572-4dd2-831a-b7227c221325", + "name": "slg_args", + "type": "SLGARGS", + "linkIds": [ + 38, + 39 + ], + "pos": [ + 1937.9543189567748, + 853.6885431803782 + ] + } + ], + "outputs": [ + { + "id": "6c75445b-3af8-4a18-9976-505cf96d932e", + "name": "images", + "type": "IMAGE", + "linkIds": [ + 29 + ], + "label": "third_sampler_results", + "pos": [ + 2937.4543189567758, + 537.7785431803774 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 18, + "type": "WanVideoSigmaToStep", + "pos": [ + 1913.8976548332391, + 921.6785431803784 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "sigma", + "name": "sigma", + "type": "FLOAT", + "widget": { + "name": "sigma" + }, + "link": 26 + } + ], + "outputs": [ + { + "localized_name": "step", + "name": "step", + "type": "INT", + "links": [ + 24, + 25 + ] + } + ], + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSigmaToStep", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 0.9 + ] + }, + { + "id": 19, + "type": "WanVideoDecode", + "pos": [ + 2910.9376548332393, + 304.578543180378 + ], + "size": [ + 270, + 198 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "WANVAE", + "link": 28 + }, + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 27 + } + ], + "outputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "links": [ + 29 + ] + } + ], + "title": "Decode 3", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoDecode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + "default" + ] + }, + { + "id": 17, + "type": "WanVideoSampler", + "pos": [ + 2560.0376548332397, + 298.528543180378 + ], + "size": [ + 327.66666412353516, + 1136.7619011847528 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 13 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 14 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 15 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": 11 + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 37 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 38 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 32 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 17 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 19 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 21 + }, + { + "localized_name": "start_step", + "name": "start_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "start_step" + }, + "link": 25 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 27 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": null + } + ], + "title": "Sampler 3 L", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSampler", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": { + "steps": true, + "cfg": true, + "shift": true + } + } + }, + "widgets_values": [ + 5, + 1, + 5, + 69400118448639, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + false + ] + }, + { + "id": 14, + "type": "WanVideoSampler", + "pos": [ + 2205.50765483324, + 298.52854318037816 + ], + "size": [ + 327.66666412353516, + 1136.7619011847528 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 12 + }, + { + "localized_name": "image_embeds", + "name": "image_embeds", + "type": "WANVIDIMAGE_EMBEDS", + "link": 10 + }, + { + "localized_name": "text_embeds", + "name": "text_embeds", + "shape": 7, + "type": "WANVIDEOTEXTEMBEDS", + "link": 7 + }, + { + "localized_name": "samples", + "name": "samples", + "shape": 7, + "type": "LATENT", + "link": null + }, + { + "localized_name": "feta_args", + "name": "feta_args", + "shape": 7, + "type": "FETAARGS", + "link": 36 + }, + { + "localized_name": "context_options", + "name": "context_options", + "shape": 7, + "type": "WANVIDCONTEXT", + "link": null + }, + { + "localized_name": "cache_args", + "name": "cache_args", + "shape": 7, + "type": "CACHEARGS", + "link": null + }, + { + "localized_name": "flowedit_args", + "name": "flowedit_args", + "shape": 7, + "type": "FLOWEDITARGS", + "link": null + }, + { + "localized_name": "slg_args", + "name": "slg_args", + "shape": 7, + "type": "SLGARGS", + "link": 39 + }, + { + "localized_name": "loop_args", + "name": "loop_args", + "shape": 7, + "type": "LOOPARGS", + "link": null + }, + { + "localized_name": "experimental_args", + "name": "experimental_args", + "shape": 7, + "type": "EXPERIMENTALARGS", + "link": 31 + }, + { + "localized_name": "sigmas", + "name": "sigmas", + "shape": 7, + "type": "SIGMAS", + "link": null + }, + { + "localized_name": "unianimate_poses", + "name": "unianimate_poses", + "shape": 7, + "type": "UNIANIMATE_POSE", + "link": null + }, + { + "localized_name": "fantasytalking_embeds", + "name": "fantasytalking_embeds", + "shape": 7, + "type": "FANTASYTALKING_EMBEDS", + "link": null + }, + { + "localized_name": "uni3c_embeds", + "name": "uni3c_embeds", + "shape": 7, + "type": "UNI3C_EMBEDS", + "link": null + }, + { + "localized_name": "multitalk_embeds", + "name": "multitalk_embeds", + "shape": 7, + "type": "MULTITALK_EMBEDS", + "link": null + }, + { + "localized_name": "freeinit_args", + "name": "freeinit_args", + "shape": 7, + "type": "FREEINITARGS", + "link": null + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 16 + }, + { + "localized_name": "shift", + "name": "shift", + "type": "FLOAT", + "widget": { + "name": "shift" + }, + "link": 20 + }, + { + "localized_name": "end_step", + "name": "end_step", + "shape": 7, + "type": "INT", + "widget": { + "name": "end_step" + }, + "link": 24 + } + ], + "outputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "links": [ + 11 + ] + }, + { + "localized_name": "denoised_samples", + "name": "denoised_samples", + "type": "LATENT", + "links": null + } + ], + "title": "Sampler 3 H", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSampler", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 5, + 1, + 5, + 309875920199946, + "randomize", + false, + "er_sde", + 0, + 1, + false, + "comfy", + 0, + -1, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 7, + "origin_id": -10, + "origin_slot": 0, + "target_id": 14, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 10, + "origin_id": -10, + "origin_slot": 1, + "target_id": 14, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 11, + "origin_id": 14, + "origin_slot": 0, + "target_id": 17, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 12, + "origin_id": -10, + "origin_slot": 2, + "target_id": 14, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 13, + "origin_id": -10, + "origin_slot": 3, + "target_id": 17, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 14, + "origin_id": -10, + "origin_slot": 1, + "target_id": 17, + "target_slot": 1, + "type": "WANVIDIMAGE_EMBEDS" + }, + { + "id": 15, + "origin_id": -10, + "origin_slot": 0, + "target_id": 17, + "target_slot": 2, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 16, + "origin_id": -10, + "origin_slot": 4, + "target_id": 14, + "target_slot": 17, + "type": "INT" + }, + { + "id": 17, + "origin_id": -10, + "origin_slot": 4, + "target_id": 17, + "target_slot": 17, + "type": "INT" + }, + { + "id": 19, + "origin_id": -10, + "origin_slot": 5, + "target_id": 17, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 20, + "origin_id": -10, + "origin_slot": 6, + "target_id": 14, + "target_slot": 18, + "type": "FLOAT" + }, + { + "id": 21, + "origin_id": -10, + "origin_slot": 6, + "target_id": 17, + "target_slot": 19, + "type": "FLOAT" + }, + { + "id": 24, + "origin_id": 18, + "origin_slot": 0, + "target_id": 14, + "target_slot": 19, + "type": "INT" + }, + { + "id": 25, + "origin_id": 18, + "origin_slot": 0, + "target_id": 17, + "target_slot": 20, + "type": "INT" + }, + { + "id": 26, + "origin_id": -10, + "origin_slot": 7, + "target_id": 18, + "target_slot": 0, + "type": "FLOAT" + }, + { + "id": 27, + "origin_id": 17, + "origin_slot": 0, + "target_id": 19, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 28, + "origin_id": -10, + "origin_slot": 8, + "target_id": 19, + "target_slot": 0, + "type": "WANVAE" + }, + { + "id": 29, + "origin_id": 19, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 31, + "origin_id": -10, + "origin_slot": 9, + "target_id": 14, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 32, + "origin_id": -10, + "origin_slot": 10, + "target_id": 17, + "target_slot": 10, + "type": "EXPERIMENTALARGS" + }, + { + "id": 36, + "origin_id": -10, + "origin_slot": 11, + "target_id": 14, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 37, + "origin_id": -10, + "origin_slot": 11, + "target_id": 17, + "target_slot": 4, + "type": "FETAARGS" + }, + { + "id": 38, + "origin_id": -10, + "origin_slot": 12, + "target_id": 17, + "target_slot": 8, + "type": "SLGARGS" + }, + { + "id": 39, + "origin_id": -10, + "origin_slot": 12, + "target_id": 14, + "target_slot": 8, + "type": "SLGARGS" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "7c1d786b-9a8f-4ee0-8abf-2cd57b7d2882", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 53, + "lastLinkId": 145, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Second Sampler Settings", + "inputNode": { + "id": -10, + "bounding": [ + 2539.7308197858433, + 958.920102151578, + 121.11666870117188, + 200 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 3263.3583744113776, + 595.0557402962498, + 125.06666564941406, + 140 + ] + }, + "inputs": [ + { + "id": "59004e92-cbff-45bf-be76-52ece8d402bd", + "name": "t5", + "type": "WANTEXTENCODER", + "linkIds": [ + 84 + ], + "localized_name": "t5", + "label": "text_encoder", + "shape": 7, + "pos": [ + 2640.847488487015, + 978.920102151578 + ] + }, + { + "id": "5c57a6ee-94e4-40c1-97c2-4d52cc145dc3", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 95 + ], + "label": "model_high", + "pos": [ + 2640.847488487015, + 998.920102151578 + ] + }, + { + "id": "65bba66d-c93c-42bf-81ea-8f3c50304d1d", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 96 + ], + "label": "model_low", + "pos": [ + 2640.847488487015, + 1018.920102151578 + ] + }, + { + "id": "5784878d-6f02-43e0-be93-cf910a1c1c0d", + "name": "prev_lora", + "type": "WANVIDLORA", + "linkIds": [ + 97 + ], + "label": "global_loras_h", + "pos": [ + 2640.847488487015, + 1038.920102151578 + ] + }, + { + "id": "b9878078-679f-447a-b0d7-34b74eae89af", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "linkIds": [ + 98 + ], + "label": "global_loras_l", + "pos": [ + 2640.847488487015, + 1058.920102151578 + ] + }, + { + "id": "e50c31f6-9410-4f6d-9c5a-248cb6b78323", + "name": "", + "type": "*", + "linkIds": [], + "label": "qwen_history", + "pos": [ + 2640.847488487015, + 1078.920102151578 + ] + }, + { + "id": "572faf02-c66f-427a-be23-4e249d02d984", + "name": "qwen", + "type": "QWENMODEL", + "linkIds": [], + "pos": [ + 2640.847488487015, + 1098.920102151578 + ] + }, + { + "id": "4ebdfeac-547c-4fe2-bc36-df43bb0a5d55", + "name": "prompt", + "type": "STRING", + "linkIds": [ + 141, + 145 + ], + "pos": [ + 2640.847488487015, + 1118.920102151578 + ] + } + ], + "outputs": [ + { + "id": "06295f78-c49b-4649-bab0-2eb7be4bd45f", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 101 + ], + "label": "text_embeds_2", + "pos": [ + 3283.3583744113776, + 615.0557402962498 + ] + }, + { + "id": "4291f952-44b6-402f-a36d-b8e4ec2dafa1", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 102 + ], + "label": "model_high_2", + "pos": [ + 3283.3583744113776, + 635.0557402962498 + ] + }, + { + "id": "a7f77847-ba47-435a-8383-28e0e2999738", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 103 + ], + "label": "model_low_2", + "pos": [ + 3283.3583744113776, + 655.0557402962498 + ] + }, + { + "id": "ee0d4384-64e9-408f-b365-ec44da3fc03f", + "name": "STRING", + "type": "STRING", + "linkIds": [], + "label": "qwen_history", + "pos": [ + 3283.3583744113776, + 675.0557402962498 + ] + }, + { + "id": "40a6d29d-c35d-4420-8967-2359b00d9bd3", + "name": "", + "type": "*", + "linkIds": [ + 142 + ], + "label": "next", + "pos": [ + 3283.3583744113776, + 695.0557402962498 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 39, + "type": "WanVideoSetLoRAs", + "pos": [ + 2779.9327744113775, + 1271.4595402962482 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 95 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 99 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 102 + ] + } + ], + "title": "Model H 2", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 40, + "type": "WanVideoSetLoRAs", + "pos": [ + 3047.8630744113784, + 1261.2108402962479 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 96 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 100 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 103 + ] + } + ], + "title": "Model L 2", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 53, + "type": "Reroute", + "pos": [ + 3457.730562771356, + 786.5394541242073 + ], + "size": [ + 140, + 60 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 141 + } + ], + "outputs": [ + { + "name": "", + "type": "*", + "links": [ + 142 + ] + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 38, + "type": "WanVideoTextEncode", + "pos": [ + 2794.9865010290196, + 550.4000329914412 + ], + "size": [ + 400, + 234 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "t5", + "name": "t5", + "shape": 7, + "type": "WANTEXTENCODER", + "link": 84 + }, + { + "localized_name": "model_to_offload", + "name": "model_to_offload", + "shape": 7, + "type": "WANVIDEOMODEL", + "link": null + }, + { + "localized_name": "positive_prompt", + "name": "positive_prompt", + "type": "STRING", + "widget": { + "name": "positive_prompt" + }, + "link": 145 + } + ], + "outputs": [ + { + "localized_name": "text_embeds", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 101 + ] + } + ], + "title": "2nd Sampler Text Encode", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoTextEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "", + "", + false, + false, + "gpu" + ] + }, + { + "id": 41, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 2736.7126234720145, + 852.8430685483781 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 97 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 99 + ] + } + ], + "title": "2nd Sampler LoRAs High", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "storymem_h.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + }, + { + "id": 42, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 3053.155759310313, + 863.8162723058252 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 98 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 100 + ] + } + ], + "title": "2nd Sampler LoRAs Low", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "storymem_l.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 84, + "origin_id": -10, + "origin_slot": 0, + "target_id": 38, + "target_slot": 0, + "type": "WANTEXTENCODER" + }, + { + "id": 95, + "origin_id": -10, + "origin_slot": 1, + "target_id": 39, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 96, + "origin_id": -10, + "origin_slot": 2, + "target_id": 40, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 97, + "origin_id": -10, + "origin_slot": 3, + "target_id": 41, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 98, + "origin_id": -10, + "origin_slot": 4, + "target_id": 42, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 99, + "origin_id": 41, + "origin_slot": 0, + "target_id": 39, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 100, + "origin_id": 42, + "origin_slot": 0, + "target_id": 40, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 101, + "origin_id": 38, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 102, + "origin_id": 39, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "WANVIDEOMODEL" + }, + { + "id": 103, + "origin_id": 40, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDEOMODEL" + }, + { + "id": 141, + "origin_id": -10, + "origin_slot": 7, + "target_id": 53, + "target_slot": 0, + "type": "*" + }, + { + "id": 142, + "origin_id": 53, + "origin_slot": 0, + "target_id": -20, + "target_slot": 4, + "type": "*" + }, + { + "id": 145, + "origin_id": -10, + "origin_slot": 7, + "target_id": 38, + "target_slot": 2, + "type": "STRING" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + }, + { + "id": "4ac2bcc5-d41a-4215-9f81-c1806288f1de", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 59, + "lastLinkId": 166, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Third Sampler Settings", + "inputNode": { + "id": -10, + "bounding": [ + 3262.173042410893, + 963.5634835023513, + 121.11666870117188, + 200 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 3952.949474411377, + 666.7966402962497, + 124.63333129882812, + 100 + ] + }, + "inputs": [ + { + "id": "1946aab9-a934-4e77-95c9-712806aa71de", + "name": "t5", + "type": "WANTEXTENCODER", + "linkIds": [ + 105 + ], + "localized_name": "t5", + "label": "text_encoder", + "shape": 7, + "pos": [ + 3363.2897111120647, + 983.5634835023513 + ] + }, + { + "id": "f20ba555-60e9-4cf7-8255-aec351bc78c3", + "name": "prev_lora", + "type": "WANVIDLORA", + "linkIds": [ + 127 + ], + "label": "global_loras_h", + "pos": [ + 3363.2897111120647, + 1003.5634835023513 + ] + }, + { + "id": "85a74d94-9828-464d-8cae-e179e04063c7", + "name": "prev_lora_1", + "type": "WANVIDLORA", + "linkIds": [ + 128 + ], + "label": "global_loras_l", + "pos": [ + 3363.2897111120647, + 1023.5634835023513 + ] + }, + { + "id": "d1a7ef54-4d66-4321-a29f-6f2c086bcbf1", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 129 + ], + "label": "model_high", + "pos": [ + 3363.2897111120647, + 1043.5634835023513 + ] + }, + { + "id": "d6cbe78b-835c-434c-b1bd-c7e20854f7f4", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 130 + ], + "label": "model_low", + "pos": [ + 3363.2897111120647, + 1063.5634835023513 + ] + }, + { + "id": "f07cd0e8-2964-48ae-8bae-55cf0202b229", + "name": "", + "type": "*", + "linkIds": [], + "label": "qwen_history", + "pos": [ + 3363.2897111120647, + 1083.5634835023513 + ] + }, + { + "id": "59acc3af-0b38-4c48-a6de-32b83492960c", + "name": "qwen", + "type": "QWENMODEL", + "linkIds": [], + "pos": [ + 3363.2897111120647, + 1103.5634835023513 + ] + }, + { + "id": "3905a48f-5f42-4fe0-a634-a9bdf13cbdb9", + "name": "prompt", + "type": "STRING", + "linkIds": [ + 165 + ], + "pos": [ + 3363.2897111120647, + 1123.5634835023513 + ] + } + ], + "outputs": [ + { + "id": "0b9d88f8-a126-4804-8857-8d976805b192", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "linkIds": [ + 131 + ], + "label": "text_embeds_3", + "pos": [ + 3972.949474411377, + 686.7966402962497 + ] + }, + { + "id": "7958bb24-7452-4da4-a734-565e9cddb64a", + "name": "model", + "type": "WANVIDEOMODEL", + "linkIds": [ + 132 + ], + "label": "model_high_3", + "pos": [ + 3972.949474411377, + 706.7966402962497 + ] + }, + { + "id": "df275bbd-e794-49b7-ab41-43fa4c1d940b", + "name": "model_1", + "type": "WANVIDEOMODEL", + "linkIds": [ + 133 + ], + "label": "model_low_3", + "pos": [ + 3972.949474411377, + 726.7966402962497 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 48, + "type": "WanVideoSetLoRAs", + "pos": [ + 3468.0597744113775, + 1336.7363402962492 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 129 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 125 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 132 + ] + } + ], + "title": "Model H 3", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 49, + "type": "WanVideoSetLoRAs", + "pos": [ + 3755.0233744113784, + 1342.5927402962482 + ], + "size": [ + 174.50000610351563, + 46 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "link": 130 + }, + { + "localized_name": "lora", + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 126 + } + ], + "outputs": [ + { + "localized_name": "model", + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 133 + ] + } + ], + "title": "Model L 3", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoSetLoRAs", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 45, + "type": "WanVideoTextEncode", + "pos": [ + 3498.2734744113773, + 580.8036402962498 + ], + "size": [ + 400, + 234 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "t5", + "name": "t5", + "shape": 7, + "type": "WANTEXTENCODER", + "link": 105 + }, + { + "localized_name": "model_to_offload", + "name": "model_to_offload", + "shape": 7, + "type": "WANVIDEOMODEL", + "link": null + }, + { + "localized_name": "positive_prompt", + "name": "positive_prompt", + "type": "STRING", + "widget": { + "name": "positive_prompt" + }, + "link": 165 + } + ], + "outputs": [ + { + "localized_name": "text_embeds", + "name": "text_embeds", + "type": "WANVIDEOTEXTEMBEDS", + "links": [ + 131 + ] + } + ], + "title": "3rd Sampler Text Encode", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoTextEncode", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "", + "", + false, + false, + "gpu" + ] + }, + { + "id": 46, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 3416.8162744113765, + 891.6499402962494 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 127 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 125 + ] + } + ], + "title": "3rd Sampler LoRAs High", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "storymem_h.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + }, + { + "id": 47, + "type": "WanVideoLoraSelectMulti", + "pos": [ + 3723.4208744113766, + 887.8653402962494 + ], + "size": [ + 271.84999694824216, + 342 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "prev_lora", + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": 128 + }, + { + "localized_name": "blocks", + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "localized_name": "lora", + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 126 + ] + } + ], + "title": "3rd Sampler LoRAs Low", + "properties": { + "cnr_id": "comfyui-wanvideowrapper", + "ver": "1.3.8", + "Node name for S&R": "WanVideoLoraSelectMulti", + "aux_id": "kijai/ComfyUI-WanVideoWrapper", + "ue_properties": { + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "storymem_l.safetensors", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + "none", + 1, + true, + false + ] + } + ], + "groups": [], + "links": [ + { + "id": 105, + "origin_id": -10, + "origin_slot": 0, + "target_id": 45, + "target_slot": 0, + "type": "WANTEXTENCODER" + }, + { + "id": 125, + "origin_id": 46, + "origin_slot": 0, + "target_id": 48, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 126, + "origin_id": 47, + "origin_slot": 0, + "target_id": 49, + "target_slot": 1, + "type": "WANVIDLORA" + }, + { + "id": 127, + "origin_id": -10, + "origin_slot": 1, + "target_id": 46, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 128, + "origin_id": -10, + "origin_slot": 2, + "target_id": 47, + "target_slot": 0, + "type": "WANVIDLORA" + }, + { + "id": 129, + "origin_id": -10, + "origin_slot": 3, + "target_id": 48, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 130, + "origin_id": -10, + "origin_slot": 4, + "target_id": 49, + "target_slot": 0, + "type": "WANVIDEOMODEL" + }, + { + "id": 131, + "origin_id": 45, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "WANVIDEOTEXTEMBEDS" + }, + { + "id": 132, + "origin_id": 48, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "WANVIDEOMODEL" + }, + { + "id": 133, + "origin_id": 49, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "WANVIDEOMODEL" + }, + { + "id": 165, + "origin_id": -10, + "origin_slot": 7, + "target_id": 45, + "target_slot": 2, + "type": "STRING" + } + ], + "extra": { + "workflowRendererVersion": "LG", + "ue_links": [], + "links_added_by_ue": [] + } + } + ] + }, + "config": {}, + "extra": { + "ds": { + "scale": 0.6759523542019267, + "offset": [ + -783.7011230491592, + -73.24969449450128 + ] + }, + "frontendVersion": "1.34.9", + "workflowRendererVersion": "LG", + "VHS_latentpreview": true, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "ue_links": [ + { + "downstream": 21, + "downstream_slot": 8, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 24, + "downstream_slot": 8, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 46, + "downstream_slot": 0, + "upstream": "6", + "upstream_slot": 0, + "controller": 30, + "type": "WANTEXTENCODER" + }, + { + "downstream": 46, + "downstream_slot": 2, + "upstream": "3", + "upstream_slot": 0, + "controller": 42, + "type": "WANVIDLORA" + }, + { + "downstream": 46, + "downstream_slot": 3, + "upstream": "4", + "upstream_slot": 0, + "controller": 44, + "type": "WANVIDLORA" + }, + { + "downstream": 46, + "downstream_slot": 4, + "upstream": "2", + "upstream_slot": 0, + "controller": 40, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 46, + "downstream_slot": 5, + "upstream": "2", + "upstream_slot": 1, + "controller": 41, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 27, + "downstream_slot": 0, + "upstream": "2", + "upstream_slot": 0, + "controller": 40, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 27, + "downstream_slot": 1, + "upstream": "2", + "upstream_slot": 1, + "controller": 41, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 27, + "downstream_slot": 2, + "upstream": "6", + "upstream_slot": 0, + "controller": 30, + "type": "WANTEXTENCODER" + }, + { + "downstream": 27, + "downstream_slot": 3, + "upstream": "3", + "upstream_slot": 0, + "controller": 42, + "type": "WANVIDLORA" + }, + { + "downstream": 27, + "downstream_slot": 4, + "upstream": "4", + "upstream_slot": 0, + "controller": 44, + "type": "WANVIDLORA" + }, + { + "downstream": 17, + "downstream_slot": 8, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 39, + "downstream_slot": 0, + "upstream": "6", + "upstream_slot": 0, + "controller": 30, + "type": "WANTEXTENCODER" + }, + { + "downstream": 39, + "downstream_slot": 2, + "upstream": "2", + "upstream_slot": 0, + "controller": 40, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 39, + "downstream_slot": 3, + "upstream": "2", + "upstream_slot": 1, + "controller": 41, + "type": "WANVIDEOMODEL" + }, + { + "downstream": 39, + "downstream_slot": 4, + "upstream": "3", + "upstream_slot": 0, + "controller": 42, + "type": "WANVIDLORA" + }, + { + "downstream": 39, + "downstream_slot": 5, + "upstream": "4", + "upstream_slot": 0, + "controller": 44, + "type": "WANVIDLORA" + }, + { + "downstream": 19, + "downstream_slot": 3, + "upstream": "10", + "upstream_slot": 0, + "controller": 32, + "type": "CLIP_VISION" + }, + { + "downstream": 19, + "downstream_slot": 4, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 19, + "downstream_slot": 7, + "upstream": "48", + "upstream_slot": 0, + "controller": 47, + "type": "IMAGE" + }, + { + "downstream": 13, + "downstream_slot": 3, + "upstream": "10", + "upstream_slot": 0, + "controller": 32, + "type": "CLIP_VISION" + }, + { + "downstream": 13, + "downstream_slot": 4, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 23, + "downstream_slot": 3, + "upstream": "10", + "upstream_slot": 0, + "controller": 32, + "type": "CLIP_VISION" + }, + { + "downstream": 23, + "downstream_slot": 4, + "upstream": "8", + "upstream_slot": 0, + "controller": 31, + "type": "WANVAE" + }, + { + "downstream": 23, + "downstream_slot": 7, + "upstream": "48", + "upstream_slot": 0, + "controller": 47, + "type": "IMAGE" + } + ], + "links_added_by_ue": [ + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386 + ] + }, + "version": 0.4 +} \ No newline at end of file diff --git a/funpack.py b/funpack.py index fd67b651..7541c2d7 100644 --- a/funpack.py +++ b/funpack.py @@ -10,7 +10,274 @@ import folder_paths import nodes import tempfile import gc # Import garbage collector +import torch.nn as nn +import torch.nn.functional as F +import numpy as np +from PIL import Image +import folder_paths +from comfy.utils import ProgressBar +import comfy.clip_vision +import math +import json +from comfy.utils import ProgressBar +# Constants from StoryMem +IMAGE_FACTOR = 28 +VIDEO_MIN_PIXELS = 48 * IMAGE_FACTOR * IMAGE_FACTOR # 37,632 +MIN_FRAME_SIMILARITY = 0.9 +MAX_KEYFRAME_NUM = 3 +ADAPTIVE_ALPHA = 0.01 +HPSV3_QUALITY_THRESHOLD = 3.0 + +class FunPackStoryMemJSONConverter: + """ + FunPack StoryMem LoRA JSON Converter - supports both manual input and Qwen-generated output. + + Features: + - Lenient parsing: auto-adjusts mismatched lengths for cut/first_frame_prompt + - Handles 'cut' as single bool (replicates) or list + - NO forced first cut=True (user can control via prompt or manual input) + - Safe defaults on invalid data → no crashes + - Splits full Qwen story into up to 3 separate scene JSONs + + When use_qwen_output=False → uses manual per-scene inputs with the same leniency. + """ + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "use_qwen_output": ("BOOLEAN", { + "default": False, + "label_on": "Use Qwen Output (ignores manual scenes below)", + "label_off": "Use Manual Scene Inputs", + "tooltip": "Toggle between Qwen-generated full story JSON or classic manual per-scene setup" + }), + "qwen_output": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "Connect STRING output from Kijai's WanVideoPromptExtender / Qwen enhancer here.\nDrag wire onto the left side of this box to convert to input socket." + }), + "story_name": ("STRING", { + "default": "", + "tooltip": "Story title (used in all output JSONs)" + }), + "story_overview": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "Overall story summary (shared across all scenes)" + }), + # Scene 1 + "scene1_video_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "One prompt per line (each = 5-sec clip)" + }), + "scene1_first_frame_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "First frame description per prompt (will auto-adjust to match count)" + }), + "scene1_cut_values": ("STRING", { + "default": "", + "tooltip": "Comma-separated booleans: true,false,true,... (will auto-adjust to match prompt count)" + }), + # Scene 2 + "scene2_video_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "One prompt per line (each = 5-sec clip)" + }), + "scene2_first_frame_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "First frame description per prompt (will auto-adjust to match count)" + }), + "scene2_cut_values": ("STRING", { + "default": "", + "tooltip": "Comma-separated booleans: true,false,true,... (will auto-adjust to match prompt count)" + }), + # Scene 3 + "scene3_video_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "One prompt per line (each = 5-sec clip)" + }), + "scene3_first_frame_prompts": ("STRING", { + "multiline": True, + "default": "", + "tooltip": "First frame description per prompt (will auto-adjust to match count)" + }), + "scene3_cut_values": ("STRING", { + "default": "", + "tooltip": "Comma-separated booleans: true,false,true,... (will auto-adjust to match prompt count)" + }), + }, + "optional": { + "qwen_mode_notice": ("STRING", { + "multiline": True, + "default": "!!! QWEN MODE ACTIVE !!!\nAll manual inputs below are completely ignored\nConnect the Qwen JSON string above.", + "tooltip": "Reminder - only visible/meaningful when use_qwen_output = True" + }) + } + } + + RETURN_TYPES = ("STRING", "STRING", "STRING") + RETURN_NAMES = ("json_scene_1", "json_scene_2", "json_scene_3") + OUTPUT_NODE = True + FUNCTION = "convert" + CATEGORY = "FunPack" + + def convert(self, + use_qwen_output, + qwen_output, + story_name, story_overview, + scene1_video_prompts, scene1_first_frame_prompts, scene1_cut_values, + scene2_video_prompts, scene2_first_frame_prompts, scene2_cut_values, + scene3_video_prompts, scene3_first_frame_prompts, scene3_cut_values, + qwen_mode_notice=""): + + if use_qwen_output: + if not qwen_output.strip(): + raise ValueError("Qwen mode enabled but 'qwen_output' is empty! Connect Kijai's prompt enhancer output.") + + pbar = ProgressBar(2) + + try: + full_data = json.loads(qwen_output) + except json.JSONDecodeError as e: + raise ValueError(f"Failed to parse Qwen output as JSON:\n{str(e)}\n\nMake sure system prompt instructs Qwen to return **only** valid JSON.") + + story_name = full_data.get("story_name", "Generated Story") + story_overview = full_data.get("story_overview", "Generated overview") + scenes = full_data.get("scenes", []) + + if not isinstance(scenes, list) or not scenes: + raise ValueError("Qwen JSON must contain non-empty 'scenes' list.") + + outputs = ["", "", ""] + + for i, scene in enumerate(scenes[:3]): + if not isinstance(scene, dict): + continue + + scene_num = scene.get("scene_num", i+1) + video_prompts = scene.get("video_prompts", []) + first_frame_prompt = scene.get("first_frame_prompt", []) + cut = scene.get("cut", []) + + if not video_prompts: + continue + + num_prompts = len(video_prompts) + + # Lenient: adjust first_frame_prompt + if len(first_frame_prompt) < num_prompts: + if first_frame_prompt: + first_frame_prompt += [first_frame_prompt[-1]] * (num_prompts - len(first_frame_prompt)) + else: + first_frame_prompt = [""] * num_prompts + elif len(first_frame_prompt) > num_prompts: + first_frame_prompt = first_frame_prompt[:num_prompts] + + # Lenient: handle cut (single bool or mismatched list) + if isinstance(cut, bool): + cut = [cut] * num_prompts + elif not isinstance(cut, list) or not all(isinstance(c, bool) for c in cut): + cut = [False] * num_prompts # Default to no cuts + else: + if len(cut) < num_prompts: + cut += [cut[-1] if cut else False] * (num_prompts - len(cut)) + elif len(cut) > num_prompts: + cut = cut[:num_prompts] + + # NO forced first cut=True anymore + + single_scene_data = { + "scene_num": scene_num, + "video_prompts": video_prompts, + "first_frame_prompt": first_frame_prompt, + "cut": cut + } + + json_data = { + "story_name": story_name, + "story_overview": story_overview, + "scenes": [single_scene_data] + } + + outputs[i] = json.dumps(json_data, indent=2, ensure_ascii=False) + + pbar.update(2) + return tuple(outputs) + + else: + # Manual mode - same leniency + scenes_input = [ + (scene1_video_prompts, scene1_first_frame_prompts, scene1_cut_values, 1), + (scene2_video_prompts, scene2_first_frame_prompts, scene2_cut_values, 2), + (scene3_video_prompts, scene3_first_frame_prompts, scene3_cut_values, 3), + ] + + outputs = ["", "", ""] + + for i, (video_text, first_text, cuts_text, scene_num) in enumerate(scenes_input): + if not video_text.strip(): + continue + + video_prompts = [p.strip() for p in video_text.split("\n") if p.strip()] + if not video_prompts: + continue + + num_prompts = len(video_prompts) + + first_prompts = [f.strip() for f in first_text.split("\n") if f.strip()] + + # Lenient adjust first_prompts + if len(first_prompts) < num_prompts: + if first_prompts: + first_prompts += [first_prompts[-1]] * (num_prompts - len(first_prompts)) + else: + first_prompts = [""] * num_prompts + elif len(first_prompts) > num_prompts: + first_prompts = first_prompts[:num_prompts] + + # Parse cuts leniently + if cuts_text.strip(): + cuts_str = [c.strip().lower() for c in cuts_text.split(",") if c.strip()] + cuts = [] + for c in cuts_str: + if c in ("true", "t", "1", "yes"): + cuts.append(True) + else: + cuts.append(False) # default for invalid or false + else: + cuts = [False] * num_prompts + + # Lenient adjust cuts + if len(cuts) < num_prompts: + cuts += [cuts[-1] if cuts else False] * (num_prompts - len(cuts)) + elif len(cuts) > num_prompts: + cuts = cuts[:num_prompts] + + # NO forced first cut=True + + scene = { + "scene_num": scene_num, + "video_prompts": video_prompts, + "first_frame_prompt": first_prompts, + "cut": cuts + } + + full_json = { + "story_name": story_name.strip() or "Manual Story", + "story_overview": story_overview.strip() or "Manual overview", + "scenes": [scene] + } + + outputs[i] = json.dumps(full_json, indent=2, ensure_ascii=False) + + return tuple(outputs) + class FunPackImg2LatentInterpolation: @classmethod def INPUT_TYPES(cls): @@ -57,143 +324,6 @@ class FunPackImg2LatentInterpolation: return (output, preview) -# Removed the problematic list_clip_files() helper function - -class FunPackCLIPLoader: - class _CLIPAdapter: - def __init__(self, clip_l_model, llama_te_model, optional_secondary_clip=None, optional_merge_mode="None"): - self.clip_l_model = clip_l_model - self.llama_te_model = llama_te_model - self.optional_secondary_clip = optional_secondary_clip - self.optional_merge_mode = optional_merge_mode - - print(f"[_CLIPAdapter] Initialized with CLIP-L and LLaMA text encoder.") - if self.optional_secondary_clip: - print(f"[_CLIPAdapter] Optional secondary CLIP also loaded. Merge mode: {self.optional_merge_mode}") - else: - print("[_CLIPAdapter] No optional secondary CLIP provided.") - - def tokenize(self, prompt): - # Use the CLIP-L model's tokenizer - return self.clip_l_model.tokenize(prompt) - - def encode_from_tokens(self, tokens, return_pooled=True): - # 1. Get embeddings from the primary CLIP-L model - clip_l_cond, clip_l_pooled = self.clip_l_model.encode_from_tokens(tokens, return_pooled=True) - - # 2. Get embeddings from the LLaMA text encoder - llama_cond, llama_pooled = self.llama_te_model.encode_from_tokens(tokens, return_pooled=True) - - # 3. Handle optional secondary CLIP merge specifically with CLIP-L's output - final_clip_l_cond = clip_l_cond - final_clip_l_pooled = clip_l_pooled - - if self.optional_secondary_clip and self.optional_merge_mode != "None": - print(f"[_CLIPAdapter] Merging optional secondary CLIP embeddings (Mode: {self.optional_merge_mode}).") - secondary_cond, secondary_pooled = self.optional_secondary_clip.encode_from_tokens(tokens, return_pooled=True) - - if self.optional_merge_mode == "Concatenate Pooled with CLIP-L": - final_clip_l_pooled = torch.cat([clip_l_pooled, secondary_pooled], dim=-1) - print(f"[_CLIPAdapter] Optional CLIP pooled embeddings concatenated with CLIP-L pooled. New CLIP-L pooled dim: {final_clip_l_pooled.shape[-1]}") - elif self.optional_merge_mode == "Concatenate Unpooled with CLIP-L": - if clip_l_cond.shape[1] != secondary_cond.shape[1]: - print("[_CLIPAdapter] WARNING: Unpooled embeddings have different sequence lengths for CLIP-L and optional secondary CLIP. Skipping unpooled concatenation.") - else: - final_clip_l_cond = torch.cat([clip_l_cond, secondary_cond], dim=-1) - print(f"[_CLIPAdapter] Optional CLIP unpooled embeddings concatenated with CLIP-L unpooled. New CLIP-L unpooled dim: {final_clip_l_cond.shape[-1]}") - - # 4. Final combination: Concatenate the (potentially merged) CLIP-L output with LLaMA output - final_cond = torch.cat([final_clip_l_cond, llama_cond], dim=-1) - final_pooled = torch.cat([final_clip_l_pooled, llama_pooled], dim=-1) - - if return_pooled: - return final_cond, final_pooled - else: - return final_cond - - def encode_token_weights(self, tokens): - return self.clip_l_model.encode_token_weights(tokens) - - @classmethod - def INPUT_TYPES(s): - return { - "required": { - "clip_l_model_name": (s.get_filename_list(), {"default": "clip_l.safetensors"}), - "llama_text_encoder_name": (s.get_filename_list(), {"default": "clip_g.safetensors"}), - "clip_type": (["HUNYUAN_VIDEO"], {"default": "HUNYUAN_VIDEO"}), - }, - "optional": { - "optional_secondary_clip_model_name": (s.get_filename_list(), {"default": "None"}), - "optional_secondary_clip_type": (["CLIP_G", "CLIP_L", "T5_XXL"], {"default": "CLIP_G"}), - "optional_merge_mode": (["None", "Concatenate Pooled with CLIP-L", "Concatenate Unpooled with CLIP-L"], {"default": "None"}) - } - } - - RETURN_TYPES = ("CLIP",) - RETURN_NAMES = ("clip",) - FUNCTION = "load" - CATEGORY = "FunPack" - - @classmethod - def get_filename_list(s): - return folder_paths.get_filename_list("clip") - - def load(self, clip_l_model_name, llama_text_encoder_name, clip_type, - optional_secondary_clip_model_name="None", optional_secondary_clip_type="CLIP_G", optional_merge_mode="None"): - - # Load CLIP-L model with HUNYUAN_VIDEO type - clip_l_path = folder_paths.get_full_path('clip', clip_l_model_name) - loaded_clip_l = sd.load_clip( - ckpt_paths=[clip_l_path], - clip_type=sd.CLIPType.HUNYUAN_VIDEO, - embedding_directory=None, - model_options={"ignore_mismatched_sizes": True} - ) - print(f"[FunPackCLIPLoader] Loaded CLIP-L model: {clip_l_model_name}") - - # Load LLaMA text encoder (using CLIP_G as it's part of the Hunyuan architecture) - llama_te_path = folder_paths.get_full_path('clip', llama_text_encoder_name) - loaded_llama_te = sd.load_clip( - ckpt_paths=[llama_te_path], - clip_type=sd.CLIPType.HUNYUAN_VIDEO, - embedding_directory=None, - model_options={"ignore_mismatched_sizes": True} - ) - print(f"[FunPackCLIPLoader] Loaded LLaMA text encoder: {llama_text_encoder_name}") - - # Load optional secondary CLIP - loaded_optional_secondary_clip = None - if optional_secondary_clip_model_name != "None": - optional_secondary_clip_path = folder_paths.get_full_path('clip', optional_secondary_clip_model_name) - - # Map the input type to CLIPType enum - clip_type_mapping = { - "CLIP_G": sd.CLIPType.STABLE_CASCADE, - "CLIP_L": sd.CLIPType.STABLE_DIFFUSION, - "T5_XXL": sd.CLIPType.SD3 - } - secondary_clip_type = clip_type_mapping.get(optional_secondary_clip_type, sd.CLIPType.STABLE_DIFFUSION) - - loaded_optional_secondary_clip = sd.load_clip( - ckpt_paths=[optional_secondary_clip_path], - clip_type=secondary_clip_type, - embedding_directory=None, - model_options={"ignore_mismatched_sizes": True} - ) - print(f"[FunPackCLIPLoader] Loaded optional secondary CLIP model: {optional_secondary_clip_model_name}") - else: - print("[FunPackCLIPLoader] No optional secondary CLIP model specified.") - - # Create the adapter - clip_adapter = FunPackCLIPLoader._CLIPAdapter( - clip_l_model=loaded_clip_l, - llama_te_model=loaded_llama_te, - optional_secondary_clip=loaded_optional_secondary_clip, - optional_merge_mode=optional_merge_mode - ) - - return (clip_adapter,) - # The standalone FunPackPromptEnhancer remains completely unchanged as requested class FunPackPromptEnhancer: @classmethod @@ -376,19 +506,513 @@ class FunPackContinueVideo: continued = images[-frame_count:] return (continued,) +class FunPackStoryMemKeyframeExtractor: + """ + Extracts keyframes from video frames using: + 1. HPSv3 for quality assessment (optional) + 2. CLIP Vision for frame similarity + 3. Adaptive threshold to limit keyframe count + """ + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "frames": ("IMAGE",), # ComfyUI IMAGE format [B, H, W, C] + "clip_vision": (folder_paths.get_filename_list("clip_vision"),), + "max_keyframes": ("INT", { + "default": 3, + "min": 1, + "max": 20, + "step": 1, + "tooltip": "Maximum number of keyframes to extract" + }), + "similarity_threshold": ("FLOAT", { + "default": 0.9, + "min": 0.0, + "max": 1.0, + "step": 0.01, + "tooltip": "CLIP similarity threshold (lower = more keyframes)" + }), + "use_quality_filter": ("BOOLEAN", { + "default": False, + "tooltip": "Use HPSv3 to filter low-quality frames (requires hpsv3 package)" + }), + "quality_threshold": ("FLOAT", { + "default": 3.0, + "min": 0.0, + "max": 10.0, + "step": 0.1, + "tooltip": "HPSv3 quality threshold (higher = stricter)" + }), + }, + "optional": { + "memory_frames": ("IMAGE", { + "tooltip": "Previous keyframes to compare against (avoid duplicates)" + }), + } + } + + RETURN_TYPES = ("IMAGE", "INT",) + RETURN_NAMES = ("keyframes", "keyframe_count",) + FUNCTION = "extract_keyframes" + CATEGORY = "FunPack" + DESCRIPTION = "Extract keyframes using CLIP similarity + HPSv3 quality (StoryMem algorithm)" + + def __init__(self): + self.quality_model = None + + def load_clip_model(self, clip_vision_name): + """Load CLIP Vision model from ComfyUI models/clip_vision folder""" + clip_path = folder_paths.get_full_path("clip_vision", clip_vision_name) + clip_vision = comfy.clip_vision.load(clip_path) + return clip_vision + + def load_quality_model(self): + """Load HPSv3 quality assessment model""" + if self.quality_model is not None: + return + + try: + from hpsv3 import HPSv3RewardInferencer + device = "cuda" if torch.cuda.is_available() else "cpu" + self.quality_model = HPSv3RewardInferencer(device=device) + except ImportError: + print("WARNING: HPSv3 not installed. Install with: pip install hpsv3") + print("Quality filtering will be disabled.") + self.quality_model = None + + def smart_resize(self, height: int, width: int) -> tuple: + """Resize frame to efficient size for processing""" + factor = IMAGE_FACTOR + min_pixels = VIDEO_MIN_PIXELS + max_pixels = 256 * IMAGE_FACTOR * IMAGE_FACTOR + + h_bar = max(factor, round(height / factor) * factor) + w_bar = max(factor, round(width / factor) * factor) + + if h_bar * w_bar > max_pixels: + beta = math.sqrt((height * width) / max_pixels) + h_bar = math.floor(height / beta / factor) * factor + w_bar = math.floor(width / beta / factor) * factor + elif h_bar * w_bar < min_pixels: + beta = math.sqrt(min_pixels / (height * width)) + h_bar = math.ceil(height * beta / factor) * factor + w_bar = math.ceil(width * beta / factor) * factor + + return max(h_bar, factor), max(w_bar, factor) + + def clip_preprocess(self, frame_chw: torch.Tensor, clip_vision) -> torch.Tensor: + """Preprocess frame for CLIP Vision model""" + # ComfyUI CLIP Vision expects [B, H, W, C] format in range [0, 1] + # Convert from [C, H, W] to [1, H, W, C] + frame = frame_chw.permute(1, 2, 0).unsqueeze(0) + + # Ensure [0, 1] range + if not torch.is_floating_point(frame): + frame = frame.float() + if frame.max() > 1.5: + frame = frame / 255.0 + frame = frame.clamp(0.0, 1.0) + + return frame + + @torch.no_grad() + def get_clip_similarity(self, frame1: torch.Tensor, frame2: torch.Tensor, clip_vision) -> float: + + # Preprocess frames to [1, H, W, C] format + x1 = self.clip_preprocess(frame1, clip_vision) + x2 = self.clip_preprocess(frame2, clip_vision) + + # Get CLIP Vision embeddings + z1_raw = clip_vision.encode_image(x1) + z2_raw = clip_vision.encode_image(x2) + + # Extract the actual embedding tensor from various possible return formats + def extract_embedding(output): + # Case 1: Direct tensor (older/basic models) + if isinstance(output, torch.Tensor): + return output + + # Case 2: ComfyUI's custom Output wrapper (common with projection models) + if isinstance(output, comfy.clip_vision.Output): # Import at top if needed: import comfy.clip_vision + if hasattr(output, 'image_embeds'): + return output.image_embeds + elif hasattr(output, 'pooled_output'): + return output.pooled_output + # Fallback: treat like dict + try: + return output['image_embeds'] + except: + pass + + # Case 3: Dictionary (some models) + if isinstance(output, dict): + if 'image_embeds' in output: + return output['image_embeds'] + if 'pooled_output' in output: + return output['pooled_output'] + if 'last_hidden_state' in output: + return output['last_hidden_state'][:, 0] # CLS token if sequence + # Fallback: first tensor value + for v in output.values(): + if isinstance(v, torch.Tensor) and v.ndim >= 2: + return v + + # Case 4: Tuple (rare here, but safe) + if isinstance(output, (tuple, list)) and len(output) == 1: + return extract_embedding(output[0]) + + raise TypeError(f"Unexpected output from encode_image: {type(output)}. " + "Supported: tensor, dict, or comfy.clip_vision.Output with 'image_embeds'.") + + z1 = extract_embedding(z1_raw) + z2 = extract_embedding(z2_raw) + + # Final check + if not (isinstance(z1, torch.Tensor) and isinstance(z2, torch.Tensor)): + raise RuntimeError(f"Failed to extract tensor embeddings: {type(z1)}, {type(z2)}") + + # Normalize and compute cosine similarity + z1 = F.normalize(z1, dim=-1) + z2 = F.normalize(z2, dim=-1) + similarity = (z1 * z2).sum(dim=-1).item() + + return similarity + + def is_low_quality(self, frame: torch.Tensor, threshold: float) -> bool: + """Check if frame quality is below threshold using HPSv3""" + if self.quality_model is None: + return False # Skip quality check if model not available + + # Convert to PIL Image + frame_np = frame.permute(1, 2, 0).cpu().numpy() + frame_np = (frame_np * 255).astype(np.uint8).clip(0, 255) + pil_image = Image.fromarray(frame_np) + + # Get quality score + try: + rewards = self.quality_model.reward(image_paths=[pil_image], prompts=[""]) + score = rewards[0][0].item() + return score < threshold + except Exception as e: + print(f"Quality check failed: {e}") + return False + + def extract_keyframe_indices(self, frames: torch.Tensor, threshold: float, + quality_threshold: float, use_quality: bool, clip_vision) -> list: + """ + Extract keyframe indices using CLIP similarity and quality filtering + + Args: + frames: [N, C, H, W] tensor + threshold: CLIP similarity threshold + quality_threshold: HPSv3 quality threshold + use_quality: Whether to use quality filtering + clip_vision: ComfyUI CLIP Vision model + + Returns: + List of keyframe indices + """ + num_frames, _, height, width = frames.shape + + # Resize frames for efficient processing + resized_h, resized_w = self.smart_resize(height, width) + resized_frames = F.interpolate( + frames, + size=(resized_h, resized_w), + mode="bilinear", + align_corners=False + ).float() + + # Load quality model if needed + if use_quality: + self.load_quality_model() + + # Find first high-quality frame + first_idx = 0 + if use_quality and self.quality_model is not None: + while first_idx < num_frames: + if not self.is_low_quality(resized_frames[first_idx], quality_threshold): + break + first_idx += 1 + + if first_idx >= num_frames: + return [] # No high-quality frames found + + # Initialize keyframes + keyframe_indices = [first_idx] + last_keyframe = resized_frames[first_idx] + + # Iterate through remaining frames + pbar = ProgressBar(num_frames - first_idx - 1) + for i in range(first_idx + 1, num_frames): + current_frame = resized_frames[i] + + # Calculate similarity with last keyframe + similarity = self.get_clip_similarity(last_keyframe, current_frame, clip_vision) + + # Check if frame is different enough and high quality + is_different = similarity < threshold + is_quality = True + if use_quality and self.quality_model is not None: + is_quality = not self.is_low_quality(current_frame, quality_threshold) + + if is_different and is_quality: + keyframe_indices.append(i) + last_keyframe = current_frame + + pbar.update(1) + + return keyframe_indices + + def check_memory_duplicates(self, keyframes: torch.Tensor, + memory_frames: torch.Tensor, + clip_vision, + threshold: float = 0.9) -> list: + """ + Filter out keyframes that are too similar to memory frames + + Returns: + List of boolean flags (True = keep, False = duplicate) + """ + keep_flags = [] + + for keyframe in keyframes: + is_duplicate = False + for memory_frame in memory_frames: + similarity = self.get_clip_similarity(keyframe, memory_frame, clip_vision) + if similarity > threshold: + is_duplicate = True + break + keep_flags.append(not is_duplicate) + + return keep_flags + + def extract_keyframes(self, frames, clip_vision, max_keyframes, similarity_threshold, + use_quality_filter, quality_threshold, memory_frames=None): + """ + Main extraction function + + Args: + frames: ComfyUI IMAGE format [B, H, W, C] in range [0, 1] + clip_vision: CLIP Vision model name from dropdown + max_keyframes: Maximum number of keyframes + similarity_threshold: Initial CLIP similarity threshold + use_quality_filter: Whether to use HPSv3 filtering + quality_threshold: HPSv3 threshold + memory_frames: Optional previous keyframes to avoid duplicates + + Returns: + (keyframes, keyframe_count) + """ + # Load CLIP Vision model from ComfyUI models folder + clip_vision_model = self.load_clip_model(clip_vision) + + # Convert ComfyUI format [B, H, W, C] to PyTorch [B, C, H, W] + frames_tensor = frames.permute(0, 3, 1, 2).contiguous() + + # Adaptive threshold loop + threshold = similarity_threshold + while True: + keyframe_indices = self.extract_keyframe_indices( + frames_tensor, + threshold, + quality_threshold, + use_quality_filter, + clip_vision_model + ) + + # Check if we have too many keyframes + if len(keyframe_indices) <= max_keyframes: + break + + # Increase threshold to get fewer keyframes + threshold -= ADAPTIVE_ALPHA + + # Safety check + if threshold < 0.5: + # Take first N keyframes + keyframe_indices = keyframe_indices[:max_keyframes] + break + + print(f"Extracted {len(keyframe_indices)} keyframes at threshold {threshold:.3f}") + + # Extract keyframes + if len(keyframe_indices) == 0: + # Return first frame as fallback + keyframes_out = frames[:1] + return (keyframes_out, 1) + + keyframes_tensor = frames_tensor[keyframe_indices] + + # Check against memory frames to avoid duplicates + if memory_frames is not None: + memory_tensor = memory_frames.permute(0, 3, 1, 2).contiguous() + keep_flags = self.check_memory_duplicates( + keyframes_tensor, + memory_tensor, + clip_vision_model, + threshold=MIN_FRAME_SIMILARITY + ) + + # Filter keyframes + kept_indices = [i for i, keep in enumerate(keep_flags) if keep] + if len(kept_indices) > 0: + keyframes_tensor = keyframes_tensor[kept_indices] + else: + # Keep at least one keyframe + keyframes_tensor = keyframes_tensor[:1] + + # Convert back to ComfyUI format [B, H, W, C] + keyframes_out = keyframes_tensor.permute(0, 2, 3, 1).contiguous() + + return (keyframes_out, keyframes_out.shape[0]) + + +class FunPackStoryMemLastFrameExtractor: + """Extract last frame and last N frames for MI2V/MM2V continuity""" + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "frames": ("IMAGE",), + "n_frames": ("INT", { + "default": 5, + "min": 1, + "max": 20, + "step": 1, + "tooltip": "Number of frames to extract from end (for MM2V)" + }), + } + } + + RETURN_TYPES = ("IMAGE", "IMAGE",) + RETURN_NAMES = ("last_frame", "motion_frames",) + FUNCTION = "extract" + CATEGORY = "FunPack" + DESCRIPTION = "Extract last frame and last N frames for shot continuity (MI2V/MM2V)" + + def extract(self, frames, n_frames): + """ + Extract last frame and last N frames + + Returns: + (last_frame [1, H, W, C], motion_frames [N, H, W, C]) + """ + last_frame = frames[-1:] + motion_frames = frames[-n_frames:] + + return (last_frame, motion_frames) + +import os +import json + +class FunPackCreativeTemplate: + @classmethod + def INPUT_TYPES(s): + # Path to templates.json in the same directory as this script + template_file = os.path.join(os.path.dirname(__file__), "templates.json") + templates = {} + if os.path.exists(template_file): + with open(template_file, 'r') as f: + try: + templates = json.load(f) + except json.JSONDecodeError: + templates = {} + template_names = sorted(list(templates.keys())) + ["Custom"] + default_template = template_names[0] if template_names else "Custom" + + return { + "required": { + "template_name": (template_names, {"default": default_template}), + "template_text": ("STRING", {"multiline": True, "default": ""}), + "replacements": ("STRING", {"multiline": True, "default": ""}), + }, + "optional": { + "save_name": ("STRING", {"default": ""}), + } + } + + RETURN_TYPES = ("STRING",) + FUNCTION = "replace" + CATEGORY = "FunPack/Text" + DESCRIPTION = "Select or create text templates, replace placeholders, and output the result." + + def replace(self, template_name, template_text, replacements, save_name=""): + # Load templates + template_file = os.path.join(os.path.dirname(__file__), "templates.json") + templates = {} + if os.path.exists(template_file): + with open(template_file, 'r') as f: + try: + templates = json.load(f) + except json.JSONDecodeError: + templates = {} + + # Get the template string + if template_name == "Custom": + if not template_text.strip(): + return ("",) # Empty if no custom text provided + template_str = template_text + else: + template_str = templates.get(template_name, "") + + # Parse replacements (format: KEY: value per line) + replace_dict = {} + for line in replacements.splitlines(): + if ':' in line: + key, val = line.split(':', 1) + replace_dict[key.strip()] = val.strip() + + # Perform replacements + for key, val in replace_dict.items(): + template_str = template_str.replace(f"[{key}]", val) + + # Save new template if save_name provided and using Custom + if save_name and template_name == "Custom" and template_text.strip(): + templates[save_name] = template_text + # Create directories if needed (though unlikely) + os.makedirs(os.path.dirname(template_file), exist_ok=True) + with open(template_file, 'w') as f: + json.dump(templates, f, indent=4) + + return (template_str,) + + # Update NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS NODE_CLASS_MAPPINGS = { + "FunPackStoryMemJSONConverter": FunPackStoryMemJSONConverter, + "FunPackStoryMemKeyframeExtractor": FunPackStoryMemKeyframeExtractor, + "FunPackStoryMemLastFrameExtractor": FunPackStoryMemLastFrameExtractor, "FunPackImg2LatentInterpolation": FunPackImg2LatentInterpolation, - "FunPackCLIPLoader": FunPackCLIPLoader, "FunPackPromptEnhancer": FunPackPromptEnhancer, "FunPackVideoStitch": FunPackVideoStitch, "FunPackContinueVideo": FunPackContinueVideo, + "FunPackCreativeTemplate": FunPackCreativeTemplate, } NODE_DISPLAY_NAME_MAPPINGS = { + "FunPackStoryMemJSONConverter": "FunPack StoryMem JSON Converter", + "FunPackStoryMemKeyframeExtractor": "FunPack StoryMem Keyframe Extractor", + "FunPackStoryMemLastFrameExtractor": "FunPack StoryMem Last Frame Extractor", "FunPackImg2LatentInterpolation": "FunPack Img2Latent Interpolation", - "FunPackCLIPLoader": "FunPack CLIP Loader", "FunPackPromptEnhancer": "FunPack Prompt Enhancer (Standalone)", "FunPackVideoStitch": "FunPack Video Stitch", - "FunPackContinueVideo": "FunPack Continue Video" -} \ No newline at end of file + "FunPackContinueVideo": "FunPack Continue Video", + "FunPackCreativeTemplate": "FunPack Creative Template" +} + + + + + + + + + + + + + diff --git a/pyproject.toml b/pyproject.toml index 242b8919..a103ce92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,36 +1,15 @@ +# pyproject.toml [project] -name = "funpack" -description = "" -version = "1.0.0" -license = {file = "LICENSE"} -# classifiers = [ -# # For OS-independent nodes (works on all operating systems) -# "Operating System :: OS Independent", -# -# # OR for OS-specific nodes, specify the supported systems: -# "Operating System :: Microsoft :: Windows", # Windows specific -# "Operating System :: POSIX :: Linux", # Linux specific -# "Operating System :: MacOS", # macOS specific -# -# # GPU Accelerator support. Pick the ones that are supported by your extension. -# "Environment :: GPU :: NVIDIA CUDA", # NVIDIA CUDA support -# "Environment :: GPU :: AMD ROCm", # AMD ROCm support -# "Environment :: GPU :: Intel Arc", # Intel Arc support -# "Environment :: NPU :: Huawei Ascend", # Huawei Ascend support -# "Environment :: GPU :: Apple Metal", # Apple Metal support -# ] - +name = "funpack" # Unique identifier for your node. Immutable after creation. +description = "A set of nodes for experiments with video generation models, including Prompt Enhancer, Video Stitch, Creative Template and many other nodes." +version = "1.0.0" # Custom Node version. Must be semantically versioned. +license = { text = "GNU GPL v3" } +dependencies = [] # Filled in from requirements.txt [project.urls] Repository = "https://github.com/aimfordeb/ComfyUI-FunPack" -# Used by Comfy Registry https://registry.comfy.org -Documentation = "https://github.com/aimfordeb/ComfyUI-FunPack/wiki" -"Bug Tracker" = "https://github.com/aimfordeb/ComfyUI-FunPack/issues" [tool.comfy] -PublisherId = "" -DisplayName = "ComfyUI-FunPack" -Icon = "" -includes = [] -# "requires-comfyui" = ">=1.0.0" # ComfyUI version compatibility - +PublisherId = "aimfordeb" # TODO (fill in Publisher ID from Comfy Registry Website). +DisplayName = "FunPack" # Display name for the Custom Node. Can be changed later. +Icon = "https://example.com/icon.png" # SVG, PNG, JPG or GIF (MAX. 800x400px)