commit d6dfdd72e2a1c69845b5a4dede8da959a867fa1d Author: Sebastian Krüger Date: Wed Nov 26 09:16:45 2025 +0100 feat: initial ComfyUI workflow templates extension - 40 workflow templates (text-to-image, image-to-video, image-to-image, text-to-music, upscaling, advanced, nsfw) - Color-coded placeholder preview images using Pillow - Template-only extension (no custom nodes) - Preview generation script for future workflow additions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude diff --git a/README.md b/README.md new file mode 100644 index 0000000..42b871c --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# ComfyUI Extras + +Curated workflow templates for ComfyUI. + +## Installation + +Clone into your ComfyUI custom_nodes directory: + +```bash +cd /path/to/ComfyUI/custom_nodes +git clone https://github.com/valknar/comfyui-extras.git +``` + +Restart ComfyUI. + +## Usage + +Access workflows via **Workflow > Browse Templates** in ComfyUI. +Look for the "ComfyUI Extras" category. + +## Included Workflows (40 total) + +### Text-to-Image (5 workflows) +- FLUX Dev / Schnell +- SD 3.5 Large +- SDXL with Refiner +- LoRA Fusion + +### Image-to-Video (13 workflows) +- CogVideoX +- SVD / SVD-XT +- Wan 2.2 (multiple variants) +- HunyuanVideo + +### Image-to-Image (3 workflows) +- IPAdapter Style +- IPAdapter Face +- IPAdapter Composition + +### Text-to-Music (9 workflows) +- MusicGen (Small/Medium/Large/Melody) +- AceStep +- DiffRhythm + +### Upscaling (3 workflows) +- Simple Upscale +- Ultimate SD Upscale +- Face Upscale + +### Advanced (3 workflows) +- AnimateDiff +- ControlNet Fusion +- Batch Pipeline + +### NSFW (4 workflows) +- Lustify Realistic +- RealVisXL Lightning +- Pony Anime +- NSFW Ultimate Upscale + +## Requirements + +Each workflow requires specific models to be installed. +Check each workflow for model requirements. + +## Regenerating Preview Images + +If you modify workflows, regenerate previews: + +```bash +pip install Pillow +python scripts/generate_previews.py +``` + +## License + +MIT diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..cc1c9f9 --- /dev/null +++ b/__init__.py @@ -0,0 +1,12 @@ +""" +ComfyUI Extras - Workflow Templates + +A collection of production-ready workflow templates for ComfyUI. +Templates are automatically discovered from the example_workflows/ directory. +""" + +from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS + +__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] + +__version__ = "0.1.0" diff --git a/example_workflows/acestep-m2m-editing-v1.jpg b/example_workflows/acestep-m2m-editing-v1.jpg new file mode 100644 index 0000000..fb48b5e Binary files /dev/null and b/example_workflows/acestep-m2m-editing-v1.jpg differ diff --git a/example_workflows/acestep-m2m-editing-v1.json b/example_workflows/acestep-m2m-editing-v1.json new file mode 100644 index 0000000..37844c3 --- /dev/null +++ b/example_workflows/acestep-m2m-editing-v1.json @@ -0,0 +1,865 @@ +{ + "id": "88ac5dad-efd7-40bb-84fe-fbaefdee1fa9", + "revision": 0, + "last_node_id": 75, + "last_link_id": 138, + "nodes": [ + { + "id": 49, + "type": "LatentApplyOperationCFG", + "pos": [ + 940, + -160 + ], + "size": [ + 290, + 50 + ], + "flags": { + "collapsed": false + }, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 113 + }, + { + "name": "operation", + "type": "LATENT_OPERATION", + "link": 114 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 121 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LatentApplyOperationCFG" + }, + "widgets_values": [] + }, + { + "id": 40, + "type": "CheckpointLoaderSimple", + "pos": [ + 180, + -160 + ], + "size": [ + 370, + 98 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 115 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 80 + ] + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 83, + 137 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "CheckpointLoaderSimple", + "models": [ + { + "name": "ace_step_v1_3.5b.safetensors", + "url": "https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/resolve/main/all_in_one/ace_step_v1_3.5b.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "ace_step_v1_3.5b.safetensors" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 48, + "type": "MarkdownNote", + "pos": [ + -460, + -200 + ], + "size": [ + 610, + 820 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About ACE Step and Multi-language Input", + "properties": {}, + "widgets_values": [ + "[Tutorial](http://docs.comfy.org/tutorials/audio/ace-step/ace-step-v1) | [教程](http://docs.comfy.org/zh-CN/tutorials/audio/ace-step/ace-step-v1)\n\n\n### Model Download\n\nDownload the following model and save it to the **ComfyUI/models/checkpoints** folder.\n[ace_step_v1_3.5b.safetensors](https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/blob/main/all_in_one/ace_step_v1_3.5b.safetensors)\n\n\n### Multilingual Support\n\nCurrently, the implementation of multi-language support for ACE-Step V1 is achieved by uniformly converting different languages into English characters. At present, in ComfyUI, we haven't implemented the step of converting multi-languages into English. This is because if we need to implement the corresponding conversion, we have to add additional core dependencies of ComfyUI, which may lead to uncertain dependency conflicts.\n\nSo, currently, if you need to input multi-language text, you have to manually convert it into English characters to complete this process. Then, at the beginning of the corresponding `lyrics`, input the abbreviation of the corresponding language code.\n\nFor example, for Chinese, use `[zh]`, for Japanese use `[ja]`, for Korean use `[ko]`, and so on. For specific language input, please check the examples in the instructions. \n\nFor example, Chinese `[zh]`, Japanese `[ja]`, Korean `[ko]`, etc.\n\nExample:\n\n```\n[verse]\n\n[zh]wo3zou3guo4shen1ye4de5jie1dao4\n[zh]leng3feng1chui1luan4si1nian4de5piao4liang4wai4tao4\n[zh]ni3de5wei1xiao4xiang4xing1guang1hen3xuan4yao4\n[zh]zhao4liang4le5wo3gu1du2de5mei3fen1mei3miao3\n\n[chorus]\n\n[verse]​\n[ko]hamkke si-kkeuleo-un sesang-ui sodong-eul pihae​\n[ko]honja ogsang-eseo dalbich-ui eolyeompus-ileul balaboda​\n[ko]niga salang-eun lideum-i ganghan eum-ag gatdago malhaess-eo​\n[ko]han ta han tamada ma-eum-ui ondoga eolmana heojeonhanji ijge hae\n\n[bridge]\n[es]cantar mi anhelo por ti sin ocultar\n[es]como poesía y pintura, lleno de anhelo indescifrable\n[es]tu sombra es tan terca como el viento, inborrable\n[es]persiguiéndote en vuelo, brilla como cruzar una mar de nubes\n\n[chorus]\n[fr]que tu sois le vent qui souffle sur ma main\n[fr]un contact chaud comme la douce pluie printanière\n[fr]que tu sois le vent qui s'entoure de mon corps\n[fr]un amour profond qui ne s'éloignera jamais\n\n```\n\n---\n\n### 模型下载\n\n下载下面的模型并保存到 **ComfyUI/models/checkpoints** 文件夹下\n[ace_step_v1_3.5b.safetensors](https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/blob/main/all_in_one/ace_step_v1_3.5b.safetensors)\n\n\n### 多语言支持\n\n目前 ACE-Step V1 多语言的实现是通过将不同语言统一转换为英文字符来实现的,目前在 ComfyUI 中我们并没有实现多语言转换为英文的这一步骤。因为如果需要实现对应转换,则需要增加额外的 ComfyUI 核心依赖,这将可能带来不确定的依赖冲突。\n\n所以目前如果你需要输入多语言,则需要手动转换为英文字符来实现这一过程,然后在对应 `lyrics` 开头输入对应语言代码的缩写。\n\n比如中文`[zh]` 日语 `[ja]` 韩语 `[ko]` 等,具体语言输入请查看说明中的示例\n\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 18, + "type": "VAEDecodeAudio", + "pos": [ + 1080, + 270 + ], + "size": [ + 150.93612670898438, + 46 + ], + "flags": { + "collapsed": false + }, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 122 + }, + { + "name": "vae", + "type": "VAE", + "link": 83 + } + ], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 126, + 127, + 128 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "VAEDecodeAudio" + }, + "widgets_values": [] + }, + { + "id": 60, + "type": "SaveAudio", + "pos": [ + 1260, + 40 + ], + "size": [ + 610, + 112 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 127 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudio" + }, + "widgets_values": [ + "audio/ComfyUI" + ] + }, + { + "id": 61, + "type": "SaveAudioOpus", + "pos": [ + 1260, + 220 + ], + "size": [ + 610, + 136 + ], + "flags": {}, + "order": 16, + "mode": 4, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 128 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudioOpus" + }, + "widgets_values": [ + "audio/ComfyUI", + "128k" + ] + }, + { + "id": 44, + "type": "ConditioningZeroOut", + "pos": [ + 600, + 70 + ], + "size": [ + 197.712890625, + 26 + ], + "flags": { + "collapsed": true + }, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 108 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 120 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "ConditioningZeroOut" + }, + "widgets_values": [] + }, + { + "id": 51, + "type": "ModelSamplingSD3", + "pos": [ + 590, + -40 + ], + "size": [ + 330, + 60 + ], + "flags": { + "collapsed": false + }, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 115 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 113 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 50, + "type": "LatentOperationTonemapReinhard", + "pos": [ + 590, + -160 + ], + "size": [ + 330, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT_OPERATION", + "type": "LATENT_OPERATION", + "links": [ + 114 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LatentOperationTonemapReinhard" + }, + "widgets_values": [ + 1.0000000000000002 + ] + }, + { + "id": 17, + "type": "EmptyAceStepLatentAudio", + "pos": [ + 180, + 50 + ], + "size": [ + 370, + 82 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "EmptyAceStepLatentAudio" + }, + "widgets_values": [ + 120, + 1 + ] + }, + { + "id": 68, + "type": "VAEEncodeAudio", + "pos": [ + 180, + 180 + ], + "size": [ + 370, + 46 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 136 + }, + { + "name": "vae", + "type": "VAE", + "link": 137 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 138 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "VAEEncodeAudio" + }, + "widgets_values": [] + }, + { + "id": 64, + "type": "LoadAudio", + "pos": [ + 180, + 340 + ], + "size": [ + 370, + 140 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 136 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LoadAudio" + }, + "widgets_values": [ + "audio_ace_step_1_t2a_song-1.mp3", + null, + null + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 52, + "type": "KSampler", + "pos": [ + 940, + -40 + ], + "size": [ + 290, + 262 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 121 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 117 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 120 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 138 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 122 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 938549746349002, + "randomize", + 50, + 5, + "euler", + "simple", + 0.30000000000000004 + ] + }, + { + "id": 59, + "type": "SaveAudioMP3", + "pos": [ + 1260, + -160 + ], + "size": [ + 610, + 136 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 126 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudioMP3" + }, + "widgets_values": [ + "audio/ComfyUI", + "V0" + ] + }, + { + "id": 73, + "type": "Note", + "pos": [ + 1260, + 410 + ], + "size": [ + 610, + 90 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "These nodes can save audio in different formats. Currently, all the modes are Bypass. You can enable them as per your needs.\n\n这些节点可以将 audio 保存成不同格式,目前的模式都是 Bypass ,你可以按你的需要来启用" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 14, + "type": "TextEncodeAceStepAudio", + "pos": [ + 590, + 120 + ], + "size": [ + 340, + 500 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 80 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 108, + 117 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "TextEncodeAceStepAudio" + }, + "widgets_values": [ + "anime, cute female vocals, kawaii pop, j-pop, childish, piano, guitar, synthesizer, fast, happy, cheerful, lighthearted", + "[verse]\nフワフワ オミミガ\nユレルヨ カゼノナカ\nキラキラ アオイメ\nミツメル セカイヲ\n\n[verse]\nフワフワ シッポハ\nオオキク ユレルヨ\nキンイロ カミノケ\nナビクヨ カゼノナカ\n\n[verse]\nコンフィーユーアイノ\nマモリビト\nピンクノ セーターデ\nエガオヲ クレルヨ\n\nアオイロ スカートト\nクロイコート キンノモヨウ\nヤサシイ ヒカリガ\nツツムヨ フェネックガール\n\n[verse]\nフワフワ オミミデ\nキコエル ココロノ コエ\nダイスキ フェネックガール\nイツデモ ソバニイルヨ", + 0.9900000000000002 + ] + }, + { + "id": 75, + "type": "MarkdownNote", + "pos": [ + 950, + 410 + ], + "size": [ + 280, + 210 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About Repainting", + "properties": {}, + "widgets_values": [ + "Providing the lyrics of the original song or the modified lyrics is very important for the output of repainting or editing. \n\nAdjust the value of the **denoise** parameter in KSampler. The larger the value, the lower the similarity between the output audio and the original audio.\n\n提供原始歌曲的歌词或者修改后的歌词对于音频编辑的输出是非常重要的,调整 KSampler 中的 denoise 参数的数值,数值越大输出的音频与原始音频相似度越低" + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 80, + 40, + 1, + 14, + 0, + "CLIP" + ], + [ + 83, + 40, + 2, + 18, + 1, + "VAE" + ], + [ + 108, + 14, + 0, + 44, + 0, + "CONDITIONING" + ], + [ + 113, + 51, + 0, + 49, + 0, + "MODEL" + ], + [ + 114, + 50, + 0, + 49, + 1, + "LATENT_OPERATION" + ], + [ + 115, + 40, + 0, + 51, + 0, + "MODEL" + ], + [ + 117, + 14, + 0, + 52, + 1, + "CONDITIONING" + ], + [ + 120, + 44, + 0, + 52, + 2, + "CONDITIONING" + ], + [ + 121, + 49, + 0, + 52, + 0, + "MODEL" + ], + [ + 122, + 52, + 0, + 18, + 0, + "LATENT" + ], + [ + 126, + 18, + 0, + 59, + 0, + "AUDIO" + ], + [ + 127, + 18, + 0, + 60, + 0, + "AUDIO" + ], + [ + 128, + 18, + 0, + 61, + 0, + "AUDIO" + ], + [ + 136, + 64, + 0, + 68, + 0, + "AUDIO" + ], + [ + 137, + 40, + 2, + 68, + 1, + "VAE" + ], + [ + 138, + 68, + 0, + 52, + 3, + "LATENT" + ] + ], + "groups": [ + { + "id": 1, + "title": "Load model here", + "bounding": [ + 170, + -230, + 390, + 180 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Latent", + "bounding": [ + 170, + -30, + 390, + 280 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Adjust the vocal volume", + "bounding": [ + 580, + -230, + 350, + 140 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 6, + "title": "For repainting", + "bounding": [ + 170, + 270, + 390, + 223.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Output", + "bounding": [ + 1250, + -230, + 630, + 760 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.6830134553650705, + "offset": [ + 785.724285521853, + 434.02395631202546 + ] + }, + "frontendVersion": "1.19.9", + "node_versions": { + "comfy-core": "0.3.34", + "ace-step": "06f751d65491c9077fa2bc9b06d2c6f2a90e4c56" + }, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/acestep-official-t2m-v1.jpg b/example_workflows/acestep-official-t2m-v1.jpg new file mode 100644 index 0000000..2e2a3f5 Binary files /dev/null and b/example_workflows/acestep-official-t2m-v1.jpg differ diff --git a/example_workflows/acestep-official-t2m-v1.json b/example_workflows/acestep-official-t2m-v1.json new file mode 100644 index 0000000..8994b58 --- /dev/null +++ b/example_workflows/acestep-official-t2m-v1.json @@ -0,0 +1,841 @@ +{ + "id": "88ac5dad-efd7-40bb-84fe-fbaefdee1fa9", + "revision": 0, + "last_node_id": 73, + "last_link_id": 137, + "nodes": [ + { + "id": 49, + "type": "LatentApplyOperationCFG", + "pos": [ + 940, + -160 + ], + "size": [ + 290, + 50 + ], + "flags": { + "collapsed": false + }, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 113 + }, + { + "name": "operation", + "type": "LATENT_OPERATION", + "link": 114 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 121 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LatentApplyOperationCFG" + }, + "widgets_values": [] + }, + { + "id": 64, + "type": "LoadAudio", + "pos": [ + 180, + 340 + ], + "size": [ + 370, + 140 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 136 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LoadAudio" + }, + "widgets_values": [ + "ace_step_example.flac", + null, + null + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 68, + "type": "VAEEncodeAudio", + "pos": [ + 180, + 180 + ], + "size": [ + 370, + 46 + ], + "flags": {}, + "order": 8, + "mode": 4, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 136 + }, + { + "name": "vae", + "type": "VAE", + "link": 137 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "VAEEncodeAudio" + }, + "widgets_values": [] + }, + { + "id": 40, + "type": "CheckpointLoaderSimple", + "pos": [ + 180, + -160 + ], + "size": [ + 370, + 98 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 115 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 80 + ] + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 83, + 137 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "CheckpointLoaderSimple", + "models": [ + { + "name": "ace_step_v1_3.5b.safetensors", + "url": "https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/resolve/main/all_in_one/ace_step_v1_3.5b.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "ace_step_v1_3.5b.safetensors" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 48, + "type": "MarkdownNote", + "pos": [ + -460, + -200 + ], + "size": [ + 610, + 820 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About ACE Step and Multi-language Input", + "properties": {}, + "widgets_values": [ + "[Tutorial](http://docs.comfy.org/tutorials/audio/ace-step/ace-step-v1) | [教程](http://docs.comfy.org/zh-CN/tutorials/audio/ace-step/ace-step-v1)\n\n\n### Model Download\n\nDownload the following model and save it to the **ComfyUI/models/checkpoints** folder.\n[ace_step_v1_3.5b.safetensors](https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/blob/main/all_in_one/ace_step_v1_3.5b.safetensors)\n\n\n### Multilingual Support\n\nCurrently, the implementation of multi-language support for ACE-Step V1 is achieved by uniformly converting different languages into English characters. At present, in ComfyUI, we haven't implemented the step of converting multi-languages into English. This is because if we need to implement the corresponding conversion, we have to add additional core dependencies of ComfyUI, which may lead to uncertain dependency conflicts.\n\nSo, currently, if you need to input multi-language text, you have to manually convert it into English characters to complete this process. Then, at the beginning of the corresponding `lyrics`, input the abbreviation of the corresponding language code.\n\nFor example, for Chinese, use `[zh]`, for Japanese use `[ja]`, for Korean use `[ko]`, and so on. For specific language input, please check the examples in the instructions. \n\nFor example, Chinese `[zh]`, Japanese `[ja]`, Korean `[ko]`, etc.\n\nExample:\n\n```\n[verse]\n\n[zh]wo3zou3guo4shen1ye4de5jie1dao4\n[zh]leng3feng1chui1luan4si1nian4de5piao4liang4wai4tao4\n[zh]ni3de5wei1xiao4xiang4xing1guang1hen3xuan4yao4\n[zh]zhao4liang4le5wo3gu1du2de5mei3fen1mei3miao3\n\n[chorus]\n\n[verse]​\n[ko]hamkke si-kkeuleo-un sesang-ui sodong-eul pihae​\n[ko]honja ogsang-eseo dalbich-ui eolyeompus-ileul balaboda​\n[ko]niga salang-eun lideum-i ganghan eum-ag gatdago malhaess-eo​\n[ko]han ta han tamada ma-eum-ui ondoga eolmana heojeonhanji ijge hae\n\n[bridge]\n[es]cantar mi anhelo por ti sin ocultar\n[es]como poesía y pintura, lleno de anhelo indescifrable\n[es]tu sombra es tan terca como el viento, inborrable\n[es]persiguiéndote en vuelo, brilla como cruzar una mar de nubes\n\n[chorus]\n[fr]que tu sois le vent qui souffle sur ma main\n[fr]un contact chaud comme la douce pluie printanière\n[fr]que tu sois le vent qui s'entoure de mon corps\n[fr]un amour profond qui ne s'éloignera jamais\n\n```\n\n---\n\n### 模型下载\n\n下载下面的模型并保存到 **ComfyUI/models/checkpoints** 文件夹下\n[ace_step_v1_3.5b.safetensors](https://huggingface.co/Comfy-Org/ACE-Step_ComfyUI_repackaged/blob/main/all_in_one/ace_step_v1_3.5b.safetensors)\n\n\n### 多语言支持\n\n目前 ACE-Step V1 多语言的实现是通过将不同语言统一转换为英文字符来实现的,目前在 ComfyUI 中我们并没有实现多语言转换为英文的这一步骤。因为如果需要实现对应转换,则需要增加额外的 ComfyUI 核心依赖,这将可能带来不确定的依赖冲突。\n\n所以目前如果你需要输入多语言,则需要手动转换为英文字符来实现这一过程,然后在对应 `lyrics` 开头输入对应语言代码的缩写。\n\n比如中文`[zh]` 日语 `[ja]` 韩语 `[ko]` 等,具体语言输入请查看说明中的示例\n\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 18, + "type": "VAEDecodeAudio", + "pos": [ + 1080, + 270 + ], + "size": [ + 150.93612670898438, + 46 + ], + "flags": { + "collapsed": false + }, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 122 + }, + { + "name": "vae", + "type": "VAE", + "link": 83 + } + ], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 126, + 127, + 128 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "VAEDecodeAudio" + }, + "widgets_values": [] + }, + { + "id": 60, + "type": "SaveAudio", + "pos": [ + 1260, + 40 + ], + "size": [ + 610, + 112 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 127 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudio" + }, + "widgets_values": [ + "audio/ComfyUI" + ] + }, + { + "id": 61, + "type": "SaveAudioOpus", + "pos": [ + 1260, + 220 + ], + "size": [ + 610, + 136 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 128 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudioOpus" + }, + "widgets_values": [ + "audio/ComfyUI", + "128k" + ] + }, + { + "id": 73, + "type": "Note", + "pos": [ + 1260, + 410 + ], + "size": [ + 610, + 90 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "These nodes can save audio in different formats. Currently, all the modes are Bypass. You can enable them as per your needs.\n\n这些节点可以将 audio 保存成不同格式,目前的模式都是 Bypass ,你可以按你的需要来启用" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 44, + "type": "ConditioningZeroOut", + "pos": [ + 600, + 70 + ], + "size": [ + 197.712890625, + 26 + ], + "flags": { + "collapsed": true + }, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 108 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 120 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "ConditioningZeroOut" + }, + "widgets_values": [] + }, + { + "id": 51, + "type": "ModelSamplingSD3", + "pos": [ + 590, + -40 + ], + "size": [ + 330, + 60 + ], + "flags": { + "collapsed": false + }, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 115 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 113 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 50, + "type": "LatentOperationTonemapReinhard", + "pos": [ + 590, + -160 + ], + "size": [ + 330, + 58 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT_OPERATION", + "type": "LATENT_OPERATION", + "links": [ + 114 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "LatentOperationTonemapReinhard" + }, + "widgets_values": [ + 1.0000000000000002 + ] + }, + { + "id": 52, + "type": "KSampler", + "pos": [ + 940, + -40 + ], + "size": [ + 290, + 262 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 121 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 117 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 120 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 119 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 122 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 468254064217846, + "randomize", + 50, + 5, + "euler", + "simple", + 1 + ] + }, + { + "id": 14, + "type": "TextEncodeAceStepAudio", + "pos": [ + 590, + 120 + ], + "size": [ + 340, + 500 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 80 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 108, + 117 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "TextEncodeAceStepAudio" + }, + "widgets_values": [ + "anime, soft female vocals, kawaii pop, j-pop, childish, piano, guitar, synthesizer, fast, happy, cheerful, lighthearted\t\n", + "[inst]\n\n[verse]\nふわふわ おみみが\nゆれるよ かぜのなか\nきらきら あおいめ\nみつめる せかいを\n\n[verse]\nふわふわ しっぽは\nおおきく ゆれるよ\nきんいろ かみのけ\nなびくよ かぜのなか\n\n[verse]\nコンフィーユーアイの\nまもりびと\nピンクの セーターで\nえがおを くれるよ\n\nあおいろ スカートと\nくろいコート きんのもよう\nやさしい ひかりが\nつつむよ フェネックガール\n\n[verse]\nふわふわ おみみで\nきこえる こころの こえ\nだいすき フェネックガール\nいつでも そばにいるよ\n\n\n", + 0.9900000000000002 + ] + }, + { + "id": 17, + "type": "EmptyAceStepLatentAudio", + "pos": [ + 180, + 50 + ], + "size": [ + 370, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 119 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.32", + "Node name for S&R": "EmptyAceStepLatentAudio" + }, + "widgets_values": [ + 120, + 1 + ] + }, + { + "id": 59, + "type": "SaveAudioMP3", + "pos": [ + 1260, + -160 + ], + "size": [ + 610, + 136 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 126 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.34", + "Node name for S&R": "SaveAudioMP3" + }, + "widgets_values": [ + "audio/ComfyUI", + "V0" + ] + } + ], + "links": [ + [ + 80, + 40, + 1, + 14, + 0, + "CLIP" + ], + [ + 83, + 40, + 2, + 18, + 1, + "VAE" + ], + [ + 108, + 14, + 0, + 44, + 0, + "CONDITIONING" + ], + [ + 113, + 51, + 0, + 49, + 0, + "MODEL" + ], + [ + 114, + 50, + 0, + 49, + 1, + "LATENT_OPERATION" + ], + [ + 115, + 40, + 0, + 51, + 0, + "MODEL" + ], + [ + 117, + 14, + 0, + 52, + 1, + "CONDITIONING" + ], + [ + 119, + 17, + 0, + 52, + 3, + "LATENT" + ], + [ + 120, + 44, + 0, + 52, + 2, + "CONDITIONING" + ], + [ + 121, + 49, + 0, + 52, + 0, + "MODEL" + ], + [ + 122, + 52, + 0, + 18, + 0, + "LATENT" + ], + [ + 126, + 18, + 0, + 59, + 0, + "AUDIO" + ], + [ + 127, + 18, + 0, + 60, + 0, + "AUDIO" + ], + [ + 128, + 18, + 0, + 61, + 0, + "AUDIO" + ], + [ + 136, + 64, + 0, + 68, + 0, + "AUDIO" + ], + [ + 137, + 40, + 2, + 68, + 1, + "VAE" + ] + ], + "groups": [ + { + "id": 1, + "title": "Load model here", + "bounding": [ + 170, + -230, + 390, + 180 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Latent", + "bounding": [ + 170, + -30, + 390, + 280 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Adjust the vocal volume", + "bounding": [ + 580, + -230, + 350, + 140 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 6, + "title": "For repainting", + "bounding": [ + 170, + 270, + 390, + 223.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Output", + "bounding": [ + 1250, + -230, + 630, + 760 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + -147.02717343600432, + 384.62272311479 + ] + }, + "frontendVersion": "1.19.9", + "node_versions": { + "comfy-core": "0.3.34", + "ace-step": "06f751d65491c9077fa2bc9b06d2c6f2a90e4c56" + }, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/animatediff-video-production-v1.jpg b/example_workflows/animatediff-video-production-v1.jpg new file mode 100644 index 0000000..32e28bf Binary files /dev/null and b/example_workflows/animatediff-video-production-v1.jpg differ diff --git a/example_workflows/animatediff-video-production-v1.json b/example_workflows/animatediff-video-production-v1.json new file mode 100644 index 0000000..71ae391 --- /dev/null +++ b/example_workflows/animatediff-video-production-v1.json @@ -0,0 +1,248 @@ +{ + "last_node_id": 10, + "last_link_id": 12, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "properties": {"Node name for S&R": "CheckpointLoaderSimple"}, + "widgets_values": ["v1-5-pruned-emaonly.safetensors"], + "title": "SD 1.5 Checkpoint Loader", + "outputs": [ + {"name": "MODEL", "type": "MODEL", "links": [1], "slot_index": 0}, + {"name": "CLIP", "type": "CLIP", "links": [2, 3], "slot_index": 1}, + {"name": "VAE", "type": "VAE", "links": [4], "slot_index": 2} + ] + }, + { + "id": 2, + "type": "ADE_LoadAnimateDiffModel", + "pos": [50, 300], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 1, + "mode": 0, + "properties": {"Node name for S&R": "ADE_LoadAnimateDiffModel"}, + "widgets_values": ["mm_sd_v15_v2.ckpt"], + "title": "Load AnimateDiff Motion Module", + "outputs": [ + {"name": "MOTION_MODEL", "type": "MOTION_MODEL_ADE", "links": [5], "slot_index": 0} + ] + }, + { + "id": 3, + "type": "ADE_ApplyAnimateDiffModelSimple", + "pos": [450, 300], + "size": {"0": 315, "1": 100}, + "flags": {}, + "order": 2, + "mode": 0, + "properties": {"Node name for S&R": "ADE_ApplyAnimateDiffModelSimple"}, + "inputs": [ + {"name": "motion_model", "type": "MOTION_MODEL_ADE", "link": 5} + ], + "outputs": [ + {"name": "M_MODELS", "type": "M_MODELS", "links": [6], "slot_index": 0} + ] + }, + { + "id": 4, + "type": "ADE_UseEvolvedSampling", + "pos": [800, 100], + "size": {"0": 315, "1": 100}, + "flags": {}, + "order": 3, + "mode": 0, + "properties": {"Node name for S&R": "ADE_UseEvolvedSampling"}, + "widgets_values": ["sqrt_linear (AnimateDiff)"], + "inputs": [ + {"name": "model", "type": "MODEL", "link": 1}, + {"name": "m_models", "type": "M_MODELS", "link": 6} + ], + "outputs": [ + {"name": "MODEL", "type": "MODEL", "links": [7], "slot_index": 0} + ] + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [450, 500], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 4, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["A person walking through a forest, cinematic movement"], + "title": "API Video Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 2} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [8], "slot_index": 0} + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [450, 750], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 5, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["static, blurry, low quality"], + "title": "API Negative Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 3} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [9], "slot_index": 0} + ] + }, + { + "id": 7, + "type": "EmptyLatentImage", + "pos": [800, 300], + "size": {"0": 315, "1": 100}, + "flags": {}, + "order": 6, + "mode": 0, + "properties": {"Node name for S&R": "EmptyLatentImage"}, + "widgets_values": [512, 512, 16], + "title": "API Latent Config (16 frames)", + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [10], "slot_index": 0} + ] + }, + { + "id": 8, + "type": "KSamplerAdvanced", + "pos": [1150, 100], + "size": {"0": 315, "1": 474}, + "flags": {}, + "order": 7, + "mode": 0, + "properties": {"Node name for S&R": "KSamplerAdvanced"}, + "widgets_values": ["enable", 42, "fixed", 20, 8.0, "euler", "normal", 0, 10000, "disable"], + "title": "AnimateDiff Sampler", + "inputs": [ + {"name": "model", "type": "MODEL", "link": 7}, + {"name": "positive", "type": "CONDITIONING", "link": 8}, + {"name": "negative", "type": "CONDITIONING", "link": 9}, + {"name": "latent_image", "type": "LATENT", "link": 10} + ], + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [11], "slot_index": 0} + ] + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [1500, 100], + "size": {"0": 315, "1": 100}, + "flags": {}, + "order": 8, + "mode": 0, + "properties": {"Node name for S&R": "VAEDecode"}, + "title": "VAE Decode Video", + "inputs": [ + {"name": "samples", "type": "LATENT", "link": 11}, + {"name": "vae", "type": "VAE", "link": 4} + ], + "outputs": [ + {"name": "IMAGE", "type": "IMAGE", "links": [12], "slot_index": 0} + ] + }, + { + "id": 10, + "type": "VHS_VideoCombine", + "pos": [1800, 100], + "size": {"0": 315, "1": 100}, + "flags": {}, + "order": 9, + "mode": 0, + "properties": {"Node name for S&R": "VHS_VideoCombine"}, + "widgets_values": [8, 0, "animatediff_output", "video/h264-mp4", false, true, "yuv420p", 19, true, false], + "title": "Combine Frames", + "inputs": [ + {"name": "images", "type": "IMAGE", "link": 12} + ] + } + ], + "links": [ + [1, 1, 0, 4, 0, "MODEL"], + [2, 1, 1, 5, 0, "CLIP"], + [3, 1, 1, 6, 0, "CLIP"], + [4, 1, 2, 9, 1, "VAE"], + [5, 2, 0, 3, 0, "MOTION_MODEL_ADE"], + [6, 3, 0, 4, 1, "M_MODELS"], + [7, 4, 0, 8, 0, "MODEL"], + [8, 5, 0, 8, 1, "CONDITIONING"], + [9, 6, 0, 8, 2, "CONDITIONING"], + [10, 7, 0, 8, 3, "LATENT"], + [11, 8, 0, 9, 0, "LATENT"], + [12, 9, 0, 10, 0, "IMAGE"] + ], + "extra": { + "workflow_info": { + "name": "AnimateDiff Video Production", + "version": "1.0.0", + "description": "Text-to-video generation using AnimateDiff. Create animated sequences from text prompts with natural motion.", + "category": "advanced", + "tags": [ + "animatediff", + "text-to-video", + "animation", + "advanced", + "production" + ], + "requirements": { + "models": [ + "stable-diffusion-v1-5", + "animatediff-motion-module-v15" + ], + "custom_nodes": [ + "ComfyUI-AnimateDiff-Evolved", + "ComfyUI-VideoHelperSuite" + ], + "vram_min": "12GB" + }, + "parameters": { + "prompt": { + "node_id": 5, + "type": "string", + "required": true, + "description": "Describe action and movement" + }, + "frames": { + "node_id": 7, + "type": "integer", + "default": 16, + "description": "Number of frames (8-32)" + }, + "fps": { + "node_id": 10, + "type": "integer", + "default": 8 + } + }, + "performance": { + "avg_generation_time": "60-90 seconds", + "vram_usage": "~16-20GB", + "output": "16 frames (~2s @ 8fps)" + }, + "use_cases": [ + "Text-to-video animation", + "Character animations", + "Motion graphics", + "Animated storyboards" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/batch-pipeline-production-v1.jpg b/example_workflows/batch-pipeline-production-v1.jpg new file mode 100644 index 0000000..8201ddf Binary files /dev/null and b/example_workflows/batch-pipeline-production-v1.jpg differ diff --git a/example_workflows/batch-pipeline-production-v1.json b/example_workflows/batch-pipeline-production-v1.json new file mode 100644 index 0000000..20a23f1 --- /dev/null +++ b/example_workflows/batch-pipeline-production-v1.json @@ -0,0 +1,247 @@ +{ + "last_node_id": 10, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "properties": {"Node name for S&R": "CheckpointLoaderSimple"}, + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "SDXL Base Loader", + "outputs": [ + {"name": "MODEL", "type": "MODEL", "links": [1], "slot_index": 0}, + {"name": "CLIP", "type": "CLIP", "links": [2, 3], "slot_index": 1}, + {"name": "VAE", "type": "VAE", "links": [4], "slot_index": 2} + ] + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 1, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["A beautiful landscape"], + "title": "API Base Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 2} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [5], "slot_index": 0} + ] + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 2, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["blurry, low quality"], + "title": "API Negative Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 3} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [6], "slot_index": 0} + ] + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [450, 600], + "size": {"0": 315, "1": 106}, + "flags": {}, + "order": 3, + "mode": 0, + "properties": {"Node name for S&R": "EmptyLatentImage"}, + "widgets_values": [1024, 1024, 4], + "title": "API Latent Config (Batch=4)", + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [7], "slot_index": 0} + ] + }, + { + "id": 5, + "type": "KSampler", + "pos": [900, 100], + "size": {"0": 315, "1": 474}, + "flags": {}, + "order": 4, + "mode": 0, + "properties": {"Node name for S&R": "KSampler"}, + "widgets_values": [42, "fixed", 20, 7.0, "euler", "normal", 1], + "title": "Batch Sampler (4 variations)", + "inputs": [ + {"name": "model", "type": "MODEL", "link": 1}, + {"name": "positive", "type": "CONDITIONING", "link": 5}, + {"name": "negative", "type": "CONDITIONING", "link": 6}, + {"name": "latent_image", "type": "LATENT", "link": 7} + ], + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [8], "slot_index": 0} + ] + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1270, 100], + "size": {"0": 210, "1": 46}, + "flags": {}, + "order": 5, + "mode": 0, + "properties": {"Node name for S&R": "VAEDecode"}, + "title": "VAE Decode Batch", + "inputs": [ + {"name": "samples", "type": "LATENT", "link": 8}, + {"name": "vae", "type": "VAE", "link": 4} + ], + "outputs": [ + {"name": "IMAGE", "type": "IMAGE", "links": [9, 10], "slot_index": 0} + ] + }, + { + "id": 7, + "type": "PreviewImage", + "pos": [1530, 100], + "size": {"0": 400, "1": 400}, + "flags": {}, + "order": 6, + "mode": 0, + "properties": {"Node name for S&R": "PreviewImage"}, + "title": "Preview All Variations", + "inputs": [ + {"name": "images", "type": "IMAGE", "link": 9} + ] + }, + { + "id": 8, + "type": "SaveImage", + "pos": [1530, 550], + "size": {"0": 400, "1": 100}, + "flags": {}, + "order": 7, + "mode": 0, + "properties": {"Node name for S&R": "SaveImage"}, + "widgets_values": ["batch_output"], + "title": "API Save All", + "inputs": [ + {"name": "images", "type": "IMAGE", "link": 10} + ] + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 1, 1, 2, 0, "CLIP"], + [3, 1, 1, 3, 0, "CLIP"], + [4, 1, 2, 6, 1, "VAE"], + [5, 2, 0, 5, 1, "CONDITIONING"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "LATENT"], + [8, 5, 0, 6, 0, "LATENT"], + [9, 6, 0, 7, 0, "IMAGE"], + [10, 6, 0, 8, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Batch Pipeline Production", + "version": "1.0.0", + "description": "Batch generation pipeline for multiple variations. Generate 4 images simultaneously with different seeds for rapid iteration using Stable Diffusion XL.", + "category": "advanced", + "tags": [ + "batch", + "multi-generation", + "variations", + "advanced", + "production", + "flux" + ], + "requirements": { + "models": ["stable-diffusion-xl-base-1.0"], + "custom_nodes": [], + "vram_min": "20GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": 2, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A beautiful landscape", + "description": "Text description of desired image" + }, + "negative_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": false, + "default": "blurry, low quality", + "description": "Undesired elements to avoid" + }, + "batch_count": { + "node_id": 4, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 4, + "min": 1, + "max": 8, + "description": "Number of variations to generate (batch size)" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 20, + "min": 15, + "max": 50, + "description": "Number of sampling steps (20-30 recommended for SDXL)" + } + }, + "outputs": { + "images": { + "node_id": 8, + "type": "image", + "format": "PNG", + "count": 4, + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "45-60 seconds for 4 images (20 steps)", + "vram_usage": "~20-24GB (depends on batch size)", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Rapid prototyping with multiple variations", + "Concept exploration and A/B testing", + "Client presentations with options", + "Quick iteration workflows" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/cogvideox-i2v-production-v1.jpg b/example_workflows/cogvideox-i2v-production-v1.jpg new file mode 100644 index 0000000..254f6a4 Binary files /dev/null and b/example_workflows/cogvideox-i2v-production-v1.jpg differ diff --git a/example_workflows/cogvideox-i2v-production-v1.json b/example_workflows/cogvideox-i2v-production-v1.json new file mode 100644 index 0000000..c799981 --- /dev/null +++ b/example_workflows/cogvideox-i2v-production-v1.json @@ -0,0 +1,420 @@ +{ + "last_node_id": 8, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [315, 314], + "widgets_values": ["input_frame.png", "image"], + "title": "API Input Image", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ] + }, + { + "id": 2, + "type": "DownloadAndLoadCogVideoModel", + "pos": [50, 500], + "size": [350, 100], + "widgets_values": ["THUDM/CogVideoX-5b-I2V", "bf16", "disabled", true], + "title": "CogVideoX-5b-I2V Loader", + "flags": {}, + "order": 1, + "mode": 0, + "properties": { + "Node name for S&R": "DownloadAndLoadCogVideoModel" + }, + "outputs": [ + { + "name": "model", + "type": "COGVIDEOMODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "vae", + "type": "VAE", + "links": [3, 10], + "slot_index": 1 + } + ] + }, + { + "id": 7, + "type": "CLIPLoader", + "pos": [50, 650], + "size": [350, 100], + "widgets_values": ["t5xxl_fp16.safetensors", "sd3"], + "title": "T5 CLIP Loader", + "flags": {}, + "order": 2, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPLoader" + }, + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [4, 5], + "slot_index": 0 + } + ] + }, + { + "id": 3, + "type": "CogVideoTextEncode", + "pos": [450, 100], + "size": [400, 200], + "widgets_values": ["Camera movement description, action, scene details", 1, false], + "title": "API Video Prompt (Positive)", + "flags": {}, + "order": 3, + "mode": 0, + "properties": { + "Node name for S&R": "CogVideoTextEncode" + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 4 + } + ], + "outputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + }, + { + "name": "clip", + "type": "CLIP", + "links": null + } + ] + }, + { + "id": 8, + "type": "CogVideoTextEncode", + "pos": [450, 350], + "size": [400, 200], + "widgets_values": ["low quality, blurry, distorted, watermark", 1, true], + "title": "API Video Prompt (Negative)", + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "Node name for S&R": "CogVideoTextEncode" + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 5 + } + ], + "outputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + }, + { + "name": "clip", + "type": "CLIP", + "links": null + } + ] + }, + { + "id": 9, + "type": "CogVideoImageEncode", + "pos": [450, 600], + "size": [315, 100], + "widgets_values": [], + "title": "Encode Input Image", + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "Node name for S&R": "CogVideoImageEncode" + }, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 3 + }, + { + "name": "start_image", + "type": "IMAGE", + "link": 1 + } + ], + "outputs": [ + { + "name": "samples", + "type": "LATENT", + "links": [8], + "slot_index": 0 + } + ] + }, + { + "id": 4, + "type": "CogVideoSampler", + "pos": [900, 100], + "size": [315, 474], + "widgets_values": [49, 50, 6.0, 42, "fixed", "CogVideoXDDIM", 1.0], + "title": "CogVideoX Sampler (6s @ 8fps)", + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "Node name for S&R": "CogVideoSampler" + }, + "inputs": [ + { + "name": "model", + "type": "COGVIDEOMODEL", + "link": 2 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "image_cond_latents", + "type": "LATENT", + "link": 8 + } + ], + "outputs": [ + { + "name": "samples", + "type": "LATENT", + "links": [9], + "slot_index": 0 + } + ] + }, + { + "id": 5, + "type": "CogVideoDecode", + "pos": [1250, 100], + "size": [315, 200], + "widgets_values": [true, 240, 360, 0.25, 0.25], + "title": "VAE Decode Video", + "flags": {}, + "order": 7, + "mode": 0, + "properties": { + "Node name for S&R": "CogVideoDecode" + }, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 10 + }, + { + "name": "samples", + "type": "LATENT", + "link": 9 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [11], + "slot_index": 0 + } + ] + }, + { + "id": 6, + "type": "VHS_VideoCombine", + "pos": [1600, 100], + "size": [315, 200], + "widgets_values": [8, 0, "cogvideox_output", "video/h264-mp4", "yuv420p", 19, true, false], + "title": "Combine Video Frames", + "flags": {}, + "order": 8, + "mode": 0, + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 11 + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ] + } + ], + "links": [ + [1, 1, 0, 9, 1, "IMAGE"], + [2, 2, 0, 4, 0, "COGVIDEOMODEL"], + [3, 2, 1, 9, 0, "VAE"], + [4, 7, 0, 3, 0, "CLIP"], + [5, 7, 0, 8, 0, "CLIP"], + [6, 3, 0, 4, 1, "CONDITIONING"], + [7, 8, 0, 4, 2, "CONDITIONING"], + [8, 9, 0, 4, 3, "LATENT"], + [9, 4, 0, 5, 1, "LATENT"], + [10, 2, 1, 5, 0, "VAE"], + [11, 5, 0, 6, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "CogVideoX Image-to-Video Production", + "version": "1.2.0", + "description": "AI-driven image-to-video using CogVideoX-5b-I2V. Generate 6-second videos (49 frames @ 8fps) from input images with camera movement and action.", + "category": "image-to-video", + "tags": ["cogvideox", "i2v", "video-generation", "production"], + "requirements": { + "models": ["CogVideoX-5b-I2V", "T5-XXL FP16"], + "custom_nodes": ["ComfyUI-VideoHelperSuite", "ComfyUI-CogVideoXWrapper"], + "vram_min": "20GB", + "vram_recommended": "24GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "widget_index": 0, + "type": "image", + "required": true, + "description": "Starting frame for video generation" + }, + "positive_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": true, + "default": "Camera movement description, action, scene details", + "description": "Describe desired camera movement, actions, and scene" + }, + "negative_prompt": { + "node_id": 8, + "widget_index": 0, + "type": "string", + "required": false, + "default": "low quality, blurry, distorted, watermark", + "description": "Undesired elements to avoid" + }, + "num_frames": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 49, + "min": 1, + "max": 1024, + "description": "Number of frames to generate (49 = ~6s @ 8fps)" + }, + "steps": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 50, + "min": 20, + "max": 100, + "description": "Sampling steps (50 recommended for quality)" + }, + "cfg": { + "node_id": 4, + "widget_index": 2, + "type": "float", + "required": false, + "default": 6.0, + "min": 1.0, + "max": 30.0, + "description": "Classifier-free guidance scale" + }, + "seed": { + "node_id": 4, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 42, + "description": "Random seed for reproducibility" + }, + "fps": { + "node_id": 6, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 8, + "description": "Output video framerate" + } + }, + "outputs": { + "video": { + "node_id": 6, + "type": "video", + "format": "MP4 (H.264)", + "resolution": "Based on input image", + "duration": "~6 seconds @ 8fps (49 frames)" + } + }, + "performance": { + "avg_generation_time": "120-180 seconds", + "vram_usage": "~20-22GB", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Animate static images with camera motion", + "Create video loops from single frames", + "Add dynamic movement to product shots", + "Generate cinematic camera movements" + ], + "notes": [ + "CogVideoX-5b-I2V is specifically trained for image-to-video generation", + "Model will download automatically on first use (~10GB)", + "Enable VAE tiling to reduce VRAM usage", + "Higher steps (50-100) improve quality but increase generation time", + "T5-XXL text encoder required - automatically linked from SD3.5" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/controlnet-fusion-production-v1.jpg b/example_workflows/controlnet-fusion-production-v1.jpg new file mode 100644 index 0000000..2281e89 Binary files /dev/null and b/example_workflows/controlnet-fusion-production-v1.jpg differ diff --git a/example_workflows/controlnet-fusion-production-v1.json b/example_workflows/controlnet-fusion-production-v1.json new file mode 100644 index 0000000..faf0b40 --- /dev/null +++ b/example_workflows/controlnet-fusion-production-v1.json @@ -0,0 +1,399 @@ +{ + "last_node_id": 14, + "last_link_id": 18, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "properties": {"Node name for S&R": "CheckpointLoaderSimple"}, + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "SDXL Base Loader", + "outputs": [ + {"name": "MODEL", "type": "MODEL", "links": [1], "slot_index": 0}, + {"name": "CLIP", "type": "CLIP", "links": [2, 3], "slot_index": 1}, + {"name": "VAE", "type": "VAE", "links": [4], "slot_index": 2} + ] + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 1, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["A futuristic city with precise architecture"], + "title": "API Positive Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 2} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [9], "slot_index": 0} + ] + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 2, + "mode": 0, + "properties": {"Node name for S&R": "CLIPTextEncode"}, + "widgets_values": ["blurry, low quality, distorted"], + "title": "API Negative Prompt", + "inputs": [ + {"name": "clip", "type": "CLIP", "link": 3} + ], + "outputs": [ + {"name": "CONDITIONING", "type": "CONDITIONING", "links": [10], "slot_index": 0} + ] + }, + { + "id": 4, + "type": "ControlNetLoader", + "pos": [50, 300], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 3, + "mode": 0, + "properties": {"Node name for S&R": "ControlNetLoader"}, + "widgets_values": ["controlnet-depth-sdxl-1.0.safetensors"], + "title": "Load Depth ControlNet", + "outputs": [ + {"name": "CONTROL_NET", "type": "CONTROL_NET", "links": [7], "slot_index": 0} + ] + }, + { + "id": 5, + "type": "LoadImage", + "pos": [50, 450], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 4, + "mode": 0, + "properties": {"Node name for S&R": "LoadImage"}, + "widgets_values": ["examples/control_depth.png"], + "title": "API Depth Image", + "outputs": [ + {"name": "IMAGE", "type": "IMAGE", "links": [5], "slot_index": 0}, + {"name": "MASK", "type": "MASK", "links": null, "slot_index": 1} + ] + }, + { + "id": 6, + "type": "ControlNetApplyAdvanced", + "pos": [900, 100], + "size": {"0": 315, "1": 186}, + "flags": {}, + "order": 5, + "mode": 0, + "properties": {"Node name for S&R": "ControlNetApplyAdvanced"}, + "widgets_values": [0.8, 0.0, 1.0], + "title": "Apply Depth Control", + "inputs": [ + {"name": "positive", "type": "CONDITIONING", "link": 9}, + {"name": "negative", "type": "CONDITIONING", "link": 10}, + {"name": "control_net", "type": "CONTROL_NET", "link": 7}, + {"name": "image", "type": "IMAGE", "link": 5} + ], + "outputs": [ + {"name": "positive", "type": "CONDITIONING", "links": [11], "slot_index": 0}, + {"name": "negative", "type": "CONDITIONING", "links": [12], "slot_index": 1} + ] + }, + { + "id": 7, + "type": "ControlNetLoader", + "pos": [50, 600], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 6, + "mode": 0, + "properties": {"Node name for S&R": "ControlNetLoader"}, + "widgets_values": ["controlnet-canny-sdxl-1.0.safetensors"], + "title": "Load Canny ControlNet", + "outputs": [ + {"name": "CONTROL_NET", "type": "CONTROL_NET", "links": [8], "slot_index": 0} + ] + }, + { + "id": 8, + "type": "LoadImage", + "pos": [50, 750], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 7, + "mode": 0, + "properties": {"Node name for S&R": "LoadImage"}, + "widgets_values": ["examples/control_canny.png"], + "title": "API Canny Image", + "outputs": [ + {"name": "IMAGE", "type": "IMAGE", "links": [6], "slot_index": 0}, + {"name": "MASK", "type": "MASK", "links": null, "slot_index": 1} + ] + }, + { + "id": 9, + "type": "ControlNetApplyAdvanced", + "pos": [900, 400], + "size": {"0": 315, "1": 186}, + "flags": {}, + "order": 8, + "mode": 0, + "properties": {"Node name for S&R": "ControlNetApplyAdvanced"}, + "widgets_values": [0.6, 0.0, 1.0], + "title": "Apply Canny Control", + "inputs": [ + {"name": "positive", "type": "CONDITIONING", "link": 11}, + {"name": "negative", "type": "CONDITIONING", "link": 12}, + {"name": "control_net", "type": "CONTROL_NET", "link": 8}, + {"name": "image", "type": "IMAGE", "link": 6} + ], + "outputs": [ + {"name": "positive", "type": "CONDITIONING", "links": [13], "slot_index": 0}, + {"name": "negative", "type": "CONDITIONING", "links": [14], "slot_index": 1} + ] + }, + { + "id": 10, + "type": "EmptyLatentImage", + "pos": [450, 600], + "size": {"0": 315, "1": 106}, + "flags": {}, + "order": 9, + "mode": 0, + "properties": {"Node name for S&R": "EmptyLatentImage"}, + "widgets_values": [1024, 1024, 1], + "title": "API Latent Config", + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [15], "slot_index": 0} + ] + }, + { + "id": 11, + "type": "KSampler", + "pos": [1270, 100], + "size": {"0": 315, "1": 474}, + "flags": {}, + "order": 10, + "mode": 0, + "properties": {"Node name for S&R": "KSampler"}, + "widgets_values": [42, "fixed", 30, 7.0, "euler", "normal", 1], + "title": "ControlNet Sampler", + "inputs": [ + {"name": "model", "type": "MODEL", "link": 1}, + {"name": "positive", "type": "CONDITIONING", "link": 13}, + {"name": "negative", "type": "CONDITIONING", "link": 14}, + {"name": "latent_image", "type": "LATENT", "link": 15} + ], + "outputs": [ + {"name": "LATENT", "type": "LATENT", "links": [16], "slot_index": 0} + ] + }, + { + "id": 12, + "type": "VAEDecode", + "pos": [1640, 100], + "size": {"0": 210, "1": 46}, + "flags": {}, + "order": 11, + "mode": 0, + "properties": {"Node name for S&R": "VAEDecode"}, + "title": "VAE Decode", + "inputs": [ + {"name": "samples", "type": "LATENT", "link": 16}, + {"name": "vae", "type": "VAE", "link": 4} + ], + "outputs": [ + {"name": "IMAGE", "type": "IMAGE", "links": [17, 18], "slot_index": 0} + ] + }, + { + "id": 13, + "type": "PreviewImage", + "pos": [1900, 100], + "size": {"0": 400, "1": 400}, + "flags": {}, + "order": 12, + "mode": 0, + "properties": {"Node name for S&R": "PreviewImage"}, + "title": "Preview Result", + "inputs": [ + {"name": "images", "type": "IMAGE", "link": 17} + ] + }, + { + "id": 14, + "type": "SaveImage", + "pos": [1900, 550], + "size": {"0": 400, "1": 100}, + "flags": {}, + "order": 13, + "mode": 0, + "properties": {"Node name for S&R": "SaveImage"}, + "widgets_values": ["controlnet_output"], + "title": "API Save Image", + "inputs": [ + {"name": "images", "type": "IMAGE", "link": 18} + ] + } + ], + "links": [ + [1, 1, 0, 11, 0, "MODEL"], + [2, 1, 1, 2, 0, "CLIP"], + [3, 1, 1, 3, 0, "CLIP"], + [4, 1, 2, 12, 1, "VAE"], + [5, 5, 0, 6, 3, "IMAGE"], + [6, 8, 0, 9, 3, "IMAGE"], + [7, 4, 0, 6, 2, "CONTROL_NET"], + [8, 7, 0, 9, 2, "CONTROL_NET"], + [9, 2, 0, 6, 0, "CONDITIONING"], + [10, 3, 0, 6, 1, "CONDITIONING"], + [11, 6, 0, 9, 0, "CONDITIONING"], + [12, 6, 1, 9, 1, "CONDITIONING"], + [13, 9, 0, 11, 1, "CONDITIONING"], + [14, 9, 1, 11, 2, "CONDITIONING"], + [15, 10, 0, 11, 3, "LATENT"], + [16, 11, 0, 12, 0, "LATENT"], + [17, 12, 0, 13, 0, "IMAGE"], + [18, 12, 0, 14, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "ControlNet Fusion Production", + "version": "1.0.0", + "description": "Multi-ControlNet workflow combining depth and canny edge control for precise composition. Chain multiple control methods for maximum control over generation.", + "category": "advanced", + "tags": [ + "controlnet", + "multi-control", + "depth", + "canny", + "advanced", + "production", + "sdxl" + ], + "requirements": { + "models": [ + "stable-diffusion-xl-base-1.0", + "controlnet-depth-sdxl-1.0", + "controlnet-canny-sdxl-1.0" + ], + "custom_nodes": [], + "vram_min": "16GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": 2, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A futuristic city with precise architecture", + "description": "Text description of desired image" + }, + "negative_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": false, + "default": "blurry, low quality, distorted", + "description": "Undesired elements to avoid" + }, + "depth_image": { + "node_id": 5, + "widget_index": 0, + "type": "string", + "required": true, + "default": "examples/control_depth.png", + "description": "Depth map image for spatial control" + }, + "canny_image": { + "node_id": 8, + "widget_index": 0, + "type": "string", + "required": true, + "default": "examples/control_canny.png", + "description": "Canny edge image for structure control" + }, + "depth_strength": { + "node_id": 6, + "widget_index": 0, + "type": "float", + "required": false, + "default": 0.8, + "min": 0.0, + "max": 2.0, + "description": "Strength of depth control (0.0-2.0)" + }, + "canny_strength": { + "node_id": 9, + "widget_index": 0, + "type": "float", + "required": false, + "default": 0.6, + "min": 0.0, + "max": 2.0, + "description": "Strength of canny edge control (0.0-2.0)" + }, + "steps": { + "node_id": 11, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 30, + "min": 20, + "max": 50, + "description": "Number of sampling steps (30-40 recommended for ControlNet)" + }, + "seed": { + "node_id": 11, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + } + }, + "outputs": { + "images": { + "node_id": 14, + "type": "image", + "format": "PNG", + "count": 1, + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "50-70 seconds (30 steps)", + "vram_usage": "~18-22GB (dual ControlNet + SDXL)", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Architectural visualization with precise control", + "Product renders with exact composition", + "Character poses with depth and edge guidance", + "Complex scene generation with multiple constraints" + ], + "notes": [ + "Example control images provided in examples/ directory", + "Depth map: Grayscale image where brightness = distance from camera", + "Canny edges: White edges on black background", + "Adjust control strengths to balance control vs. creativity", + "Higher steps (30-40) recommended for best quality with ControlNet" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/diffrhythm-full-length-t2m-v1.jpg b/example_workflows/diffrhythm-full-length-t2m-v1.jpg new file mode 100644 index 0000000..4294c2b Binary files /dev/null and b/example_workflows/diffrhythm-full-length-t2m-v1.jpg differ diff --git a/example_workflows/diffrhythm-full-length-t2m-v1.json b/example_workflows/diffrhythm-full-length-t2m-v1.json new file mode 100644 index 0000000..85db7d4 --- /dev/null +++ b/example_workflows/diffrhythm-full-length-t2m-v1.json @@ -0,0 +1,130 @@ +{ + "last_node_id": 3, + "last_link_id": 2, + "nodes": [ + { + "id": 1, + "type": "DiffRhythmRun", + "pos": [100, 100], + "size": [400, 400], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [1, 2] + } + ], + "properties": { + "Node name for S&R": "DiffRhythmRun" + }, + "widgets_values": [ + "cfm_full_model.pt", + "Cinematic orchestral piece with soaring strings, powerful brass, and emotional piano melodies building to an epic crescendo", + true, + "euler", + 30, + 4, + "quality", + 123, + "randomize", + false, + "[-1, 20], [60, -1]" + ], + "title": "DiffRhythm Full-Length Text-to-Music (4m45s)" + }, + { + "id": 2, + "type": "PreviewAudio", + "pos": [600, 100], + "size": [300, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "PreviewAudio" + }, + "title": "Preview Audio" + }, + { + "id": 3, + "type": "SaveAudio", + "pos": [600, 250], + "size": [300, 100], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 2 + } + ], + "properties": { + "Node name for S&R": "SaveAudio" + }, + "widgets_values": [ + "diffrhythm_full_output" + ], + "title": "Save Audio" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"], + [2, 1, 0, 3, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "DiffRhythm Full-Length Text-to-Music v1", + "description": "Full-length music generation using DiffRhythm Full (4 minutes 45 seconds)", + "version": "1.0.0", + "author": "valknar@pivoine.art", + "category": "text-to-music", + "tags": ["diffrhythm", "music-generation", "text-to-music", "full-length", "4m45s"], + "requirements": { + "custom_nodes": ["ComfyUI_DiffRhythm"], + "models": ["ASLP-lab/DiffRhythm-full", "ASLP-lab/DiffRhythm-vae", "OpenMuQ/MuQ-MuLan-large", "OpenMuQ/MuQ-large-msd-iter", "FacebookAI/xlm-roberta-base"], + "vram_min": "16GB", + "vram_recommended": "20GB", + "system_deps": ["espeak-ng"] + }, + "usage": { + "model": "cfm_full_model.pt (DiffRhythm Full - 4m45s/285s generation)", + "style_prompt": "Detailed text description of the desired full-length music composition", + "unload_model": "Boolean to unload model after generation (default: true)", + "odeint_method": "ODE solver: euler, midpoint, rk4, implicit_adams (default: euler)", + "steps": "Number of diffusion steps: 1-100 (default: 30)", + "cfg": "Classifier-free guidance scale: 1-10 (default: 4)", + "quality_or_speed": "Generation mode: quality or speed (default: quality for full-length)", + "seed": "Random seed for reproducibility (default: 123)", + "edit": "Enable segment editing mode (default: false)", + "edit_segments": "Segments to edit when edit=true" + }, + "performance": { + "generation_time": "~60-90 seconds on RTX 4090", + "vram_usage": "~16GB during generation", + "note": "Significantly faster than real-time music generation" + }, + "notes": [ + "This workflow uses DiffRhythm Full for 4 minute 45 second music generation", + "Best for complete song compositions with intro, development, and outro", + "All parameters except model and style_prompt are optional", + "Supports complex, multi-part compositions", + "Can optionally connect MultiLineLyricsDR node for lyrics input" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/diffrhythm-reference-based-v1.jpg b/example_workflows/diffrhythm-reference-based-v1.jpg new file mode 100644 index 0000000..4e52b49 Binary files /dev/null and b/example_workflows/diffrhythm-reference-based-v1.jpg differ diff --git a/example_workflows/diffrhythm-reference-based-v1.json b/example_workflows/diffrhythm-reference-based-v1.json new file mode 100644 index 0000000..efe8b93 --- /dev/null +++ b/example_workflows/diffrhythm-reference-based-v1.json @@ -0,0 +1,164 @@ +{ + "last_node_id": 4, + "last_link_id": 3, + "nodes": [ + { + "id": 1, + "type": "LoadAudio", + "pos": [100, 100], + "size": [300, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [1] + } + ], + "properties": { + "Node name for S&R": "LoadAudio" + }, + "widgets_values": [ + "reference_audio.wav" + ], + "title": "Load Reference Audio" + }, + { + "id": 2, + "type": "DiffRhythmRun", + "pos": [500, 100], + "size": [400, 450], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "style_audio_or_edit_song", + "type": "AUDIO", + "link": 1 + } + ], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [2, 3] + } + ], + "properties": { + "Node name for S&R": "DiffRhythmRun" + }, + "widgets_values": [ + "cfm_model_v1_2.pt", + "Energetic rock music with driving guitar riffs and powerful drums", + true, + "euler", + 30, + 5, + "speed", + 456, + "randomize", + false, + "[-1, 20], [60, -1]" + ], + "title": "DiffRhythm Reference-Based Generation" + }, + { + "id": 3, + "type": "PreviewAudio", + "pos": [1000, 100], + "size": [300, 100], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 2 + } + ], + "properties": { + "Node name for S&R": "PreviewAudio" + }, + "title": "Preview Generated Audio" + }, + { + "id": 4, + "type": "SaveAudio", + "pos": [1000, 250], + "size": [300, 100], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 3 + } + ], + "properties": { + "Node name for S&R": "SaveAudio" + }, + "widgets_values": [ + "diffrhythm_reference_output" + ], + "title": "Save Audio" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"], + [2, 2, 0, 3, 0, "AUDIO"], + [3, 2, 0, 4, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "DiffRhythm Reference-Based Generation v1", + "description": "Generate new music based on a reference audio file while following text prompt guidance", + "version": "1.0.0", + "author": "valknar@pivoine.art", + "category": "text-to-music", + "tags": ["diffrhythm", "music-generation", "reference-based", "style-transfer"], + "requirements": { + "custom_nodes": ["ComfyUI_DiffRhythm"], + "models": ["ASLP-lab/DiffRhythm-1_2", "ASLP-lab/DiffRhythm-vae", "OpenMuQ/MuQ-MuLan-large", "OpenMuQ/MuQ-large-msd-iter", "FacebookAI/xlm-roberta-base"], + "vram_min": "14GB", + "vram_recommended": "18GB", + "system_deps": ["espeak-ng"] + }, + "usage": { + "reference_audio": "Path to reference audio file (WAV, MP3, or other supported formats)", + "model": "cfm_model_v1_2.pt (DiffRhythm 1.2)", + "style_prompt": "Text description guiding the style and characteristics of generated music", + "unload_model": "Boolean to unload model after generation (default: true)", + "odeint_method": "ODE solver: euler, midpoint, rk4, implicit_adams (default: euler)", + "steps": "Number of diffusion steps: 1-100 (default: 30)", + "cfg": "Classifier-free guidance scale: 1-10 (default: 5 for reference-based)", + "quality_or_speed": "Generation mode: quality or speed (default: speed)", + "seed": "Random seed for reproducibility (default: 456)", + "edit": "Enable segment editing mode (default: false)", + "edit_segments": "Segments to edit when edit=true" + }, + "use_cases": [ + "Style transfer: Apply the style of reference music to new prompt", + "Variations: Create variations of existing compositions", + "Genre transformation: Transform music to different genre while keeping structure", + "Mood adaptation: Change the mood/emotion while maintaining musical elements" + ], + "notes": [ + "This workflow combines reference audio with text prompt guidance", + "The reference audio is connected to the style_audio_or_edit_song input", + "Higher cfg values (7-10) = closer adherence to both prompt and reference", + "Lower cfg values (2-4) = more creative interpretation", + "Reference audio should ideally be similar duration to target (95s for cfm_model_v1_2.pt)", + "Can use any format supported by ComfyUI's LoadAudio node" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/diffrhythm-simple-t2m-v1.jpg b/example_workflows/diffrhythm-simple-t2m-v1.jpg new file mode 100644 index 0000000..4a2b270 Binary files /dev/null and b/example_workflows/diffrhythm-simple-t2m-v1.jpg differ diff --git a/example_workflows/diffrhythm-simple-t2m-v1.json b/example_workflows/diffrhythm-simple-t2m-v1.json new file mode 100644 index 0000000..3f422cb --- /dev/null +++ b/example_workflows/diffrhythm-simple-t2m-v1.json @@ -0,0 +1,125 @@ +{ + "last_node_id": 3, + "last_link_id": 2, + "nodes": [ + { + "id": 1, + "type": "DiffRhythmRun", + "pos": [100, 100], + "size": [400, 400], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [1, 2] + } + ], + "properties": { + "Node name for S&R": "DiffRhythmRun" + }, + "widgets_values": [ + "cfm_model_v1_2.pt", + "Upbeat electronic dance music with energetic beats and synthesizer melodies", + true, + "euler", + 30, + 4, + "speed", + 42, + "randomize", + false, + "[-1, 20], [60, -1]" + ], + "title": "DiffRhythm Text-to-Music (95s)" + }, + { + "id": 2, + "type": "PreviewAudio", + "pos": [600, 100], + "size": [300, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "PreviewAudio" + }, + "title": "Preview Audio" + }, + { + "id": 3, + "type": "SaveAudio", + "pos": [600, 250], + "size": [300, 100], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 2 + } + ], + "properties": { + "Node name for S&R": "SaveAudio" + }, + "widgets_values": [ + "diffrhythm_output" + ], + "title": "Save Audio" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"], + [2, 1, 0, 3, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "DiffRhythm Simple Text-to-Music v1", + "description": "Basic text-to-music generation using DiffRhythm 1.2 (95 seconds)", + "version": "1.0.0", + "author": "valknar@pivoine.art", + "category": "text-to-music", + "tags": ["diffrhythm", "music-generation", "text-to-music", "95s"], + "requirements": { + "custom_nodes": ["ComfyUI_DiffRhythm"], + "models": ["ASLP-lab/DiffRhythm-1_2", "ASLP-lab/DiffRhythm-vae", "OpenMuQ/MuQ-MuLan-large", "OpenMuQ/MuQ-large-msd-iter", "FacebookAI/xlm-roberta-base"], + "vram_min": "12GB", + "vram_recommended": "16GB", + "system_deps": ["espeak-ng"] + }, + "usage": { + "model": "cfm_model_v1_2.pt (DiffRhythm 1.2 - 95s generation)", + "style_prompt": "Text description of the desired music style, mood, and instruments", + "unload_model": "Boolean to unload model after generation (default: true)", + "odeint_method": "ODE solver: euler, midpoint, rk4, implicit_adams (default: euler)", + "steps": "Number of diffusion steps: 1-100 (default: 30)", + "cfg": "Classifier-free guidance scale: 1-10 (default: 4)", + "quality_or_speed": "Generation mode: quality or speed (default: speed)", + "seed": "Random seed for reproducibility (default: 42)", + "edit": "Enable segment editing mode (default: false)", + "edit_segments": "Segments to edit when edit=true (default: [-1, 20], [60, -1])" + }, + "notes": [ + "This workflow uses DiffRhythm 1.2 for 95-second music generation", + "All parameters except model and style_prompt are optional", + "Supports English and Chinese text prompts", + "Generation time: ~30-60 seconds on RTX 4090", + "Can optionally connect MultiLineLyricsDR node for lyrics input" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/face-upscale-production-v1.jpg b/example_workflows/face-upscale-production-v1.jpg new file mode 100644 index 0000000..07e88e2 Binary files /dev/null and b/example_workflows/face-upscale-production-v1.jpg differ diff --git a/example_workflows/face-upscale-production-v1.json b/example_workflows/face-upscale-production-v1.json new file mode 100644 index 0000000..c78589e --- /dev/null +++ b/example_workflows/face-upscale-production-v1.json @@ -0,0 +1,185 @@ +{ + "last_node_id": 5, + "last_link_id": 4, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": ["input_portrait.png", "image"], + "title": "API Input Portrait" + }, + { + "id": 2, + "type": "UpscaleModelLoader", + "pos": [50, 400], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [2], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UpscaleModelLoader" + }, + "widgets_values": ["RealESRGAN_x2.pth"], + "title": "Face Upscale Model (2x)" + }, + { + "id": 3, + "type": "ImageUpscaleWithModel", + "pos": [450, 100], + "size": [315, 100], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 2 + }, + { + "name": "image", + "type": "IMAGE", + "link": 1 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [3, 4], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ImageUpscaleWithModel" + }, + "title": "Upscale Portrait (2x)" + }, + { + "id": 4, + "type": "PreviewImage", + "pos": [800, 100], + "size": [315, 100], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 3 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Enhanced" + }, + { + "id": 5, + "type": "SaveImage", + "pos": [800, 400], + "size": [315, 100], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 4 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["face_upscale_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 3, 1, "IMAGE"], + [2, 2, 0, 3, 0, "UPSCALE_MODEL"], + [3, 3, 0, 4, 0, "IMAGE"], + [4, 3, 0, 5, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Face Upscale Production", + "version": "1.1.0", + "description": "Portrait-focused upscaling using RealESRGAN x2. Simplified workflow optimized for face enhancement. For advanced face detection with FaceDetailer, additional nodes are required.", + "category": "upscaling", + "tags": ["face-upscale", "portrait", "realesrgan", "production"], + "requirements": { + "models": ["RealESRGAN"], + "custom_nodes": [], + "vram_min": "8GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "type": "image", + "required": true, + "description": "Portrait image to upscale" + }, + "model": { + "node_id": 2, + "widget_index": 0, + "type": "string", + "default": "RealESRGAN_x2.pth", + "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"], + "description": "Upscale model (x2 recommended for portraits)" + } + }, + "performance": { + "avg_generation_time": "5-15 seconds", + "vram_usage": "~6-8GB" + }, + "use_cases": [ + "Portrait enhancement", + "Professional headshots", + "Face restoration", + "ID photo upscaling" + ], + "notes": [ + "This is a simplified version using basic upscaling", + "For advanced face detection, use FaceDetailer from Impact-Pack", + "FaceDetailer requires: BBOX detector, SDXL checkpoint, CLIP conditioning", + "Current version optimized for speed and simplicity" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/flux-dev-t2i-production-v1.jpg b/example_workflows/flux-dev-t2i-production-v1.jpg new file mode 100644 index 0000000..80f84f6 Binary files /dev/null and b/example_workflows/flux-dev-t2i-production-v1.jpg differ diff --git a/example_workflows/flux-dev-t2i-production-v1.json b/example_workflows/flux-dev-t2i-production-v1.json new file mode 100644 index 0000000..c8ff980 --- /dev/null +++ b/example_workflows/flux-dev-t2i-production-v1.json @@ -0,0 +1,362 @@ +{ + "last_node_id": 9, + "last_link_id": 13, + "nodes": [ + { + "id": 1, + "type": "UNETLoader", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UNETLoader" + }, + "widgets_values": ["flux1-dev.safetensors", "default"], + "title": "FLUX Dev UNET Loader" + }, + { + "id": 2, + "type": "DualCLIPLoader", + "pos": [50, 250], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [2], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "DualCLIPLoader" + }, + "widgets_values": ["t5xxl_fp16.safetensors", "clip_l.safetensors", "flux"], + "title": "FLUX CLIP Loader" + }, + { + "id": 3, + "type": "CLIPTextEncodeFlux", + "pos": [450, 100], + "size": [400, 250], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [3, 8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncodeFlux" + }, + "widgets_values": [ + "A beautiful mountain landscape at sunset, highly detailed, professional photography, cinematic lighting, 8k ultra HD", + "A beautiful mountain landscape at sunset, highly detailed, professional photography, cinematic lighting, 8k ultra HD", + 3.5 + ], + "title": "API Positive Prompt" + }, + { + "id": 9, + "type": "ConditioningZeroOut", + "pos": [450, 400], + "size": [315, 60], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 8 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ConditioningZeroOut" + }, + "title": "Empty Negative Conditioning" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [450, 500], + "size": [315, 106], + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [4], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "API Latent Image Config" + }, + { + "id": 5, + "type": "KSampler", + "pos": [900, 100], + "size": [315, 474], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 3 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 9 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 4 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [42, "fixed", 20, 1.0, "euler", "normal", 1.0], + "title": "FLUX Dev Sampler (20 steps)" + }, + { + "id": 6, + "type": "VAELoader", + "pos": [900, 600], + "size": [315, 60], + "flags": {}, + "order": 6, + "mode": 0, + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAELoader" + }, + "widgets_values": ["ae.safetensors"], + "title": "FLUX VAE Loader" + }, + { + "id": 7, + "type": "VAEDecode", + "pos": [1270, 100], + "size": [210, 46], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 5 + }, + { + "name": "vae", + "type": "VAE", + "link": 6 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 8, + "type": "SaveImage", + "pos": [1530, 100], + "size": [400, 100], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 7 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["flux_dev_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 2, 0, 3, 0, "CLIP"], + [3, 3, 0, 5, 1, "CONDITIONING"], + [4, 4, 0, 5, 3, "LATENT"], + [5, 5, 0, 7, 0, "LATENT"], + [6, 6, 0, 7, 1, "VAE"], + [7, 7, 0, 8, 0, "IMAGE"], + [8, 3, 0, 9, 0, "CONDITIONING"], + [9, 9, 0, 5, 2, "CONDITIONING"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "FLUX Dev Text-to-Image Production", + "version": "1.2.0", + "description": "High-quality text-to-image generation using FLUX.1-dev (20-50 steps). Optimized for final production outputs with excellent detail and coherence.", + "category": "text-to-image", + "tags": ["flux", "dev", "high-quality", "production", "t2i"], + "requirements": { + "models": ["FLUX.1-dev", "CLIP-L", "T5-XXL FP16"], + "custom_nodes": [], + "vram_min": "20GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A beautiful mountain landscape at sunset", + "description": "Text description of desired image" + }, + "width": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image width in pixels" + }, + "height": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image height in pixels" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 20, + "min": 10, + "max": 50, + "description": "Number of sampling steps (20-50 recommended for FLUX Dev)" + }, + "guidance": { + "node_id": 3, + "widget_index": 2, + "type": "float", + "required": false, + "default": 3.5, + "min": 1.0, + "max": 10.0, + "description": "Guidance scale (3.5 recommended for FLUX)" + } + }, + "outputs": { + "image": { + "node_id": 8, + "type": "image", + "format": "PNG", + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "25-35 seconds (20 steps), 60-75 seconds (50 steps)", + "vram_usage": "~20-22GB", + "gpu_utilization": "95-100%" + }, + "notes": [ + "FLUX uses UNETLoader instead of CheckpointLoader", + "DualCLIPLoader loads both T5-XXL and CLIP-L text encoders", + "CLIPTextEncodeFlux is FLUX-specific text encoder", + "No negative prompt for FLUX - guidance is handled differently", + "CFG scale of 1.0 recommended, guidance in text encoder" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/flux-schnell-t2i-production-v1.jpg b/example_workflows/flux-schnell-t2i-production-v1.jpg new file mode 100644 index 0000000..84b7ece Binary files /dev/null and b/example_workflows/flux-schnell-t2i-production-v1.jpg differ diff --git a/example_workflows/flux-schnell-t2i-production-v1.json b/example_workflows/flux-schnell-t2i-production-v1.json new file mode 100644 index 0000000..448b888 --- /dev/null +++ b/example_workflows/flux-schnell-t2i-production-v1.json @@ -0,0 +1,363 @@ +{ + "last_node_id": 9, + "last_link_id": 9, + "nodes": [ + { + "id": 1, + "type": "UNETLoader", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UNETLoader" + }, + "widgets_values": ["flux1-schnell.safetensors", "default"], + "title": "FLUX Schnell UNET Loader" + }, + { + "id": 2, + "type": "DualCLIPLoader", + "pos": [50, 250], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [2], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "DualCLIPLoader" + }, + "widgets_values": ["t5xxl_fp16.safetensors", "clip_l.safetensors", "flux"], + "title": "FLUX CLIP Loader" + }, + { + "id": 3, + "type": "CLIPTextEncodeFlux", + "pos": [450, 100], + "size": [400, 250], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [3, 8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncodeFlux" + }, + "widgets_values": [ + "A beautiful mountain landscape at sunset, highly detailed, cinematic lighting, 8k", + "A beautiful mountain landscape at sunset, highly detailed, cinematic lighting, 8k", + 3.5 + ], + "title": "API Positive Prompt" + }, + { + "id": 9, + "type": "ConditioningZeroOut", + "pos": [450, 400], + "size": [315, 60], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 8 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ConditioningZeroOut" + }, + "title": "Empty Negative Conditioning" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [450, 500], + "size": [315, 106], + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [4], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "API Latent Image Config" + }, + { + "id": 5, + "type": "KSampler", + "pos": [900, 100], + "size": [315, 474], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 3 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 9 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 4 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [42, "fixed", 4, 1.0, "euler", "normal", 1.0], + "title": "FLUX Schnell Sampler (4 steps)" + }, + { + "id": 6, + "type": "VAELoader", + "pos": [900, 600], + "size": [315, 60], + "flags": {}, + "order": 6, + "mode": 0, + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAELoader" + }, + "widgets_values": ["ae.safetensors"], + "title": "FLUX VAE Loader" + }, + { + "id": 7, + "type": "VAEDecode", + "pos": [1270, 100], + "size": [210, 46], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 5 + }, + { + "name": "vae", + "type": "VAE", + "link": 6 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 8, + "type": "SaveImage", + "pos": [1530, 100], + "size": [400, 100], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 7 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["flux_schnell_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 2, 0, 3, 0, "CLIP"], + [3, 3, 0, 5, 1, "CONDITIONING"], + [4, 4, 0, 5, 3, "LATENT"], + [5, 5, 0, 7, 0, "LATENT"], + [6, 6, 0, 7, 1, "VAE"], + [7, 7, 0, 8, 0, "IMAGE"], + [8, 3, 0, 9, 0, "CONDITIONING"], + [9, 9, 0, 5, 2, "CONDITIONING"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "FLUX Schnell Text-to-Image Production", + "version": "1.2.0", + "description": "Fast text-to-image generation using FLUX.1-schnell (4 steps). Optimized for rapid prototyping and iteration.", + "category": "text-to-image", + "tags": ["flux", "schnell", "fast", "production", "t2i"], + "requirements": { + "models": ["FLUX.1-schnell", "CLIP-L", "T5-XXL FP16"], + "custom_nodes": [], + "vram_min": "16GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A beautiful mountain landscape at sunset", + "description": "Text description of desired image" + }, + "width": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image width in pixels" + }, + "height": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image height in pixels" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 4, + "min": 1, + "max": 10, + "description": "Number of sampling steps (4 recommended for FLUX Schnell)" + }, + "guidance": { + "node_id": 3, + "widget_index": 2, + "type": "float", + "required": false, + "default": 3.5, + "min": 1.0, + "max": 10.0, + "description": "Guidance scale (3.5 recommended for FLUX)" + } + }, + "outputs": { + "image": { + "node_id": 8, + "type": "image", + "format": "PNG", + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "5-8 seconds (4 steps)", + "vram_usage": "~16-18GB", + "gpu_utilization": "95-100%" + }, + "notes": [ + "FLUX uses UNETLoader instead of CheckpointLoader", + "DualCLIPLoader loads both T5-XXL and CLIP-L text encoders", + "CLIPTextEncodeFlux is FLUX-specific text encoder", + "No negative prompt for FLUX - guidance is handled differently", + "CFG scale of 1.0 recommended, guidance in text encoder", + "Schnell is optimized for 4 steps - fastest FLUX variant" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/i2v_hunyuan15-i2v-720p.jpg b/example_workflows/i2v_hunyuan15-i2v-720p.jpg new file mode 100644 index 0000000..5dd98c6 Binary files /dev/null and b/example_workflows/i2v_hunyuan15-i2v-720p.jpg differ diff --git a/example_workflows/i2v_hunyuan15-i2v-720p.json b/example_workflows/i2v_hunyuan15-i2v-720p.json new file mode 100644 index 0000000..248b036 --- /dev/null +++ b/example_workflows/i2v_hunyuan15-i2v-720p.json @@ -0,0 +1,2528 @@ +{ + "id": "ecc20583-98c5-4707-83f4-631b49a2bf0b", + "revision": 0, + "last_node_id": 141, + "last_link_id": 343, + "nodes": [ + { + "id": 81, + "type": "CLIPVisionLoader", + "pos": [ + -620, + 450 + ], + "size": [ + 350, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [ + 225 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPVisionLoader", + "models": [ + { + "name": "sigclip_vision_patch14_384.safetensors", + "url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors", + "directory": "clip_vision" + } + ] + }, + "widgets_values": [ + "sigclip_vision_patch14_384.safetensors" + ] + }, + { + "id": 11, + "type": "DualCLIPLoader", + "pos": [ + -620, + 180 + ], + "size": [ + 350, + 130 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 205, + 240 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "DualCLIPLoader", + "models": [ + { + "name": "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors", + "directory": "text_encoders" + }, + { + "name": "byt5_small_glyphxl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/byt5_small_glyphxl_fp16.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "byt5_small_glyphxl_fp16.safetensors", + "hunyuan_video_15", + "default" + ] + }, + { + "id": 108, + "type": "LatentUpscaleModelLoader", + "pos": [ + -620, + 1670 + ], + "size": [ + 470, + 70 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 274 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "LatentUpscaleModelLoader", + "models": [ + { + "name": "hunyuanvideo15_latent_upsampler_1080p.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/latent_upscale_models/hunyuanvideo15_latent_upsampler_1080p.safetensors", + "directory": "latent_upscale_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo15_latent_upsampler_1080p.safetensors" + ] + }, + { + "id": 111, + "type": "UNETLoader", + "pos": [ + -620, + 1540 + ], + "size": [ + 470, + 82 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 286 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "default" + ] + }, + { + "id": 101, + "type": "CreateVideo", + "pos": [ + 640, + 60 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 308 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 269 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 79, + "type": "CLIPVisionEncode", + "pos": [ + -610, + 960 + ], + "size": [ + 290.390625, + 78 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 225 + }, + { + "name": "image", + "type": "IMAGE", + "link": 219 + } + ], + "outputs": [ + { + "name": "CLIP_VISION_OUTPUT", + "type": "CLIP_VISION_OUTPUT", + "links": [ + 217, + 299 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPVisionEncode" + }, + "widgets_values": [ + "center" + ] + }, + { + "id": 113, + "type": "HunyuanVideo15SuperResolution", + "pos": [ + -570, + 2210 + ], + "size": [ + 370, + 170 + ], + "flags": {}, + "order": 36, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 295 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 296 + }, + { + "name": "latent", + "type": "LATENT", + "link": 280 + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": 301 + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 300 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": 299 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 330 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 331 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 327 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "HunyuanVideo15SuperResolution" + }, + "widgets_values": [ + 0.7 + ] + }, + { + "id": 93, + "type": "CLIPTextEncode", + "pos": [ + -220, + 260 + ], + "size": [ + 422.84503173828125, + 200 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 240 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 246, + 296, + 342 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 114, + "type": "CreateVideo", + "pos": [ + 900, + 1710 + ], + "size": [ + 270, + 80 + ], + "flags": {}, + "order": 43, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 309 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 292 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 10, + "type": "VAELoader", + "pos": [ + -620, + 350 + ], + "size": [ + 350, + 60 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 206, + 224, + 290, + 301, + 306, + 307 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "hunyuanvideo15_vae_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/vae/hunyuanvideo15_vae_fp16.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "hunyuanvideo15_vae_fp16.safetensors" + ] + }, + { + "id": 104, + "type": "MarkdownNote", + "pos": [ + -1220, + 10 + ], + "size": [ + 560, + 520 + ], + "flags": { + "collapsed": false + }, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model links", + "properties": {}, + "widgets_values": [ + "\n\n## Report issue\n\nIf you found any issues when running this workflow, [report template issue here](https://github.com/Comfy-Org/workflow_templates/issues)\n\n## Model links\n\n[HunyuanVideo_1.5_repackaged](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/tree/main/split_files)\n\n**text_encoders**\n\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n- [byt5_small_glyphxl_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/byt5_small_glyphxl_fp16.safetensors)\n\n**clip_vision**\n\n- [sigclip_vision_patch14_384.safetensors](https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors)\n\n**diffusion_models**\n\n- [hunyuanvideo1.5_720p_i2v_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_720p_i2v_fp16.safetensors)\n\n**vae**\n\n- [hunyuanvideo15_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/vae/hunyuanvideo15_vae_fp16.safetensors)\n\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── qwen_2.5_vl_7b_fp8_scaled.safetensors\n│ │ └── byt5_small_glyphxl_fp16.safetensors\n│ ├── 📂 clip_vision/\n│ │ └── sigclip_vision_patch14_384.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── hunyuanvideo1.5_720p_i2v_fp16.safetensors\n│ └── 📂 vae/\n│ └── hunyuanvideo15_vae_fp16.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 78, + "type": "HunyuanVideo15ImageToVideo", + "pos": [ + -160, + 580 + ], + "size": [ + 296.3169921875, + 210 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 222 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 246 + }, + { + "name": "vae", + "type": "VAE", + "link": 224 + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 218 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": 217 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 318 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 319 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 315 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "HunyuanVideo15ImageToVideo" + }, + "widgets_values": [ + 1280, + 720, + 121, + 1 + ] + }, + { + "id": 116, + "type": "EasyCache", + "pos": [ + -560, + 1820 + ], + "size": [ + 360, + 130 + ], + "flags": {}, + "order": 20, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 286 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 328, + 329, + 340 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "EasyCache" + }, + "widgets_values": [ + 0.2, + 0.15, + 0.95, + false + ] + }, + { + "id": 12, + "type": "UNETLoader", + "pos": [ + -620, + 50 + ], + "size": [ + 350, + 82 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 270 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "hunyuanvideo1.5_720p_i2v_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_720p_i2v_fp16.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo1.5_720p_i2v_fp16.safetensors", + "default" + ] + }, + { + "id": 121, + "type": "Note", + "pos": [ + 240, + -120 + ], + "size": [ + 350, + 90 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "EasyCache can speed up this workflow, but it will also sacrifice the video quality. If you need it, use Ctrl+B to enable." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 123, + "type": "MarkdownNote", + "pos": [ + -630, + -120 + ], + "size": [ + 360, + 88 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "If you don't have enough VRAM and encounter the OOM error, please try to set the `weight_dtype` to `fp8_e4n3fn`." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 122, + "type": "MarkdownNote", + "pos": [ + 240, + 880 + ], + "size": [ + 370, + 320 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Sampler settings", + "properties": {}, + "widgets_values": [ + "50 inference steps just take too long to get the final video, so by default we set the step to 20 steps. If you want a better quality, please try the original settings below\n\n## Original setting from Hunyuan team\n| Model | cfg | embeded_cfg | shift | inference step |\n|-----------------------|-----|-------------|-------|----------------|\n| 480p_t2v | 6 | None | 5 | 50 |\n| 480p_i2v | 6 | None | 5 | 50 |\n| 720p_t2v | 6 | None | 9 | 50 |\n| 720p_i2v | 6 | None | 7 | 50 |\n| 480p_t2v_distilled | 1 | None | 5 | 50 |\n| 480p_i2v_distilled | 1 | None | 5 | 50 |\n| 720p_t2v_distilled | 1 | None | 9 | 50 |\n| 720p_i2v_distilled | 1 | None | 7 | 50 |" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 44, + "type": "CLIPTextEncode", + "pos": [ + -220, + 50 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 205 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 222, + 295, + 341 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A young wasteland explorer in a weathered blue vault suit sprints through a dense, overgrown forest. Wearing a white aviator helmet with fur ear flaps and brass goggles, his mechanical gauntlets swing as he dodges massive tree trunks and low-hanging vines. Sunlight filters through the canopy, creating dramatic rays. He splashes through streams, crushes fallen leaves, and leaps over a fallen log. Birds scatter as he passes, and the camera captures his fast-paced, dynamic chase through the wilderness. " + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 80, + "type": "LoadImage", + "pos": [ + -610, + 600 + ], + "size": [ + 290.390625, + 314.00000000000006 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 218, + 219, + 300 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "video_hunyuan_video_1.5_720p_i2v_input_image.png", + "image" + ] + }, + { + "id": 117, + "type": "VAEDecode", + "pos": [ + 900, + 1510 + ], + "size": [ + 270, + 46 + ], + "flags": {}, + "order": 41, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 336 + }, + { + "name": "vae", + "type": "VAE", + "link": 290 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 309 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 120, + "type": "VAEDecodeTiled", + "pos": [ + 640, + -140 + ], + "size": [ + 270, + 150 + ], + "flags": {}, + "order": 34, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 322 + }, + { + "name": "vae", + "type": "VAE", + "link": 306 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecodeTiled" + }, + "widgets_values": [ + 512, + 64, + 64, + 4096 + ] + }, + { + "id": 124, + "type": "Note", + "pos": [ + 1210, + 1300 + ], + "size": [ + 230, + 88 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Use the VAE Decode (Tiled) when it takes too long to get the final video." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 126, + "type": "BasicScheduler", + "pos": [ + 250, + 480 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 316 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 313 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 20, + 1 + ] + }, + { + "id": 127, + "type": "RandomNoise", + "pos": [ + 250, + 620 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 310 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 887963123424675, + "fixed" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 128, + "type": "KSamplerSelect", + "pos": [ + 250, + 750 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 312 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 129, + "type": "CFGGuider", + "pos": [ + 250, + 340 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 314 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 318 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 319 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 311 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 6 + ] + }, + { + "id": 130, + "type": "ModelSamplingSD3", + "pos": [ + 250, + 240 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 317 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 314 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 7 + ] + }, + { + "id": 125, + "type": "SamplerCustomAdvanced", + "pos": [ + 630, + 250 + ], + "size": [ + 272.3617858886719, + 326 + ], + "flags": {}, + "order": 31, + "mode": 0, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 310 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 311 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 312 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 313 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 315 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 320, + 321, + 322 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + } + }, + { + "id": 105, + "type": "EasyCache", + "pos": [ + 240, + 20 + ], + "size": [ + 360, + 130 + ], + "flags": {}, + "order": 21, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 270 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 316, + 317 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "EasyCache" + }, + "widgets_values": [ + 0.2, + 0.15, + 0.95, + false + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 650, + -230 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 320 + }, + { + "name": "vae", + "type": "VAE", + "link": 206 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 308 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 102, + "type": "SaveVideo", + "pos": [ + 960, + 60 + ], + "size": [ + 1200, + 870 + ], + "flags": {}, + "order": 37, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 269 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/hunyuan_video_1.5", + "auto", + "h264" + ] + }, + { + "id": 131, + "type": "RandomNoise", + "pos": [ + -110, + 2230 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 323 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 889, + "fixed" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 132, + "type": "KSamplerSelect", + "pos": [ + -110, + 2360 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 325, + 334 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 133, + "type": "ModelSamplingSD3", + "pos": [ + -110, + 1850 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 24, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 329 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 326 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 2 + ] + }, + { + "id": 134, + "type": "BasicScheduler", + "pos": [ + -110, + 2090 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 328 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 332 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 8, + 1 + ] + }, + { + "id": 135, + "type": "SplitSigmas", + "pos": [ + 280, + 1710 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [ + { + "name": "sigmas", + "type": "SIGMAS", + "link": 332 + } + ], + "outputs": [ + { + "name": "high_sigmas", + "type": "SIGMAS", + "links": [ + 333 + ] + }, + { + "name": "low_sigmas", + "type": "SIGMAS", + "links": [ + 335 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.71", + "Node name for S&R": "SplitSigmas" + }, + "widgets_values": [ + 4 + ] + }, + { + "id": 137, + "type": "DisableNoise", + "pos": [ + 600, + 1800 + ], + "size": [ + 140, + 26 + ], + "flags": {}, + "order": 16, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 343 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "DisableNoise" + } + }, + { + "id": 138, + "type": "SamplerCustomAdvanced", + "pos": [ + 270, + 1860 + ], + "size": [ + 270, + 120 + ], + "flags": {}, + "order": 39, + "mode": 4, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 323 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 324 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 325 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 333 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 327 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 338 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + } + }, + { + "id": 139, + "type": "SamplerCustomAdvanced", + "pos": [ + 600, + 1860 + ], + "size": [ + 270, + 130 + ], + "flags": {}, + "order": 40, + "mode": 4, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 343 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 339 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 334 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 335 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 338 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 336, + 337 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + } + }, + { + "id": 140, + "type": "CFGGuider", + "pos": [ + 230, + 1540 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 25, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 340 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 341 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 342 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 339 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 141, + "type": "CFGGuider", + "pos": [ + -110, + 1950 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 38, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 326 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 330 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 331 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 324 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 136, + "type": "Note", + "pos": [ + 600, + 1670 + ], + "size": [ + 238.81604977221195, + 88 + ], + "flags": {}, + "order": 17, + "mode": 4, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Split at matching sigma to the noise scale" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 109, + "type": "HunyuanVideo15LatentUpscaleWithModel", + "pos": [ + -570, + 2020 + ], + "size": [ + 370, + 150 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "LATENT_UPSCALE_MODEL", + "link": 274 + }, + { + "name": "samples", + "type": "LATENT", + "link": 321 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 280 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "HunyuanVideo15LatentUpscaleWithModel" + }, + "widgets_values": [ + "bilinear", + 1920, + 1080, + "disabled" + ] + }, + { + "id": 118, + "type": "SaveVideo", + "pos": [ + 1200, + 1500 + ], + "size": [ + 1200, + 880 + ], + "flags": {}, + "order": 44, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 292 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/hunyuan_video_1.5_sr", + "auto", + "auto" + ] + }, + { + "id": 112, + "type": "VAEDecodeTiled", + "pos": [ + 920, + 1260 + ], + "size": [ + 270, + 150 + ], + "flags": {}, + "order": 42, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 337 + }, + { + "name": "vae", + "type": "VAE", + "link": 307 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecodeTiled" + }, + "widgets_values": [ + 512, + 64, + 64, + 4096 + ] + } + ], + "links": [ + [ + 205, + 11, + 0, + 44, + 0, + "CLIP" + ], + [ + 206, + 10, + 0, + 8, + 1, + "VAE" + ], + [ + 217, + 79, + 0, + 78, + 4, + "CLIP_VISION_OUTPUT" + ], + [ + 218, + 80, + 0, + 78, + 3, + "IMAGE" + ], + [ + 219, + 80, + 0, + 79, + 1, + "IMAGE" + ], + [ + 222, + 44, + 0, + 78, + 0, + "CONDITIONING" + ], + [ + 224, + 10, + 0, + 78, + 2, + "VAE" + ], + [ + 225, + 81, + 0, + 79, + 0, + "CLIP_VISION" + ], + [ + 240, + 11, + 0, + 93, + 0, + "CLIP" + ], + [ + 246, + 93, + 0, + 78, + 1, + "CONDITIONING" + ], + [ + 269, + 101, + 0, + 102, + 0, + "VIDEO" + ], + [ + 270, + 12, + 0, + 105, + 0, + "MODEL" + ], + [ + 274, + 108, + 0, + 109, + 0, + "LATENT_UPSCALE_MODEL" + ], + [ + 280, + 109, + 0, + 113, + 2, + "LATENT" + ], + [ + 286, + 111, + 0, + 116, + 0, + "MODEL" + ], + [ + 290, + 10, + 0, + 117, + 1, + "VAE" + ], + [ + 292, + 114, + 0, + 118, + 0, + "VIDEO" + ], + [ + 295, + 44, + 0, + 113, + 0, + "CONDITIONING" + ], + [ + 296, + 93, + 0, + 113, + 1, + "CONDITIONING" + ], + [ + 299, + 79, + 0, + 113, + 5, + "CLIP_VISION_OUTPUT" + ], + [ + 300, + 80, + 0, + 113, + 4, + "IMAGE" + ], + [ + 301, + 10, + 0, + 113, + 3, + "VAE" + ], + [ + 306, + 10, + 0, + 120, + 1, + "VAE" + ], + [ + 307, + 10, + 0, + 112, + 1, + "VAE" + ], + [ + 308, + 8, + 0, + 101, + 0, + "IMAGE" + ], + [ + 309, + 117, + 0, + 114, + 0, + "IMAGE" + ], + [ + 310, + 127, + 0, + 125, + 0, + "NOISE" + ], + [ + 311, + 129, + 0, + 125, + 1, + "GUIDER" + ], + [ + 312, + 128, + 0, + 125, + 2, + "SAMPLER" + ], + [ + 313, + 126, + 0, + 125, + 3, + "SIGMAS" + ], + [ + 314, + 130, + 0, + 129, + 0, + "MODEL" + ], + [ + 315, + 78, + 2, + 125, + 4, + "LATENT" + ], + [ + 316, + 105, + 0, + 126, + 0, + "MODEL" + ], + [ + 317, + 105, + 0, + 130, + 0, + "MODEL" + ], + [ + 318, + 78, + 0, + 129, + 1, + "CONDITIONING" + ], + [ + 319, + 78, + 1, + 129, + 2, + "CONDITIONING" + ], + [ + 320, + 125, + 0, + 8, + 0, + "LATENT" + ], + [ + 321, + 125, + 0, + 109, + 1, + "LATENT" + ], + [ + 322, + 125, + 0, + 120, + 0, + "LATENT" + ], + [ + 323, + 131, + 0, + 138, + 0, + "NOISE" + ], + [ + 324, + 141, + 0, + 138, + 1, + "GUIDER" + ], + [ + 325, + 132, + 0, + 138, + 2, + "SAMPLER" + ], + [ + 326, + 133, + 0, + 141, + 0, + "MODEL" + ], + [ + 327, + 113, + 2, + 138, + 4, + "LATENT" + ], + [ + 328, + 116, + 0, + 134, + 0, + "MODEL" + ], + [ + 329, + 116, + 0, + 133, + 0, + "MODEL" + ], + [ + 330, + 113, + 0, + 141, + 1, + "CONDITIONING" + ], + [ + 331, + 113, + 1, + 141, + 2, + "CONDITIONING" + ], + [ + 332, + 134, + 0, + 135, + 0, + "SIGMAS" + ], + [ + 333, + 135, + 0, + 138, + 3, + "SIGMAS" + ], + [ + 334, + 132, + 0, + 139, + 2, + "SAMPLER" + ], + [ + 335, + 135, + 1, + 139, + 3, + "SIGMAS" + ], + [ + 336, + 139, + 0, + 117, + 0, + "LATENT" + ], + [ + 337, + 139, + 0, + 112, + 0, + "LATENT" + ], + [ + 338, + 138, + 0, + 139, + 4, + "LATENT" + ], + [ + 339, + 140, + 0, + 139, + 1, + "GUIDER" + ], + [ + 340, + 116, + 0, + 140, + 0, + "MODEL" + ], + [ + 341, + 44, + 0, + 140, + 1, + "CONDITIONING" + ], + [ + 342, + 93, + 0, + 140, + 2, + "CONDITIONING" + ], + [ + 343, + 137, + 0, + 139, + 0, + "NOISE" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load models", + "bounding": [ + -630, + -20, + 370, + 539.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Prompt", + "bounding": [ + -230, + -20, + 442.84503173828125, + 493.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 2 - Upload start_image", + "bounding": [ + -630, + 530, + 370, + 520 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step 4 - Video Size", + "bounding": [ + -230, + 500, + 440, + 320 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Video Upscale 1080P (Ctrl-B to enable)", + "bounding": [ + -640, + 1430, + 3060, + 1010 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Load models", + "bounding": [ + -630, + 1470, + 490, + 283.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Custom Sampler", + "bounding": [ + 240, + 170, + 672.3617858886719, + 651.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Custom Sampler(SR)", + "bounding": [ + -120, + 1470, + 1000, + 961.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.27366813599758877, + "offset": [ + 3960.8668185800825, + 1109.8918373232455 + ] + }, + "frontendVersion": "1.30.6", + "groupNodes": {}, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_hunyuan15-t2v-720p.jpg b/example_workflows/i2v_hunyuan15-t2v-720p.jpg new file mode 100644 index 0000000..ae37695 Binary files /dev/null and b/example_workflows/i2v_hunyuan15-t2v-720p.jpg differ diff --git a/example_workflows/i2v_hunyuan15-t2v-720p.json b/example_workflows/i2v_hunyuan15-t2v-720p.json new file mode 100644 index 0000000..0ef95d7 --- /dev/null +++ b/example_workflows/i2v_hunyuan15-t2v-720p.json @@ -0,0 +1,2269 @@ +{ + "id": "ecc20583-98c5-4707-83f4-631b49a2bf0b", + "revision": 0, + "last_node_id": 143, + "last_link_id": 346, + "nodes": [ + { + "id": 11, + "type": "DualCLIPLoader", + "pos": [ + -620, + 180 + ], + "size": [ + 350, + 130 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 205, + 240 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "DualCLIPLoader", + "models": [ + { + "name": "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors", + "directory": "text_encoders" + }, + { + "name": "byt5_small_glyphxl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/byt5_small_glyphxl_fp16.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "byt5_small_glyphxl_fp16.safetensors", + "hunyuan_video_15", + "default" + ] + }, + { + "id": 111, + "type": "UNETLoader", + "pos": [ + -620, + 1330 + ], + "size": [ + 470, + 82 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 286 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors", + "default" + ] + }, + { + "id": 10, + "type": "VAELoader", + "pos": [ + -620, + 350 + ], + "size": [ + 350, + 60 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 206, + 290, + 306, + 307 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "hunyuanvideo15_vae_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/vae/hunyuanvideo15_vae_fp16.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "hunyuanvideo15_vae_fp16.safetensors" + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 640, + -230 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 323 + }, + { + "name": "vae", + "type": "VAE", + "link": 206 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 308 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 105, + "type": "EasyCache", + "pos": [ + 240, + 30 + ], + "size": [ + 360, + 130 + ], + "flags": {}, + "order": 20, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 270 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 319, + 320 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "EasyCache" + }, + "widgets_values": [ + 0.2, + 0.15, + 0.95, + false + ] + }, + { + "id": 122, + "type": "MarkdownNote", + "pos": [ + 240, + 880 + ], + "size": [ + 370, + 320 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Sampler settings", + "properties": {}, + "widgets_values": [ + "50 inference steps just take too long to get the final video, so by default we set the step to 20 steps. If you want a better quality, please try the original settings below\n\n## Original setting from Hunyuan team\n| Model | cfg | embeded_cfg | shift | inference step |\n|-----------------------|-----|-------------|-------|----------------|\n| 480p_t2v | 6 | None | 5 | 50 |\n| 480p_i2v | 6 | None | 5 | 50 |\n| 720p_t2v | 6 | None | 9 | 50 |\n| 720p_i2v | 6 | None | 7 | 50 |\n| 480p_t2v_distilled | 1 | None | 5 | 50 |\n| 480p_i2v_distilled | 1 | None | 5 | 50 |\n| 720p_t2v_distilled | 1 | None | 9 | 50 |\n| 720p_i2v_distilled | 1 | None | 7 | 50 |" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 113, + "type": "HunyuanVideo15SuperResolution", + "pos": [ + -570, + 1990 + ], + "size": [ + 370, + 170 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 295 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 296 + }, + { + "name": "latent", + "type": "LATENT", + "link": 280 + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 333 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 334 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 330 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "HunyuanVideo15SuperResolution" + }, + "widgets_values": [ + 0.7 + ] + }, + { + "id": 44, + "type": "CLIPTextEncode", + "pos": [ + -220, + 50 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 205 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 295, + 321, + 344 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A paper airplane released from the top of a skyscraper, gliding through urban canyons, crossing traffic, flying over streets, spiraling upward between buildings. The camera follows the paper airplane's perspective, shooting cityscape in first-person POV, finally flying toward the sunset, disappearing in golden light. Creative camera movement, free perspective, dreamlike colors." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 125, + "type": "Note", + "pos": [ + -630, + -130 + ], + "size": [ + 360, + 90 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "If you don't have enough VRAM and encounter the OOM error, please try to set the `weight_dtype` to `fp8_e4n3fn`." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 12, + "type": "UNETLoader", + "pos": [ + -620, + 50 + ], + "size": [ + 350, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 270 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "hunyuanvideo1.5_720p_t2v_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_720p_t2v_fp16.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo1.5_720p_t2v_fp16.safetensors", + "default" + ] + }, + { + "id": 104, + "type": "MarkdownNote", + "pos": [ + -1220, + 10 + ], + "size": [ + 560, + 520 + ], + "flags": { + "collapsed": false + }, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model links", + "properties": {}, + "widgets_values": [ + "\n\n## Report issue\n\nIf you found any issues when running this workflow, [report template issue here](https://github.com/Comfy-Org/workflow_templates/issues)\n## Model links\n\n**text_encoders**\n\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n- [byt5_small_glyphxl_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/byt5_small_glyphxl_fp16.safetensors)\n\n**diffusion_models**\n\n- [hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors)\n- [hunyuanvideo1.5_720p_t2v_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/diffusion_models/hunyuanvideo1.5_720p_t2v_fp16.safetensors)\n\n**vae**\n\n- [hunyuanvideo15_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/vae/hunyuanvideo15_vae_fp16.safetensors)\n\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── qwen_2.5_vl_7b_fp8_scaled.safetensors\n│ │ └── byt5_small_glyphxl_fp16.safetensors\n│ ├── 📂 diffusion_models/\n│ │ ├── hunyuanvideo1.5_1080p_sr_distilled_fp16.safetensors\n│ │ └── hunyuanvideo1.5_720p_t2v_fp16.safetensors\n│ └── 📂 vae/\n│ └── hunyuanvideo15_vae_fp16.safetensors\n```" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 108, + "type": "LatentUpscaleModelLoader", + "pos": [ + -620, + 1460 + ], + "size": [ + 470, + 70 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 274 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "LatentUpscaleModelLoader", + "models": [ + { + "name": "hunyuanvideo15_latent_upsampler_1080p.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/latent_upscale_models/hunyuanvideo15_latent_upsampler_1080p.safetensors", + "directory": "latent_upscale_models" + } + ] + }, + "widgets_values": [ + "hunyuanvideo15_latent_upsampler_1080p.safetensors" + ] + }, + { + "id": 116, + "type": "EasyCache", + "pos": [ + -560, + 1610 + ], + "size": [ + 360, + 130 + ], + "flags": {}, + "order": 19, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 286 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 331, + 332, + 343 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "EasyCache" + }, + "widgets_values": [ + 0.2, + 0.15, + 0.95, + false + ] + }, + { + "id": 93, + "type": "CLIPTextEncode", + "pos": [ + -220, + 260 + ], + "size": [ + 422.84503173828125, + 200 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 240 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 296, + 322, + 345 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 120, + "type": "VAEDecodeTiled", + "pos": [ + 630, + -140 + ], + "size": [ + 270, + 150 + ], + "flags": {}, + "order": 31, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 325 + }, + { + "name": "vae", + "type": "VAE", + "link": 306 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecodeTiled" + }, + "widgets_values": [ + 512, + 64, + 64, + 8 + ] + }, + { + "id": 121, + "type": "Note", + "pos": [ + 240, + -120 + ], + "size": [ + 350, + 90 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "EasyCache can speed up this workflow, but it will also sacrifice the video quality. If you need it, use Ctrl+B to enable." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 114, + "type": "CreateVideo", + "pos": [ + 920, + 1320 + ], + "size": [ + 270, + 80 + ], + "flags": {}, + "order": 40, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 312 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 292 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 117, + "type": "VAEDecode", + "pos": [ + 920, + 1450 + ], + "size": [ + 270, + 46 + ], + "flags": {}, + "order": 38, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 339 + }, + { + "name": "vae", + "type": "VAE", + "link": 290 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 312 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 126, + "type": "Note", + "pos": [ + 1210, + 1040 + ], + "size": [ + 300, + 150 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Use the VAE Decode (Tiled) if it takes too long to get the final video." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 128, + "type": "BasicScheduler", + "pos": [ + 250, + 480 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 319 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 316 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 20, + 1 + ] + }, + { + "id": 129, + "type": "RandomNoise", + "pos": [ + 250, + 620 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 313 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 887963123424675, + "fixed" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 130, + "type": "KSamplerSelect", + "pos": [ + 250, + 750 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 315 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 131, + "type": "CFGGuider", + "pos": [ + 250, + 340 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 317 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 321 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 322 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 314 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 6 + ] + }, + { + "id": 132, + "type": "ModelSamplingSD3", + "pos": [ + 250, + 240 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 320 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 317 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 7 + ] + }, + { + "id": 127, + "type": "SamplerCustomAdvanced", + "pos": [ + 630, + 250 + ], + "size": [ + 272.3617858886719, + 326 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 313 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 314 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 315 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 316 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 318 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 323, + 324, + 325 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + }, + "widgets_values": [] + }, + { + "id": 102, + "type": "SaveVideo", + "pos": [ + 940, + -40 + ], + "size": [ + 1200, + 870 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 269 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/hunyuan_video_1.5", + "auto", + "h264" + ] + }, + { + "id": 101, + "type": "CreateVideo", + "pos": [ + 630, + 60 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 308 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 269 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 133, + "type": "RandomNoise", + "pos": [ + -100, + 2030 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 12, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 326 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 889, + "fixed" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 134, + "type": "KSamplerSelect", + "pos": [ + -100, + 2160 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 13, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 328, + 337 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 135, + "type": "ModelSamplingSD3", + "pos": [ + -100, + 1650 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 22, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 332 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 329 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 2 + ] + }, + { + "id": 136, + "type": "BasicScheduler", + "pos": [ + -100, + 1890 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 21, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 331 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 335 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 8, + 1 + ] + }, + { + "id": 137, + "type": "SplitSigmas", + "pos": [ + 290, + 1500 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 26, + "mode": 4, + "inputs": [ + { + "name": "sigmas", + "type": "SIGMAS", + "link": 335 + } + ], + "outputs": [ + { + "name": "high_sigmas", + "type": "SIGMAS", + "links": [ + 336 + ] + }, + { + "name": "low_sigmas", + "type": "SIGMAS", + "links": [ + 338 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.71", + "Node name for S&R": "SplitSigmas" + }, + "widgets_values": [ + 4 + ] + }, + { + "id": 139, + "type": "DisableNoise", + "pos": [ + 610, + 1600 + ], + "size": [ + 140, + 26 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 346 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "DisableNoise" + }, + "widgets_values": [] + }, + { + "id": 140, + "type": "SamplerCustomAdvanced", + "pos": [ + 280, + 1660 + ], + "size": [ + 270, + 120 + ], + "flags": {}, + "order": 36, + "mode": 4, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 326 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 327 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 328 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 336 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 330 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 341 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + }, + "widgets_values": [] + }, + { + "id": 141, + "type": "SamplerCustomAdvanced", + "pos": [ + 610, + 1660 + ], + "size": [ + 270, + 130 + ], + "flags": {}, + "order": 37, + "mode": 4, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 346 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 342 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 337 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 338 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 341 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 339, + 340 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "SamplerCustomAdvanced" + }, + "widgets_values": [] + }, + { + "id": 142, + "type": "CFGGuider", + "pos": [ + 240, + 1340 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 343 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 344 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 345 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 342 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 143, + "type": "CFGGuider", + "pos": [ + -100, + 1750 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 35, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 329 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 333 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 334 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 327 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "CFGGuider" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 138, + "type": "Note", + "pos": [ + 610, + 1470 + ], + "size": [ + 238.81604977221195, + 88 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Split at matching sigma to the noise scale" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 109, + "type": "HunyuanVideo15LatentUpscaleWithModel", + "pos": [ + -570, + 1800 + ], + "size": [ + 370, + 150 + ], + "flags": {}, + "order": 30, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "LATENT_UPSCALE_MODEL", + "link": 274 + }, + { + "name": "samples", + "type": "LATENT", + "link": 324 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 280 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "HunyuanVideo15LatentUpscaleWithModel" + }, + "widgets_values": [ + "bilinear", + 1920, + 1080, + "disabled" + ] + }, + { + "id": 118, + "type": "SaveVideo", + "pos": [ + 1230, + 1310 + ], + "size": [ + 1200, + 880 + ], + "flags": {}, + "order": 41, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 292 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/hunyuan_video_1.5_sr", + "auto", + "auto" + ] + }, + { + "id": 112, + "type": "VAEDecodeTiled", + "pos": [ + 920, + 1040 + ], + "size": [ + 270, + 150 + ], + "flags": {}, + "order": 39, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 340 + }, + { + "name": "vae", + "type": "VAE", + "link": 307 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "VAEDecodeTiled" + }, + "widgets_values": [ + 512, + 64, + 64, + 4096 + ] + }, + { + "id": 124, + "type": "EmptyHunyuanVideo15Latent", + "pos": [ + -590, + 570 + ], + "size": [ + 285.6666015625, + 130 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 318 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.70", + "Node name for S&R": "EmptyHunyuanVideo15Latent" + }, + "widgets_values": [ + 1280, + 720, + 121, + 1 + ] + } + ], + "links": [ + [ + 205, + 11, + 0, + 44, + 0, + "CLIP" + ], + [ + 206, + 10, + 0, + 8, + 1, + "VAE" + ], + [ + 240, + 11, + 0, + 93, + 0, + "CLIP" + ], + [ + 269, + 101, + 0, + 102, + 0, + "VIDEO" + ], + [ + 270, + 12, + 0, + 105, + 0, + "MODEL" + ], + [ + 274, + 108, + 0, + 109, + 0, + "LATENT_UPSCALE_MODEL" + ], + [ + 280, + 109, + 0, + 113, + 2, + "LATENT" + ], + [ + 286, + 111, + 0, + 116, + 0, + "MODEL" + ], + [ + 290, + 10, + 0, + 117, + 1, + "VAE" + ], + [ + 292, + 114, + 0, + 118, + 0, + "VIDEO" + ], + [ + 295, + 44, + 0, + 113, + 0, + "CONDITIONING" + ], + [ + 296, + 93, + 0, + 113, + 1, + "CONDITIONING" + ], + [ + 306, + 10, + 0, + 120, + 1, + "VAE" + ], + [ + 307, + 10, + 0, + 112, + 1, + "VAE" + ], + [ + 308, + 8, + 0, + 101, + 0, + "IMAGE" + ], + [ + 312, + 117, + 0, + 114, + 0, + "IMAGE" + ], + [ + 313, + 129, + 0, + 127, + 0, + "NOISE" + ], + [ + 314, + 131, + 0, + 127, + 1, + "GUIDER" + ], + [ + 315, + 130, + 0, + 127, + 2, + "SAMPLER" + ], + [ + 316, + 128, + 0, + 127, + 3, + "SIGMAS" + ], + [ + 317, + 132, + 0, + 131, + 0, + "MODEL" + ], + [ + 318, + 124, + 0, + 127, + 4, + "LATENT" + ], + [ + 319, + 105, + 0, + 128, + 0, + "MODEL" + ], + [ + 320, + 105, + 0, + 132, + 0, + "MODEL" + ], + [ + 321, + 44, + 0, + 131, + 1, + "CONDITIONING" + ], + [ + 322, + 93, + 0, + 131, + 2, + "CONDITIONING" + ], + [ + 323, + 127, + 0, + 8, + 0, + "LATENT" + ], + [ + 324, + 127, + 0, + 109, + 1, + "LATENT" + ], + [ + 325, + 127, + 0, + 120, + 0, + "LATENT" + ], + [ + 326, + 133, + 0, + 140, + 0, + "NOISE" + ], + [ + 327, + 143, + 0, + 140, + 1, + "GUIDER" + ], + [ + 328, + 134, + 0, + 140, + 2, + "SAMPLER" + ], + [ + 329, + 135, + 0, + 143, + 0, + "MODEL" + ], + [ + 330, + 113, + 2, + 140, + 4, + "LATENT" + ], + [ + 331, + 116, + 0, + 136, + 0, + "MODEL" + ], + [ + 332, + 116, + 0, + 135, + 0, + "MODEL" + ], + [ + 333, + 113, + 0, + 143, + 1, + "CONDITIONING" + ], + [ + 334, + 113, + 1, + 143, + 2, + "CONDITIONING" + ], + [ + 335, + 136, + 0, + 137, + 0, + "SIGMAS" + ], + [ + 336, + 137, + 0, + 140, + 3, + "SIGMAS" + ], + [ + 337, + 134, + 0, + 141, + 2, + "SAMPLER" + ], + [ + 338, + 137, + 1, + 141, + 3, + "SIGMAS" + ], + [ + 339, + 141, + 0, + 117, + 0, + "LATENT" + ], + [ + 340, + 141, + 0, + 112, + 0, + "LATENT" + ], + [ + 341, + 140, + 0, + 141, + 4, + "LATENT" + ], + [ + 342, + 142, + 0, + 141, + 1, + "GUIDER" + ], + [ + 343, + 116, + 0, + 142, + 0, + "MODEL" + ], + [ + 344, + 44, + 0, + 142, + 1, + "CONDITIONING" + ], + [ + 345, + 93, + 0, + 142, + 2, + "CONDITIONING" + ], + [ + 346, + 139, + 0, + 141, + 0, + "NOISE" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load models", + "bounding": [ + -630, + -20, + 370, + 460 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Prompt", + "bounding": [ + -230, + -20, + 442.84503173828125, + 493.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step 4 - Video Size", + "bounding": [ + -630, + 460, + 370, + 270 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Video Upscale 1080P (Ctrl-B to enable)", + "bounding": [ + -640, + 1220, + 3090, + 1040 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Load models", + "bounding": [ + -630, + 1260, + 490, + 283.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Custom Sampler", + "bounding": [ + 240, + 170, + 672.3617858886719, + 651.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Custom Sampler(SR)", + "bounding": [ + -110, + 1270, + 1000, + 961.6 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.5503102369019718, + "offset": [ + 2163.4579861325337, + 361.6055809441661 + ] + }, + "frontendVersion": "1.30.6", + "groupNodes": {}, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-animate.jpg b/example_workflows/i2v_wan22-14b-animate.jpg new file mode 100644 index 0000000..e3badb9 Binary files /dev/null and b/example_workflows/i2v_wan22-14b-animate.jpg differ diff --git a/example_workflows/i2v_wan22-14b-animate.json b/example_workflows/i2v_wan22-14b-animate.json new file mode 100644 index 0000000..e08b8b6 --- /dev/null +++ b/example_workflows/i2v_wan22-14b-animate.json @@ -0,0 +1,6182 @@ +{ + "id": "ba1df054-50a8-4da2-b45a-25b4dde3cc2f", + "revision": 0, + "last_node_id": 283, + "last_link_id": 714, + "nodes": [ + { + "id": 158, + "type": "PixelPerfectResolution", + "pos": [ + -1320, + 800 + ], + "size": [ + 291.71484375, + 106 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "original_image", + "type": "IMAGE", + "link": 347 + }, + { + "name": "image_gen_width", + "type": "INT", + "link": 448, + "widget": { + "name": "image_gen_width" + } + }, + { + "name": "image_gen_height", + "type": "INT", + "link": 449, + "widget": { + "name": "image_gen_height" + } + } + ], + "outputs": [ + { + "name": "RESOLUTION (INT)", + "type": "INT", + "links": [ + 360, + 361 + ] + } + ], + "properties": { + "Node name for S&R": "PixelPerfectResolution", + "cnr_id": "comfyui_controlnet_aux", + "ver": "59b027e088c1c8facf7258f6e392d16d204b4d27" + }, + "widgets_values": [ + 512, + 512, + "Just Resize" + ] + }, + { + "id": 145, + "type": "LoadVideo", + "pos": [ + -1730, + 410 + ], + "size": [ + 360, + 434 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 297 + ] + } + ], + "properties": { + "Node name for S&R": "LoadVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "video_wan2_2_14B_animate_original_video.mp4", + "image" + ] + }, + { + "id": 108, + "type": "DownloadAndLoadSAM2Model", + "pos": [ + -1310, + 1130 + ], + "size": [ + 320, + 140 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "sam2_model", + "type": "SAM2MODEL", + "links": [ + 235 + ] + } + ], + "properties": { + "Node name for S&R": "DownloadAndLoadSAM2Model", + "cnr_id": "ComfyUI-segment-anything-2", + "ver": "c59676b008a76237002926f684d0ca3a9b29ac54" + }, + "widgets_values": [ + "sam2_hiera_base_plus.safetensors", + "video", + "cuda", + "fp16" + ] + }, + { + "id": 124, + "type": "PreviewImage", + "pos": [ + -860, + 1900 + ], + "size": [ + 250, + 270 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 675 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 127, + "type": "MaskPreview", + "pos": [ + -870, + 1540 + ], + "size": [ + 260, + 260 + ], + "flags": {}, + "order": 32, + "mode": 4, + "inputs": [ + { + "name": "mask", + "type": "MASK", + "link": 691 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "MaskPreview", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 103, + "type": "Note", + "pos": [ + -1300, + 660 + ], + "size": [ + 260, + 88 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "The Image Scale node is to prevent you from inputting an oversized video. A large size video will take a very long time to preprocess.\n\nPlease update this setting according to the video size you input\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 227, + "type": "MarkdownNote", + "pos": [ + -1300, + 2100 + ], + "size": [ + 400, + 240 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: Switch to Move mode", + "properties": {}, + "widgets_values": [ + "The model has two modes:\n- Mix: character replace\n- Move: Pose transfer\n\nIf you want to switch to **Move** mode, please disconnect **Background_video** and **Character_mask** output from the **WanAnimateToVideo** node.\n\nBypass will still pass the input video to the **WanAnimateToVideo** node, so please disconnect them." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 229, + "type": "PointsEditor", + "pos": [ + -2150, + 1100 + ], + "size": [ + 685, + 940 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "bg_image", + "shape": 7, + "type": "IMAGE", + "link": 456 + } + ], + "outputs": [ + { + "name": "positive_coords", + "type": "STRING", + "links": [ + 438 + ] + }, + { + "name": "negative_coords", + "type": "STRING", + "links": null + }, + { + "name": "bbox", + "type": "BBOX", + "links": null + }, + { + "name": "bbox_mask", + "type": "MASK", + "links": null + }, + { + "name": "cropped_image", + "type": "IMAGE", + "links": null + } + ], + "properties": { + "Node name for S&R": "PointsEditor", + "cnr_id": "comfyui-kjnodes", + "ver": "e81f33508b0821ea2f53f4f46a833fa6215626bd", + "points": "PointsEditor", + "neg_points": "PointsEditor", + "imgData": { + "name": "bg_image", + "base64": [ + "" + ] + } + }, + "widgets_values": [ + "{\"positive\":[{\"x\":256,\"y\":256}],\"negative\":[{\"x\":0,\"y\":0}]}", + "[{\"x\":256,\"y\":256}]", + "[{\"x\":0,\"y\":0}]", + "[{}]", + "[{}]", + "xyxy", + 640, + 640, + false + ] + }, + { + "id": 212, + "type": "ImageScale", + "pos": [ + -1300, + 490 + ], + "size": [ + 270, + 130 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 425 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 446 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 447 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 422, + 423, + 456, + 457, + 662 + ] + } + ], + "properties": { + "Node name for S&R": "ImageScale", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "lanczos", + 512, + 512, + "center" + ] + }, + { + "id": 100, + "type": "DWPreprocessor", + "pos": [ + -960, + 400 + ], + "size": [ + 294.72265625, + 222 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 422 + }, + { + "name": "resolution", + "type": "INT", + "link": 360, + "shape": 7, + "widget": { + "name": "resolution" + } + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 484, + 532, + 704 + ] + }, + { + "name": "POSE_KEYPOINT", + "type": "POSE_KEYPOINT", + "links": null + } + ], + "properties": { + "Node name for S&R": "DWPreprocessor", + "cnr_id": "comfyui_controlnet_aux", + "ver": "59b027e088c1c8facf7258f6e392d16d204b4d27" + }, + "widgets_values": [ + "disable", + "disable", + "enable", + 512, + "yolox_l.onnx", + "dw-ll_ucoco_384_bs5.torchscript.pt", + "disable" + ] + }, + { + "id": 101, + "type": "DWPreprocessor", + "pos": [ + -960, + 690 + ], + "size": [ + 294.72265625, + 222 + ], + "flags": {}, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 423 + }, + { + "name": "resolution", + "type": "INT", + "link": 361, + "shape": 7, + "widget": { + "name": "resolution" + } + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 485, + 533, + 705 + ] + }, + { + "name": "POSE_KEYPOINT", + "type": "POSE_KEYPOINT", + "links": null + } + ], + "properties": { + "Node name for S&R": "DWPreprocessor", + "cnr_id": "comfyui_controlnet_aux", + "ver": "59b027e088c1c8facf7258f6e392d16d204b4d27" + }, + "widgets_values": [ + "enable", + "enable", + "disable", + 512, + "yolox_l.onnx", + "dw-ll_ucoco_384_bs5.torchscript.pt", + "disable" + ] + }, + { + "id": 23, + "type": "GetVideoComponents", + "pos": [ + -1730, + 780 + ], + "size": [ + 190, + 70 + ], + "flags": { + "collapsed": false + }, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 297 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 347, + 425 + ] + }, + { + "name": "audio", + "type": "AUDIO", + "links": [ + 478, + 526, + 698 + ] + }, + { + "name": "fps", + "type": "FLOAT", + "links": [] + } + ], + "properties": { + "Node name for S&R": "GetVideoComponents", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 21, + "type": "CLIPTextEncode", + "pos": [ + -990, + -280 + ], + "size": [ + 420, + 230 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 18 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 480, + 528, + 700 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "The character is dancing in the room" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 1, + "type": "CLIPTextEncode", + "pos": [ + -990, + 50 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 1 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 481, + 529, + 701 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 9, + "type": "CLIPVisionEncode", + "pos": [ + -2150, + 860 + ], + "size": [ + 253.60000610351562, + 78 + ], + "flags": { + "collapsed": false + }, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 4 + }, + { + "name": "image", + "type": "IMAGE", + "link": 344 + } + ], + "outputs": [ + { + "name": "CLIP_VISION_OUTPUT", + "type": "CLIP_VISION_OUTPUT", + "slot_index": 0, + "links": [ + 482, + 530, + 702 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPVisionEncode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "none" + ] + }, + { + "id": 10, + "type": "LoadImage", + "pos": [ + -2150, + 380 + ], + "size": [ + 340, + 440 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 344, + 483, + 531, + 703 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "video_wan2_2_14B_animate_reference_image.png", + "image" + ] + }, + { + "id": 126, + "type": "MarkdownNote", + "pos": [ + -2150, + 2110 + ], + "size": [ + 760, + 240 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: About Points Editor", + "properties": {}, + "widgets_values": [ + "## How to load image \n\nYou can right-click on the canvas, then choose Load Image. Or you can run the workflow once, and it will automatically get the first frame of the input video.\n\n## Add new green points\n\nGreen points are used to mark the area that you want to detect.\nPress the Shift key, then use the left click to add new green points.\n\n## Add new red points\n\nRed points are used to mark the area you want to exclude.\nPress the Shift key, then use the right click to add new red points.\n\n## Clear all points\n\nClick the **New canvas** to clear all points" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 107, + "type": "Sam2Segmentation", + "pos": [ + -1310, + 1330 + ], + "size": [ + 320, + 190 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "sam2_model", + "type": "SAM2MODEL", + "link": 235 + }, + { + "name": "image", + "type": "IMAGE", + "link": 457 + }, + { + "name": "coordinates_positive", + "type": "STRING", + "link": 438, + "shape": 7 + }, + { + "name": "coordinates_negative", + "type": "STRING", + "link": null, + "shape": 7 + }, + { + "name": "bboxes", + "type": "BBOX", + "link": null, + "shape": 7 + }, + { + "name": "mask", + "type": "MASK", + "link": null, + "shape": 7 + } + ], + "outputs": [ + { + "name": "mask", + "type": "MASK", + "links": [ + 661 + ] + } + ], + "properties": { + "Node name for S&R": "Sam2Segmentation", + "cnr_id": "ComfyUI-segment-anything-2", + "ver": "c59676b008a76237002926f684d0ca3a9b29ac54" + }, + "widgets_values": [ + true, + false + ] + }, + { + "id": 274, + "type": "GrowMask", + "pos": [ + -1280, + 1610 + ], + "size": [ + 270, + 82 + ], + "flags": { + "collapsed": false + }, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "mask", + "type": "MASK", + "link": 661 + } + ], + "outputs": [ + { + "name": "MASK", + "type": "MASK", + "links": [ + 660 + ] + } + ], + "properties": { + "Node name for S&R": "GrowMask", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 10, + true + ] + }, + { + "id": 275, + "type": "DrawMaskOnImage", + "pos": [ + -1280, + 1920 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 662 + }, + { + "name": "mask", + "type": "MASK", + "link": 659 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 675, + 676, + 677, + 706 + ] + } + ], + "properties": { + "Node name for S&R": "DrawMaskOnImage", + "cnr_id": "comfyui-kjnodes", + "ver": "623b5913dc7f240fd8b26422e99f8849a21c5473" + }, + "widgets_values": [ + "0, 0, 0" + ] + }, + { + "id": 276, + "type": "BlockifyMask", + "pos": [ + -1280, + 1750 + ], + "size": [ + 270, + 60 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "masks", + "type": "MASK", + "link": 660 + } + ], + "outputs": [ + { + "name": "mask", + "type": "MASK", + "links": [ + 659, + 691, + 692, + 693, + 707 + ] + } + ], + "properties": { + "Node name for S&R": "BlockifyMask", + "cnr_id": "comfyui-kjnodes", + "ver": "00da1910634fbf314d407608efb281ae6f7f1ba2" + }, + "widgets_values": [ + 32 + ] + }, + { + "id": 278, + "type": "063b0ee8-c72b-442b-8029-dd3d5f4b6650", + "pos": [ + 610, + -190 + ], + "size": [ + 410, + 446 + ], + "flags": {}, + "order": 37, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 696 + }, + { + "name": "vae", + "type": "VAE", + "link": 697 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 698 + }, + { + "label": "last_batch_images", + "name": "image1", + "type": "IMAGE", + "link": 710 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 700 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 701 + }, + { + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "link": 702 + }, + { + "name": "reference_image", + "type": "IMAGE", + "link": 703 + }, + { + "name": "face_video", + "type": "IMAGE", + "link": 704 + }, + { + "name": "pose_video", + "type": "IMAGE", + "link": 705 + }, + { + "name": "background_video", + "type": "IMAGE", + "link": 706 + }, + { + "name": "character_mask", + "type": "MASK", + "link": 707 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 708 + }, + { + "name": "video_frame_offset", + "type": "INT", + "widget": { + "name": "video_frame_offset" + }, + "link": 711 + } + ], + "outputs": [ + { + "label": "batch image output", + "name": "IMAGE", + "type": "IMAGE", + "links": [] + }, + { + "name": "video_frame_offset", + "type": "INT", + "links": [] + }, + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 695 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "video_frame_offset" + ], + [ + "-1", + "seed" + ], + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "sampler_name" + ], + [ + "-1", + "scheduler" + ], + [ + "-1", + "fps" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.60" + }, + "widgets_values": [ + 1280, + 0, + 387378783691198, + 6, + 1, + "euler", + "simple", + 16 + ] + }, + { + "id": 242, + "type": "975ed319-ca2b-461e-b42a-8e2704ba902f", + "pos": [ + 130, + -180 + ], + "size": [ + 410, + 446 + ], + "flags": {}, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 524 + }, + { + "name": "vae", + "type": "VAE", + "link": 525 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 526 + }, + { + "label": "last_batch_images", + "name": "image1", + "type": "IMAGE", + "link": 527 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 528 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 529 + }, + { + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "link": 530 + }, + { + "name": "reference_image", + "type": "IMAGE", + "link": 531 + }, + { + "name": "face_video", + "type": "IMAGE", + "link": 532 + }, + { + "name": "pose_video", + "type": "IMAGE", + "link": 533 + }, + { + "name": "background_video", + "type": "IMAGE", + "link": 677 + }, + { + "name": "character_mask", + "type": "MASK", + "link": 693 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 536 + }, + { + "name": "video_frame_offset", + "type": "INT", + "widget": { + "name": "video_frame_offset" + }, + "link": 537 + } + ], + "outputs": [ + { + "label": "batch_images", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 710 + ] + }, + { + "name": "video_frame_offset", + "type": "INT", + "links": [ + 711 + ] + }, + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 540 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "video_frame_offset" + ], + [ + "-1", + "seed" + ], + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "sampler_name" + ], + [ + "-1", + "scheduler" + ], + [ + "-1", + "fps" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.60" + }, + "widgets_values": [ + 1280, + 0, + 387378783691198, + 6, + 1, + "euler", + "simple", + 16 + ] + }, + { + "id": 277, + "type": "SaveVideo", + "pos": [ + 610, + 320 + ], + "size": [ + 420, + 558 + ], + "flags": {}, + "order": 39, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 695 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.60" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 238, + "type": "MarkdownNote", + "pos": [ + 110, + 1110 + ], + "size": [ + 420, + 120 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: Extend video length", + "properties": {}, + "widgets_values": [ + "Copy this group then link the \"Batch images\" and the \"video_frame_offset\" to the next extend subgraph" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 243, + "type": "SaveVideo", + "pos": [ + 140, + 330 + ], + "size": [ + 420, + 558 + ], + "flags": {}, + "order": 38, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 540 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.60" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 232, + "type": "90db3fa1-b7fd-4c97-90a4-3e9533589dce", + "pos": [ + -420, + -180 + ], + "size": [ + 450, + 430 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 477 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 478 + }, + { + "name": "vae", + "type": "VAE", + "link": 479 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 480 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 481 + }, + { + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "link": 482 + }, + { + "name": "reference_image", + "type": "IMAGE", + "link": 483 + }, + { + "name": "face_video", + "type": "IMAGE", + "link": 484 + }, + { + "name": "pose_video", + "type": "IMAGE", + "link": 485 + }, + { + "name": "background_video", + "type": "IMAGE", + "link": 676 + }, + { + "name": "character_mask", + "type": "MASK", + "link": 692 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 488 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 489 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 490 + ] + }, + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 527 + ] + }, + { + "name": "video_frame_offset", + "type": "INT", + "links": [ + 537 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "-1", + "fps" + ], + [ + "-1", + "seed" + ], + [ + "-1", + "steps" + ], + [ + "-1", + "cfg" + ], + [ + "-1", + "sampler_name" + ], + [ + "-1", + "scheduler" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.3.60" + }, + "widgets_values": [ + 640, + 640, + 16, + 1106558644923357, + 6, + 1, + "euler", + "simple" + ] + }, + { + "id": 19, + "type": "SaveVideo", + "pos": [ + -410, + 330 + ], + "size": [ + 460, + 558 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 490 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 99, + "type": "LoraLoaderModelOnly", + "pos": [ + -1800, + -50 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 226 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 227 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "WanAnimate_relight_lora_fp16.safetensors", + "url": "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/LoRAs/Wan22_relight/WanAnimate_relight_lora_fp16.safetensors", + "directory": "loras" + } + ] + }, + "widgets_values": [ + "WanAnimate_relight_lora_fp16.safetensors", + 1 + ] + }, + { + "id": 226, + "type": "MarkdownNote", + "pos": [ + -2830, + -380 + ], + "size": [ + 590, + 160 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: Make sure these custom nodes are installed.", + "properties": {}, + "widgets_values": [ + "In this template, we have used three custom nodes. For users who don't know how to install a custom node, please refer to [How to install custom node](https://docs.comfy.org/installation/install_custom_node).\n\n## Custom nodes\n\n- [comfyui_controlnet_aux](https://github.com/Fannovel16/comfyui_controlnet_aux)\n- [ComfyUI-KJNodes](https://github.com/kijai/ComfyUI-KJNodes/)\n- [ComfyUI-segment-anything-2](https://github.com/kijai/ComfyUI-segment-anything-2)\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 44, + "type": "MarkdownNote", + "pos": [ + -2830, + -170 + ], + "size": [ + 590, + 590 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: Model links", + "properties": {}, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2-2-animate\n) \n\n## Model links\n\n**diffusion_models** \n- [Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors](https://huggingface.co/Kijai/WanVideo_comfy_fp8_scaled/resolve/main/Wan22Animate/Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors)\n- [wan2.2_animate_14B_bf16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_animate_14B_bf16.safetensors)\n\n**loras**\n- [lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Lightx2v/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors)\n- [WanAnimate_relight_lora_fp16.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/LoRAs/Wan22_relight/WanAnimate_relight_lora_fp16.safetensors)\n\n**clip_visions**\n- [clip_vision_h.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors)\n\n**vae**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**text_encoders** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors\n│ │ └─── wan2.2_animate_14B_bf16.safetensors\n│ ├───📂 loras/\n│ │ ├─── lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors\n│ │ └─── WanAnimate_relight_lora_fp16.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ ├───📂 clip_visions/ \n│ │ └─── clip_vision_h.safetensors\n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n# Report issue\n\nIf you have any problems while using this workflow, please report template-related issues via this link: [report the template issue here](https://github.com/Comfy-Org/workflow_templates/issues)." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 2, + "type": "CLIPLoader", + "pos": [ + -1400, + -260 + ], + "size": [ + 306.36004638671875, + 106 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 1, + 18 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 3, + "type": "VAELoader", + "pos": [ + -1400, + 180 + ], + "size": [ + 310, + 60 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 479, + 525, + 697 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 60, + "type": "ModelSamplingSD3", + "pos": [ + -1380, + -30 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 227 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 477, + 524, + 696 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 4, + "type": "CLIPVisionLoader", + "pos": [ + -2160, + 160 + ], + "size": [ + 306.36004638671875, + 58 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "slot_index": 0, + "links": [ + 4 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPVisionLoader", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "clip_vision_h.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors", + "directory": "clip_vision" + } + ] + }, + "widgets_values": [ + "clip_vision_h.safetensors" + ] + }, + { + "id": 18, + "type": "LoraLoaderModelOnly", + "pos": [ + -1800, + -190 + ], + "size": [ + 310, + 82 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 16 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 226 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors", + "url": "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Lightx2v/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors", + "directory": "loras" + } + ] + }, + "widgets_values": [ + "lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors", + 1 + ] + }, + { + "id": 20, + "type": "UNETLoader", + "pos": [ + -2160, + -90 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 16 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.59", + "models": [ + { + "name": "Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors", + "url": "https://huggingface.co/Kijai/WanVideo_comfy_fp8_scaled/resolve/main/Wan22Animate/Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors", + "default" + ] + }, + { + "id": 160, + "type": "PrimitiveInt", + "pos": [ + -1020, + -500 + ], + "size": [ + 240, + 82 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 447, + 449, + 489 + ] + } + ], + "title": "Height", + "properties": { + "Node name for S&R": "PrimitiveInt", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 640, + "fixed" + ] + }, + { + "id": 159, + "type": "PrimitiveInt", + "pos": [ + -750, + -500 + ], + "size": [ + 240, + 82 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 446, + 448, + 488, + 536, + 708 + ] + } + ], + "title": "Width", + "properties": { + "Node name for S&R": "PrimitiveInt", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 640, + "fixed" + ] + }, + { + "id": 161, + "type": "MarkdownNote", + "pos": [ + -460, + -570 + ], + "size": [ + 370, + 88 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: about size", + "properties": {}, + "widgets_values": [ + "Due to the **WanAnimateToVideo** node input limit. The width and height must be multiples of 16.\n\nBy default, we set it to a smaller size. This is in case you don't have enough VRAM and input a large size, which may cause an out-of-memory issue." + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 1, + 2, + 0, + 1, + 0, + "CLIP" + ], + [ + 4, + 4, + 0, + 9, + 0, + "CLIP_VISION" + ], + [ + 16, + 20, + 0, + 18, + 0, + "MODEL" + ], + [ + 18, + 2, + 0, + 21, + 0, + "CLIP" + ], + [ + 226, + 18, + 0, + 99, + 0, + "MODEL" + ], + [ + 227, + 99, + 0, + 60, + 0, + "MODEL" + ], + [ + 235, + 108, + 0, + 107, + 0, + "SAM2MODEL" + ], + [ + 297, + 145, + 0, + 23, + 0, + "VIDEO" + ], + [ + 344, + 10, + 0, + 9, + 1, + "IMAGE" + ], + [ + 347, + 23, + 0, + 158, + 0, + "IMAGE" + ], + [ + 360, + 158, + 0, + 100, + 1, + "INT" + ], + [ + 361, + 158, + 0, + 101, + 1, + "INT" + ], + [ + 422, + 212, + 0, + 100, + 0, + "IMAGE" + ], + [ + 423, + 212, + 0, + 101, + 0, + "IMAGE" + ], + [ + 425, + 23, + 0, + 212, + 0, + "IMAGE" + ], + [ + 438, + 229, + 0, + 107, + 2, + "STRING" + ], + [ + 446, + 159, + 0, + 212, + 1, + "INT" + ], + [ + 447, + 160, + 0, + 212, + 2, + "INT" + ], + [ + 448, + 159, + 0, + 158, + 1, + "INT" + ], + [ + 449, + 160, + 0, + 158, + 2, + "INT" + ], + [ + 456, + 212, + 0, + 229, + 0, + "IMAGE" + ], + [ + 457, + 212, + 0, + 107, + 1, + "IMAGE" + ], + [ + 477, + 60, + 0, + 232, + 0, + "MODEL" + ], + [ + 478, + 23, + 1, + 232, + 1, + "AUDIO" + ], + [ + 479, + 3, + 0, + 232, + 2, + "VAE" + ], + [ + 480, + 21, + 0, + 232, + 3, + "CONDITIONING" + ], + [ + 481, + 1, + 0, + 232, + 4, + "CONDITIONING" + ], + [ + 482, + 9, + 0, + 232, + 5, + "CLIP_VISION_OUTPUT" + ], + [ + 483, + 10, + 0, + 232, + 6, + "IMAGE" + ], + [ + 484, + 100, + 0, + 232, + 7, + "IMAGE" + ], + [ + 485, + 101, + 0, + 232, + 8, + "IMAGE" + ], + [ + 488, + 159, + 0, + 232, + 11, + "INT" + ], + [ + 489, + 160, + 0, + 232, + 12, + "INT" + ], + [ + 490, + 232, + 0, + 19, + 0, + "VIDEO" + ], + [ + 524, + 60, + 0, + 242, + 0, + "MODEL" + ], + [ + 525, + 3, + 0, + 242, + 1, + "VAE" + ], + [ + 526, + 23, + 1, + 242, + 2, + "AUDIO" + ], + [ + 527, + 232, + 1, + 242, + 3, + "IMAGE" + ], + [ + 528, + 21, + 0, + 242, + 4, + "CONDITIONING" + ], + [ + 529, + 1, + 0, + 242, + 5, + "CONDITIONING" + ], + [ + 530, + 9, + 0, + 242, + 6, + "CLIP_VISION_OUTPUT" + ], + [ + 531, + 10, + 0, + 242, + 7, + "IMAGE" + ], + [ + 532, + 100, + 0, + 242, + 8, + "IMAGE" + ], + [ + 533, + 101, + 0, + 242, + 9, + "IMAGE" + ], + [ + 536, + 159, + 0, + 242, + 12, + "INT" + ], + [ + 537, + 232, + 2, + 242, + 13, + "INT" + ], + [ + 540, + 242, + 2, + 243, + 0, + "VIDEO" + ], + [ + 659, + 276, + 0, + 275, + 1, + "MASK" + ], + [ + 660, + 274, + 0, + 276, + 0, + "MASK" + ], + [ + 661, + 107, + 0, + 274, + 0, + "MASK" + ], + [ + 662, + 212, + 0, + 275, + 0, + "IMAGE" + ], + [ + 675, + 275, + 0, + 124, + 0, + "IMAGE" + ], + [ + 676, + 275, + 0, + 232, + 9, + "IMAGE" + ], + [ + 677, + 275, + 0, + 242, + 10, + "IMAGE" + ], + [ + 691, + 276, + 0, + 127, + 0, + "MASK" + ], + [ + 692, + 276, + 0, + 232, + 10, + "MASK" + ], + [ + 693, + 276, + 0, + 242, + 11, + "MASK" + ], + [ + 695, + 278, + 2, + 277, + 0, + "VIDEO" + ], + [ + 696, + 60, + 0, + 278, + 0, + "MODEL" + ], + [ + 697, + 3, + 0, + 278, + 1, + "VAE" + ], + [ + 698, + 23, + 1, + 278, + 2, + "AUDIO" + ], + [ + 700, + 21, + 0, + 278, + 4, + "CONDITIONING" + ], + [ + 701, + 1, + 0, + 278, + 5, + "CONDITIONING" + ], + [ + 702, + 9, + 0, + 278, + 6, + "CLIP_VISION_OUTPUT" + ], + [ + 703, + 10, + 0, + 278, + 7, + "IMAGE" + ], + [ + 704, + 100, + 0, + 278, + 8, + "IMAGE" + ], + [ + 705, + 101, + 0, + 278, + 9, + "IMAGE" + ], + [ + 706, + 275, + 0, + 278, + 10, + "IMAGE" + ], + [ + 707, + 276, + 0, + 278, + 11, + "MASK" + ], + [ + 708, + 159, + 0, + 278, + 12, + "INT" + ], + [ + 710, + 242, + 0, + 278, + 3, + "IMAGE" + ], + [ + 711, + 242, + 1, + 278, + 13, + "INT" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load models", + "bounding": [ + -2190, + -360, + 1130, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Upload referece image", + "bounding": [ + -2220, + 300, + 450, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 2 - Prompt", + "bounding": [ + -1050, + -360, + 560, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Step 4 - Load original video", + "bounding": [ + -1750, + 300, + 1260, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Sampling + video output", + "bounding": [ + -470, + -360, + 550, + 1400 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Character Mask and Background Video Preprocessing", + "bounding": [ + -2210, + 960, + 1720, + 1440 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 16, + "title": "Video size", + "bounding": [ + -1040, + -600, + 550, + 220 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 14, + "title": "Character mask", + "bounding": [ + -1290, + 1540, + 290, + 283.6000061035156 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "Background_video", + "bounding": [ + -1290, + 1840, + 290, + 170 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 17, + "title": "Video extend", + "bounding": [ + 100, + -360, + 480, + 1400 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 18, + "title": "Video extend", + "bounding": [ + 600, + -360, + 460, + 1400 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "definitions": { + "subgraphs": [ + { + "id": "90db3fa1-b7fd-4c97-90a4-3e9533589dce", + "version": 1, + "state": { + "lastGroupId": 16, + "lastNodeId": 231, + "lastLinkId": 482, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video Sampling and output(Subgraph)", + "inputNode": { + "id": -10, + "bounding": [ + -348.07421875, + -104, + 138.07421875, + 420 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 880, + -4, + 141.841796875, + 100 + ] + }, + "inputs": [ + { + "id": "a65c1a6f-1c56-4db6-bc46-0d762e228140", + "name": "model", + "type": "MODEL", + "linkIds": [ + 454 + ], + "localized_name": "model", + "pos": [ + -230, + -84 + ] + }, + { + "id": "f60a003a-5f70-4edb-87d2-49249b63ac60", + "name": "audio", + "type": "AUDIO", + "linkIds": [ + 463 + ], + "localized_name": "audio", + "shape": 7, + "pos": [ + -230, + -64 + ] + }, + { + "id": "3eba0674-9407-48ab-8416-23357fefa5e4", + "name": "vae", + "type": "VAE", + "linkIds": [ + 464, + 471 + ], + "localized_name": "vae", + "pos": [ + -230, + -44 + ] + }, + { + "id": "8c5ba174-3dac-4830-989d-2ffd194a4638", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 467 + ], + "localized_name": "positive", + "pos": [ + -230, + -24 + ] + }, + { + "id": "1047fa35-1365-4dfc-b7f1-a5869b601a89", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 470 + ], + "localized_name": "negative", + "pos": [ + -230, + -4 + ] + }, + { + "id": "04a00ce5-40d1-46a0-9478-9aba0778b80b", + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "linkIds": [ + 474 + ], + "localized_name": "clip_vision_output", + "shape": 7, + "pos": [ + -230, + 16 + ] + }, + { + "id": "9ed8853f-bd73-4728-be35-ed4d4a177059", + "name": "reference_image", + "type": "IMAGE", + "linkIds": [ + 475 + ], + "localized_name": "reference_image", + "shape": 7, + "pos": [ + -230, + 36 + ] + }, + { + "id": "2b62e853-eb8b-4d69-bf22-1f0822d3e56d", + "name": "face_video", + "type": "IMAGE", + "linkIds": [ + 459 + ], + "localized_name": "face_video", + "shape": 7, + "pos": [ + -230, + 56 + ] + }, + { + "id": "3136835f-c045-4f05-a970-3adafd321465", + "name": "pose_video", + "type": "IMAGE", + "linkIds": [ + 461 + ], + "localized_name": "pose_video", + "shape": 7, + "pos": [ + -230, + 76 + ] + }, + { + "id": "5ad7efd4-462f-41d0-8340-4afd50c5f348", + "name": "background_video", + "type": "IMAGE", + "linkIds": [ + 419 + ], + "localized_name": "background_video", + "shape": 7, + "pos": [ + -230, + 96 + ] + }, + { + "id": "ca1d3a4d-4e24-4d7e-8f09-806712fd4bc9", + "name": "character_mask", + "type": "MASK", + "linkIds": [ + 418 + ], + "localized_name": "character_mask", + "shape": 7, + "pos": [ + -230, + 116 + ] + }, + { + "id": "f39fd571-8756-4c88-bc40-9055450f6e00", + "name": "width", + "type": "INT", + "linkIds": [ + 450 + ], + "localized_name": "width", + "pos": [ + -230, + 136 + ] + }, + { + "id": "02628a20-dd6c-44e6-9012-b6d0bf61a93f", + "name": "height", + "type": "INT", + "linkIds": [ + 451 + ], + "localized_name": "height", + "pos": [ + -230, + 156 + ] + }, + { + "id": "066ae061-5d3e-473f-8a83-8517c605e63d", + "name": "fps", + "type": "FLOAT", + "linkIds": [ + 477 + ], + "pos": [ + -230, + 176 + ] + }, + { + "id": "fbbe4cdd-2580-486a-8d7c-53f1dc0a4034", + "name": "seed", + "type": "INT", + "linkIds": [ + 478 + ], + "pos": [ + -230, + 196 + ] + }, + { + "id": "4bf86876-244b-49d0-a6f5-f8b98de0ac50", + "name": "steps", + "type": "INT", + "linkIds": [ + 479 + ], + "pos": [ + -230, + 216 + ] + }, + { + "id": "43112400-97ac-4ab9-8c6e-1bd62e32f8d4", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 480 + ], + "pos": [ + -230, + 236 + ] + }, + { + "id": "294b0d0a-7b7b-4953-8a86-37440b22099b", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 481 + ], + "pos": [ + -230, + 256 + ] + }, + { + "id": "37d706a5-cf01-4275-917d-ffda1eb0af23", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 482 + ], + "pos": [ + -230, + 276 + ] + } + ], + "outputs": [ + { + "id": "321201d9-6a87-48bc-a8e3-2d13f32a546f", + "name": "VIDEO", + "type": "VIDEO", + "linkIds": [ + 17 + ], + "localized_name": "VIDEO", + "pos": [ + 900, + 16 + ] + }, + { + "id": "bc8f831d-427d-4b69-9bfc-50760cbb1ee4", + "name": "IMAGE", + "type": "IMAGE", + "linkIds": [ + 187, + 208 + ], + "localized_name": "IMAGE", + "pos": [ + 900, + 36 + ] + }, + { + "id": "2b09b619-743f-45f6-a120-44694d4018b6", + "name": "video_frame_offset", + "type": "INT", + "linkIds": [ + 439 + ], + "localized_name": "video_frame_offset", + "pos": [ + 900, + 56 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 57, + "type": "TrimVideoLatent", + "pos": [ + 240, + 110 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 157 + }, + { + "localized_name": "trim_amount", + "name": "trim_amount", + "type": "INT", + "widget": { + "name": "trim_amount" + }, + "link": 152 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 127 + ] + } + ], + "properties": { + "Node name for S&R": "TrimVideoLatent", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0 + ] + }, + { + "id": 58, + "type": "VAEDecode", + "pos": [ + 290, + 230 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 127 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 464 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 187, + 208, + 440 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 62, + "type": "WanAnimateToVideo", + "pos": [ + -150, + -200 + ], + "size": [ + 324.751953125, + 358 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 467 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 470 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 471 + }, + { + "localized_name": "clip_vision_output", + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": 474 + }, + { + "localized_name": "reference_image", + "name": "reference_image", + "shape": 7, + "type": "IMAGE", + "link": 475 + }, + { + "localized_name": "face_video", + "name": "face_video", + "shape": 7, + "type": "IMAGE", + "link": 459 + }, + { + "localized_name": "pose_video", + "name": "pose_video", + "shape": 7, + "type": "IMAGE", + "link": 461 + }, + { + "localized_name": "background_video", + "name": "background_video", + "shape": 7, + "type": "IMAGE", + "link": 419 + }, + { + "localized_name": "character_mask", + "name": "character_mask", + "shape": 7, + "type": "MASK", + "link": 418 + }, + { + "localized_name": "continue_motion", + "name": "continue_motion", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 450 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 451 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 154 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 155 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 156 + ] + }, + { + "localized_name": "trim_latent", + "name": "trim_latent", + "type": "INT", + "links": [ + 152 + ] + }, + { + "localized_name": "trim_image", + "name": "trim_image", + "type": "INT", + "links": [ + 442 + ] + }, + { + "localized_name": "video_frame_offset", + "name": "video_frame_offset", + "type": "INT", + "links": [ + 439 + ] + } + ], + "properties": { + "Node name for S&R": "WanAnimateToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 640, + 640, + 77, + 1, + 5, + 0 + ] + }, + { + "id": 230, + "type": "ImageFromBatch", + "pos": [ + 550, + 240 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 440 + }, + { + "localized_name": "batch_index", + "name": "batch_index", + "type": "INT", + "widget": { + "name": "batch_index" + }, + "link": 442 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 441 + ] + } + ], + "properties": { + "Node name for S&R": "ImageFromBatch", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0, + 4096 + ] + }, + { + "id": 15, + "type": "CreateVideo", + "pos": [ + 550, + 100 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "link": 441 + }, + { + "localized_name": "audio", + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 463 + }, + { + "localized_name": "fps", + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 477 + } + ], + "outputs": [ + { + "localized_name": "VIDEO", + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 17 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 63, + "type": "KSampler", + "pos": [ + 240, + -200 + ], + "size": [ + 270, + 262 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 454 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 154 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 155 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 156 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 478 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 479 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 480 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 481 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 482 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 157 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 1106558644923357, + "randomize", + 6, + 1, + "euler", + "simple", + 1 + ] + } + ], + "groups": [], + "links": [ + { + "id": 154, + "origin_id": 62, + "origin_slot": 0, + "target_id": 63, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 155, + "origin_id": 62, + "origin_slot": 1, + "target_id": 63, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 156, + "origin_id": 62, + "origin_slot": 2, + "target_id": 63, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 157, + "origin_id": 63, + "origin_slot": 0, + "target_id": 57, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 152, + "origin_id": 62, + "origin_slot": 3, + "target_id": 57, + "target_slot": 1, + "type": "INT" + }, + { + "id": 441, + "origin_id": 230, + "origin_slot": 0, + "target_id": 15, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 127, + "origin_id": 57, + "origin_slot": 0, + "target_id": 58, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 440, + "origin_id": 58, + "origin_slot": 0, + "target_id": 230, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 442, + "origin_id": 62, + "origin_slot": 4, + "target_id": 230, + "target_slot": 1, + "type": "INT" + }, + { + "id": 454, + "origin_id": -10, + "origin_slot": 0, + "target_id": 63, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 463, + "origin_id": -10, + "origin_slot": 1, + "target_id": 15, + "target_slot": 1, + "type": "AUDIO" + }, + { + "id": 464, + "origin_id": -10, + "origin_slot": 2, + "target_id": 58, + "target_slot": 1, + "type": "VAE" + }, + { + "id": 471, + "origin_id": -10, + "origin_slot": 2, + "target_id": 62, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 467, + "origin_id": -10, + "origin_slot": 3, + "target_id": 62, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 470, + "origin_id": -10, + "origin_slot": 4, + "target_id": 62, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 474, + "origin_id": -10, + "origin_slot": 5, + "target_id": 62, + "target_slot": 3, + "type": "CLIP_VISION_OUTPUT" + }, + { + "id": 475, + "origin_id": -10, + "origin_slot": 6, + "target_id": 62, + "target_slot": 4, + "type": "IMAGE" + }, + { + "id": 459, + "origin_id": -10, + "origin_slot": 7, + "target_id": 62, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 461, + "origin_id": -10, + "origin_slot": 8, + "target_id": 62, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 419, + "origin_id": -10, + "origin_slot": 9, + "target_id": 62, + "target_slot": 7, + "type": "IMAGE" + }, + { + "id": 418, + "origin_id": -10, + "origin_slot": 10, + "target_id": 62, + "target_slot": 8, + "type": "MASK" + }, + { + "id": 450, + "origin_id": -10, + "origin_slot": 11, + "target_id": 62, + "target_slot": 10, + "type": "INT" + }, + { + "id": 451, + "origin_id": -10, + "origin_slot": 12, + "target_id": 62, + "target_slot": 11, + "type": "INT" + }, + { + "id": 17, + "origin_id": 15, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "VIDEO" + }, + { + "id": 187, + "origin_id": 58, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 208, + "origin_id": 58, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 439, + "origin_id": 62, + "origin_slot": 5, + "target_id": -20, + "target_slot": 2, + "type": "INT" + }, + { + "id": 477, + "origin_id": -10, + "origin_slot": 13, + "target_id": 15, + "target_slot": 2, + "type": "FLOAT" + }, + { + "id": 478, + "origin_id": -10, + "origin_slot": 14, + "target_id": 63, + "target_slot": 4, + "type": "INT" + }, + { + "id": 479, + "origin_id": -10, + "origin_slot": 15, + "target_id": 63, + "target_slot": 5, + "type": "INT" + }, + { + "id": 480, + "origin_id": -10, + "origin_slot": 16, + "target_id": 63, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 481, + "origin_id": -10, + "origin_slot": 17, + "target_id": 63, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 482, + "origin_id": -10, + "origin_slot": 18, + "target_id": 63, + "target_slot": 8, + "type": "COMBO" + } + ], + "extra": {} + }, + { + "id": "975ed319-ca2b-461e-b42a-8e2704ba902f", + "version": 1, + "state": { + "lastGroupId": 16, + "lastNodeId": 241, + "lastLinkId": 532, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video Extend(Subgraph)", + "inputNode": { + "id": -10, + "bounding": [ + -651.841796875, + 735, + 141.841796875, + 440 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 1500, + 855, + 141.841796875, + 100 + ] + }, + "inputs": [ + { + "id": "03e04825-a16a-49e3-a221-d5fdf1d789e5", + "name": "model", + "type": "MODEL", + "linkIds": [ + 455 + ], + "localized_name": "model", + "pos": [ + -530, + 755 + ] + }, + { + "id": "2dbbbe45-a5c2-4de3-a04e-7d2735b98b28", + "name": "vae", + "type": "VAE", + "linkIds": [ + 465, + 472 + ], + "localized_name": "vae", + "pos": [ + -530, + 775 + ] + }, + { + "id": "054fc2d8-105a-4174-9931-a31c4d6e359f", + "name": "audio", + "type": "AUDIO", + "linkIds": [ + 466 + ], + "localized_name": "audio", + "shape": 7, + "pos": [ + -530, + 795 + ] + }, + { + "id": "cdef9f72-f783-4185-9830-fa3a809a1956", + "name": "image1", + "type": "IMAGE", + "linkIds": [ + 491, + 492 + ], + "localized_name": "image1", + "label": "last_batch_images", + "pos": [ + -530, + 815 + ] + }, + { + "id": "a1344d9e-b216-4854-98b0-974ed4a6f209", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 468 + ], + "localized_name": "positive", + "pos": [ + -530, + 835 + ] + }, + { + "id": "52c93856-9e6c-495c-ac56-d1ae2c5d4bc6", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 469 + ], + "localized_name": "negative", + "pos": [ + -530, + 855 + ] + }, + { + "id": "d795f564-a054-484e-ac38-d633ad688212", + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "linkIds": [ + 473 + ], + "localized_name": "clip_vision_output", + "shape": 7, + "pos": [ + -530, + 875 + ] + }, + { + "id": "049d8ac0-c7d0-4f3e-80ea-b60e00289f9d", + "name": "reference_image", + "type": "IMAGE", + "linkIds": [ + 476 + ], + "localized_name": "reference_image", + "shape": 7, + "pos": [ + -530, + 895 + ] + }, + { + "id": "7a51a6a4-870b-41fa-9251-97ad64c7c43f", + "name": "face_video", + "type": "IMAGE", + "linkIds": [ + 460 + ], + "localized_name": "face_video", + "shape": 7, + "pos": [ + -530, + 915 + ] + }, + { + "id": "42ec4e45-9e9e-4b2c-b13f-28def3a7ade6", + "name": "pose_video", + "type": "IMAGE", + "linkIds": [ + 462 + ], + "localized_name": "pose_video", + "shape": 7, + "pos": [ + -530, + 935 + ] + }, + { + "id": "00095787-d8f1-4f37-a2d5-a7760f559dae", + "name": "background_video", + "type": "IMAGE", + "linkIds": [ + 420 + ], + "localized_name": "background_video", + "shape": 7, + "pos": [ + -530, + 955 + ] + }, + { + "id": "d96de1c8-0a3b-45bd-a5cf-eb2b46f91c67", + "name": "character_mask", + "type": "MASK", + "linkIds": [ + 421 + ], + "localized_name": "character_mask", + "shape": 7, + "pos": [ + -530, + 975 + ] + }, + { + "id": "972c7951-4edc-4acf-a1d8-9836f2c7070b", + "name": "width", + "type": "INT", + "linkIds": [ + 452, + 453 + ], + "localized_name": "width", + "pos": [ + -530, + 995 + ] + }, + { + "id": "f4dccdf8-27bc-43ee-8795-86d2868f31c9", + "name": "video_frame_offset", + "type": "INT", + "linkIds": [ + 493 + ], + "localized_name": "video_frame_offset", + "pos": [ + -530, + 1015 + ] + }, + { + "id": "6b9cd8d4-b128-4217-99b7-eaee92b62047", + "name": "seed", + "type": "INT", + "linkIds": [ + 526 + ], + "pos": [ + -530, + 1035 + ] + }, + { + "id": "a81a7a57-c040-4b6a-9bee-8763f60e42a1", + "name": "steps", + "type": "INT", + "linkIds": [ + 527 + ], + "pos": [ + -530, + 1055 + ] + }, + { + "id": "af1f93e3-2c56-403c-90ef-5466a2273ee6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 528 + ], + "pos": [ + -530, + 1075 + ] + }, + { + "id": "c5dc7502-4f9a-49a1-8e4c-adca0809dbf1", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 529 + ], + "pos": [ + -530, + 1095 + ] + }, + { + "id": "cd71c877-d6a5-41f1-b3f2-6a115ae4df96", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 530 + ], + "pos": [ + -530, + 1115 + ] + }, + { + "id": "ef516bbf-aac9-48df-acbb-13a767cadaed", + "name": "fps", + "type": "FLOAT", + "linkIds": [ + 531 + ], + "pos": [ + -530, + 1135 + ] + } + ], + "outputs": [ + { + "id": "64b8d4c3-be0f-473b-aae4-0f56167c1bad", + "name": "IMAGE", + "type": "IMAGE", + "linkIds": [ + 532 + ], + "localized_name": "IMAGE", + "label": "batch_images", + "pos": [ + 1520, + 875 + ] + }, + { + "id": "f33e2c31-73c7-4e9f-8d43-cd7d4b39f9de", + "name": "video_frame_offset", + "type": "INT", + "linkIds": [ + 523 + ], + "localized_name": "video_frame_offset", + "pos": [ + 1520, + 895 + ] + }, + { + "id": "aefce3c5-5b36-47c8-a922-aa488ff30d26", + "name": "VIDEO", + "type": "VIDEO", + "linkIds": [ + 524 + ], + "pos": [ + 1520, + 915 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 87, + "type": "VAEDecode", + "pos": [ + 410, + 1160 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 220 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 465 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 185 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 92, + "type": "TrimVideoLatent", + "pos": [ + 410, + 1060 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 219 + }, + { + "localized_name": "trim_amount", + "name": "trim_amount", + "type": "INT", + "widget": { + "name": "trim_amount" + }, + "link": 218 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 220 + ] + } + ], + "properties": { + "Node name for S&R": "TrimVideoLatent", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0 + ] + }, + { + "id": 85, + "type": "ImageFromBatch", + "pos": [ + 410, + 1240 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 185 + }, + { + "localized_name": "batch_index", + "name": "batch_index", + "type": "INT", + "widget": { + "name": "batch_index" + }, + "link": 212 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 445 + ] + } + ], + "properties": { + "Node name for S&R": "ImageFromBatch", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0, + 4096 + ] + }, + { + "id": 90, + "type": "WanAnimateToVideo", + "pos": [ + -90, + 750 + ], + "size": [ + 324.751953125, + 358 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 468 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 469 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 472 + }, + { + "localized_name": "clip_vision_output", + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": 473 + }, + { + "localized_name": "reference_image", + "name": "reference_image", + "shape": 7, + "type": "IMAGE", + "link": 476 + }, + { + "localized_name": "face_video", + "name": "face_video", + "shape": 7, + "type": "IMAGE", + "link": 460 + }, + { + "localized_name": "pose_video", + "name": "pose_video", + "shape": 7, + "type": "IMAGE", + "link": 462 + }, + { + "localized_name": "background_video", + "name": "background_video", + "shape": 7, + "type": "IMAGE", + "link": 420 + }, + { + "localized_name": "character_mask", + "name": "character_mask", + "shape": 7, + "type": "MASK", + "link": 421 + }, + { + "localized_name": "continue_motion", + "name": "continue_motion", + "shape": 7, + "type": "IMAGE", + "link": 492 + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 452 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 453 + }, + { + "localized_name": "video_frame_offset", + "name": "video_frame_offset", + "type": "INT", + "widget": { + "name": "video_frame_offset" + }, + "link": 493 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 213 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 214 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 215 + ] + }, + { + "localized_name": "trim_latent", + "name": "trim_latent", + "type": "INT", + "links": [ + 218 + ] + }, + { + "localized_name": "trim_image", + "name": "trim_image", + "type": "INT", + "links": [ + 212 + ] + }, + { + "localized_name": "video_frame_offset", + "name": "video_frame_offset", + "type": "INT", + "links": [ + 523 + ] + } + ], + "properties": { + "Node name for S&R": "WanAnimateToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 1280, + 1280, + 77, + 1, + 5, + 0 + ] + }, + { + "id": 88, + "type": "CreateVideo", + "pos": [ + 900, + 820 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "audio", + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 466 + }, + { + "localized_name": "fps", + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 531 + } + ], + "outputs": [ + { + "localized_name": "VIDEO", + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 524 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 91, + "type": "KSampler", + "pos": [ + 410, + 750 + ], + "size": [ + 270, + 262 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 455 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 213 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 214 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 215 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 526 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 527 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 528 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 529 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 530 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 219 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 387378783691198, + "fixed", + 6, + 1, + "euler", + "simple", + 1 + ] + }, + { + "id": 86, + "type": "ImageBatch", + "pos": [ + 940, + 720 + ], + "size": [ + 220, + 46 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "image1", + "name": "image1", + "type": "IMAGE", + "link": 491 + }, + { + "localized_name": "image2", + "name": "image2", + "type": "IMAGE", + "link": 445 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 191, + 532 + ] + } + ], + "properties": { + "Node name for S&R": "ImageBatch", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + } + ], + "groups": [], + "links": [ + { + "id": 213, + "origin_id": 90, + "origin_slot": 0, + "target_id": 91, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 214, + "origin_id": 90, + "origin_slot": 1, + "target_id": 91, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 215, + "origin_id": 90, + "origin_slot": 2, + "target_id": 91, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 220, + "origin_id": 92, + "origin_slot": 0, + "target_id": 87, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 191, + "origin_id": 86, + "origin_slot": 0, + "target_id": 88, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 219, + "origin_id": 91, + "origin_slot": 0, + "target_id": 92, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 218, + "origin_id": 90, + "origin_slot": 3, + "target_id": 92, + "target_slot": 1, + "type": "INT" + }, + { + "id": 445, + "origin_id": 85, + "origin_slot": 0, + "target_id": 86, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 185, + "origin_id": 87, + "origin_slot": 0, + "target_id": 85, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 212, + "origin_id": 90, + "origin_slot": 4, + "target_id": 85, + "target_slot": 1, + "type": "INT" + }, + { + "id": 455, + "origin_id": -10, + "origin_slot": 0, + "target_id": 91, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 465, + "origin_id": -10, + "origin_slot": 1, + "target_id": 87, + "target_slot": 1, + "type": "VAE" + }, + { + "id": 472, + "origin_id": -10, + "origin_slot": 1, + "target_id": 90, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 466, + "origin_id": -10, + "origin_slot": 2, + "target_id": 88, + "target_slot": 1, + "type": "AUDIO" + }, + { + "id": 491, + "origin_id": -10, + "origin_slot": 3, + "target_id": 86, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 492, + "origin_id": -10, + "origin_slot": 3, + "target_id": 90, + "target_slot": 9, + "type": "IMAGE" + }, + { + "id": 468, + "origin_id": -10, + "origin_slot": 4, + "target_id": 90, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 469, + "origin_id": -10, + "origin_slot": 5, + "target_id": 90, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 473, + "origin_id": -10, + "origin_slot": 6, + "target_id": 90, + "target_slot": 3, + "type": "CLIP_VISION_OUTPUT" + }, + { + "id": 476, + "origin_id": -10, + "origin_slot": 7, + "target_id": 90, + "target_slot": 4, + "type": "IMAGE" + }, + { + "id": 460, + "origin_id": -10, + "origin_slot": 8, + "target_id": 90, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 462, + "origin_id": -10, + "origin_slot": 9, + "target_id": 90, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 420, + "origin_id": -10, + "origin_slot": 10, + "target_id": 90, + "target_slot": 7, + "type": "IMAGE" + }, + { + "id": 421, + "origin_id": -10, + "origin_slot": 11, + "target_id": 90, + "target_slot": 8, + "type": "MASK" + }, + { + "id": 452, + "origin_id": -10, + "origin_slot": 12, + "target_id": 90, + "target_slot": 10, + "type": "INT" + }, + { + "id": 453, + "origin_id": -10, + "origin_slot": 12, + "target_id": 90, + "target_slot": 11, + "type": "INT" + }, + { + "id": 493, + "origin_id": -10, + "origin_slot": 13, + "target_id": 90, + "target_slot": 12, + "type": "INT" + }, + { + "id": 523, + "origin_id": 90, + "origin_slot": 5, + "target_id": -20, + "target_slot": 1, + "type": "INT" + }, + { + "id": 524, + "origin_id": 88, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "VIDEO" + }, + { + "id": 526, + "origin_id": -10, + "origin_slot": 14, + "target_id": 91, + "target_slot": 4, + "type": "INT" + }, + { + "id": 527, + "origin_id": -10, + "origin_slot": 15, + "target_id": 91, + "target_slot": 5, + "type": "INT" + }, + { + "id": 528, + "origin_id": -10, + "origin_slot": 16, + "target_id": 91, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 529, + "origin_id": -10, + "origin_slot": 17, + "target_id": 91, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 530, + "origin_id": -10, + "origin_slot": 18, + "target_id": 91, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 531, + "origin_id": -10, + "origin_slot": 19, + "target_id": 88, + "target_slot": 2, + "type": "FLOAT" + }, + { + "id": 532, + "origin_id": 86, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" + } + ], + "extra": {} + }, + { + "id": "063b0ee8-c72b-442b-8029-dd3d5f4b6650", + "version": 1, + "state": { + "lastGroupId": 16, + "lastNodeId": 241, + "lastLinkId": 532, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video Extend(Subgraph)", + "inputNode": { + "id": -10, + "bounding": [ + -651.841796875, + 735, + 141.841796875, + 440 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 1500, + 855, + 142.0703125, + 100 + ] + }, + "inputs": [ + { + "id": "03e04825-a16a-49e3-a221-d5fdf1d789e5", + "name": "model", + "type": "MODEL", + "linkIds": [ + 455 + ], + "localized_name": "model", + "pos": [ + -530, + 755 + ] + }, + { + "id": "2dbbbe45-a5c2-4de3-a04e-7d2735b98b28", + "name": "vae", + "type": "VAE", + "linkIds": [ + 465, + 472 + ], + "localized_name": "vae", + "pos": [ + -530, + 775 + ] + }, + { + "id": "054fc2d8-105a-4174-9931-a31c4d6e359f", + "name": "audio", + "type": "AUDIO", + "linkIds": [ + 466 + ], + "localized_name": "audio", + "shape": 7, + "pos": [ + -530, + 795 + ] + }, + { + "id": "cdef9f72-f783-4185-9830-fa3a809a1956", + "name": "image1", + "type": "IMAGE", + "linkIds": [ + 491, + 492 + ], + "localized_name": "image1", + "label": "last_batch_images", + "pos": [ + -530, + 815 + ] + }, + { + "id": "a1344d9e-b216-4854-98b0-974ed4a6f209", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 468 + ], + "localized_name": "positive", + "pos": [ + -530, + 835 + ] + }, + { + "id": "52c93856-9e6c-495c-ac56-d1ae2c5d4bc6", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 469 + ], + "localized_name": "negative", + "pos": [ + -530, + 855 + ] + }, + { + "id": "d795f564-a054-484e-ac38-d633ad688212", + "name": "clip_vision_output", + "type": "CLIP_VISION_OUTPUT", + "linkIds": [ + 473 + ], + "localized_name": "clip_vision_output", + "shape": 7, + "pos": [ + -530, + 875 + ] + }, + { + "id": "049d8ac0-c7d0-4f3e-80ea-b60e00289f9d", + "name": "reference_image", + "type": "IMAGE", + "linkIds": [ + 476 + ], + "localized_name": "reference_image", + "shape": 7, + "pos": [ + -530, + 895 + ] + }, + { + "id": "7a51a6a4-870b-41fa-9251-97ad64c7c43f", + "name": "face_video", + "type": "IMAGE", + "linkIds": [ + 460 + ], + "localized_name": "face_video", + "shape": 7, + "pos": [ + -530, + 915 + ] + }, + { + "id": "42ec4e45-9e9e-4b2c-b13f-28def3a7ade6", + "name": "pose_video", + "type": "IMAGE", + "linkIds": [ + 462 + ], + "localized_name": "pose_video", + "shape": 7, + "pos": [ + -530, + 935 + ] + }, + { + "id": "00095787-d8f1-4f37-a2d5-a7760f559dae", + "name": "background_video", + "type": "IMAGE", + "linkIds": [ + 420 + ], + "localized_name": "background_video", + "shape": 7, + "pos": [ + -530, + 955 + ] + }, + { + "id": "d96de1c8-0a3b-45bd-a5cf-eb2b46f91c67", + "name": "character_mask", + "type": "MASK", + "linkIds": [ + 421 + ], + "localized_name": "character_mask", + "shape": 7, + "pos": [ + -530, + 975 + ] + }, + { + "id": "972c7951-4edc-4acf-a1d8-9836f2c7070b", + "name": "width", + "type": "INT", + "linkIds": [ + 452, + 453 + ], + "localized_name": "width", + "pos": [ + -530, + 995 + ] + }, + { + "id": "f4dccdf8-27bc-43ee-8795-86d2868f31c9", + "name": "video_frame_offset", + "type": "INT", + "linkIds": [ + 493 + ], + "localized_name": "video_frame_offset", + "pos": [ + -530, + 1015 + ] + }, + { + "id": "6b9cd8d4-b128-4217-99b7-eaee92b62047", + "name": "seed", + "type": "INT", + "linkIds": [ + 526 + ], + "pos": [ + -530, + 1035 + ] + }, + { + "id": "a81a7a57-c040-4b6a-9bee-8763f60e42a1", + "name": "steps", + "type": "INT", + "linkIds": [ + 527 + ], + "pos": [ + -530, + 1055 + ] + }, + { + "id": "af1f93e3-2c56-403c-90ef-5466a2273ee6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 528 + ], + "pos": [ + -530, + 1075 + ] + }, + { + "id": "c5dc7502-4f9a-49a1-8e4c-adca0809dbf1", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 529 + ], + "pos": [ + -530, + 1095 + ] + }, + { + "id": "cd71c877-d6a5-41f1-b3f2-6a115ae4df96", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 530 + ], + "pos": [ + -530, + 1115 + ] + }, + { + "id": "ef516bbf-aac9-48df-acbb-13a767cadaed", + "name": "fps", + "type": "FLOAT", + "linkIds": [ + 531 + ], + "pos": [ + -530, + 1135 + ] + } + ], + "outputs": [ + { + "id": "64b8d4c3-be0f-473b-aae4-0f56167c1bad", + "name": "IMAGE", + "type": "IMAGE", + "linkIds": [ + 532 + ], + "localized_name": "IMAGE", + "label": "batch image output", + "pos": [ + 1520, + 875 + ] + }, + { + "id": "f33e2c31-73c7-4e9f-8d43-cd7d4b39f9de", + "name": "video_frame_offset", + "type": "INT", + "linkIds": [ + 523 + ], + "localized_name": "video_frame_offset", + "pos": [ + 1520, + 895 + ] + }, + { + "id": "aefce3c5-5b36-47c8-a922-aa488ff30d26", + "name": "VIDEO", + "type": "VIDEO", + "linkIds": [ + 524 + ], + "pos": [ + 1520, + 915 + ] + } + ], + "widgets": [], + "nodes": [ + { + "id": 87, + "type": "VAEDecode", + "pos": [ + 410, + 1160 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 220 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 465 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 185 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 92, + "type": "TrimVideoLatent", + "pos": [ + 410, + 1060 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 6, + "mode": 4, + "inputs": [ + { + "localized_name": "samples", + "name": "samples", + "type": "LATENT", + "link": 219 + }, + { + "localized_name": "trim_amount", + "name": "trim_amount", + "type": "INT", + "widget": { + "name": "trim_amount" + }, + "link": 218 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 220 + ] + } + ], + "properties": { + "Node name for S&R": "TrimVideoLatent", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0 + ] + }, + { + "id": 85, + "type": "ImageFromBatch", + "pos": [ + 410, + 1240 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 185 + }, + { + "localized_name": "batch_index", + "name": "batch_index", + "type": "INT", + "widget": { + "name": "batch_index" + }, + "link": 212 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 445 + ] + } + ], + "properties": { + "Node name for S&R": "ImageFromBatch", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 0, + 4096 + ] + }, + { + "id": 90, + "type": "WanAnimateToVideo", + "pos": [ + -90, + 750 + ], + "size": [ + 324.751953125, + 358 + ], + "flags": {}, + "order": 4, + "mode": 4, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 468 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 469 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 472 + }, + { + "localized_name": "clip_vision_output", + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": 473 + }, + { + "localized_name": "reference_image", + "name": "reference_image", + "shape": 7, + "type": "IMAGE", + "link": 476 + }, + { + "localized_name": "face_video", + "name": "face_video", + "shape": 7, + "type": "IMAGE", + "link": 460 + }, + { + "localized_name": "pose_video", + "name": "pose_video", + "shape": 7, + "type": "IMAGE", + "link": 462 + }, + { + "localized_name": "background_video", + "name": "background_video", + "shape": 7, + "type": "IMAGE", + "link": 420 + }, + { + "localized_name": "character_mask", + "name": "character_mask", + "shape": 7, + "type": "MASK", + "link": 421 + }, + { + "localized_name": "continue_motion", + "name": "continue_motion", + "shape": 7, + "type": "IMAGE", + "link": 492 + }, + { + "localized_name": "width", + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 452 + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 453 + }, + { + "localized_name": "video_frame_offset", + "name": "video_frame_offset", + "type": "INT", + "widget": { + "name": "video_frame_offset" + }, + "link": 493 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 213 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 214 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 215 + ] + }, + { + "localized_name": "trim_latent", + "name": "trim_latent", + "type": "INT", + "links": [ + 218 + ] + }, + { + "localized_name": "trim_image", + "name": "trim_image", + "type": "INT", + "links": [ + 212 + ] + }, + { + "localized_name": "video_frame_offset", + "name": "video_frame_offset", + "type": "INT", + "links": [ + 523 + ] + } + ], + "properties": { + "Node name for S&R": "WanAnimateToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 1280, + 1280, + 77, + 1, + 5, + 0 + ] + }, + { + "id": 88, + "type": "CreateVideo", + "pos": [ + 900, + 820 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "audio", + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 466 + }, + { + "localized_name": "fps", + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 531 + } + ], + "outputs": [ + { + "localized_name": "VIDEO", + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 524 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 86, + "type": "ImageBatch", + "pos": [ + 940, + 720 + ], + "size": [ + 140, + 46 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [ + { + "localized_name": "image1", + "name": "image1", + "type": "IMAGE", + "link": 491 + }, + { + "localized_name": "image2", + "name": "image2", + "type": "IMAGE", + "link": 445 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 191, + 532 + ] + } + ], + "properties": { + "Node name for S&R": "ImageBatch", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [] + }, + { + "id": 91, + "type": "KSampler", + "pos": [ + 410, + 750 + ], + "size": [ + 270, + 262 + ], + "flags": {}, + "order": 5, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 455 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 213 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 214 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 215 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 526 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 527 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 528 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 529 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 530 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 219 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler", + "cnr_id": "comfy-core", + "ver": "0.3.59" + }, + "widgets_values": [ + 387378783691198, + "fixed", + 6, + 1, + "euler", + "simple", + 1 + ] + } + ], + "groups": [], + "links": [ + { + "id": 213, + "origin_id": 90, + "origin_slot": 0, + "target_id": 91, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 214, + "origin_id": 90, + "origin_slot": 1, + "target_id": 91, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 215, + "origin_id": 90, + "origin_slot": 2, + "target_id": 91, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 220, + "origin_id": 92, + "origin_slot": 0, + "target_id": 87, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 191, + "origin_id": 86, + "origin_slot": 0, + "target_id": 88, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 219, + "origin_id": 91, + "origin_slot": 0, + "target_id": 92, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 218, + "origin_id": 90, + "origin_slot": 3, + "target_id": 92, + "target_slot": 1, + "type": "INT" + }, + { + "id": 445, + "origin_id": 85, + "origin_slot": 0, + "target_id": 86, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 185, + "origin_id": 87, + "origin_slot": 0, + "target_id": 85, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 212, + "origin_id": 90, + "origin_slot": 4, + "target_id": 85, + "target_slot": 1, + "type": "INT" + }, + { + "id": 455, + "origin_id": -10, + "origin_slot": 0, + "target_id": 91, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 465, + "origin_id": -10, + "origin_slot": 1, + "target_id": 87, + "target_slot": 1, + "type": "VAE" + }, + { + "id": 472, + "origin_id": -10, + "origin_slot": 1, + "target_id": 90, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 466, + "origin_id": -10, + "origin_slot": 2, + "target_id": 88, + "target_slot": 1, + "type": "AUDIO" + }, + { + "id": 491, + "origin_id": -10, + "origin_slot": 3, + "target_id": 86, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 492, + "origin_id": -10, + "origin_slot": 3, + "target_id": 90, + "target_slot": 9, + "type": "IMAGE" + }, + { + "id": 468, + "origin_id": -10, + "origin_slot": 4, + "target_id": 90, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 469, + "origin_id": -10, + "origin_slot": 5, + "target_id": 90, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 473, + "origin_id": -10, + "origin_slot": 6, + "target_id": 90, + "target_slot": 3, + "type": "CLIP_VISION_OUTPUT" + }, + { + "id": 476, + "origin_id": -10, + "origin_slot": 7, + "target_id": 90, + "target_slot": 4, + "type": "IMAGE" + }, + { + "id": 460, + "origin_id": -10, + "origin_slot": 8, + "target_id": 90, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 462, + "origin_id": -10, + "origin_slot": 9, + "target_id": 90, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 420, + "origin_id": -10, + "origin_slot": 10, + "target_id": 90, + "target_slot": 7, + "type": "IMAGE" + }, + { + "id": 421, + "origin_id": -10, + "origin_slot": 11, + "target_id": 90, + "target_slot": 8, + "type": "MASK" + }, + { + "id": 452, + "origin_id": -10, + "origin_slot": 12, + "target_id": 90, + "target_slot": 10, + "type": "INT" + }, + { + "id": 453, + "origin_id": -10, + "origin_slot": 12, + "target_id": 90, + "target_slot": 11, + "type": "INT" + }, + { + "id": 493, + "origin_id": -10, + "origin_slot": 13, + "target_id": 90, + "target_slot": 12, + "type": "INT" + }, + { + "id": 523, + "origin_id": 90, + "origin_slot": 5, + "target_id": -20, + "target_slot": 1, + "type": "INT" + }, + { + "id": 524, + "origin_id": 88, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "VIDEO" + }, + { + "id": 526, + "origin_id": -10, + "origin_slot": 14, + "target_id": 91, + "target_slot": 4, + "type": "INT" + }, + { + "id": 527, + "origin_id": -10, + "origin_slot": 15, + "target_id": 91, + "target_slot": 5, + "type": "INT" + }, + { + "id": 528, + "origin_id": -10, + "origin_slot": 16, + "target_id": 91, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 529, + "origin_id": -10, + "origin_slot": 17, + "target_id": 91, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 530, + "origin_id": -10, + "origin_slot": 18, + "target_id": 91, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 531, + "origin_id": -10, + "origin_slot": 19, + "target_id": 88, + "target_slot": 2, + "type": "FLOAT" + }, + { + "id": 532, + "origin_id": 86, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" + } + ], + "extra": {} + } + ] + }, + "config": {}, + "extra": { + "ds": { + "scale": 0.2755949068864249, + "offset": [ + 3761.4008595142814, + 997.7831727528201 + ] + }, + "frontendVersion": "1.32.1", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-flf2v.jpg b/example_workflows/i2v_wan22-14b-flf2v.jpg new file mode 100644 index 0000000..c48e917 Binary files /dev/null and b/example_workflows/i2v_wan22-14b-flf2v.jpg differ diff --git a/example_workflows/i2v_wan22-14b-flf2v.json b/example_workflows/i2v_wan22-14b-flf2v.json new file mode 100644 index 0000000..d3cc408 --- /dev/null +++ b/example_workflows/i2v_wan22-14b-flf2v.json @@ -0,0 +1,2739 @@ +{ + "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", + "revision": 0, + "last_node_id": 96, + "last_link_id": 183, + "nodes": [ + { + "id": 38, + "type": "CLIPLoader", + "pos": [ + 50, + 1840 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 74, + 75 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 440, + 2360 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 19, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 75 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 150 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 68, + "type": "LoadImage", + "pos": [ + 60, + 2170 + ], + "size": [ + 315, + 314.0000305175781 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 157 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_flf2v_end_image.png", + "image" + ] + }, + { + "id": 60, + "type": "CreateVideo", + "pos": [ + 1300, + 1650 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 37, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 131 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 132 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 72, + "type": "CLIPLoader", + "pos": [ + 50, + 190 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 161, + 179 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 73, + "type": "ModelSamplingSD3", + "pos": [ + 650, + -70 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 159 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 168 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 74, + "type": "ModelSamplingSD3", + "pos": [ + 650, + 60 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 160 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 175 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 76, + "type": "UNETLoader", + "pos": [ + 40, + -70 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 159 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 77, + "type": "UNETLoader", + "pos": [ + 40, + 60 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 160 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 78, + "type": "CLIPTextEncode", + "pos": [ + 430, + 410 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 161 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 163 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 79, + "type": "VAELoader", + "pos": [ + 50, + 350 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 164, + 173 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 81, + "type": "WanFirstLastFrameToVideo", + "pos": [ + 440, + 720 + ], + "size": [ + 410, + 260 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 162 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 163 + }, + { + "name": "vae", + "type": "VAE", + "link": 164 + }, + { + "name": "clip_vision_start_image", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "clip_vision_end_image", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 165 + }, + { + "name": "end_image", + "shape": 7, + "type": "IMAGE", + "link": 166 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 169, + 176 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 170, + 177 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 171 + ] + } + ], + "properties": { + "Node name for S&R": "WanFirstLastFrameToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.48", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 85, + "type": "VAEDecode", + "pos": [ + 1250, + -70 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 172 + }, + { + "name": "vae", + "type": "VAE", + "link": 173 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 174 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 86, + "type": "CreateVideo", + "pos": [ + 1250, + 30 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 174 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 167 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 88, + "type": "Note", + "pos": [ + 420, + 1060 + ], + "size": [ + 450, + 120 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Video Size", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "By default, we set the video to a smaller size for users with low VRAM. If you have enough VRAM, you can change the size" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 90, + "type": "CLIPTextEncode", + "pos": [ + 430, + 210 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 179 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 162 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "冰晶组成的小猫突然被惊醒,愤怒的它抬头,渐渐长出色彩毛发变成为一个巨兽,像发现危险一样呲牙,瞪大眼睛" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 37, + "type": "UNETLoader", + "pos": [ + 40, + 1580 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 56, + "type": "UNETLoader", + "pos": [ + 40, + 1710 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 8, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 182 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 1300, + 1550 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 35, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 124 + }, + { + "name": "vae", + "type": "VAE", + "link": 76 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 131 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 55, + "type": "ModelSamplingSD3", + "pos": [ + 640, + 1970 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 183 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 148 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5 + ] + }, + { + "id": 92, + "type": "LoraLoaderModelOnly", + "pos": [ + 440, + 1840 + ], + "size": [ + 420, + 82 + ], + "flags": {}, + "order": 25, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 182 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 183 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + }, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + 1 + ] + }, + { + "id": 91, + "type": "LoraLoaderModelOnly", + "pos": [ + 430, + 1580 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 24, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 180 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 181 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + }, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + 1 + ] + }, + { + "id": 54, + "type": "ModelSamplingSD3", + "pos": [ + 640, + 1710 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 28, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 181 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 147 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5 + ] + }, + { + "id": 58, + "type": "KSamplerAdvanced", + "pos": [ + 940, + 2120 + ], + "size": [ + 304.748046875, + 498.6905822753906 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 148 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 154 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 155 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 113 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 124 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 4, + 1, + "euler", + "simple", + 2, + 10000, + "disable" + ] + }, + { + "id": 57, + "type": "KSamplerAdvanced", + "pos": [ + 930, + 1550 + ], + "size": [ + 304.748046875, + 334 + ], + "flags": {}, + "order": 31, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 147 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 151 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 152 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 153 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 113 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "enable", + 984937593540091, + "randomize", + 4, + 1, + "euler", + "simple", + 0, + 2, + "enable" + ] + }, + { + "id": 61, + "type": "SaveVideo", + "pos": [ + 1300, + 1790 + ], + "size": [ + 710, + 808 + ], + "flags": {}, + "order": 39, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 132 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 39, + "type": "VAELoader", + "pos": [ + 50, + 1990 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 76, + 156 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 67, + "type": "WanFirstLastFrameToVideo", + "pos": [ + 450, + 2650 + ], + "size": [ + 410, + 260 + ], + "flags": {}, + "order": 26, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 149 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 150 + }, + { + "name": "vae", + "type": "VAE", + "link": 156 + }, + { + "name": "clip_vision_start_image", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "clip_vision_end_image", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 157 + }, + { + "name": "end_image", + "shape": 7, + "type": "IMAGE", + "link": 158 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 151, + 154 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 152, + 155 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 153 + ] + } + ], + "properties": { + "Node name for S&R": "WanFirstLastFrameToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.48", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 440, + 2160 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 18, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 74 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 149 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "A bearded man with red facial hair wearing a yellow straw hat and dark coat in Van Gogh's self-portrait style, slowly and continuously transforms into a space astronaut. The transformation flows like liquid paint - his beard fades away strand by strand, the yellow hat melts and reforms smoothly into a silver space helmet, dark coat gradually lightens and restructures into a white spacesuit. The background swirling brushstrokes slowly organize and clarify into realistic stars and space, with Earth appearing gradually in the distance. Every change happens in seamless waves, maintaining visual continuity throughout the metamorphosis.\n\nConsistent soft lighting throughout, medium close-up maintaining same framing, central composition stays fixed, gentle color temperature shift from warm to cool, gradual contrast increase, smooth style transition from painterly to photorealistic. Static camera with subtle slow zoom, emphasizing the flowing transformation process without abrupt changes." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 62, + "type": "LoadImage", + "pos": [ + 60, + 2600 + ], + "size": [ + 315, + 314.00006103515625 + ], + "flags": {}, + "order": 10, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 158 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_flf2v_start_image.png", + "image" + ] + }, + { + "id": 83, + "type": "SaveVideo", + "pos": [ + 1250, + 170 + ], + "size": [ + 770, + 840 + ], + "flags": {}, + "order": 38, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 167 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 96, + "type": "Note", + "pos": [ + 10, + -310 + ], + "size": [ + 360, + 100 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: About 4 Steps LoRA", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "Using the Wan2.2 Lighting LoRA will result in the loss of video dynamics, but it will reduce the generation time. This template provides two workflows, and you can enable one as needed." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 70, + "type": "Note", + "pos": [ + 900, + 2810 + ], + "size": [ + 340, + 120 + ], + "flags": {}, + "order": 12, + "mode": 4, + "inputs": [], + "outputs": [], + "title": "Note: Video Size", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "By default, we set the video to a smaller size for users with low VRAM. If you have enough VRAM, you can change the size" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 80, + "type": "LoadImage", + "pos": [ + 60, + 520 + ], + "size": [ + 315, + 314.0000000000002 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 165 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_flf2v_start_image.png", + "image" + ] + }, + { + "id": 89, + "type": "LoadImage", + "pos": [ + 50, + 940 + ], + "size": [ + 315, + 314.00006103515625 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 166 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_flf2v_end_image.png", + "image" + ] + }, + { + "id": 95, + "type": "MarkdownNote", + "pos": [ + -360, + 1480 + ], + "size": [ + 350, + 150 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "1. Box-select then use Ctrl + B to enable\n2. If you don't want to run both groups simultaneously, don't forget to use **Ctrl + B** to disable the **fp8_scaled + 4steps LoRA** group after enabling the **fp8_scaled** group, or try the [partial - execution](https://docs.comfy.org/interface/features/partial-execution) feature." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 84, + "type": "KSamplerAdvanced", + "pos": [ + 900, + -70 + ], + "size": [ + 300, + 540 + ], + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 168 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 169 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 170 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 171 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "enable", + 984937593540091, + "randomize", + 20, + 4, + "euler", + "simple", + 0, + 10, + "enable" + ] + }, + { + "id": 87, + "type": "KSamplerAdvanced", + "pos": [ + 900, + 660 + ], + "size": [ + 310, + 520 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 175 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 178 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 172 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 20, + 4, + "euler", + "simple", + 10, + 10000, + "disable" + ] + }, + { + "id": 94, + "type": "MarkdownNote", + "pos": [ + -500, + -160 + ], + "size": [ + 480, + 550 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: Model Links", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2)\n\n\n## Model links\n\n**text_encoders**\n\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n**loras**\n\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors)\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors)\n\n**diffusion_models**\n\n- [wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors)\n\n**vae**\n\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ ├── 📂 loras/\n│ │ ├── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ │ └── wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors\n│ ├── 📂 diffusion_models/\n│ │ ├── wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors\n│ │ └── wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors\n│ └── 📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n\n## Report issue\n\nIf you encounter any issues when running this workflow, [report template issue here](https://github.com/Comfy-Org/workflow_templates/issues)\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 93, + "type": "MarkdownNote", + "pos": [ + -500, + 450 + ], + "size": [ + 480, + 180 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: VRAM Usage", + "properties": { + "ue_properties": { + "version": "7.1", + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "## GPU:RTX4090D 24GB\n\n| Model | Size |VRAM Usage | 1st Generation | 2nd Generation |\n|---------------------|-------|-----------|---------------|-----------------|\n| fp8_scaled |640*640| 84% | ≈ 536s | ≈ 513s |\n| fp8_scaled + 4steps LoRA | 640*640 | 89% | ≈ 108s | ≈ 71s |" + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 74, + 38, + 0, + 6, + 0, + "CLIP" + ], + [ + 75, + 38, + 0, + 7, + 0, + "CLIP" + ], + [ + 76, + 39, + 0, + 8, + 1, + "VAE" + ], + [ + 113, + 57, + 0, + 58, + 3, + "LATENT" + ], + [ + 124, + 58, + 0, + 8, + 0, + "LATENT" + ], + [ + 131, + 8, + 0, + 60, + 0, + "IMAGE" + ], + [ + 132, + 60, + 0, + 61, + 0, + "VIDEO" + ], + [ + 147, + 54, + 0, + 57, + 0, + "MODEL" + ], + [ + 148, + 55, + 0, + 58, + 0, + "MODEL" + ], + [ + 149, + 6, + 0, + 67, + 0, + "CONDITIONING" + ], + [ + 150, + 7, + 0, + 67, + 1, + "CONDITIONING" + ], + [ + 151, + 67, + 0, + 57, + 1, + "CONDITIONING" + ], + [ + 152, + 67, + 1, + 57, + 2, + "CONDITIONING" + ], + [ + 153, + 67, + 2, + 57, + 3, + "LATENT" + ], + [ + 154, + 67, + 0, + 58, + 1, + "CONDITIONING" + ], + [ + 155, + 67, + 1, + 58, + 2, + "CONDITIONING" + ], + [ + 156, + 39, + 0, + 67, + 2, + "VAE" + ], + [ + 157, + 68, + 0, + 67, + 5, + "IMAGE" + ], + [ + 158, + 62, + 0, + 67, + 6, + "IMAGE" + ], + [ + 159, + 76, + 0, + 73, + 0, + "MODEL" + ], + [ + 160, + 77, + 0, + 74, + 0, + "MODEL" + ], + [ + 161, + 72, + 0, + 78, + 0, + "CLIP" + ], + [ + 162, + 90, + 0, + 81, + 0, + "CONDITIONING" + ], + [ + 163, + 78, + 0, + 81, + 1, + "CONDITIONING" + ], + [ + 164, + 79, + 0, + 81, + 2, + "VAE" + ], + [ + 165, + 80, + 0, + 81, + 5, + "IMAGE" + ], + [ + 166, + 89, + 0, + 81, + 6, + "IMAGE" + ], + [ + 167, + 86, + 0, + 83, + 0, + "VIDEO" + ], + [ + 168, + 73, + 0, + 84, + 0, + "MODEL" + ], + [ + 169, + 81, + 0, + 84, + 1, + "CONDITIONING" + ], + [ + 170, + 81, + 1, + 84, + 2, + "CONDITIONING" + ], + [ + 171, + 81, + 2, + 84, + 3, + "LATENT" + ], + [ + 172, + 87, + 0, + 85, + 0, + "LATENT" + ], + [ + 173, + 79, + 0, + 85, + 1, + "VAE" + ], + [ + 174, + 85, + 0, + 86, + 0, + "IMAGE" + ], + [ + 175, + 74, + 0, + 87, + 0, + "MODEL" + ], + [ + 176, + 81, + 0, + 87, + 1, + "CONDITIONING" + ], + [ + 177, + 81, + 1, + 87, + 2, + "CONDITIONING" + ], + [ + 178, + 84, + 0, + 87, + 3, + "LATENT" + ], + [ + 179, + 72, + 0, + 90, + 0, + "CLIP" + ], + [ + 180, + 37, + 0, + 91, + 0, + "MODEL" + ], + [ + 181, + 91, + 0, + 54, + 0, + "MODEL" + ], + [ + 182, + 56, + 0, + 92, + 0, + "MODEL" + ], + [ + 183, + 92, + 0, + 55, + 0, + "MODEL" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load models", + "bounding": [ + 30, + 1500, + 850, + 570 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 2.1 - Upload start_image", + "bounding": [ + 30, + 2090, + 370, + 410 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 4 - Prompt", + "bounding": [ + 430, + 2090, + 445.27801513671875, + 464.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step 3 - Video size & length", + "bounding": [ + 430, + 2580, + 450, + 350 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Step 2.2 - Upload end_image", + "bounding": [ + 30, + 2520, + 370, + 410 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 11, + "title": "Default workflow", + "bounding": [ + 20, + -190, + 2030, + 1490 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 6, + "title": "Step 1 - Load models", + "bounding": [ + 30, + -150, + 371.0310363769531, + 571.3974609375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Step 2.1 - Upload start_image", + "bounding": [ + 30, + 440, + 370, + 410 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Step 4 - Prompt", + "bounding": [ + 420, + 140, + 445.27801513671875, + 464.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Step 3 - Video size & length", + "bounding": [ + 420, + 620, + 450, + 390 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Step 2.2 - Upload end_image", + "bounding": [ + 30, + 870, + 370, + 410 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 12, + "title": "Enable lightning lora version (Can Speed up the workflow but will sacrifice some quality)", + "bounding": [ + 20, + 1450, + 2030, + 1510 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.5857275716403554, + "offset": [ + 1010.0250528947005, + 777.8339734350558 + ] + }, + "frontendVersion": "1.32.1", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "ue_links": [], + "links_added_by_ue": [] + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-fun-camera.jpg b/example_workflows/i2v_wan22-14b-fun-camera.jpg new file mode 100644 index 0000000..56c5b77 Binary files /dev/null and b/example_workflows/i2v_wan22-14b-fun-camera.jpg differ diff --git a/example_workflows/i2v_wan22-14b-fun-camera.json b/example_workflows/i2v_wan22-14b-fun-camera.json new file mode 100644 index 0000000..33b629c --- /dev/null +++ b/example_workflows/i2v_wan22-14b-fun-camera.json @@ -0,0 +1,2735 @@ +{ + "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", + "revision": 0, + "last_node_id": 115, + "last_link_id": 209, + "nodes": [ + { + "id": 75, + "type": "UNETLoader", + "pos": [ + 2830, + 1810 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 173 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 90, + "type": "LoraLoaderModelOnly", + "pos": [ + 2840, + 2260 + ], + "size": [ + 420, + 82 + ], + "flags": {}, + "order": 16, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 177 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 176 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + } + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + 1 + ] + }, + { + "id": 88, + "type": "LoraLoaderModelOnly", + "pos": [ + 2830, + 1940 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 173 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 174 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + } + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + 1 + ] + }, + { + "id": 72, + "type": "UNETLoader", + "pos": [ + 2830, + 2130 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 177 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 80, + "type": "WanCameraImageToVideo", + "pos": [ + 3640, + 2840 + ], + "size": [ + 290, + 230 + ], + "flags": {}, + "order": 26, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 161 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 162 + }, + { + "name": "vae", + "type": "VAE", + "link": 163 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 164 + }, + { + "name": "camera_conditions", + "shape": 7, + "type": "WAN_CAMERA_EMBEDDING", + "link": 165 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 166 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 167 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 168 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 150, + 158 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 151, + 159 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 152 + ] + } + ], + "properties": { + "Node name for S&R": "WanCameraImageToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "length": true + } + } + }, + "widgets_values": [ + 832, + 480, + 81, + 1 + ] + }, + { + "id": 74, + "type": "CLIPTextEncode", + "pos": [ + 3350, + 2420 + ], + "size": [ + 580, + 200 + ], + "flags": {}, + "order": 21, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 154 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 162 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 76, + "type": "ModelSamplingSD3", + "pos": [ + 3340, + 1760 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 174 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 149 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 77, + "type": "ModelSamplingSD3", + "pos": [ + 3360, + 1940 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 24, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 176 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 157 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 82, + "type": "VAEDecode", + "pos": [ + 4130, + 3050 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 32, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 170 + }, + { + "name": "vae", + "type": "VAE", + "link": 171 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 172 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 83, + "type": "CreateVideo", + "pos": [ + 4070, + 3150 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 34, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 172 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 153 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "fps": true + } + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 73, + "type": "SaveVideo", + "pos": [ + 4420, + 1780 + ], + "size": [ + 1080, + 1400 + ], + "flags": {}, + "order": 36, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 153 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "filename_prefix": true, + "format": true, + "codec": true + } + } + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 87, + "type": "WanCameraEmbedding", + "pos": [ + 3350, + 2840 + ], + "size": [ + 236.8000030517578, + 310 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "camera_embedding", + "type": "WAN_CAMERA_EMBEDDING", + "links": [ + 165 + ] + }, + { + "name": "width", + "type": "INT", + "links": [ + 166 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 167 + ] + }, + { + "name": "length", + "type": "INT", + "links": [ + 168 + ] + } + ], + "properties": { + "Node name for S&R": "WanCameraEmbedding", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "Zoom In", + 720, + 720, + 81, + 1, + 0.5, + 0.5, + 0.5, + 0.5 + ] + }, + { + "id": 97, + "type": "LoadImage", + "pos": [ + -220, + 2510 + ], + "size": [ + 430, + 490 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 183 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_camera_start_image.jpg", + "image" + ] + }, + { + "id": 98, + "type": "WanCameraImageToVideo", + "pos": [ + 580, + 2620 + ], + "size": [ + 290, + 230 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 180 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 181 + }, + { + "name": "vae", + "type": "VAE", + "link": 182 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 183 + }, + { + "name": "camera_conditions", + "shape": 7, + "type": "WAN_CAMERA_EMBEDDING", + "link": 184 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 185 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 186 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 187 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 192, + 196 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 193, + 197 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 194 + ] + } + ], + "properties": { + "Node name for S&R": "WanCameraImageToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "length": true + } + } + }, + "widgets_values": [ + 832, + 480, + 81, + 1 + ] + }, + { + "id": 99, + "type": "CLIPTextEncode", + "pos": [ + 290, + 2200 + ], + "size": [ + 580, + 200 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 188 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 181 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 92, + "type": "UNETLoader", + "pos": [ + -220, + 1840 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 204 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 95, + "type": "UNETLoader", + "pos": [ + -220, + 2040 + ], + "size": [ + 430, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 205 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 91, + "type": "VAELoader", + "pos": [ + -220, + 2340 + ], + "size": [ + 430, + 60 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 182, + 200 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 96, + "type": "CLIPLoader", + "pos": [ + -220, + 2190 + ], + "size": [ + 430, + 110 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 188, + 203 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 85, + "type": "CLIPLoader", + "pos": [ + 2840, + 2410 + ], + "size": [ + 430, + 110 + ], + "flags": {}, + "order": 8, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 154, + 169 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 86, + "type": "VAELoader", + "pos": [ + 2840, + 2560 + ], + "size": [ + 430, + 60 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 163, + 171 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 108, + "type": "WanCameraEmbedding", + "pos": [ + 290, + 2620 + ], + "size": [ + 236.8000030517578, + 310 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "camera_embedding", + "type": "WAN_CAMERA_EMBEDDING", + "links": [ + 184 + ] + }, + { + "name": "width", + "type": "INT", + "links": [ + 185 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 186 + ] + }, + { + "name": "length", + "type": "INT", + "links": [ + 187 + ] + } + ], + "properties": { + "Node name for S&R": "WanCameraEmbedding", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "Static", + 720, + 720, + 81, + 1, + 0.5, + 0.5, + 0.5, + 0.5 + ] + }, + { + "id": 107, + "type": "CLIPTextEncode", + "pos": [ + 280, + 1890 + ], + "size": [ + 600, + 250 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 203 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "Two rovers race past, leaving clear tracks. Base tower antenna flashes rapidly, modules flicker with light. Ship speeds toward giant planet, engine lights brilliant.\n" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 71, + "type": "KSamplerAdvanced", + "pos": [ + 4040, + 1770 + ], + "size": [ + 304.748046875, + 546.0001220703125 + ], + "flags": {}, + "order": 28, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 149 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 150 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 151 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 152 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 160 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "enable", + 258965858433509, + "randomize", + 4, + 1, + "euler", + "simple", + 0, + 2, + "enable" + ] + }, + { + "id": 78, + "type": "KSamplerAdvanced", + "pos": [ + 4050, + 2440 + ], + "size": [ + 304.748046875, + 546.0001220703125 + ], + "flags": {}, + "order": 30, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 157 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 158 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 159 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 160 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 170 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 4, + 1, + "euler", + "simple", + 2, + 4, + "disable" + ] + }, + { + "id": 81, + "type": "CLIPTextEncode", + "pos": [ + 3340, + 2110 + ], + "size": [ + 600, + 250 + ], + "flags": {}, + "order": 22, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 169 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 161 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "Two rovers race past, leaving clear tracks. Base tower antenna flashes rapidly, modules flicker with light. Ship speeds toward giant planet, engine lights brilliant." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 112, + "type": "MarkdownNote", + "pos": [ + -790, + 2160 + ], + "size": [ + 480, + 150 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "VRAM Usage", + "properties": {}, + "widgets_values": [ + "## GPU:RTX4090D 24GB\n\n| Model | Size |VRAM Usage | 1st Generation | 2nd Generation |\n|---------------------|-------|-----------|---------------|-----------------|\n| fp8_scaled |640*640| 84% | ≈ 536s | ≈ 513s |\n| fp8_scaled + 4steps LoRA | 640*640 | 89% | ≈ 108s | ≈ 71s |" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 110, + "type": "MarkdownNote", + "pos": [ + -790, + 1680 + ], + "size": [ + 480, + 430 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2-2-fun-camera\n) \n\n**Diffusion Model**\n- [wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors)\n\n**LoRA**\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors)\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── wan2.2_fun_camera_high_noise_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_fun_camera_low_noise_14B_fp8_scaled.safetensors\n│ ├───📂 loras/\n│ │ ├─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ │ └─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 79, + "type": "LoadImage", + "pos": [ + 2840, + 2730 + ], + "size": [ + 430, + 490 + ], + "flags": {}, + "order": 13, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 164 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_camera_start_image.jpg", + "image" + ] + }, + { + "id": 104, + "type": "VAEDecode", + "pos": [ + 990, + 2650 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 31, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 199 + }, + { + "name": "vae", + "type": "VAE", + "link": 200 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 201 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 105, + "type": "CreateVideo", + "pos": [ + 1260, + 2640 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 33, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 201 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 202 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "fps": true + } + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 102, + "type": "KSamplerAdvanced", + "pos": [ + 940, + 1860 + ], + "size": [ + 304.748046875, + 546.0001220703125 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 191 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 192 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 193 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 194 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 198 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "enable", + 12802742726693, + "randomize", + 20, + 3.5, + "euler", + "simple", + 0, + 10, + "enable" + ] + }, + { + "id": 103, + "type": "KSamplerAdvanced", + "pos": [ + 1280, + 1860 + ], + "size": [ + 304.748046875, + 546.0001220703125 + ], + "flags": {}, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 195 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 196 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 197 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 198 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 199 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 20, + 3.5, + "euler", + "simple", + 10, + 10000, + "disable" + ] + }, + { + "id": 101, + "type": "ModelSamplingSD3", + "pos": [ + 1280, + 1760 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 205 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 195 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 100, + "type": "ModelSamplingSD3", + "pos": [ + 940, + 1760 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 204 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 191 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 106, + "type": "SaveVideo", + "pos": [ + 1630, + 1730 + ], + "size": [ + 1110, + 1280 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 202 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.50", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "filename_prefix": true, + "format": true, + "codec": true + } + } + }, + "widgets_values": [ + "video/wan2.2_fun_camrea", + "auto", + "auto" + ] + }, + { + "id": 115, + "type": "Note", + "pos": [ + -260, + 1540 + ], + "size": [ + 360, + 100 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About 4 Steps LoRA", + "properties": {}, + "widgets_values": [ + "Using the Wan2.2 Lighting LoRA will result in the loss of video dynamics, but it will reduce the generation time. This template provides two workflows, and you can enable one as needed." + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 149, + 76, + 0, + 71, + 0, + "MODEL" + ], + [ + 150, + 80, + 0, + 71, + 1, + "CONDITIONING" + ], + [ + 151, + 80, + 1, + 71, + 2, + "CONDITIONING" + ], + [ + 152, + 80, + 2, + 71, + 3, + "LATENT" + ], + [ + 153, + 83, + 0, + 73, + 0, + "VIDEO" + ], + [ + 154, + 85, + 0, + 74, + 0, + "CLIP" + ], + [ + 157, + 77, + 0, + 78, + 0, + "MODEL" + ], + [ + 158, + 80, + 0, + 78, + 1, + "CONDITIONING" + ], + [ + 159, + 80, + 1, + 78, + 2, + "CONDITIONING" + ], + [ + 160, + 71, + 0, + 78, + 3, + "LATENT" + ], + [ + 161, + 81, + 0, + 80, + 0, + "CONDITIONING" + ], + [ + 162, + 74, + 0, + 80, + 1, + "CONDITIONING" + ], + [ + 163, + 86, + 0, + 80, + 2, + "VAE" + ], + [ + 164, + 79, + 0, + 80, + 4, + "IMAGE" + ], + [ + 165, + 87, + 0, + 80, + 5, + "WAN_CAMERA_EMBEDDING" + ], + [ + 166, + 87, + 1, + 80, + 6, + "INT" + ], + [ + 167, + 87, + 2, + 80, + 7, + "INT" + ], + [ + 168, + 87, + 3, + 80, + 8, + "INT" + ], + [ + 169, + 85, + 0, + 81, + 0, + "CLIP" + ], + [ + 170, + 78, + 0, + 82, + 0, + "LATENT" + ], + [ + 171, + 86, + 0, + 82, + 1, + "VAE" + ], + [ + 172, + 82, + 0, + 83, + 0, + "IMAGE" + ], + [ + 173, + 75, + 0, + 88, + 0, + "MODEL" + ], + [ + 174, + 88, + 0, + 76, + 0, + "MODEL" + ], + [ + 176, + 90, + 0, + 77, + 0, + "MODEL" + ], + [ + 177, + 72, + 0, + 90, + 0, + "MODEL" + ], + [ + 180, + 107, + 0, + 98, + 0, + "CONDITIONING" + ], + [ + 181, + 99, + 0, + 98, + 1, + "CONDITIONING" + ], + [ + 182, + 91, + 0, + 98, + 2, + "VAE" + ], + [ + 183, + 97, + 0, + 98, + 4, + "IMAGE" + ], + [ + 184, + 108, + 0, + 98, + 5, + "WAN_CAMERA_EMBEDDING" + ], + [ + 185, + 108, + 1, + 98, + 6, + "INT" + ], + [ + 186, + 108, + 2, + 98, + 7, + "INT" + ], + [ + 187, + 108, + 3, + 98, + 8, + "INT" + ], + [ + 188, + 96, + 0, + 99, + 0, + "CLIP" + ], + [ + 191, + 100, + 0, + 102, + 0, + "MODEL" + ], + [ + 192, + 98, + 0, + 102, + 1, + "CONDITIONING" + ], + [ + 193, + 98, + 1, + 102, + 2, + "CONDITIONING" + ], + [ + 194, + 98, + 2, + 102, + 3, + "LATENT" + ], + [ + 195, + 101, + 0, + 103, + 0, + "MODEL" + ], + [ + 196, + 98, + 0, + 103, + 1, + "CONDITIONING" + ], + [ + 197, + 98, + 1, + 103, + 2, + "CONDITIONING" + ], + [ + 198, + 102, + 0, + 103, + 3, + "LATENT" + ], + [ + 199, + 103, + 0, + 104, + 0, + "LATENT" + ], + [ + 200, + 91, + 0, + 104, + 1, + "VAE" + ], + [ + 201, + 104, + 0, + 105, + 0, + "IMAGE" + ], + [ + 202, + 105, + 0, + 106, + 0, + "VIDEO" + ], + [ + 203, + 96, + 0, + 107, + 0, + "CLIP" + ], + [ + 204, + 92, + 0, + 100, + 0, + "MODEL" + ], + [ + 205, + 95, + 0, + 101, + 0, + "MODEL" + ] + ], + "groups": [ + { + "id": 1, + "title": "High noise (first steps)", + "bounding": [ + 2820, + 1740, + 470, + 290 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Prompt", + "bounding": [ + 3320, + 2040, + 640, + 600 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Step 1 - Load models", + "bounding": [ + 2810, + 1700, + 490, + 940 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Low noise (last steps)", + "bounding": [ + 2820, + 2050, + 470, + 310 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 6, + "title": "Step 2 - Upload start_image", + "bounding": [ + 2810, + 2660, + 490, + 570 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Step 4 - Camera Conditions", + "bounding": [ + 3320, + 2660, + 640, + 570 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "High noise(first steps)", + "bounding": [ + -230, + 1770, + 460, + 170 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Step 3 - Prompt", + "bounding": [ + 260, + 1820, + 640, + 600 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 11, + "title": "Step 1 - Load models", + "bounding": [ + -240, + 1730, + 480, + 690 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Low noise (last steps)", + "bounding": [ + -230, + 1960, + 460, + 180 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 12, + "title": "Step 2 - Upload start_image", + "bounding": [ + -250, + 2440, + 490, + 570 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Step 4 - Camera Conditions", + "bounding": [ + 260, + 2440, + 640, + 570 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 14, + "title": "LightX2V 4 Steps LoRA (Can Speed up the workflow but will sacrifice some quality)", + "bounding": [ + 2800, + 1660, + 2700, + 1580 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "Default (Without Lightning LoRA)", + "bounding": [ + -260, + 1660, + 3030, + 1380 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.21550169082041803, + "offset": [ + 2526.726804007633, + -485.28267180190414 + ] + }, + "frontendVersion": "1.32.1", + "ue_links": [], + "links_added_by_ue": [], + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-fun-control.jpg b/example_workflows/i2v_wan22-14b-fun-control.jpg new file mode 100644 index 0000000..1012ccb Binary files /dev/null and b/example_workflows/i2v_wan22-14b-fun-control.jpg differ diff --git a/example_workflows/i2v_wan22-14b-fun-control.json b/example_workflows/i2v_wan22-14b-fun-control.json new file mode 100644 index 0000000..3d906ae --- /dev/null +++ b/example_workflows/i2v_wan22-14b-fun-control.json @@ -0,0 +1,2908 @@ +{ + "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", + "revision": 0, + "last_node_id": 186, + "last_link_id": 326, + "nodes": [ + { + "id": 100, + "type": "CreateVideo", + "pos": [ + 1700, + 520 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 41, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 179 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 177 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 97, + "type": "VAEDecode", + "pos": [ + 1700, + 420 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 39, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 175 + }, + { + "name": "vae", + "type": "VAE", + "link": 176 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 179 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 101, + "type": "UNETLoader", + "pos": [ + 120, + 450 + ], + "size": [ + 320, + 82 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 244 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 102, + "type": "UNETLoader", + "pos": [ + 120, + 580 + ], + "size": [ + 320, + 90 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 246 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 90, + "type": "CLIPLoader", + "pos": [ + 110, + 730 + ], + "size": [ + 340, + 110 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 164, + 178 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 92, + "type": "VAELoader", + "pos": [ + 110, + 900 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 176, + 287 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 156, + "type": "GetVideoComponents", + "pos": [ + 510, + 1120 + ], + "size": [ + 185.17734375, + 66 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 277 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 285 + ] + }, + { + "name": "audio", + "type": "AUDIO", + "links": null + }, + { + "name": "fps", + "type": "FLOAT", + "links": null + } + ], + "properties": { + "Node name for S&R": "GetVideoComponents", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 159, + "type": "PreviewImage", + "pos": [ + 850, + 1240 + ], + "size": [ + 360, + 258 + ], + "flags": {}, + "order": 32, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 279 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 157, + "type": "Canny", + "pos": [ + 850, + 1110 + ], + "size": [ + 360, + 82 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 285 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 279, + 286 + ] + } + ], + "properties": { + "Node name for S&R": "Canny", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 0.1, + 0.6 + ] + }, + { + "id": 163, + "type": "CreateVideo", + "pos": [ + 1650, + 1960 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 40, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 300 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 307 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 164, + "type": "VAEDecode", + "pos": [ + 1650, + 1860 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 38, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 301 + }, + { + "name": "vae", + "type": "VAE", + "link": 302 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 300 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 167, + "type": "CLIPLoader", + "pos": [ + 110, + 2170 + ], + "size": [ + 340, + 110 + ], + "flags": {}, + "order": 4, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 299, + 317 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 168, + "type": "VAELoader", + "pos": [ + 110, + 2340 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 5, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 302, + 320 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 165, + "type": "UNETLoader", + "pos": [ + 120, + 1890 + ], + "size": [ + 320, + 82 + ], + "flags": {}, + "order": 6, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 323 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 166, + "type": "UNETLoader", + "pos": [ + 120, + 2020 + ], + "size": [ + 320, + 90 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 325 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 179, + "type": "CLIPTextEncode", + "pos": [ + 490, + 2150 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 21, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 317 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 318 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "On a sunny summer day, there are marshmallow - like clouds, and the sunlight is bright and warm. A girl with white curly double - ponytails is wearing unique sunglasses, distinctive clothes and shoes. Her posture is natural and full of dynamic tension. The background is the scene of the Leaning Tower of Pisa in Italy, emphasizing the realistic contrast of details in reality. The whole picture is in a realistic 3D style, rich in details and with a relaxed atmosphere. She is dancing slowly, waving her hands." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 180, + "type": "Wan22FunControlToVideo", + "pos": [ + 970, + 2160 + ], + "size": [ + 270, + 210 + ], + "flags": {}, + "order": 31, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 318 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 319 + }, + { + "name": "vae", + "type": "VAE", + "link": 320 + }, + { + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 321 + }, + { + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 322 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 304, + 312 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 305, + 313 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 306 + ] + } + ], + "properties": { + "Node name for S&R": "Wan22FunControlToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "length": true, + "batch_size": true + } + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 171, + "type": "GetVideoComponents", + "pos": [ + 510, + 2590 + ], + "size": [ + 185.17734375, + 66 + ], + "flags": { + "collapsed": true + }, + "order": 24, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 308 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 310 + ] + }, + { + "name": "audio", + "type": "AUDIO", + "links": null + }, + { + "name": "fps", + "type": "FLOAT", + "links": null + } + ], + "properties": { + "Node name for S&R": "GetVideoComponents", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 173, + "type": "Canny", + "pos": [ + 830, + 2560 + ], + "size": [ + 360, + 82 + ], + "flags": {}, + "order": 28, + "mode": 4, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 310 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 309, + 322 + ] + } + ], + "properties": { + "Node name for S&R": "Canny", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 0.1, + 0.6 + ] + }, + { + "id": 175, + "type": "KSamplerAdvanced", + "pos": [ + 1290, + 2530 + ], + "size": [ + 300, + 340 + ], + "flags": {}, + "order": 36, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 311 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 312 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 313 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 314 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 301 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 4, + 1, + "euler", + "simple", + 2, + 4, + "disable" + ] + }, + { + "id": 169, + "type": "KSamplerAdvanced", + "pos": [ + 1290, + 1850 + ], + "size": [ + 304.748046875, + 334 + ], + "flags": {}, + "order": 34, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 303 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 304 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 305 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 306 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 314 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "enable", + 342522439403882, + "randomize", + 4, + 1, + "euler", + "simple", + 0, + 2, + "enable" + ] + }, + { + "id": 176, + "type": "ModelSamplingSD3", + "pos": [ + 990, + 1850 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 26, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 324 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 303 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 181, + "type": "LoraLoaderModelOnly", + "pos": [ + 530, + 1850 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 22, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 323 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 324 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + } + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + 1 + ] + }, + { + "id": 177, + "type": "ModelSamplingSD3", + "pos": [ + 990, + 1980 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 27, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 326 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 311 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 182, + "type": "LoraLoaderModelOnly", + "pos": [ + 530, + 1980 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 325 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 326 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "lora_name": true, + "strength_model": true + } + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + 1 + ] + }, + { + "id": 91, + "type": "CLIPTextEncode", + "pos": [ + 500, + 880 + ], + "size": [ + 420, + 130 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 164 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 288 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 99, + "type": "CLIPTextEncode", + "pos": [ + 500, + 650 + ], + "size": [ + 420, + 180 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 178 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 289 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "On a sunny summer day, there are marshmallow - like clouds, and the sunlight is bright and warm. A girl with white curly double - ponytails is wearing unique sunglasses, distinctive clothes and shoes. Her posture is natural and full of dynamic tension. The background is the scene of the Leaning Tower of Pisa in Italy, emphasizing the realistic contrast of details in reality. The whole picture is in a realistic 3D style, rich in details and with a relaxed atmosphere. She is dancing slowly, waving her hands." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 145, + "type": "LoadImage", + "pos": [ + 110, + 1150 + ], + "size": [ + 340, + 326 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 284 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_control_start_image.jpg", + "image" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 160, + "type": "Wan22FunControlToVideo", + "pos": [ + 970, + 720 + ], + "size": [ + 270, + 210 + ], + "flags": {}, + "order": 33, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 289 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 288 + }, + { + "name": "vae", + "type": "VAE", + "link": 287 + }, + { + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 284 + }, + { + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 286 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 295, + 297 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 294, + 298 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 296 + ] + } + ], + "properties": { + "Node name for S&R": "Wan22FunControlToVideo", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": { + "width": true, + "height": true, + "length": true, + "batch_size": true + } + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 95, + "type": "KSamplerAdvanced", + "pos": [ + 1330, + 1100 + ], + "size": [ + 300, + 340 + ], + "flags": {}, + "order": 37, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 245 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 297 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 298 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 281 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 175 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 20, + 3.5, + "euler", + "simple", + 10, + 10000, + "disable" + ] + }, + { + "id": 93, + "type": "ModelSamplingSD3", + "pos": [ + 580, + 460 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 244 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 243 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 94, + "type": "ModelSamplingSD3", + "pos": [ + 1040, + 460 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 246 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 245 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 96, + "type": "KSamplerAdvanced", + "pos": [ + 1330, + 420 + ], + "size": [ + 304.748046875, + 334 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 243 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 295 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 294 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 296 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 281 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "enable", + 909895218860439, + "randomize", + 20, + 3.5, + "euler", + "simple", + 0, + 10, + "enable" + ] + }, + { + "id": 170, + "type": "SaveVideo", + "pos": [ + 1650, + 2100 + ], + "size": [ + 620, + 718 + ], + "flags": {}, + "order": 42, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 307 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video/wan2.2_fun_control", + "auto", + "auto" + ] + }, + { + "id": 98, + "type": "SaveVideo", + "pos": [ + 1700, + 660 + ], + "size": [ + 620, + 718.0000610351562 + ], + "flags": {}, + "order": 43, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 177 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video/wan2.2_fun_control", + "auto", + "auto" + ] + }, + { + "id": 172, + "type": "PreviewImage", + "pos": [ + 840, + 2680 + ], + "size": [ + 360, + 258 + ], + "flags": {}, + "order": 30, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 309 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "PreviewImage", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 174, + "type": "LoadVideo", + "pos": [ + 500, + 2660 + ], + "size": [ + 274.080078125, + 348.0800781250002 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 308 + ] + } + ], + "properties": { + "Node name for S&R": "LoadVideo", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_control_start_image_control_video.mp4", + "image" + ] + }, + { + "id": 162, + "type": "CLIPTextEncode", + "pos": [ + 490, + 2350 + ], + "size": [ + 430, + 110 + ], + "flags": {}, + "order": 20, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 299 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 319 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 178, + "type": "LoadImage", + "pos": [ + 110, + 2580 + ], + "size": [ + 340, + 340 + ], + "flags": {}, + "order": 10, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 321 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_control_start_image.jpg", + "image" + ] + }, + { + "id": 158, + "type": "LoadVideo", + "pos": [ + 510, + 1230 + ], + "size": [ + 274.080078125, + 348.0800781250002 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 277 + ] + } + ], + "properties": { + "Node name for S&R": "LoadVideo", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_fun_control_start_image_control_video.mp4", + "image" + ] + }, + { + "id": 185, + "type": "MarkdownNote", + "pos": [ + 830, + 1620 + ], + "size": [ + 420, + 120 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About Control Video", + "properties": {}, + "widgets_values": [ + "You may need the following custom nodes to preprocess the control video:\n1. [comfyui_controlnet_aux](https://github.com/Fannovel16/comfyui_controlnet_aux)\n2. [ComfyUI-DepthAnythingV2](https://github.com/kijai/ComfyUI-DepthAnythingV2)\n\nYou can find the control video we use [here](https://docs.comfy.org/tutorials/video/wan/wan2-2-fun-control).\n\nThis model supports multiple control conditions such as Canny, Depth, Pose, and trajectory control." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 183, + "type": "Note", + "pos": [ + 80, + 180 + ], + "size": [ + 360, + 100 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Using the Wan2.2 Lighting LoRA will result in the loss of video dynamics, but it will reduce the generation time. This template provides two workflows, and you can enable one as needed." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 161, + "type": "MarkdownNote", + "pos": [ + -470, + 500 + ], + "size": [ + 530, + 550 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": { + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2-2-fun-control\n) \n\n**Diffusion Model**\n- [wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors)\n\n**LoRA**\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors)\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\nFile save location\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors\n│ ├───📂 loras/\n│ │ ├─── wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors\n│ │ └─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 186, + "type": "MarkdownNote", + "pos": [ + -460, + 330 + ], + "size": [ + 520, + 130 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note: About Wan2.2 Fun Control", + "properties": {}, + "widgets_values": [ + "Wan2.2-Fun-Control is a 14B-parameter video generation model launched by Alibaba PAI, supporting multiple control conditions such as Canny, Depth, Pose and trajectory control. \n\nIt enables multi-resolution (512/768/1024) video prediction, trained with 81 frames and 16 FPS, and supports multilingual generation." + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 164, + 90, + 0, + 91, + 0, + "CLIP" + ], + [ + 175, + 95, + 0, + 97, + 0, + "LATENT" + ], + [ + 176, + 92, + 0, + 97, + 1, + "VAE" + ], + [ + 177, + 100, + 0, + 98, + 0, + "VIDEO" + ], + [ + 178, + 90, + 0, + 99, + 0, + "CLIP" + ], + [ + 179, + 97, + 0, + 100, + 0, + "IMAGE" + ], + [ + 243, + 93, + 0, + 96, + 0, + "MODEL" + ], + [ + 244, + 101, + 0, + 93, + 0, + "MODEL" + ], + [ + 245, + 94, + 0, + 95, + 0, + "MODEL" + ], + [ + 246, + 102, + 0, + 94, + 0, + "MODEL" + ], + [ + 277, + 158, + 0, + 156, + 0, + "VIDEO" + ], + [ + 279, + 157, + 0, + 159, + 0, + "IMAGE" + ], + [ + 281, + 96, + 0, + 95, + 3, + "LATENT" + ], + [ + 284, + 145, + 0, + 160, + 3, + "IMAGE" + ], + [ + 285, + 156, + 0, + 157, + 0, + "IMAGE" + ], + [ + 286, + 157, + 0, + 160, + 4, + "IMAGE" + ], + [ + 287, + 92, + 0, + 160, + 2, + "VAE" + ], + [ + 288, + 91, + 0, + 160, + 1, + "CONDITIONING" + ], + [ + 289, + 99, + 0, + 160, + 0, + "CONDITIONING" + ], + [ + 294, + 160, + 1, + 96, + 2, + "CONDITIONING" + ], + [ + 295, + 160, + 0, + 96, + 1, + "CONDITIONING" + ], + [ + 296, + 160, + 2, + 96, + 3, + "LATENT" + ], + [ + 297, + 160, + 0, + 95, + 1, + "CONDITIONING" + ], + [ + 298, + 160, + 1, + 95, + 2, + "CONDITIONING" + ], + [ + 299, + 167, + 0, + 162, + 0, + "CLIP" + ], + [ + 300, + 164, + 0, + 163, + 0, + "IMAGE" + ], + [ + 301, + 175, + 0, + 164, + 0, + "LATENT" + ], + [ + 302, + 168, + 0, + 164, + 1, + "VAE" + ], + [ + 303, + 176, + 0, + 169, + 0, + "MODEL" + ], + [ + 304, + 180, + 0, + 169, + 1, + "CONDITIONING" + ], + [ + 305, + 180, + 1, + 169, + 2, + "CONDITIONING" + ], + [ + 306, + 180, + 2, + 169, + 3, + "LATENT" + ], + [ + 307, + 163, + 0, + 170, + 0, + "VIDEO" + ], + [ + 308, + 174, + 0, + 171, + 0, + "VIDEO" + ], + [ + 309, + 173, + 0, + 172, + 0, + "IMAGE" + ], + [ + 310, + 171, + 0, + 173, + 0, + "IMAGE" + ], + [ + 311, + 177, + 0, + 175, + 0, + "MODEL" + ], + [ + 312, + 180, + 0, + 175, + 1, + "CONDITIONING" + ], + [ + 313, + 180, + 1, + 175, + 2, + "CONDITIONING" + ], + [ + 314, + 169, + 0, + 175, + 3, + "LATENT" + ], + [ + 317, + 167, + 0, + 179, + 0, + "CLIP" + ], + [ + 318, + 179, + 0, + 180, + 0, + "CONDITIONING" + ], + [ + 319, + 162, + 0, + 180, + 1, + "CONDITIONING" + ], + [ + 320, + 168, + 0, + 180, + 2, + "VAE" + ], + [ + 321, + 178, + 0, + 180, + 3, + "IMAGE" + ], + [ + 322, + 173, + 0, + 180, + 4, + "IMAGE" + ], + [ + 323, + 165, + 0, + 181, + 0, + "MODEL" + ], + [ + 324, + 181, + 0, + 176, + 0, + "MODEL" + ], + [ + 325, + 166, + 0, + 182, + 0, + "MODEL" + ], + [ + 326, + 182, + 0, + 177, + 0, + "MODEL" + ] + ], + "groups": [ + { + "id": 8, + "title": "Step1 - Load models", + "bounding": [ + 90, + 370, + 380, + 650 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Step 4 - Prompt", + "bounding": [ + 490, + 580, + 440, + 440 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Step 2 - Start_image", + "bounding": [ + 90, + 1040, + 380, + 490 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 14, + "title": "Step 3 - Control video and video preprocessing", + "bounding": [ + 490, + 1040, + 780, + 490 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "Step 5 - Video size & length", + "bounding": [ + 950, + 580, + 320, + 440 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 22, + "title": "Wan2.2 Fun Control fp8 scaled+ 4 steps LoRA", + "bounding": [ + 80, + 1770, + 2280, + 1250 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 16, + "title": "Step1 - Load models", + "bounding": [ + 90, + 1810, + 380, + 660 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 17, + "title": "Step 4 - Prompt", + "bounding": [ + 480, + 2080, + 450, + 390 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 18, + "title": "Step 2 - Start_image", + "bounding": [ + 90, + 2490, + 380, + 470 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 19, + "title": "Step 3 - Control video and video preprocessing", + "bounding": [ + 480, + 2490, + 780, + 520 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 20, + "title": "Step 5 - Video size & length", + "bounding": [ + 940, + 2080, + 330, + 390 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 23, + "title": "Default workflow", + "bounding": [ + 80, + 300, + 2260, + 1240 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.26464743043131467, + "offset": [ + 2218.5905846587248, + 394.9507204830435 + ] + }, + "frontendVersion": "1.32.1", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "ue_links": [], + "links_added_by_ue": [] + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-i2v.jpg b/example_workflows/i2v_wan22-14b-i2v.jpg new file mode 100644 index 0000000..5c81c63 Binary files /dev/null and b/example_workflows/i2v_wan22-14b-i2v.jpg differ diff --git a/example_workflows/i2v_wan22-14b-i2v.json b/example_workflows/i2v_wan22-14b-i2v.json new file mode 100644 index 0000000..7d59461 --- /dev/null +++ b/example_workflows/i2v_wan22-14b-i2v.json @@ -0,0 +1,2327 @@ +{ + "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", + "revision": 0, + "last_node_id": 115, + "last_link_id": 214, + "nodes": [ + { + "id": 38, + "type": "CLIPLoader", + "pos": [ + 70, + 1360 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 74, + 75 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 450, + 1580 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 16, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 75 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 135 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 39, + "type": "VAELoader", + "pos": [ + 70, + 1520 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 76, + 141 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 54, + "type": "ModelSamplingSD3", + "pos": [ + 670, + 1100 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 17, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 110 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 147 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "ModelSamplingSD3", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 55, + "type": "ModelSamplingSD3", + "pos": [ + 670, + 1230 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 18, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 112 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 148 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "ModelSamplingSD3", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 450, + 1380 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 74 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 134 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "The white dragon warrior stands still, eyes full of determination and strength. The camera slowly moves closer or circles around the warrior, highlighting the powerful presence and heroic spirit of the character." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 37, + "type": "UNETLoader", + "pos": [ + 70, + 1100 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 110 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 56, + "type": "UNETLoader", + "pos": [ + 70, + 1230 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 112 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 63, + "type": "WanImageToVideo", + "pos": [ + 480, + 1860 + ], + "size": [ + 342.5999755859375, + 210 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 134 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 135 + }, + { + "name": "vae", + "type": "VAE", + "link": 141 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 133 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 136, + 138 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "slot_index": 1, + "links": [ + 137, + 139 + ] + }, + { + "name": "latent", + "type": "LATENT", + "slot_index": 2, + "links": [ + 140 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "WanImageToVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 84, + "type": "CLIPLoader", + "pos": [ + 60, + 30 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 178, + 181 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 90, + "type": "VAELoader", + "pos": [ + 60, + 190 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 176, + 185 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 95, + "type": "UNETLoader", + "pos": [ + 50, + -230 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 194 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 96, + "type": "UNETLoader", + "pos": [ + 50, + -100 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 196 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 103, + "type": "ModelSamplingSD3", + "pos": [ + 740, + -100 + ], + "size": [ + 210, + 58 + ], + "flags": { + "collapsed": false + }, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 189 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 192 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "ModelSamplingSD3", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 93, + "type": "CLIPTextEncode", + "pos": [ + 440, + 90 + ], + "size": [ + 510, + 160 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 181 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 183 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "The white dragon warrior stands still, eyes full of determination and strength. The camera slowly moves closer or circles around the warrior, highlighting the powerful presence and heroic spirit of the character." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 89, + "type": "CLIPTextEncode", + "pos": [ + 440, + 290 + ], + "size": [ + 510, + 130 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 178 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 184 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 101, + "type": "LoraLoaderModelOnly", + "pos": [ + 450, + -230 + ], + "size": [ + 280, + 82 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 194 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 190 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.49", + "Node name for S&R": "LoraLoaderModelOnly", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + "directory": "loras" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + 1.0000000000000002 + ] + }, + { + "id": 102, + "type": "LoraLoaderModelOnly", + "pos": [ + 450, + -100 + ], + "size": [ + 280, + 82 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 196 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 189 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.49", + "Node name for S&R": "LoraLoaderModelOnly", + "models": [ + { + "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + "directory": "loras" + } + ], + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + 1.0000000000000002 + ] + }, + { + "id": 105, + "type": "MarkdownNote", + "pos": [ + -470, + 280 + ], + "size": [ + 480, + 180 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "VRAM Usage", + "properties": { + "ue_properties": { + "version": "7.1", + "widget_ue_connectable": {}, + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "## GPU:RTX4090D 24GB\n\n| Model | Size |VRAM Usage | 1st Generation | 2nd Generation |\n|---------------------|-------|-----------|---------------|-----------------|\n| fp8_scaled |640*640| 84% | ≈ 536s | ≈ 513s |\n| fp8_scaled + 4steps LoRA | 640*640 | 83% | ≈ 97s | ≈ 71s |" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 62, + "type": "LoadImage", + "pos": [ + 80, + 1740 + ], + "size": [ + 315, + 314 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 133 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "LoadImage", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_i2v_input_image.jpg", + "image" + ] + }, + { + "id": 106, + "type": "MarkdownNote", + "pos": [ + -350, + 1010 + ], + "size": [ + 370, + 110 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "1. Box-select then use Ctrl + B to enable\n2. If you don't want to run both groups simultaneously, don't forget to use **Ctrl + B** to disable the **fp8_scaled + 4steps LoRA** group after enabling the **fp8_scaled** group, or try the [partial - execution](https://docs.comfy.org/interface/features/partial-execution) feature." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 67, + "type": "Note", + "pos": [ + 510, + 820 + ], + "size": [ + 390, + 88 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Video Size", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "By default, we set the video to a smaller size for users with low VRAM. If you have enough VRAM, you can change the size" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 104, + "type": "ModelSamplingSD3", + "pos": [ + 740, + -230 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 190 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 195 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "ModelSamplingSD3", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 98, + "type": "WanImageToVideo", + "pos": [ + 530, + 530 + ], + "size": [ + 342.5999755859375, + 210 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 183 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 184 + }, + { + "name": "vae", + "type": "VAE", + "link": 185 + }, + { + "name": "clip_vision_output", + "shape": 7, + "type": "CLIP_VISION_OUTPUT", + "link": null + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 186 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 168, + 172 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "slot_index": 1, + "links": [ + 169, + 173 + ] + }, + { + "name": "latent", + "type": "LATENT", + "slot_index": 2, + "links": [ + 174 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "WanImageToVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 94, + "type": "CreateVideo", + "pos": [ + 1350, + 460 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 182 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 197 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CreateVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 87, + "type": "VAEDecode", + "pos": [ + 1060, + 480 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 175 + }, + { + "name": "vae", + "type": "VAE", + "link": 176 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 182 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAEDecode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 108, + "type": "SaveVideo", + "pos": [ + 1690, + -250 + ], + "size": [ + 890, + 988 + ], + "flags": {}, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 197 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.49", + "Node name for S&R": "SaveVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 115, + "type": "Note", + "pos": [ + 30, + -470 + ], + "size": [ + 360, + 100 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About 4 Steps LoRA", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "Using the Wan2.2 Lighting LoRA will result in the loss of video dynamics, but it will reduce the generation time. This template provides two workflows, and you can enable one as needed." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 86, + "type": "KSamplerAdvanced", + "pos": [ + 990, + -250 + ], + "size": [ + 304.748046875, + 546 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 195 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 172 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 173 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 174 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 170 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "KSamplerAdvanced", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "enable", + 138073435077572, + "randomize", + 4, + 1, + "euler", + "simple", + 0, + 2, + "enable" + ] + }, + { + "id": 85, + "type": "KSamplerAdvanced", + "pos": [ + 1336.748046875, + -250 + ], + "size": [ + 304.748046875, + 546 + ], + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 192 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 168 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 169 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 170 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 175 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "KSamplerAdvanced", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 4, + 1, + "euler", + "simple", + 2, + 4, + "disable" + ] + }, + { + "id": 58, + "type": "KSamplerAdvanced", + "pos": [ + 1240, + 1110 + ], + "size": [ + 304.748046875, + 498.6905822753906 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 148 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 138 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 139 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 113 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 124 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "KSamplerAdvanced", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 20, + 3.5, + "euler", + "simple", + 10, + 10000, + "disable" + ] + }, + { + "id": 109, + "type": "CreateVideo", + "pos": [ + 1250, + 1740 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 198 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 199 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.49", + "Node name for S&R": "CreateVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 920, + 1750 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 31, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 124 + }, + { + "name": "vae", + "type": "VAE", + "link": 76 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 198 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAEDecode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 57, + "type": "KSamplerAdvanced", + "pos": [ + 920, + 1110 + ], + "size": [ + 310, + 500 + ], + "flags": {}, + "order": 27, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 147 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 136 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 137 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 140 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 113 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "KSamplerAdvanced", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "enable", + 306189419888845, + "randomize", + 20, + 3.5, + "euler", + "simple", + 0, + 10, + "enable" + ] + }, + { + "id": 61, + "type": "SaveVideo", + "pos": [ + 1580, + 1110 + ], + "size": [ + 990, + 990 + ], + "flags": {}, + "order": 35, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 199 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "SaveVideo", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 66, + "type": "MarkdownNote", + "pos": [ + -470, + -320 + ], + "size": [ + 480, + 530 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": { + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2\n)\n\n**Diffusion Model**\n- [wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors)\n\n**LoRA**\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors)\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\nFile save location\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors\n│ ├───📂 loras/\n│ │ ├─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ │ └─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 97, + "type": "LoadImage", + "pos": [ + 70, + 400 + ], + "size": [ + 315, + 314.0001220703125 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 186 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "LoadImage", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [ + "video_wan2_2_14B_i2v_input_image.jpg", + "image" + ] + } + ], + "links": [ + [ + 74, + 38, + 0, + 6, + 0, + "CLIP" + ], + [ + 75, + 38, + 0, + 7, + 0, + "CLIP" + ], + [ + 76, + 39, + 0, + 8, + 1, + "VAE" + ], + [ + 110, + 37, + 0, + 54, + 0, + "MODEL" + ], + [ + 112, + 56, + 0, + 55, + 0, + "MODEL" + ], + [ + 113, + 57, + 0, + 58, + 3, + "LATENT" + ], + [ + 124, + 58, + 0, + 8, + 0, + "LATENT" + ], + [ + 133, + 62, + 0, + 63, + 4, + "IMAGE" + ], + [ + 134, + 6, + 0, + 63, + 0, + "CONDITIONING" + ], + [ + 135, + 7, + 0, + 63, + 1, + "CONDITIONING" + ], + [ + 136, + 63, + 0, + 57, + 1, + "CONDITIONING" + ], + [ + 137, + 63, + 1, + 57, + 2, + "CONDITIONING" + ], + [ + 138, + 63, + 0, + 58, + 1, + "CONDITIONING" + ], + [ + 139, + 63, + 1, + 58, + 2, + "CONDITIONING" + ], + [ + 140, + 63, + 2, + 57, + 3, + "LATENT" + ], + [ + 141, + 39, + 0, + 63, + 2, + "VAE" + ], + [ + 147, + 54, + 0, + 57, + 0, + "MODEL" + ], + [ + 148, + 55, + 0, + 58, + 0, + "MODEL" + ], + [ + 168, + 98, + 0, + 85, + 1, + "CONDITIONING" + ], + [ + 169, + 98, + 1, + 85, + 2, + "CONDITIONING" + ], + [ + 170, + 86, + 0, + 85, + 3, + "LATENT" + ], + [ + 172, + 98, + 0, + 86, + 1, + "CONDITIONING" + ], + [ + 173, + 98, + 1, + 86, + 2, + "CONDITIONING" + ], + [ + 174, + 98, + 2, + 86, + 3, + "LATENT" + ], + [ + 175, + 85, + 0, + 87, + 0, + "LATENT" + ], + [ + 176, + 90, + 0, + 87, + 1, + "VAE" + ], + [ + 178, + 84, + 0, + 89, + 0, + "CLIP" + ], + [ + 181, + 84, + 0, + 93, + 0, + "CLIP" + ], + [ + 182, + 87, + 0, + 94, + 0, + "IMAGE" + ], + [ + 183, + 93, + 0, + 98, + 0, + "CONDITIONING" + ], + [ + 184, + 89, + 0, + 98, + 1, + "CONDITIONING" + ], + [ + 185, + 90, + 0, + 98, + 2, + "VAE" + ], + [ + 186, + 97, + 0, + 98, + 4, + "IMAGE" + ], + [ + 189, + 102, + 0, + 103, + 0, + "MODEL" + ], + [ + 190, + 101, + 0, + 104, + 0, + "MODEL" + ], + [ + 192, + 103, + 0, + 85, + 0, + "MODEL" + ], + [ + 194, + 95, + 0, + 101, + 0, + "MODEL" + ], + [ + 195, + 104, + 0, + 86, + 0, + "MODEL" + ], + [ + 196, + 96, + 0, + 102, + 0, + "MODEL" + ], + [ + 197, + 94, + 0, + 108, + 0, + "VIDEO" + ], + [ + 198, + 8, + 0, + 109, + 0, + "IMAGE" + ], + [ + 199, + 109, + 0, + 61, + 0, + "VIDEO" + ] + ], + "groups": [ + { + "id": 10, + "title": "fp8_scaled", + "bounding": [ + 40, + 980, + 2570, + 1150 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 1, + "title": "Step1 - Load models", + "bounding": [ + 50, + 1020, + 371.0310363769531, + 571.3974609375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step2 - Upload start_image", + "bounding": [ + 50, + 1620, + 370, + 470 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step4 - Prompt", + "bounding": [ + 440, + 1310, + 445.27801513671875, + 464.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step3 - Video size & length", + "bounding": [ + 440, + 1790, + 440, + 300 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "fp8_scaled + 4steps LoRA", + "bounding": [ + 30, + -350, + 2580, + 1120 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 11, + "title": "Step1 - Load models", + "bounding": [ + 40, + -310, + 371.0310363769531, + 571.3974609375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 12, + "title": "Step2 - Upload start_image", + "bounding": [ + 40, + 280, + 370, + 470 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Step4 - Prompt", + "bounding": [ + 430, + 20, + 530, + 420 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 14, + "title": "Step3 - Video size & length", + "bounding": [ + 430, + 460, + 530, + 290 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 16, + "title": "Lightx2v 4steps LoRA", + "bounding": [ + 430, + -310, + 530, + 310 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.45000000000000046, + "offset": [ + 1208.3999122160667, + 781.2015842319031 + ] + }, + "frontendVersion": "1.27.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "ue_links": [] + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-s2v.jpg b/example_workflows/i2v_wan22-14b-s2v.jpg new file mode 100644 index 0000000..e9d39ad Binary files /dev/null and b/example_workflows/i2v_wan22-14b-s2v.jpg differ diff --git a/example_workflows/i2v_wan22-14b-s2v.json b/example_workflows/i2v_wan22-14b-s2v.json new file mode 100644 index 0000000..151c8ff --- /dev/null +++ b/example_workflows/i2v_wan22-14b-s2v.json @@ -0,0 +1,7988 @@ +{ + "id": "ea7ba43e-ab56-40d4-a298-423f5bfe4462", + "revision": 0, + "last_node_id": 181, + "last_link_id": 498, + "nodes": [ + { + "id": 38, + "type": "CLIPLoader", + "pos": [ + -80, + 284 + ], + "size": [ + 390, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 74, + 75 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 80, + "type": "VAEDecode", + "pos": [ + 2470, + 170 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 54, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 271 + }, + { + "name": "vae", + "type": "VAE", + "link": 285 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 286 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 370, + 420 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 75 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 191, + 203, + 212, + 255 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 39, + "type": "VAELoader", + "pos": [ + -80, + 442 + ], + "size": [ + 390, + 60 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 281, + 282, + 283, + 284, + 285 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 57, + "type": "AudioEncoderLoader", + "pos": [ + -80, + 554 + ], + "size": [ + 390, + 70 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "AUDIO_ENCODER", + "type": "AUDIO_ENCODER", + "links": [ + 120 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "AudioEncoderLoader", + "models": [ + { + "name": "wav2vec2_large_english_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/audio_encoders/wav2vec2_large_english_fp16.safetensors", + "directory": "audio_encoders" + } + ] + }, + "widgets_values": [ + "wav2vec2_large_english_fp16.safetensors" + ] + }, + { + "id": 93, + "type": "WanSoundImageToVideo", + "pos": [ + 870, + 290 + ], + "size": [ + 270, + 250 + ], + "flags": {}, + "order": 40, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 254 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 255 + }, + { + "name": "vae", + "type": "VAE", + "link": 281 + }, + { + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 253 + }, + { + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 252 + }, + { + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "ref_motion", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 335 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 257 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 258 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 259 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideo" + }, + "widgets_values": [ + 640, + 640, + 77, + 1 + ] + }, + { + "id": 54, + "type": "ModelSamplingSD3", + "pos": [ + 890, + 160 + ], + "size": [ + 250, + 60 + ], + "flags": {}, + "order": 39, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 363 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 111, + 188, + 201, + 210 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 96, + "type": "ImageFromBatch", + "pos": [ + 2730, + 170 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 56, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 286 + }, + { + "name": "batch_index", + "type": "INT", + "widget": { + "name": "batch_index" + }, + "link": 287 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 273 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "ImageFromBatch" + }, + "widgets_values": [ + 0, + 4096 + ] + }, + { + "id": 95, + "type": "LatentConcat", + "pos": [ + 2470, + 260 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 52, + "mode": 0, + "inputs": [ + { + "name": "samples1", + "type": "LATENT", + "link": 269 + }, + { + "name": "samples2", + "type": "LATENT", + "link": 280 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 271 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 94, + "type": "LatentCut", + "pos": [ + 2470, + 380 + ], + "size": [ + 210, + 106 + ], + "flags": {}, + "order": 50, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 279 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 269 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentCut" + }, + "widgets_values": [ + "t", + 0, + 1 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 370, + 190 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 31, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 74 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 190, + 202, + 211, + 254 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "The man is playing the guitar. He looks down at his hands playing the guitar and sings affectionately and gently." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 99, + "type": "Note", + "pos": [ + 2720, + 320 + ], + "size": [ + 220, + 90 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Stupid hack to fix the first frame being overbaked by the VAE, double the first frame and remove it after decoding." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 85, + "type": "866cdb67-cb97-4a54-8738-e9ece4f5f25f", + "pos": [ + 1820, + 190 + ], + "size": [ + 280, + 318 + ], + "flags": {}, + "order": 46, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 201 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 202 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 203 + }, + { + "name": "vae", + "type": "VAE", + "link": 283 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 207 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 206 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 262 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 317 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 350 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 333 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 216 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 250, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 104, + "type": "PrimitiveInt", + "pos": [ + 420, + 880 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 332, + 333, + 334, + 335 + ] + } + ], + "title": "Chunk Length", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 77, + "fixed" + ] + }, + { + "id": 82, + "type": "CreateVideo", + "pos": [ + 2430, + 570 + ], + "size": [ + 270, + 80 + ], + "flags": {}, + "order": 58, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 273 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 198 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 364 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 113, + "type": "SaveVideo", + "pos": [ + 1500, + 720 + ], + "size": [ + 1250, + 690 + ], + "flags": {}, + "order": 60, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 364 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 100, + "type": "PrimitiveInt", + "pos": [ + 420, + 740 + ], + "size": [ + 306.36004638671875, + 90 + ], + "flags": { + "collapsed": false + }, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 287 + ] + } + ], + "title": "Batch sizes", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 3, + "fixed" + ] + }, + { + "id": 145, + "type": "MarkdownNote", + "pos": [ + 770, + 740 + ], + "size": [ + 300, + 320 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Batch sizes", + "properties": {}, + "widgets_values": [ + "## Batch sizes\nBatch sizes depend on how many Video S2V Extend subgraphs you have added to the workflow.\n\nEach Video S2V Extend subgraph will add 77 frames to the final output.\n\nExample:\n\nIf you added 1 Video S2V Extend subgraph, you should set the batch size to 2.\n\nWe added 2 Video S2V Extend subgraphs, so the batch size value is 3.\n\n## Chunk length\n\n77 is the default length from the WAN2.2S2V official code. This model needs at least 73 frames. If you set the value too high, it might cause an out-of-memory issue.\n\nSo you can just leave 77 as it is." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 79, + "type": "ad3f1d6b-f6de-4f22-abcf-caeed4bf8ce4", + "pos": [ + 1520, + 190 + ], + "size": [ + 280, + 318 + ], + "flags": {}, + "order": 44, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 188 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 190 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 191 + }, + { + "name": "vae", + "type": "VAE", + "link": 282 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 193 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 261 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 316 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 349 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 332 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 207 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 1, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 56, + "type": "AudioEncoderEncode", + "pos": [ + 1130, + 740 + ], + "size": [ + 285.087890625, + 46 + ], + "flags": {}, + "order": 37, + "mode": 0, + "inputs": [ + { + "name": "audio_encoder", + "type": "AUDIO_ENCODER", + "link": 120 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 121 + } + ], + "outputs": [ + { + "name": "AUDIO_ENCODER_OUTPUT", + "type": "AUDIO_ENCODER_OUTPUT", + "links": [ + 193, + 206, + 215, + 253 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "AudioEncoderEncode" + }, + "widgets_values": [] + }, + { + "id": 87, + "type": "92cfa20b-adb6-4f00-8596-f14b534cf926", + "pos": [ + 2140, + 190 + ], + "size": [ + 245.37460327148438, + 318 + ], + "flags": {}, + "order": 48, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 210 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 211 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 212 + }, + { + "name": "vae", + "type": "VAE", + "link": 284 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 216 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 215 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 264 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 318 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 351 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 334 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 279, + 280 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 1, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 111, + "type": "Note", + "pos": [ + 2060, + -80 + ], + "size": [ + 350, + 140 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "! Important", + "properties": {}, + "widgets_values": [ + "If you need longer video output, just select one subgraph below, then use Ctrl+C and Ctrl+Shift+V to copy and paste the Video S2V Extend subgraph. Each of them will extend the other frames you set to the chunk length; by default, it's 77 frames." + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 107, + "type": "LoraLoaderModelOnly", + "pos": [ + 430, + -40 + ], + "size": [ + 300, + 90 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 362 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 363 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LoraLoaderModelOnly", + "models": [ + { + "name": "wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + "directory": "loras" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + 1 + ] + }, + { + "id": 103, + "type": "PrimitiveInt", + "pos": [ + 420, + 1050 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 316, + 317, + 318, + 319 + ] + } + ], + "title": "Steps", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 4, + "fixed" + ] + }, + { + "id": 105, + "type": "PrimitiveFloat", + "pos": [ + 420, + 1180 + ], + "size": [ + 306.36004638671875, + 58 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 348, + 349, + 350, + 351 + ] + } + ], + "title": "CFG", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveFloat" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 147, + "type": "CLIPLoader", + "pos": [ + -80, + 1880 + ], + "size": [ + 390, + 106 + ], + "flags": {}, + "order": 10, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 442, + 461 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 148, + "type": "VAEDecode", + "pos": [ + 2470, + 1770 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 55, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 440 + }, + { + "name": "vae", + "type": "VAE", + "link": 441 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 456 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 149, + "type": "CLIPTextEncode", + "pos": [ + 370, + 2020 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 442 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 450, + 464, + 477, + 489 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 150, + "type": "VAELoader", + "pos": [ + -80, + 2040 + ], + "size": [ + 390, + 60 + ], + "flags": {}, + "order": 11, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 441, + 451, + 465, + 478, + 490 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 151, + "type": "AudioEncoderLoader", + "pos": [ + -80, + 2150 + ], + "size": [ + 390, + 70 + ], + "flags": {}, + "order": 12, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "AUDIO_ENCODER", + "type": "AUDIO_ENCODER", + "links": [ + 485 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "AudioEncoderLoader", + "models": [ + { + "name": "wav2vec2_large_english_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/audio_encoders/wav2vec2_large_english_fp16.safetensors", + "directory": "audio_encoders" + } + ] + }, + "widgets_values": [ + "wav2vec2_large_english_fp16.safetensors" + ] + }, + { + "id": 152, + "type": "KSampler", + "pos": [ + 1160, + 1750 + ], + "size": [ + 280, + 440 + ], + "flags": {}, + "order": 43, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 443 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 444 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 445 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 446 + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 447 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 448 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 479 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 20, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 153, + "type": "WanSoundImageToVideo", + "pos": [ + 870, + 1890 + ], + "size": [ + 270, + 250 + ], + "flags": {}, + "order": 41, + "mode": 4, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 449 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 450 + }, + { + "name": "vae", + "type": "VAE", + "link": 451 + }, + { + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 452 + }, + { + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 453 + }, + { + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "ref_motion", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 454 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 444 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 445 + ] + }, + { + "name": "latent", + "type": "LATENT", + "links": [ + 446 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideo" + }, + "widgets_values": [ + 640, + 640, + 77, + 1 + ] + }, + { + "id": 154, + "type": "ModelSamplingSD3", + "pos": [ + 890, + 1760 + ], + "size": [ + 250, + 60 + ], + "flags": {}, + "order": 36, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 498 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 443, + 462, + 475, + 487 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 155, + "type": "ImageFromBatch", + "pos": [ + 2730, + 1770 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 57, + "mode": 4, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 456 + }, + { + "name": "batch_index", + "type": "INT", + "widget": { + "name": "batch_index" + }, + "link": 457 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 472 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "ImageFromBatch" + }, + "widgets_values": [ + 0, + 4096 + ] + }, + { + "id": 156, + "type": "LatentConcat", + "pos": [ + 2470, + 1860 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 53, + "mode": 4, + "inputs": [ + { + "name": "samples1", + "type": "LATENT", + "link": 458 + }, + { + "name": "samples2", + "type": "LATENT", + "link": 459 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 440 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 157, + "type": "LatentCut", + "pos": [ + 2470, + 1980 + ], + "size": [ + 210, + 106 + ], + "flags": {}, + "order": 51, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 460 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 458 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentCut" + }, + "widgets_values": [ + "t", + 0, + 1 + ] + }, + { + "id": 159, + "type": "CLIPTextEncode", + "pos": [ + 370, + 1790 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 34, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 461 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 449, + 463, + 476, + 488 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "The man is playing the guitar. He looks down at his hands playing the guitar and sings affectionately and gently." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 163, + "type": "Note", + "pos": [ + 2720, + 1920 + ], + "size": [ + 220, + 90 + ], + "flags": {}, + "order": 13, + "mode": 4, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Stupid hack to fix the first frame being overbaked by the VAE, double the first frame and remove it after decoding." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 165, + "type": "d7670b5a-34e9-40f6-ac84-ec52996e52f3", + "pos": [ + 1820, + 1790 + ], + "size": [ + 280, + 318 + ], + "flags": {}, + "order": 47, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 462 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 463 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 464 + }, + { + "name": "vae", + "type": "VAE", + "link": 465 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 466 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 467 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 468 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 469 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 470 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 471 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 491 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 250, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 166, + "type": "PrimitiveInt", + "pos": [ + 420, + 2480 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 454, + 471, + 484, + 496 + ] + } + ], + "title": "Chunk Length", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 77, + "fixed" + ] + }, + { + "id": 167, + "type": "CreateVideo", + "pos": [ + 2430, + 2170 + ], + "size": [ + 270, + 80 + ], + "flags": {}, + "order": 59, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 472 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 473 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 474 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 169, + "type": "PrimitiveInt", + "pos": [ + 420, + 2340 + ], + "size": [ + 306.36004638671875, + 90 + ], + "flags": { + "collapsed": false + }, + "order": 15, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 457 + ] + } + ], + "title": "Batch sizes", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 3, + "fixed" + ] + }, + { + "id": 171, + "type": "MarkdownNote", + "pos": [ + 770, + 2340 + ], + "size": [ + 300, + 320 + ], + "flags": {}, + "order": 16, + "mode": 4, + "inputs": [], + "outputs": [], + "title": "Batch sizes", + "properties": {}, + "widgets_values": [ + "## Batch sizes\nBatch sizes depend on how many Video S2V Extend subgraphs you have added to the workflow.\n\nEach Video S2V Extend subgraph will add 77 frames to the final output.\n\nExample:\n\nIf you added 1 Video S2V Extend subgraph, you should set the batch size to 2.\n\nWe added 2 Video S2V Extend subgraphs, so the batch size value is 3.\n\n## Chunk length\n\n77 is the default length from the WAN2.2S2V official code. This model needs at least 73 frames. If you set the value too high, it might cause an out-of-memory issue.\n\nSo you can just leave 77 as it is." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 172, + "type": "bdee126d-2d92-4d01-9e74-9118a9d609c5", + "pos": [ + 1520, + 1790 + ], + "size": [ + 280, + 318 + ], + "flags": {}, + "order": 45, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 475 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 476 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 477 + }, + { + "name": "vae", + "type": "VAE", + "link": 478 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 479 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 480 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 481 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 482 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 483 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 484 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 466 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 1, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 173, + "type": "AudioEncoderEncode", + "pos": [ + 1130, + 2340 + ], + "size": [ + 285.087890625, + 46 + ], + "flags": {}, + "order": 38, + "mode": 4, + "inputs": [ + { + "name": "audio_encoder", + "type": "AUDIO_ENCODER", + "link": 485 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 486 + } + ], + "outputs": [ + { + "name": "AUDIO_ENCODER_OUTPUT", + "type": "AUDIO_ENCODER_OUTPUT", + "links": [ + 452, + 467, + 480, + 492 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "AudioEncoderEncode" + }, + "widgets_values": [] + }, + { + "id": 168, + "type": "SaveVideo", + "pos": [ + 1500, + 2320 + ], + "size": [ + 1250, + 690 + ], + "flags": {}, + "order": 61, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 474 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 177, + "type": "PrimitiveInt", + "pos": [ + 420, + 2650 + ], + "size": [ + 306.36004638671875, + 82 + ], + "flags": {}, + "order": 17, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 447, + 469, + 482, + 494 + ] + } + ], + "title": "Steps", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 20, + "fixed" + ] + }, + { + "id": 178, + "type": "PrimitiveFloat", + "pos": [ + 420, + 2780 + ], + "size": [ + 306.36004638671875, + 58 + ], + "flags": {}, + "order": 18, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 448, + 470, + 483, + 495 + ] + } + ], + "title": "CFG", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "PrimitiveFloat" + }, + "widgets_values": [ + 6 + ] + }, + { + "id": 144, + "type": "MarkdownNote", + "pos": [ + 770, + 1140 + ], + "size": [ + 280, + 110 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Sampler settings", + "properties": {}, + "widgets_values": [ + "| model | Steps | cfg |\n|---------------------|---------------|---------------|\n| With 4 steps lightning LoRA | 4 | 1.0 |\n| Without 4 Steps lightning LoRA | 20 | 6.0 |\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 170, + "type": "MarkdownNote", + "pos": [ + 770, + 2740 + ], + "size": [ + 280, + 110 + ], + "flags": {}, + "order": 20, + "mode": 4, + "inputs": [], + "outputs": [], + "title": "Sampler settings", + "properties": {}, + "widgets_values": [ + "| model | Steps | cfg |\n|---------------------|---------------|---------------|\n| With 4 steps lightning LoRA | 4 | 1.0 |\n| Without 4 Steps lightning LoRA | 20 | 6.0 |\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 179, + "type": "MarkdownNote", + "pos": [ + -520, + 1710 + ], + "size": [ + 400, + 90 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "This is the 20-step workflow. We put it here in case some users don't know how to modify the workflow that with Wan2.2 lightning LoRA. If you want to enable it, box-select the workflow and then use Ctrl+B to enable it." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 174, + "type": "51b3a856-6e10-44f8-94d7-2a92a39c9707", + "pos": [ + 2140, + 1790 + ], + "size": [ + 245.37460327148438, + 318 + ], + "flags": {}, + "order": 49, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 487 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 488 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 489 + }, + { + "name": "vae", + "type": "VAE", + "link": 490 + }, + { + "name": "video_latent", + "type": "LATENT", + "link": 491 + }, + { + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "link": 492 + }, + { + "name": "ref_image", + "type": "IMAGE", + "link": 493 + }, + { + "name": "control_video", + "type": "IMAGE", + "link": null + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 494 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 495 + }, + { + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 496 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 459, + 460 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54" + }, + "widgets_values": [ + 1, + 10, + 6, + "uni_pc", + "simple", + 77 + ] + }, + { + "id": 37, + "type": "UNETLoader", + "pos": [ + -80, + 150 + ], + "size": [ + 390, + 82 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 362 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_s2v_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_s2v_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 161, + "type": "UNETLoader", + "pos": [ + -80, + 1750 + ], + "size": [ + 390, + 82 + ], + "flags": {}, + "order": 23, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 498 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_s2v_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_s2v_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 112, + "type": "Note", + "pos": [ + 390, + -200 + ], + "size": [ + 380, + 110 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About lightning LoRA", + "properties": {}, + "widgets_values": [ + "Tested all wan2.2 lightning LoRAs; all worked, but many keys didn't match. However, because it reduces generation time a lot, we added this lightning model. If you find the output quality is too bad, you can try the 20 steps workflow without lightning LoRA." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 181, + "type": "MarkdownNote", + "pos": [ + -90, + -60 + ], + "size": [ + 420, + 130 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About fp8_scaled and bf16", + "properties": {}, + "widgets_values": [ + "You can find both models [Here](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/tree/main/split_files/diffusion_models)\n\n- [wan2.2_s2v_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_fp8_scaled.safetensors)\n- [wan2.2_s2v_14B_bf16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_bf16.safetensors)\n\nThis template is using wan2.2_s2v_14B_fp8_scaled.safetensors, which requires less VRAM. But you can try wan2.2_s2v_14B_bf16.safetensors to reduce degradation." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 1160, + 150 + ], + "size": [ + 280, + 440 + ], + "flags": {}, + "order": 42, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 111 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 257 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 258 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 259 + }, + { + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 319 + }, + { + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 348 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 189 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 20, + "randomize", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 108, + "type": "MarkdownNote", + "pos": [ + -590, + 110 + ], + "size": [ + 480, + 500 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": {}, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2-2-s2v\n) \n\n**diffusion_models** \n- [wan2.2_s2v_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_fp8_scaled.safetensors)\n- [wan2.2_s2v_14B_bf16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_s2v_14B_bf16.safetensors)\n\n**audio_encoders**\n- [wav2vec2_large_english_fp16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/audio_encoders/wav2vec2_large_english_fp16.safetensors)\n\n**vae**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**text_encoders** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── wan2.2_s2v_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_s2v_14B_bf16.safetensors # The bf16 model will cause less degradation\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ ├───📂 audio_encoders/ # Create one if you can't find this folder\n│ │ └─── wav2vec2_large_english_fp16.safetensors \n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 58, + "type": "LoadAudio", + "pos": [ + -60, + 750 + ], + "size": [ + 360, + 140 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 121, + 198 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LoadAudio" + }, + "widgets_values": [ + "video_wan2_2_14B_s2v_input_audio.MP3", + null, + null + ] + }, + { + "id": 52, + "type": "LoadImage", + "pos": [ + -60, + 940 + ], + "size": [ + 360, + 314 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 252, + 261, + 262, + 264 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "video_wan2_2_14B_s2v_reference_image.jpg", + "image" + ] + }, + { + "id": 162, + "type": "LoadAudio", + "pos": [ + -60, + 2350 + ], + "size": [ + 360, + 140 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 473, + 486 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LoadAudio" + }, + "widgets_values": [ + "video_wan2_2_14B_s2v_input_audio.MP3", + null, + null + ] + }, + { + "id": 160, + "type": "LoadImage", + "pos": [ + -60, + 2540 + ], + "size": [ + 360, + 314 + ], + "flags": {}, + "order": 30, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 453, + 468, + 481, + 493 + ] + }, + { + "name": "MASK", + "type": "MASK", + "slot_index": 1, + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "video_wan2_2_14B_s2v_reference_image.jpg", + "image" + ] + } + ], + "links": [ + [ + 74, + 38, + 0, + 6, + 0, + "CLIP" + ], + [ + 75, + 38, + 0, + 7, + 0, + "CLIP" + ], + [ + 111, + 54, + 0, + 3, + 0, + "MODEL" + ], + [ + 120, + 57, + 0, + 56, + 0, + "AUDIO_ENCODER" + ], + [ + 121, + 58, + 0, + 56, + 1, + "AUDIO" + ], + [ + 188, + 54, + 0, + 79, + 0, + "MODEL" + ], + [ + 189, + 3, + 0, + 79, + 4, + "LATENT" + ], + [ + 190, + 6, + 0, + 79, + 1, + "CONDITIONING" + ], + [ + 191, + 7, + 0, + 79, + 2, + "CONDITIONING" + ], + [ + 193, + 56, + 0, + 79, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 198, + 58, + 0, + 82, + 1, + "AUDIO" + ], + [ + 201, + 54, + 0, + 85, + 0, + "MODEL" + ], + [ + 202, + 6, + 0, + 85, + 1, + "CONDITIONING" + ], + [ + 203, + 7, + 0, + 85, + 2, + "CONDITIONING" + ], + [ + 206, + 56, + 0, + 85, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 207, + 79, + 0, + 85, + 4, + "LATENT" + ], + [ + 210, + 54, + 0, + 87, + 0, + "MODEL" + ], + [ + 211, + 6, + 0, + 87, + 1, + "CONDITIONING" + ], + [ + 212, + 7, + 0, + 87, + 2, + "CONDITIONING" + ], + [ + 215, + 56, + 0, + 87, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 216, + 85, + 0, + 87, + 4, + "LATENT" + ], + [ + 252, + 52, + 0, + 93, + 4, + "IMAGE" + ], + [ + 253, + 56, + 0, + 93, + 3, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 254, + 6, + 0, + 93, + 0, + "CONDITIONING" + ], + [ + 255, + 7, + 0, + 93, + 1, + "CONDITIONING" + ], + [ + 257, + 93, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 258, + 93, + 1, + 3, + 2, + "CONDITIONING" + ], + [ + 259, + 93, + 2, + 3, + 3, + "LATENT" + ], + [ + 261, + 52, + 0, + 79, + 6, + "IMAGE" + ], + [ + 262, + 52, + 0, + 85, + 6, + "IMAGE" + ], + [ + 264, + 52, + 0, + 87, + 6, + "IMAGE" + ], + [ + 269, + 94, + 0, + 95, + 0, + "LATENT" + ], + [ + 271, + 95, + 0, + 80, + 0, + "LATENT" + ], + [ + 273, + 96, + 0, + 82, + 0, + "IMAGE" + ], + [ + 279, + 87, + 0, + 94, + 0, + "LATENT" + ], + [ + 280, + 87, + 0, + 95, + 1, + "LATENT" + ], + [ + 281, + 39, + 0, + 93, + 2, + "VAE" + ], + [ + 282, + 39, + 0, + 79, + 3, + "VAE" + ], + [ + 283, + 39, + 0, + 85, + 3, + "VAE" + ], + [ + 284, + 39, + 0, + 87, + 3, + "VAE" + ], + [ + 285, + 39, + 0, + 80, + 1, + "VAE" + ], + [ + 286, + 80, + 0, + 96, + 0, + "IMAGE" + ], + [ + 287, + 100, + 0, + 96, + 1, + "INT" + ], + [ + 316, + 103, + 0, + 79, + 8, + "INT" + ], + [ + 317, + 103, + 0, + 85, + 8, + "INT" + ], + [ + 318, + 103, + 0, + 87, + 8, + "INT" + ], + [ + 319, + 103, + 0, + 3, + 4, + "INT" + ], + [ + 332, + 104, + 0, + 79, + 10, + "INT" + ], + [ + 333, + 104, + 0, + 85, + 10, + "INT" + ], + [ + 334, + 104, + 0, + 87, + 10, + "INT" + ], + [ + 335, + 104, + 0, + 93, + 7, + "INT" + ], + [ + 348, + 105, + 0, + 3, + 5, + "FLOAT" + ], + [ + 349, + 105, + 0, + 79, + 9, + "FLOAT" + ], + [ + 350, + 105, + 0, + 85, + 9, + "FLOAT" + ], + [ + 351, + 105, + 0, + 87, + 9, + "FLOAT" + ], + [ + 362, + 37, + 0, + 107, + 0, + "MODEL" + ], + [ + 363, + 107, + 0, + 54, + 0, + "MODEL" + ], + [ + 364, + 82, + 0, + 113, + 0, + "VIDEO" + ], + [ + 440, + 156, + 0, + 148, + 0, + "LATENT" + ], + [ + 441, + 150, + 0, + 148, + 1, + "VAE" + ], + [ + 442, + 147, + 0, + 149, + 0, + "CLIP" + ], + [ + 443, + 154, + 0, + 152, + 0, + "MODEL" + ], + [ + 444, + 153, + 0, + 152, + 1, + "CONDITIONING" + ], + [ + 445, + 153, + 1, + 152, + 2, + "CONDITIONING" + ], + [ + 446, + 153, + 2, + 152, + 3, + "LATENT" + ], + [ + 447, + 177, + 0, + 152, + 4, + "INT" + ], + [ + 448, + 178, + 0, + 152, + 5, + "FLOAT" + ], + [ + 449, + 159, + 0, + 153, + 0, + "CONDITIONING" + ], + [ + 450, + 149, + 0, + 153, + 1, + "CONDITIONING" + ], + [ + 451, + 150, + 0, + 153, + 2, + "VAE" + ], + [ + 452, + 173, + 0, + 153, + 3, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 453, + 160, + 0, + 153, + 4, + "IMAGE" + ], + [ + 454, + 166, + 0, + 153, + 7, + "INT" + ], + [ + 456, + 148, + 0, + 155, + 0, + "IMAGE" + ], + [ + 457, + 169, + 0, + 155, + 1, + "INT" + ], + [ + 458, + 157, + 0, + 156, + 0, + "LATENT" + ], + [ + 459, + 174, + 0, + 156, + 1, + "LATENT" + ], + [ + 460, + 174, + 0, + 157, + 0, + "LATENT" + ], + [ + 461, + 147, + 0, + 159, + 0, + "CLIP" + ], + [ + 462, + 154, + 0, + 165, + 0, + "MODEL" + ], + [ + 463, + 159, + 0, + 165, + 1, + "CONDITIONING" + ], + [ + 464, + 149, + 0, + 165, + 2, + "CONDITIONING" + ], + [ + 465, + 150, + 0, + 165, + 3, + "VAE" + ], + [ + 466, + 172, + 0, + 165, + 4, + "LATENT" + ], + [ + 467, + 173, + 0, + 165, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 468, + 160, + 0, + 165, + 6, + "IMAGE" + ], + [ + 469, + 177, + 0, + 165, + 8, + "INT" + ], + [ + 470, + 178, + 0, + 165, + 9, + "FLOAT" + ], + [ + 471, + 166, + 0, + 165, + 10, + "INT" + ], + [ + 472, + 155, + 0, + 167, + 0, + "IMAGE" + ], + [ + 473, + 162, + 0, + 167, + 1, + "AUDIO" + ], + [ + 474, + 167, + 0, + 168, + 0, + "VIDEO" + ], + [ + 475, + 154, + 0, + 172, + 0, + "MODEL" + ], + [ + 476, + 159, + 0, + 172, + 1, + "CONDITIONING" + ], + [ + 477, + 149, + 0, + 172, + 2, + "CONDITIONING" + ], + [ + 478, + 150, + 0, + 172, + 3, + "VAE" + ], + [ + 479, + 152, + 0, + 172, + 4, + "LATENT" + ], + [ + 480, + 173, + 0, + 172, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 481, + 160, + 0, + 172, + 6, + "IMAGE" + ], + [ + 482, + 177, + 0, + 172, + 8, + "INT" + ], + [ + 483, + 178, + 0, + 172, + 9, + "FLOAT" + ], + [ + 484, + 166, + 0, + 172, + 10, + "INT" + ], + [ + 485, + 151, + 0, + 173, + 0, + "AUDIO_ENCODER" + ], + [ + 486, + 162, + 0, + 173, + 1, + "AUDIO" + ], + [ + 487, + 154, + 0, + 174, + 0, + "MODEL" + ], + [ + 488, + 159, + 0, + 174, + 1, + "CONDITIONING" + ], + [ + 489, + 149, + 0, + 174, + 2, + "CONDITIONING" + ], + [ + 490, + 150, + 0, + 174, + 3, + "VAE" + ], + [ + 491, + 165, + 0, + 174, + 4, + "LATENT" + ], + [ + 492, + 173, + 0, + 174, + 5, + "AUDIO_ENCODER_OUTPUT" + ], + [ + 493, + 160, + 0, + 174, + 6, + "IMAGE" + ], + [ + 494, + 177, + 0, + 174, + 8, + "INT" + ], + [ + 495, + 178, + 0, + 174, + 9, + "FLOAT" + ], + [ + 496, + 166, + 0, + 174, + 10, + "INT" + ], + [ + 498, + 161, + 0, + 154, + 0, + "MODEL" + ] + ], + "groups": [ + { + "id": 1, + "title": "Fix overbaked first frame", + "bounding": [ + 2430, + 80, + 610, + 450 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 4 - Prompt", + "bounding": [ + 350, + 80, + 470, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 1 - Load models", + "bounding": [ + -90, + 80, + 410, + 557.5999755859375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step 2 - Upload audio & ref_image", + "bounding": [ + -90, + 660, + 410, + 630 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Video S2V Extend", + "bounding": [ + 1490, + 80, + 920, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 6, + "title": "Basic sampling", + "bounding": [ + 850, + 80, + 610, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Step 3 - Batch settings", + "bounding": [ + 350, + 660, + 1100, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Sampler settings", + "bounding": [ + 390, + 970, + 360, + 280 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Fix overbaked first frame", + "bounding": [ + 2430, + 1680, + 610, + 450 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Step 4 - Prompt", + "bounding": [ + 350, + 1680, + 470, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 11, + "title": "Step 1 - Load models", + "bounding": [ + -90, + 1680, + 410, + 557.5999755859375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 12, + "title": "Step 2 - Upload audio & ref_image", + "bounding": [ + -90, + 2260, + 410, + 630 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Video S2V Extend", + "bounding": [ + 1490, + 1680, + 920, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 14, + "title": "Basic sampling", + "bounding": [ + 850, + 1680, + 610, + 560 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "Step 3 - Batch settings", + "bounding": [ + 350, + 2260, + 1100, + 640 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 16, + "title": "Sampler settings", + "bounding": [ + 390, + 2570, + 360, + 280 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "definitions": { + "subgraphs": [ + { + "id": "ad3f1d6b-f6de-4f22-abcf-caeed4bf8ce4", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 1, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + }, + { + "id": "866cdb67-cb97-4a54-8738-e9ece4f5f25f", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 250, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + }, + { + "id": "92cfa20b-adb6-4f00-8596-f14b534cf926", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 1, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + }, + { + "id": "d7670b5a-34e9-40f6-ac84-ec52996e52f3", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 250, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + }, + { + "id": "bdee126d-2d92-4d01-9e74-9118a9d609c5", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 1, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + }, + { + "id": "51b3a856-6e10-44f8-94d7-2a92a39c9707", + "version": 1, + "state": { + "lastGroupId": 0, + "lastNodeId": 78, + "lastLinkId": 199, + "lastRerouteId": 0 + }, + "revision": 0, + "config": {}, + "name": "Video S2V Extend", + "inputNode": { + "id": -10, + "bounding": [ + 1144.5757438431062, + 201.73625918781372, + 159.4375, + 320 + ] + }, + "outputNode": { + "id": -20, + "bounding": [ + 2570.1380839185013, + 257.69975921821873, + 120, + 60 + ] + }, + "inputs": [ + { + "id": "c9455aa1-cda4-4187-b951-22896ad2aa38", + "name": "model", + "type": "MODEL", + "linkIds": [ + 182 + ], + "localized_name": "model", + "pos": { + "0": 1284.01318359375, + "1": 221.7362518310547 + } + }, + { + "id": "7a12de17-d881-4d91-93cd-1a49a813654d", + "name": "positive", + "type": "CONDITIONING", + "linkIds": [ + 186 + ], + "pos": { + "0": 1284.01318359375, + "1": 241.7362518310547 + } + }, + { + "id": "ee6a2983-d73d-44a5-a6e5-288e92ef5268", + "name": "negative", + "type": "CONDITIONING", + "linkIds": [ + 187 + ], + "pos": { + "0": 1284.01318359375, + "1": 261.73626708984375 + } + }, + { + "id": "9f6a5e13-146f-4944-9660-0809677147d6", + "name": "vae", + "type": "VAE", + "linkIds": [ + 188 + ], + "pos": { + "0": 1284.01318359375, + "1": 281.73626708984375 + } + }, + { + "id": "779fb492-785d-49b4-9542-29b2ab9b4f21", + "name": "video_latent", + "type": "LATENT", + "linkIds": [ + 189, + 193 + ], + "pos": { + "0": 1284.01318359375, + "1": 301.73626708984375 + } + }, + { + "id": "e52061eb-0cdf-48ba-a257-5052111e3622", + "name": "audio_encoder_output", + "type": "AUDIO_ENCODER_OUTPUT", + "linkIds": [ + 190 + ], + "pos": { + "0": 1284.01318359375, + "1": 321.73626708984375 + } + }, + { + "id": "269fc273-aef5-4db4-813e-75c13b485336", + "name": "ref_image", + "type": "IMAGE", + "linkIds": [ + 191 + ], + "pos": { + "0": 1284.01318359375, + "1": 341.73626708984375 + } + }, + { + "id": "c1052d4a-56f8-466a-83b7-de468bc16fca", + "name": "control_video", + "type": "IMAGE", + "linkIds": [ + 192 + ], + "pos": { + "0": 1284.01318359375, + "1": 361.73626708984375 + } + }, + { + "id": "d69ebd05-326e-4a08-8b7e-016f37d6973b", + "name": "seed", + "type": "INT", + "linkIds": [ + 194 + ], + "label": "seed", + "pos": { + "0": 1284.01318359375, + "1": 381.73626708984375 + } + }, + { + "id": "9b414173-c219-46dd-b91a-7cb8c13f12ee", + "name": "steps", + "type": "INT", + "linkIds": [ + 195 + ], + "pos": { + "0": 1284.01318359375, + "1": 401.73626708984375 + } + }, + { + "id": "e40a01d3-03f7-4128-a473-a6b46023a3e6", + "name": "cfg", + "type": "FLOAT", + "linkIds": [ + 196 + ], + "pos": { + "0": 1284.01318359375, + "1": 421.73626708984375 + } + }, + { + "id": "89cb13e9-51d3-436f-9d93-4f7437f7fcfd", + "name": "sampler_name", + "type": "COMBO", + "linkIds": [ + 197 + ], + "pos": { + "0": 1284.01318359375, + "1": 441.73626708984375 + } + }, + { + "id": "bac0f5a5-5d74-4a56-b157-08367e6b76cb", + "name": "scheduler", + "type": "COMBO", + "linkIds": [ + 198 + ], + "pos": { + "0": 1284.01318359375, + "1": 461.73626708984375 + } + }, + { + "id": "b1faeb76-3eb2-4294-99be-f459e7d5ceb7", + "name": "length", + "type": "INT", + "linkIds": [ + 199 + ], + "pos": { + "0": 1284.01318359375, + "1": 481.73626708984375 + } + } + ], + "outputs": [ + { + "id": "ce7da106-3efa-4799-9df6-735a06a84292", + "name": "LATENT", + "type": "LATENT", + "linkIds": [ + 183 + ], + "pos": { + "0": 2590.13818359375, + "1": 277.69976806640625 + } + } + ], + "widgets": [], + "nodes": [ + { + "id": 78, + "type": "LatentConcat", + "pos": [ + 2231.392333984375, + 267.094970703125 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 2, + "mode": 4, + "inputs": [ + { + "localized_name": "samples1", + "name": "samples1", + "type": "LATENT", + "link": 193 + }, + { + "localized_name": "samples2", + "name": "samples2", + "type": "LATENT", + "link": 180 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "links": [ + 183 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "LatentConcat" + }, + "widgets_values": [ + "t" + ] + }, + { + "id": 77, + "type": "KSampler", + "pos": [ + 1893.5494384765625, + 286.3221130371094 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 1, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 182 + }, + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 176 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 177 + }, + { + "localized_name": "latent_image", + "name": "latent_image", + "type": "LATENT", + "link": 178 + }, + { + "localized_name": "seed", + "name": "seed", + "type": "INT", + "widget": { + "name": "seed" + }, + "link": 194 + }, + { + "localized_name": "steps", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 195 + }, + { + "localized_name": "cfg", + "name": "cfg", + "type": "FLOAT", + "widget": { + "name": "cfg" + }, + "link": 196 + }, + { + "localized_name": "sampler_name", + "name": "sampler_name", + "type": "COMBO", + "widget": { + "name": "sampler_name" + }, + "link": 197 + }, + { + "localized_name": "scheduler", + "name": "scheduler", + "type": "COMBO", + "widget": { + "name": "scheduler" + }, + "link": 198 + } + ], + "outputs": [ + { + "localized_name": "LATENT", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 180 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 1, + "fixed", + 10, + 6, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 76, + "type": "WanSoundImageToVideoExtend", + "pos": [ + 1560.2855224609375, + 305.9383544921875 + ], + "size": [ + 301.4849548339844, + 178 + ], + "flags": {}, + "order": 0, + "mode": 4, + "inputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "link": 186 + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "link": 187 + }, + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 188 + }, + { + "localized_name": "video_latent", + "name": "video_latent", + "type": "LATENT", + "link": 189 + }, + { + "localized_name": "audio_encoder_output", + "name": "audio_encoder_output", + "shape": 7, + "type": "AUDIO_ENCODER_OUTPUT", + "link": 190 + }, + { + "localized_name": "ref_image", + "name": "ref_image", + "shape": 7, + "type": "IMAGE", + "link": 191 + }, + { + "localized_name": "control_video", + "name": "control_video", + "shape": 7, + "type": "IMAGE", + "link": 192 + }, + { + "localized_name": "length", + "name": "length", + "type": "INT", + "widget": { + "name": "length" + }, + "link": 199 + } + ], + "outputs": [ + { + "localized_name": "positive", + "name": "positive", + "type": "CONDITIONING", + "links": [ + 176 + ] + }, + { + "localized_name": "negative", + "name": "negative", + "type": "CONDITIONING", + "links": [ + 177 + ] + }, + { + "localized_name": "latent", + "name": "latent", + "type": "LATENT", + "links": [ + 178 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.54", + "Node name for S&R": "WanSoundImageToVideoExtend" + }, + "widgets_values": [ + 77 + ] + } + ], + "groups": [], + "links": [ + { + "id": 176, + "origin_id": 76, + "origin_slot": 0, + "target_id": 77, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 177, + "origin_id": 76, + "origin_slot": 1, + "target_id": 77, + "target_slot": 2, + "type": "CONDITIONING" + }, + { + "id": 178, + "origin_id": 76, + "origin_slot": 2, + "target_id": 77, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 180, + "origin_id": 77, + "origin_slot": 0, + "target_id": 78, + "target_slot": 1, + "type": "LATENT" + }, + { + "id": 182, + "origin_id": -10, + "origin_slot": 0, + "target_id": 77, + "target_slot": 0, + "type": "MODEL" + }, + { + "id": 183, + "origin_id": 78, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 186, + "origin_id": -10, + "origin_slot": 1, + "target_id": 76, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 187, + "origin_id": -10, + "origin_slot": 2, + "target_id": 76, + "target_slot": 1, + "type": "CONDITIONING" + }, + { + "id": 188, + "origin_id": -10, + "origin_slot": 3, + "target_id": 76, + "target_slot": 2, + "type": "VAE" + }, + { + "id": 189, + "origin_id": -10, + "origin_slot": 4, + "target_id": 76, + "target_slot": 3, + "type": "LATENT" + }, + { + "id": 190, + "origin_id": -10, + "origin_slot": 5, + "target_id": 76, + "target_slot": 4, + "type": "AUDIO_ENCODER_OUTPUT" + }, + { + "id": 191, + "origin_id": -10, + "origin_slot": 6, + "target_id": 76, + "target_slot": 5, + "type": "IMAGE" + }, + { + "id": 192, + "origin_id": -10, + "origin_slot": 7, + "target_id": 76, + "target_slot": 6, + "type": "IMAGE" + }, + { + "id": 193, + "origin_id": -10, + "origin_slot": 4, + "target_id": 78, + "target_slot": 0, + "type": "LATENT" + }, + { + "id": 194, + "origin_id": -10, + "origin_slot": 8, + "target_id": 77, + "target_slot": 4, + "type": "INT" + }, + { + "id": 195, + "origin_id": -10, + "origin_slot": 9, + "target_id": 77, + "target_slot": 5, + "type": "INT" + }, + { + "id": 196, + "origin_id": -10, + "origin_slot": 10, + "target_id": 77, + "target_slot": 6, + "type": "FLOAT" + }, + { + "id": 197, + "origin_id": -10, + "origin_slot": 11, + "target_id": 77, + "target_slot": 7, + "type": "COMBO" + }, + { + "id": 198, + "origin_id": -10, + "origin_slot": 12, + "target_id": 77, + "target_slot": 8, + "type": "COMBO" + }, + { + "id": 199, + "origin_id": -10, + "origin_slot": 13, + "target_id": 76, + "target_slot": 7, + "type": "INT" + } + ], + "extra": {} + } + ] + }, + "config": {}, + "extra": { + "ds": { + "scale": 0.42409761837248483, + "offset": [ + 864.0224598577478, + -1189.4216458741478 + ] + }, + "frontendVersion": "1.27.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-14b-t2v.jpg b/example_workflows/i2v_wan22-14b-t2v.jpg new file mode 100644 index 0000000..c98adf9 Binary files /dev/null and b/example_workflows/i2v_wan22-14b-t2v.jpg differ diff --git a/example_workflows/i2v_wan22-14b-t2v.json b/example_workflows/i2v_wan22-14b-t2v.json new file mode 100644 index 0000000..5cbcbb8 --- /dev/null +++ b/example_workflows/i2v_wan22-14b-t2v.json @@ -0,0 +1,1876 @@ +{ + "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", + "revision": 0, + "last_node_id": 113, + "last_link_id": 187, + "nodes": [ + { + "id": 71, + "type": "CLIPLoader", + "pos": [ + 50, + 50 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 141, + 160 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 73, + "type": "VAELoader", + "pos": [ + 50, + 210 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 158 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 76, + "type": "UNETLoader", + "pos": [ + 50, + -80 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 155 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 75, + "type": "UNETLoader", + "pos": [ + 50, + -210 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 153 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 90, + "type": "CLIPLoader", + "pos": [ + 60, + 1130 + ], + "size": [ + 346.391845703125, + 106 + ], + "flags": {}, + "order": 4, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 164, + 178 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 92, + "type": "VAELoader", + "pos": [ + 60, + 1290 + ], + "size": [ + 344.731689453125, + 59.98149108886719 + ], + "flags": {}, + "order": 5, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 176 + ] + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan_2.1_vae.safetensors" + ] + }, + { + "id": 94, + "type": "ModelSamplingSD3", + "pos": [ + 660, + 980 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 22, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 166 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 167 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 101, + "type": "UNETLoader", + "pos": [ + 50, + 870 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 6, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 165 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 102, + "type": "UNETLoader", + "pos": [ + 50, + 1000 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 166 + ] + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "cnr_id": "comfy-core", + "ver": "0.3.45", + "models": [ + { + "name": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "default" + ] + }, + { + "id": 83, + "type": "LoraLoaderModelOnly", + "pos": [ + 450, + -200 + ], + "size": [ + 280, + 82 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 153 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 152 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + "directory": "loras" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", + 1.0000000000000002 + ] + }, + { + "id": 85, + "type": "LoraLoaderModelOnly", + "pos": [ + 450, + -60 + ], + "size": [ + 280, + 82 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 155 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 156 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.3.49", + "models": [ + { + "name": "wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors", + "directory": "loras" + } + ] + }, + "widgets_values": [ + "wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors", + 1.0000000000000002 + ] + }, + { + "id": 86, + "type": "ModelSamplingSD3", + "pos": [ + 740, + -60 + ], + "size": [ + 210, + 58 + ], + "flags": { + "collapsed": false + }, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 156 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 183 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 82, + "type": "ModelSamplingSD3", + "pos": [ + 740, + -200 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 152 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 181 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 5.000000000000001 + ] + }, + { + "id": 62, + "type": "MarkdownNote", + "pos": [ + -470, + -290 + ], + "size": [ + 480, + 550 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": {}, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2\n) | [教程](https://docs.comfy.org/zh-CN/tutorials/video/wan/wan2_2\n)\n\n**Diffusion Model** \n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**LoRA**\n\n- [wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors)\n- [wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\nFile save location\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ ├─── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors\n│ ├───📂 loras/\n│ │ ├───wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors\n│ │ └───wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ └───📂 vae/\n│ └── wan_2.1_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 89, + "type": "CLIPTextEncode", + "pos": [ + 440, + 130 + ], + "size": [ + 510, + 160 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 160 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 143, + 149 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "Beautiful young European woman with honey blonde hair gracefully turning her head back over shoulder, gentle smile, bright eyes looking at camera. Hair flowing in slow motion as she turns. Soft natural lighting, clean background, cinematic slow-motion portrait." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 81, + "type": "KSamplerAdvanced", + "pos": [ + 990, + -250 + ], + "size": [ + 300, + 546 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 181 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 149 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 150 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 151 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 145 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "enable", + 392459563371087, + "randomize", + 4, + 1, + "euler", + "simple", + 0, + 2, + "enable" + ] + }, + { + "id": 88, + "type": "CreateVideo", + "pos": [ + 1320, + 460 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 159 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 147 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 80, + "type": "SaveVideo", + "pos": [ + 1660, + -240 + ], + "size": [ + 704, + 802 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 147 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 106, + "type": "MarkdownNote", + "pos": [ + -350, + 780 + ], + "size": [ + 350, + 150 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "1. Box-select then use Ctrl + B to enable\n2. If you don't want to run both groups simultaneously, don't forget to use **Ctrl + B** to disable the **fp8_scaled + 4steps LoRA** group after enabling the **fp8_scaled** group, or try the [partial - execution](https://docs.comfy.org/interface/features/partial-execution) feature." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 87, + "type": "VAEDecode", + "pos": [ + 1020, + 470 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 157 + }, + { + "name": "vae", + "type": "VAE", + "link": 158 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 159 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [] + }, + { + "id": 93, + "type": "ModelSamplingSD3", + "pos": [ + 660, + 850 + ], + "size": [ + 210, + 60 + ], + "flags": {}, + "order": 21, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 165 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 171 + ] + } + ], + "properties": { + "Node name for S&R": "ModelSamplingSD3", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 72, + "type": "CLIPTextEncode", + "pos": [ + 440, + 330 + ], + "size": [ + 510, + 180 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 141 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 144, + 150 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走,裸露,NSFW" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 100, + "type": "CreateVideo", + "pos": [ + 1270, + 1500 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 31, + "mode": 4, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 179 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 177 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 16 + ] + }, + { + "id": 99, + "type": "CLIPTextEncode", + "pos": [ + 440, + 1220 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 20, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 178 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 168, + 172 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "Beautiful young European woman with honey blonde hair gracefully turning her head back over shoulder, gentle smile, bright eyes looking at camera. Hair flowing in slow motion as she turns. Soft natural lighting, clean background, cinematic portrait." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 91, + "type": "CLIPTextEncode", + "pos": [ + 440, + 1420 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 19, + "mode": 4, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 164 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 169, + 173 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走,裸露,NSFW" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 97, + "type": "VAEDecode", + "pos": [ + 930, + 1510 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 29, + "mode": 4, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 187 + }, + { + "name": "vae", + "type": "VAE", + "link": 176 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 179 + ] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [] + }, + { + "id": 74, + "type": "EmptyHunyuanLatentVideo", + "pos": [ + 70, + 380 + ], + "size": [ + 315, + 130 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 151 + ] + } + ], + "properties": { + "Node name for S&R": "EmptyHunyuanLatentVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 78, + "type": "KSamplerAdvanced", + "pos": [ + 1310, + -250 + ], + "size": [ + 304.748046875, + 546 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 183 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 143 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 144 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 145 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 157 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 4, + 1, + "euler", + "simple", + 2, + 4, + "disable" + ] + }, + { + "id": 64, + "type": "MarkdownNote", + "pos": [ + -480, + 320 + ], + "size": [ + 490, + 160 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "VRAM Usage", + "properties": { + "widget_ue_connectable": {} + }, + "widgets_values": [ + "## GPU:RTX4090D 24GB\n\n| Model | Size |VRAM Usage | 1st Generation | 2nd Generation |\n|---------------------|-------|-----------|---------------|-----------------|\n| fp8_scaled |640*640| 84% | ≈ 536s | ≈ 513s |\n| fp8_scaled + 4steps LoRA | 640*640 | 89% | ≈ 108s | ≈ 71s |" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 104, + "type": "EmptyHunyuanLatentVideo", + "pos": [ + 70, + 1470 + ], + "size": [ + 315, + 130 + ], + "flags": {}, + "order": 12, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 174 + ] + } + ], + "properties": { + "Node name for S&R": "EmptyHunyuanLatentVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + 640, + 640, + 81, + 1 + ] + }, + { + "id": 110, + "type": "Note", + "pos": [ + 40, + 630 + ], + "size": [ + 380, + 88 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "EmptyHunyuanLatentVideo", + "properties": {}, + "widgets_values": [ + "1. (By:0.95) default, we set the video to a smaller size for users with low VRAM. If you have enough VRAM, you can (change:1.05) the size\n\n2. Set the length to 1. You can use Wan2.2 as an image T2I model." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 112, + "type": "Note", + "pos": [ + 30, + -430 + ], + "size": [ + 360, + 100 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "About 4 Steps LoRA", + "properties": {}, + "widgets_values": [ + "Using the Wan2.2 Lighting LoRA will result in the loss of video dynamics, but it will reduce the generation time. This template provides two workflows, and you can enable one as needed." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 98, + "type": "SaveVideo", + "pos": [ + 1620, + 860 + ], + "size": [ + 840, + 850 + ], + "flags": {}, + "order": 33, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 177 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 96, + "type": "KSamplerAdvanced", + "pos": [ + 910, + 850 + ], + "size": [ + 304.748046875, + 546.0000610351562 + ], + "flags": {}, + "order": 25, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 171 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 172 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 173 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 174 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 170 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "enable", + 864031777124281, + "randomize", + 20, + 3.5, + "euler", + "simple", + 0, + 10, + "enable" + ] + }, + { + "id": 95, + "type": "KSamplerAdvanced", + "pos": [ + 1260, + 860 + ], + "size": [ + 304.748046875, + 546 + ], + "flags": {}, + "order": 27, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 167 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 168 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 169 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 170 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 187 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerAdvanced", + "cnr_id": "comfy-core", + "ver": "0.3.45" + }, + "widgets_values": [ + "disable", + 0, + "fixed", + 20, + 3.5, + "euler", + "simple", + 10, + 10000, + "disable" + ] + } + ], + "links": [ + [ + 141, + 71, + 0, + 72, + 0, + "CLIP" + ], + [ + 143, + 89, + 0, + 78, + 1, + "CONDITIONING" + ], + [ + 144, + 72, + 0, + 78, + 2, + "CONDITIONING" + ], + [ + 145, + 81, + 0, + 78, + 3, + "LATENT" + ], + [ + 147, + 88, + 0, + 80, + 0, + "VIDEO" + ], + [ + 149, + 89, + 0, + 81, + 1, + "CONDITIONING" + ], + [ + 150, + 72, + 0, + 81, + 2, + "CONDITIONING" + ], + [ + 151, + 74, + 0, + 81, + 3, + "LATENT" + ], + [ + 152, + 83, + 0, + 82, + 0, + "MODEL" + ], + [ + 153, + 75, + 0, + 83, + 0, + "MODEL" + ], + [ + 155, + 76, + 0, + 85, + 0, + "MODEL" + ], + [ + 156, + 85, + 0, + 86, + 0, + "MODEL" + ], + [ + 157, + 78, + 0, + 87, + 0, + "LATENT" + ], + [ + 158, + 73, + 0, + 87, + 1, + "VAE" + ], + [ + 159, + 87, + 0, + 88, + 0, + "IMAGE" + ], + [ + 160, + 71, + 0, + 89, + 0, + "CLIP" + ], + [ + 164, + 90, + 0, + 91, + 0, + "CLIP" + ], + [ + 165, + 101, + 0, + 93, + 0, + "MODEL" + ], + [ + 166, + 102, + 0, + 94, + 0, + "MODEL" + ], + [ + 167, + 94, + 0, + 95, + 0, + "MODEL" + ], + [ + 168, + 99, + 0, + 95, + 1, + "CONDITIONING" + ], + [ + 169, + 91, + 0, + 95, + 2, + "CONDITIONING" + ], + [ + 170, + 96, + 0, + 95, + 3, + "LATENT" + ], + [ + 171, + 93, + 0, + 96, + 0, + "MODEL" + ], + [ + 172, + 99, + 0, + 96, + 1, + "CONDITIONING" + ], + [ + 173, + 91, + 0, + 96, + 2, + "CONDITIONING" + ], + [ + 174, + 104, + 0, + 96, + 3, + "LATENT" + ], + [ + 176, + 92, + 0, + 97, + 1, + "VAE" + ], + [ + 177, + 100, + 0, + 98, + 0, + "VIDEO" + ], + [ + 178, + 90, + 0, + 99, + 0, + "CLIP" + ], + [ + 179, + 97, + 0, + 100, + 0, + "IMAGE" + ], + [ + 181, + 82, + 0, + 81, + 0, + "MODEL" + ], + [ + 183, + 86, + 0, + 78, + 0, + "MODEL" + ], + [ + 187, + 95, + 0, + 97, + 0, + "LATENT" + ] + ], + "groups": [ + { + "id": 6, + "title": "Step3 Prompt", + "bounding": [ + 430, + 60, + 530, + 460 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 7, + "title": "Lightx2v 4steps LoRA", + "bounding": [ + 430, + -280, + 530, + 320 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 8, + "title": "Step1 - Load models", + "bounding": [ + 40, + 790, + 371.0310363769531, + 571.3974609375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 9, + "title": "Step2 - Video size", + "bounding": [ + 40, + 1390, + 367.5572814941406, + 222.82713317871094 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 10, + "title": "Step3 Prompt", + "bounding": [ + 430, + 1150, + 445.27801513671875, + 464.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 13, + "title": "Wan2.2 T2V fp8_scaled + 4 steps LoRA", + "bounding": [ + 30, + -320, + 2360, + 900 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 11, + "title": "Step 1 - Load models", + "bounding": [ + 40, + -280, + 366.7470703125, + 563.5814208984375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 12, + "title": "Step 2 - Video size", + "bounding": [ + 40, + 300, + 370, + 230 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 15, + "title": "Wan2.2 T2V fp8_scaled", + "bounding": [ + 30, + 750, + 2460, + 1020 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.4395066178793704, + "offset": [ + 483.810975511288, + 323.2369147637603 + ] + }, + "frontendVersion": "1.30.6", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/i2v_wan22-5b-ti2v.jpg b/example_workflows/i2v_wan22-5b-ti2v.jpg new file mode 100644 index 0000000..bcf43a5 Binary files /dev/null and b/example_workflows/i2v_wan22-5b-ti2v.jpg differ diff --git a/example_workflows/i2v_wan22-5b-ti2v.json b/example_workflows/i2v_wan22-5b-ti2v.json new file mode 100644 index 0000000..c52d10d --- /dev/null +++ b/example_workflows/i2v_wan22-5b-ti2v.json @@ -0,0 +1,733 @@ +{ + "id": "91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb", + "revision": 0, + "last_node_id": 59, + "last_link_id": 108, + "nodes": [ + { + "id": 37, + "type": "UNETLoader", + "pos": [ + -30, + 50 + ], + "size": [ + 346.7470703125, + 82 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 94 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "wan2.2_ti2v_5B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors", + "directory": "diffusion_models" + } + ] + }, + "widgets_values": [ + "wan2.2_ti2v_5B_fp16.safetensors", + "default" + ] + }, + { + "id": 38, + "type": "CLIPLoader", + "pos": [ + -30, + 190 + ], + "size": [ + 350, + 110 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 0, + "links": [ + 74, + 75 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "directory": "text_encoders" + } + ] + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "default" + ] + }, + { + "id": 39, + "type": "VAELoader", + "pos": [ + -30, + 350 + ], + "size": [ + 350, + 60 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 76, + 105 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "wan2.2_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan2.2_vae.safetensors", + "directory": "vae" + } + ] + }, + "widgets_values": [ + "wan2.2_vae.safetensors" + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 1190, + 150 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 35 + }, + { + "name": "vae", + "type": "VAE", + "link": 76 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 107 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 57, + "type": "CreateVideo", + "pos": [ + 1200, + 240 + ], + "size": [ + 270, + 78 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 107 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 108 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 58, + "type": "SaveVideo", + "pos": [ + 1200, + 370 + ], + "size": [ + 660, + 450 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 108 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "SaveVideo" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 55, + "type": "Wan22ImageToVideoLatent", + "pos": [ + 380, + 540 + ], + "size": [ + 271.9126892089844, + 150 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 105 + }, + { + "name": "start_image", + "shape": 7, + "type": "IMAGE", + "link": 106 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 104 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "Wan22ImageToVideoLatent" + }, + "widgets_values": [ + 1280, + 704, + 121, + 1 + ] + }, + { + "id": 56, + "type": "LoadImage", + "pos": [ + 0, + 540 + ], + "size": [ + 274.080078125, + 314 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 106 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "example.png", + "image" + ] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 380, + 260 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 75 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 52 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 380, + 50 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 74 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 46 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "Low contrast. In a retro 1970s-style subway station, a street musician plays in dim colors and rough textures. He wears an old jacket, playing guitar with focus. Commuters hurry by, and a small crowd gathers to listen. The camera slowly moves right, capturing the blend of music and city noise, with old subway signs and mottled walls in the background." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 850, + 130 + ], + "size": [ + 315, + 262 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 95 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 46 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 52 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 104 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 35 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 898471028164125, + "randomize", + 20, + 5, + "uni_pc", + "simple", + 1 + ] + }, + { + "id": 48, + "type": "ModelSamplingSD3", + "pos": [ + 850, + 20 + ], + "size": [ + 210, + 58 + ], + "flags": { + "collapsed": false + }, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 94 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 95 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.45", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 8 + ] + }, + { + "id": 59, + "type": "MarkdownNote", + "pos": [ + -550, + 10 + ], + "size": [ + 480, + 340 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": {}, + "widgets_values": [ + "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2\n) \n\n**Diffusion Model**\n- [wan2.2_ti2v_5B_fp16.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors)\n\n**VAE**\n- [wan2.2_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan2.2_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\nFile save location\n\n```\nComfyUI/\n├───📂 models/\n│ ├───📂 diffusion_models/\n│ │ └───wan2.2_ti2v_5B_fp16.safetensors\n│ ├───📂 text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ └───📂 vae/\n│ └── wan2.2_vae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 35, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 46, + 6, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 52, + 7, + 0, + 3, + 2, + "CONDITIONING" + ], + [ + 74, + 38, + 0, + 6, + 0, + "CLIP" + ], + [ + 75, + 38, + 0, + 7, + 0, + "CLIP" + ], + [ + 76, + 39, + 0, + 8, + 1, + "VAE" + ], + [ + 94, + 37, + 0, + 48, + 0, + "MODEL" + ], + [ + 95, + 48, + 0, + 3, + 0, + "MODEL" + ], + [ + 104, + 55, + 0, + 3, + 3, + "LATENT" + ], + [ + 105, + 39, + 0, + 55, + 0, + "VAE" + ], + [ + 106, + 56, + 0, + 55, + 1, + "IMAGE" + ], + [ + 107, + 8, + 0, + 57, + 0, + "IMAGE" + ], + [ + 108, + 57, + 0, + 58, + 0, + "VIDEO" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step1 - Load models", + "bounding": [ + -50, + -20, + 400, + 453.6000061035156 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step3 - Prompt", + "bounding": [ + 370, + -20, + 448.27801513671875, + 473.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "For i2v, use Ctrl + B to enable", + "bounding": [ + -50, + 450, + 400, + 420 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Video Size & length", + "bounding": [ + 370, + 470, + 291.9127197265625, + 233.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.46462425349300085, + "offset": [ + 847.5372059811432, + 288.7938392118285 + ] + }, + "frontendVersion": "1.27.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/ipadapter-composition-i2i-production-v1.jpg b/example_workflows/ipadapter-composition-i2i-production-v1.jpg new file mode 100644 index 0000000..58cc1b3 Binary files /dev/null and b/example_workflows/ipadapter-composition-i2i-production-v1.jpg differ diff --git a/example_workflows/ipadapter-composition-i2i-production-v1.json b/example_workflows/ipadapter-composition-i2i-production-v1.json new file mode 100644 index 0000000..4c89ef1 --- /dev/null +++ b/example_workflows/ipadapter-composition-i2i-production-v1.json @@ -0,0 +1,866 @@ +{ + "last_node_id": 19, + "last_link_id": 27, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [ + 50, + 100 + ], + "widgets_values": [ + "sd_xl_base_1.0.safetensors" + ], + "title": "SDXL Checkpoint Loader", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "size": { + "0": 350, + "1": 100 + }, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 1, + 3 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 12, + 13 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 19 + ], + "slot_index": 2 + } + ] + }, + { + "id": 2, + "type": "LoadImage", + "pos": [ + 50, + 300 + ], + "widgets_values": [ + "composition_ref1.png", + "image" + ], + "title": "API Composition Ref 1", + "flags": {}, + "order": 1, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "size": { + "0": 350, + "1": 100 + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 5 + ], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": [], + "slot_index": 1 + } + ] + }, + { + "id": 3, + "type": "LoadImage", + "pos": [ + 50, + 650 + ], + "widgets_values": [ + "composition_ref2.png", + "image" + ], + "title": "API Composition Ref 2", + "flags": {}, + "order": 2, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "size": { + "0": 350, + "1": 100 + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 8 + ], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": [], + "slot_index": 1 + } + ] + }, + { + "id": 4, + "type": "IPAdapterUnifiedLoader", + "pos": [ + 450, + 100 + ], + "widgets_values": [ + "VIT-G (medium strength)" + ], + "title": "IP-Adapter Loader 1", + "flags": {}, + "order": 3, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterUnifiedLoader" + }, + "size": { + "0": 350, + "1": 100 + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 6 + ], + "slot_index": 0 + }, + { + "name": "IPADAPTER", + "type": "IPADAPTER", + "links": [ + 7 + ], + "slot_index": 1 + } + ] + }, + { + "id": 5, + "type": "IPAdapterUnifiedLoader", + "pos": [ + 450, + 250 + ], + "widgets_values": [ + "VIT-G (medium strength)" + ], + "title": "IP-Adapter Loader 2", + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterUnifiedLoader" + }, + "size": { + "0": 350, + "1": 100 + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 3 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "slot_index": 0 + }, + { + "name": "IPADAPTER", + "type": "IPADAPTER", + "links": [ + 10 + ], + "slot_index": 1 + } + ] + }, + { + "id": 6, + "type": "IPAdapterAdvanced", + "pos": [ + 800, + 100 + ], + "widgets_values": [ + 0.6, + "ease in-out", + "average", + 0.0, + 1.0, + "V only" + ], + "title": "Apply IP-Adapter 1", + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterAdvanced" + }, + "size": { + "0": 315, + "1": 258 + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 6 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": 7 + }, + { + "name": "image", + "type": "IMAGE", + "link": 5 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 25 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 11 + ], + "slot_index": 0 + } + ] + }, + { + "id": 7, + "type": "IPAdapterAdvanced", + "pos": [ + 1100, + 100 + ], + "widgets_values": [ + 0.5, + "ease in-out", + "average", + 0.0, + 1.0, + "V only" + ], + "title": "Apply IP-Adapter 2", + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterAdvanced" + }, + "size": { + "0": 315, + "1": 258 + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 11 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": 10 + }, + { + "name": "image", + "type": "IMAGE", + "link": 8 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 26 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 14 + ], + "slot_index": 0 + } + ] + }, + { + "id": 8, + "type": "CLIPTextEncode", + "pos": [ + 450, + 500 + ], + "widgets_values": [ + "Complex scene composition, detailed, professional" + ], + "title": "API Positive Prompt", + "flags": {}, + "order": 7, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "size": { + "0": 400, + "1": 200 + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 12 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 15 + ], + "slot_index": 0 + } + ] + }, + { + "id": 9, + "type": "CLIPTextEncode", + "pos": [ + 450, + 750 + ], + "widgets_values": [ + "blurry, low quality" + ], + "title": "API Negative Prompt", + "flags": {}, + "order": 8, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "size": { + "0": 400, + "1": 200 + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 13 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 16 + ], + "slot_index": 0 + } + ] + }, + { + "id": 10, + "type": "EmptyLatentImage", + "pos": [ + 800, + 500 + ], + "widgets_values": [ + 1024, + 1024, + 1 + ], + "title": "API Latent Config", + "flags": {}, + "order": 9, + "mode": 0, + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "size": { + "0": 315, + "1": 100 + }, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 17 + ], + "slot_index": 0 + } + ] + }, + { + "id": 11, + "type": "KSampler", + "pos": [ + 1400, + 100 + ], + "widgets_values": [ + 42, + "fixed", + 35, + 7.0, + "dpmpp_2m", + "karras", + 1 + ], + "title": "Multi-Composition Sampler", + "flags": {}, + "order": 10, + "mode": 0, + "properties": { + "Node name for S&R": "KSampler" + }, + "size": { + "0": 315, + "1": 474 + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 14 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 15 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 16 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 17 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 18 + ], + "slot_index": 0 + } + ] + }, + { + "id": 12, + "type": "VAEDecode", + "pos": [ + 1750, + 100 + ], + "title": "VAE Decode", + "flags": {}, + "order": 11, + "mode": 0, + "properties": { + "Node name for S&R": "VAEDecode" + }, + "size": { + "0": 315, + "1": 100 + }, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 18 + }, + { + "name": "vae", + "type": "VAE", + "link": 19 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 20, + 21 + ], + "slot_index": 0 + } + ] + }, + { + "id": 13, + "type": "PreviewImage", + "pos": [ + 2000, + 100 + ], + "title": "Preview Output", + "flags": {}, + "order": 12, + "mode": 0, + "properties": { + "Node name for S&R": "PreviewImage" + }, + "size": { + "0": 315, + "1": 100 + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 20 + } + ] + }, + { + "id": 14, + "type": "SaveImage", + "pos": [ + 2000, + 550 + ], + "widgets_values": [ + "ipadapter_composition_output" + ], + "title": "API Image Output", + "flags": {}, + "order": 13, + "mode": 0, + "properties": { + "Node name for S&R": "SaveImage" + }, + "size": { + "0": 315, + "1": 100 + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 21 + } + ] + }, + { + "id": 15, + "type": "CLIPVisionLoader", + "pos": [ + 450, + 250 + ], + "size": { + "0": 315, + "1": 58 + }, + "widgets_values": [ + "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors" + ], + "title": "CLIP Vision Loader", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPVisionLoader" + }, + "outputs": [ + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [ + 25, + 26 + ], + "slot_index": 0 + } + ] + } + ], + "links": [ + [ + 1, + 1, + 0, + 4, + 0, + "MODEL" + ], + [ + 3, + 1, + 0, + 5, + 0, + "MODEL" + ], + [ + 5, + 2, + 0, + 6, + 2, + "IMAGE" + ], + [ + 6, + 4, + 0, + 6, + 0, + "MODEL" + ], + [ + 7, + 4, + 1, + 6, + 1, + "IPADAPTER" + ], + [ + 8, + 3, + 0, + 7, + 2, + "IMAGE" + ], + [ + 10, + 5, + 1, + 7, + 1, + "IPADAPTER" + ], + [ + 11, + 6, + 0, + 7, + 0, + "MODEL" + ], + [ + 12, + 1, + 1, + 8, + 0, + "CLIP" + ], + [ + 13, + 1, + 1, + 9, + 0, + "CLIP" + ], + [ + 14, + 7, + 0, + 11, + 0, + "MODEL" + ], + [ + 15, + 8, + 0, + 11, + 1, + "CONDITIONING" + ], + [ + 16, + 9, + 0, + 11, + 2, + "CONDITIONING" + ], + [ + 17, + 10, + 0, + 11, + 3, + "LATENT" + ], + [ + 18, + 11, + 0, + 12, + 0, + "LATENT" + ], + [ + 19, + 1, + 2, + 12, + 1, + "VAE" + ], + [ + 20, + 12, + 0, + 13, + 0, + "IMAGE" + ], + [ + 21, + 12, + 0, + 14, + 0, + "IMAGE" + ], + [ + 25, + 15, + 0, + 6, + 3, + "CLIP_VISION" + ], + [ + 26, + 15, + 0, + 7, + 3, + "CLIP_VISION" + ] + ], + "extra": { + "workflow_info": { + "name": "IP-Adapter Multi-Composition Image-to-Image Production", + "version": "1.0.0", + "description": "Complex scene composition using multiple IP-Adapter references. Combine visual elements from multiple source images.", + "category": "image-to-image", + "tags": [ + "ipadapter", + "composition", + "multi-reference", + "i2i", + "production" + ], + "requirements": { + "models": [ + "stable-diffusion-xl-base-1.0", + "ip-adapter-plus" + ], + "custom_nodes": [ + "ComfyUI_IPAdapter_plus" + ], + "vram_min": "18GB" + }, + "parameters": { + "ref_image_1": { + "node_id": 2, + "type": "image", + "required": true, + "description": "First composition reference" + }, + "ref_image_2": { + "node_id": 3, + "type": "image", + "required": true, + "description": "Second composition reference" + }, + "weight_1": { + "node_id": 6, + "type": "float", + "default": 0.6, + "description": "Weight for first reference" + }, + "weight_2": { + "node_id": 7, + "type": "float", + "default": 0.5, + "description": "Weight for second reference" + } + }, + "use_cases": [ + "Multi-source scene composition", + "Blend multiple visual concepts", + "Complex artistic compositions", + "Style mixing" + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/ipadapter-face-i2i-production-v1.jpg b/example_workflows/ipadapter-face-i2i-production-v1.jpg new file mode 100644 index 0000000..3a02d12 Binary files /dev/null and b/example_workflows/ipadapter-face-i2i-production-v1.jpg differ diff --git a/example_workflows/ipadapter-face-i2i-production-v1.json b/example_workflows/ipadapter-face-i2i-production-v1.json new file mode 100644 index 0000000..909ac6e --- /dev/null +++ b/example_workflows/ipadapter-face-i2i-production-v1.json @@ -0,0 +1,675 @@ +{ + "last_node_id": 16, + "last_link_id": 21, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [ + 50, + 100 + ], + "size": { + "0": 350, + "1": 100 + }, + "widgets_values": [ + "sd_xl_base_1.0.safetensors" + ], + "title": "SDXL Base Checkpoint Loader", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 1 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 6, + 7 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 13 + ], + "slot_index": 2 + } + ] + }, + { + "id": 2, + "type": "LoadImage", + "pos": [ + 50, + 300 + ], + "size": [ + 315, + 314 + ], + "widgets_values": [ + "face_reference.png", + "image" + ], + "title": "API Face Reference Input", + "flags": {}, + "order": 1, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 3 + ], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": [], + "slot_index": 1 + } + ] + }, + { + "id": 3, + "type": "IPAdapterUnifiedLoader", + "pos": [ + 450, + 100 + ], + "size": { + "0": 315, + "1": 78 + }, + "widgets_values": [ + "VIT-G (medium strength)" + ], + "title": "IP-Adapter Face Loader", + "flags": {}, + "order": 2, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterUnifiedLoader" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 4 + ], + "slot_index": 0 + }, + { + "name": "IPADAPTER", + "type": "IPADAPTER", + "links": [ + 5 + ], + "slot_index": 1 + } + ] + }, + { + "id": 4, + "type": "IPAdapterAdvanced", + "pos": [ + 800, + 100 + ], + "size": { + "0": 315, + "1": 258 + }, + "widgets_values": [ + 0.85, + "ease in-out", + "average", + 0.0, + 1.0, + "V only" + ], + "title": "Apply IP-Adapter Face", + "flags": {}, + "order": 3, + "mode": 0, + "properties": { + "Node name for S&R": "IPAdapterAdvanced" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 4 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": 5 + }, + { + "name": "image", + "type": "IMAGE", + "link": 3 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 20 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 8 + ], + "slot_index": 0 + } + ] + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [ + 450, + 400 + ], + "size": { + "0": 400, + "1": 200 + }, + "widgets_values": [ + "A professional portrait, studio lighting, detailed face" + ], + "title": "API Positive Prompt", + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 6 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 9 + ], + "slot_index": 0 + } + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 450, + 650 + ], + "size": { + "0": 400, + "1": 200 + }, + "widgets_values": [ + "blurry, distorted face, low quality" + ], + "title": "API Negative Prompt", + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 7 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 10 + ], + "slot_index": 0 + } + ] + }, + { + "id": 7, + "type": "EmptyLatentImage", + "pos": [ + 800, + 450 + ], + "size": { + "0": 315, + "1": 106 + }, + "widgets_values": [ + 1024, + 1024, + 1 + ], + "title": "API Latent Image Config", + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 11 + ], + "slot_index": 0 + } + ] + }, + { + "id": 8, + "type": "KSampler", + "pos": [ + 1170, + 100 + ], + "size": { + "0": 315, + "1": 474 + }, + "widgets_values": [ + 42, + "fixed", + 30, + 6.5, + "dpmpp_2m", + "karras", + 1 + ], + "title": "Sampler with Face", + "flags": {}, + "order": 7, + "mode": 0, + "properties": { + "Node name for S&R": "KSampler" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 8 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 9 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 10 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 11 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 12 + ], + "slot_index": 0 + } + ] + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [ + 1540, + 100 + ], + "size": { + "0": 210, + "1": 46 + }, + "title": "VAE Decode", + "flags": {}, + "order": 8, + "mode": 0, + "properties": { + "Node name for S&R": "VAEDecode" + }, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 12 + }, + { + "name": "vae", + "type": "VAE", + "link": 13 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 14, + 15 + ], + "slot_index": 0 + } + ] + }, + { + "id": 10, + "type": "PreviewImage", + "pos": [ + 1800, + 100 + ], + "size": { + "0": 400, + "1": 400 + }, + "title": "Preview Output", + "flags": {}, + "order": 9, + "mode": 0, + "properties": { + "Node name for S&R": "PreviewImage" + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 14 + } + ] + }, + { + "id": 11, + "type": "SaveImage", + "pos": [ + 1800, + 550 + ], + "size": { + "0": 400, + "1": 100 + }, + "widgets_values": [ + "ipadapter_face_output" + ], + "title": "API Image Output", + "flags": {}, + "order": 10, + "mode": 0, + "properties": { + "Node name for S&R": "SaveImage" + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 15 + } + ] + }, + { + "id": 12, + "type": "CLIPVisionLoader", + "pos": [ + 450, + 250 + ], + "size": { + "0": 315, + "1": 58 + }, + "widgets_values": [ + "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors" + ], + "title": "CLIP Vision Loader", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "CLIPVisionLoader" + }, + "outputs": [ + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [ + 20 + ], + "slot_index": 0 + } + ] + } + ], + "links": [ + [ + 1, + 1, + 0, + 3, + 0, + "MODEL" + ], + [ + 3, + 2, + 0, + 4, + 2, + "IMAGE" + ], + [ + 4, + 3, + 0, + 4, + 0, + "MODEL" + ], + [ + 5, + 3, + 1, + 4, + 1, + "IPADAPTER" + ], + [ + 6, + 1, + 1, + 5, + 0, + "CLIP" + ], + [ + 7, + 1, + 1, + 6, + 0, + "CLIP" + ], + [ + 8, + 4, + 0, + 8, + 0, + "MODEL" + ], + [ + 9, + 5, + 0, + 8, + 1, + "CONDITIONING" + ], + [ + 10, + 6, + 0, + 8, + 2, + "CONDITIONING" + ], + [ + 11, + 7, + 0, + 8, + 3, + "LATENT" + ], + [ + 12, + 8, + 0, + 9, + 0, + "LATENT" + ], + [ + 13, + 1, + 2, + 9, + 1, + "VAE" + ], + [ + 14, + 9, + 0, + 10, + 0, + "IMAGE" + ], + [ + 15, + 9, + 0, + 11, + 0, + "IMAGE" + ], + [ + 20, + 12, + 0, + 4, + 3, + "CLIP_VISION" + ] + ], + "extra": { + "workflow_info": { + "name": "IP-Adapter Face Portrait Image-to-Image Production", + "version": "1.0.0", + "description": "Face-focused generation using IP-Adapter Face model. Transfer facial features from reference to generate new portraits or perform face swaps.", + "category": "image-to-image", + "tags": [ + "ipadapter", + "face", + "portrait", + "i2i", + "production" + ], + "requirements": { + "models": [ + "stable-diffusion-xl-base-1.0", + "ip-adapter-face" + ], + "custom_nodes": [ + "ComfyUI_IPAdapter_plus" + ], + "vram_min": "16GB" + }, + "parameters": { + "face_image": { + "node_id": 2, + "type": "image", + "required": true, + "description": "Reference face image" + }, + "prompt": { + "node_id": 5, + "type": "string", + "default": "A professional portrait", + "description": "Portrait description" + }, + "face_weight": { + "node_id": 4, + "type": "float", + "default": 0.85, + "description": "Face similarity strength (0.85 recommended)" + } + }, + "use_cases": [ + "Portrait generation with specific face", + "Face swap in different contexts", + "Consistent character portraits", + "Professional headshots" + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/ipadapter-style-i2i-production-v1.jpg b/example_workflows/ipadapter-style-i2i-production-v1.jpg new file mode 100644 index 0000000..9db21f1 Binary files /dev/null and b/example_workflows/ipadapter-style-i2i-production-v1.jpg differ diff --git a/example_workflows/ipadapter-style-i2i-production-v1.json b/example_workflows/ipadapter-style-i2i-production-v1.json new file mode 100644 index 0000000..4d17d21 --- /dev/null +++ b/example_workflows/ipadapter-style-i2i-production-v1.json @@ -0,0 +1,723 @@ +{ + "last_node_id": 15, + "last_link_id": 20, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [ + 50, + 100 + ], + "size": { + "0": 350, + "1": 100 + }, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 1 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 2, + 3 + ], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 4 + ], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "sd_xl_base_1.0.safetensors" + ], + "title": "SDXL Base Checkpoint Loader" + }, + { + "id": 2, + "type": "LoadImage", + "pos": [ + 50, + 300 + ], + "size": [ + 315, + 314 + ], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 11 + ], + "shape": 3 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "style_reference.png", + "image" + ], + "title": "API Style Reference Input" + }, + { + "id": 3, + "type": "IPAdapterUnifiedLoader", + "pos": [ + 450, + 100 + ], + "size": { + "0": 315, + "1": 78 + }, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": null + } + ], + "outputs": [ + { + "name": "model", + "type": "MODEL", + "links": [ + 12 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "links": [ + 13 + ], + "shape": 3, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "IPAdapterUnifiedLoader" + }, + "widgets_values": [ + "VIT-G (medium strength)" + ], + "title": "IP-Adapter Loader" + }, + { + "id": 4, + "type": "IPAdapter", + "pos": [ + 800, + 100 + ], + "size": { + "0": 315, + "1": 258 + }, + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": 13 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": null + }, + { + "name": "image", + "type": "IMAGE", + "link": 11 + }, + { + "name": "model", + "type": "MODEL", + "link": 12 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 14 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "IPAdapterApply" + }, + "widgets_values": [ + 0.75, + 0.0, + 1.0, + "style transfer" + ], + "title": "Apply IP-Adapter Style" + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [ + 450, + 400 + ], + "size": { + "0": 400, + "1": 200 + }, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 5 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A portrait of a person, highly detailed, professional photography" + ], + "title": "API Positive Prompt" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 450, + 650 + ], + "size": { + "0": 400, + "1": 200 + }, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 6 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "blurry, low quality, distorted, deformed" + ], + "title": "API Negative Prompt" + }, + { + "id": 7, + "type": "EmptyLatentImage", + "pos": [ + 800, + 450 + ], + "size": { + "0": 315, + "1": 106 + }, + "flags": {}, + "order": 6, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 7 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [ + 1024, + 1024, + 1 + ], + "title": "API Latent Image Config" + }, + { + "id": 8, + "type": "KSampler", + "pos": [ + 1170, + 100 + ], + "size": { + "0": 315, + "1": 474 + }, + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 14 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 8 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 42, + "fixed", + 30, + 6.5, + "dpmpp_2m", + "karras", + 1 + ], + "title": "Sampler with Style" + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [ + 1540, + 100 + ], + "size": { + "0": 210, + "1": 46 + }, + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 9, + 10 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 10, + "type": "PreviewImage", + "pos": [ + 1800, + 100 + ], + "size": { + "0": 400, + "1": 400 + }, + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Output" + }, + { + "id": 11, + "type": "SaveImage", + "pos": [ + 1800, + 550 + ], + "size": { + "0": 400, + "1": 100 + }, + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 10 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "ipadapter_style_output" + ], + "title": "API Image Output" + } + ], + "links": [ + [ + 1, + 1, + 0, + 3, + 0, + "MODEL" + ], + [ + 2, + 1, + 1, + 5, + 0, + "CLIP" + ], + [ + 3, + 1, + 1, + 6, + 0, + "CLIP" + ], + [ + 4, + 1, + 2, + 9, + 1, + "VAE" + ], + [ + 5, + 5, + 0, + 8, + 1, + "CONDITIONING" + ], + [ + 6, + 6, + 0, + 8, + 2, + "CONDITIONING" + ], + [ + 7, + 7, + 0, + 8, + 3, + "LATENT" + ], + [ + 8, + 8, + 0, + 9, + 0, + "LATENT" + ], + [ + 9, + 9, + 0, + 10, + 0, + "IMAGE" + ], + [ + 10, + 9, + 0, + 11, + 0, + "IMAGE" + ], + [ + 11, + 2, + 0, + 4, + 2, + "IMAGE" + ], + [ + 12, + 3, + 0, + 4, + 3, + "MODEL" + ], + [ + 13, + 3, + 1, + 4, + 0, + "IPADAPTER" + ], + [ + 14, + 4, + 0, + 8, + 0, + "MODEL" + ] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "IP-Adapter Style Transfer Image-to-Image Production", + "version": "1.0.0", + "author": "RunPod AI Model Orchestrator", + "description": "Style transfer using IP-Adapter. Apply the visual style from a reference image to generate new images matching that aesthetic.", + "category": "image-to-image", + "tags": [ + "ipadapter", + "style-transfer", + "i2i", + "production", + "sdxl" + ], + "requirements": { + "models": [ + "stable-diffusion-xl-base-1.0", + "ip-adapter-plus" + ], + "custom_nodes": [ + "ComfyUI_IPAdapter_plus" + ], + "vram_min": "16GB", + "vram_recommended": "24GB" + }, + "parameters": { + "style_image": { + "node_id": 2, + "widget_index": 0, + "type": "image", + "required": true, + "description": "Reference image for style extraction" + }, + "prompt": { + "node_id": 5, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A portrait of a person", + "description": "Text description of desired content" + }, + "negative_prompt": { + "node_id": 6, + "widget_index": 0, + "type": "string", + "required": false, + "default": "blurry, low quality", + "description": "Undesired elements to avoid" + }, + "style_weight": { + "node_id": 4, + "widget_index": 0, + "type": "float", + "required": false, + "default": 0.75, + "min": 0.0, + "max": 1.0, + "description": "Strength of style application (0.75 recommended)" + }, + "width": { + "node_id": 7, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Output image width" + }, + "height": { + "node_id": 7, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Output image height" + }, + "seed": { + "node_id": 8, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + }, + "steps": { + "node_id": 8, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 30, + "min": 20, + "max": 50, + "description": "Number of sampling steps" + }, + "cfg": { + "node_id": 8, + "widget_index": 3, + "type": "float", + "required": false, + "default": 6.5, + "min": 1.0, + "max": 15.0, + "description": "Classifier-free guidance scale" + } + }, + "outputs": { + "image": { + "node_id": 11, + "type": "image", + "format": "PNG", + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "30-40 seconds", + "vram_usage": "~16-18GB", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Apply artistic styles to new subjects", + "Match aesthetic of reference images", + "Consistent style across generated images", + "Photography style transfer" + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/lora-fusion-t2i-production-v1.jpg b/example_workflows/lora-fusion-t2i-production-v1.jpg new file mode 100644 index 0000000..9c1985e Binary files /dev/null and b/example_workflows/lora-fusion-t2i-production-v1.jpg differ diff --git a/example_workflows/lora-fusion-t2i-production-v1.json b/example_workflows/lora-fusion-t2i-production-v1.json new file mode 100644 index 0000000..265706f --- /dev/null +++ b/example_workflows/lora-fusion-t2i-production-v1.json @@ -0,0 +1,408 @@ +{ + "last_node_id": 15, + "last_link_id": 24, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 380, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [2], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [3], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "Base Checkpoint Loader" + }, + { + "id": 2, + "type": "LoraLoader", + "pos": [480, 100], + "size": {"0": 380, "1": 130}, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [4], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [5], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": ["add-detail-xl.safetensors", 0.8, 0.8], + "title": "LoRA 1 (Primary Style)" + }, + { + "id": 3, + "type": "LoraLoader", + "pos": [920, 100], + "size": {"0": 380, "1": 130}, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 4 + }, + { + "name": "clip", + "type": "CLIP", + "link": 5 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [6], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [7], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": ["add-detail-xl.safetensors", 0.5, 0.5], + "title": "LoRA 2 (Secondary Style)" + }, + { + "id": 4, + "type": "LoraLoader", + "pos": [1360, 100], + "size": {"0": 380, "1": 130}, + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 6 + }, + { + "name": "clip", + "type": "CLIP", + "link": 7 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [8], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [9, 10], + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": ["add-detail-xl.safetensors", 0.3, 0.3], + "title": "LoRA 3 (Accent/Detail)" + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [50, 280], + "size": {"0": 450, "1": 250}, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 9 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [11], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["A beautiful scenic landscape with mountains, vibrant colors, detailed, high quality, masterpiece, best quality, 8k"], + "title": "API Positive Prompt" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [50, 580], + "size": {"0": 450, "1": 150}, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 10 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [12], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["(worst quality, low quality:1.4), bad anatomy, deformed, blurry, watermark, text"], + "title": "Negative Prompt" + }, + { + "id": 7, + "type": "EmptyLatentImage", + "pos": [560, 580], + "size": {"0": 315, "1": 110}, + "flags": {}, + "order": 6, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [13], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "Latent Image (SDXL Resolution)" + }, + { + "id": 8, + "type": "KSampler", + "pos": [920, 280], + "size": {"0": 350, "1": 290}, + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 8 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 11 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 12 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 13 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [14], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 30, + 7.0, + "dpmpp_2m_sde", + "karras", + 1.0 + ], + "title": "KSampler (Standard Settings)" + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [1320, 280], + "size": {"0": 210, "1": 50}, + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 14 + }, + { + "name": "vae", + "type": "VAE", + "link": 3 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [15], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 10, + "type": "SaveImage", + "pos": [1580, 280], + "size": {"0": 320, "1": 290}, + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 15 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["lora_fusion"], + "title": "API Output Image" + } + ], + "links": [ + [1, 1, 0, 2, 0, "MODEL"], + [2, 1, 1, 2, 1, "CLIP"], + [3, 1, 2, 9, 1, "VAE"], + [4, 2, 0, 3, 0, "MODEL"], + [5, 2, 1, 3, 1, "CLIP"], + [6, 3, 0, 4, 0, "MODEL"], + [7, 3, 1, 4, 1, "CLIP"], + [8, 4, 0, 8, 0, "MODEL"], + [9, 4, 1, 5, 0, "CLIP"], + [10, 4, 1, 6, 0, "CLIP"], + [11, 5, 0, 8, 1, "CONDITIONING"], + [12, 6, 0, 8, 2, "CONDITIONING"], + [13, 7, 0, 8, 3, "LATENT"], + [14, 8, 0, 9, 0, "LATENT"], + [15, 9, 0, 10, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "LoRA Fusion Multi-Stack Text-to-Image", + "version": "1.0", + "description": "Production workflow for combining multiple LoRA models with adjustable weights. Stack up to 3 LoRAs with fine-tuned strength control for style mixing and enhancement. Works with any SDXL checkpoint including NSFW models.", + "category": "text-to-image", + "features": [ + "Triple LoRA stacking with independent weight control", + "Compatible with any SDXL checkpoint (SFW/NSFW)", + "Hierarchical strength: Primary (0.7-1.0), Secondary (0.4-0.7), Accent (0.2-0.5)", + "Supports style LoRAs, detail enhancers, and character LoRAs", + "Easy to disable individual LoRAs by setting weights to 0.0" + ], + "recommended_usage": { + "lora_1_strength": "0.7-1.0 (primary style influence)", + "lora_2_strength": "0.4-0.7 (secondary style blend)", + "lora_3_strength": "0.2-0.5 (subtle accent/details)", + "disable_lora": "Set both model and clip weights to 0.0" + }, + "examples": [ + { + "use_case": "Portrait Enhancement", + "lora_1": "Detail enhancer (0.8)", + "lora_2": "Skin texture LoRA (0.5)", + "lora_3": "Lighting style (0.3)" + }, + { + "use_case": "Artistic Style Fusion", + "lora_1": "Primary art style (1.0)", + "lora_2": "Secondary style blend (0.6)", + "lora_3": "Color grading (0.4)" + }, + { + "use_case": "Character + Style", + "lora_1": "Character LoRA (0.9)", + "lora_2": "Pose/anatomy enhancer (0.5)", + "lora_3": "Background style (0.3)" + } + ], + "tags": ["lora", "multi-stack", "fusion", "style-mixing", "enhancement", "sdxl"] + } + }, + "version": 0.4 +} diff --git a/example_workflows/lustify-realistic-t2i-production-v1.jpg b/example_workflows/lustify-realistic-t2i-production-v1.jpg new file mode 100644 index 0000000..b8d1882 Binary files /dev/null and b/example_workflows/lustify-realistic-t2i-production-v1.jpg differ diff --git a/example_workflows/lustify-realistic-t2i-production-v1.json b/example_workflows/lustify-realistic-t2i-production-v1.json new file mode 100644 index 0000000..3128b24 --- /dev/null +++ b/example_workflows/lustify-realistic-t2i-production-v1.json @@ -0,0 +1,256 @@ +{ + "last_node_id": 11, + "last_link_id": 16, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 380, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [2, 3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["lustifySDXLNSFW_endgame.safetensors"], + "title": "LUSTIFY v7.0 GGWP Checkpoint" + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [480, 100], + "size": {"0": 450, "1": 250}, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["A beautiful woman in elegant dress, photorealistic, professional photography, high quality, detailed skin texture, natural lighting, 8k, masterpiece, best quality"], + "title": "API Positive Prompt" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [480, 400], + "size": {"0": 450, "1": 150}, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["(worst quality, low quality:1.4), illustration, 3d, 2d, painting, cartoons, sketch, open mouth, bad anatomy, deformed, blurry, watermark, text"], + "title": "Negative Prompt (LUSTIFY Optimized)" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [480, 600], + "size": {"0": 315, "1": 110}, + "flags": {}, + "order": 3, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "Latent Image (SDXL Resolution)" + }, + { + "id": 5, + "type": "KSampler", + "pos": [980, 100], + "size": {"0": 350, "1": 290}, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 30, + 6.0, + "dpmpp_2m_sde", + "exponential", + 1.0 + ], + "title": "LUSTIFY Sampler (DPM++ 2M SDE / Exponential)" + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1380, 100], + "size": {"0": 210, "1": 50}, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 7, + "type": "SaveImage", + "pos": [1640, 100], + "size": {"0": 320, "1": 290}, + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["lustify_realistic"], + "title": "API Output Image" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 1, 1, 2, 0, "CLIP"], + [3, 1, 1, 3, 0, "CLIP"], + [4, 1, 2, 6, 1, "VAE"], + [5, 2, 0, 5, 1, "CONDITIONING"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "LATENT"], + [8, 5, 0, 6, 0, "LATENT"], + [9, 6, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "LUSTIFY Realistic NSFW Text-to-Image", + "version": "1.0", + "description": "Production workflow for LUSTIFY v7.0 GGWP checkpoint optimized for photorealistic NSFW generation with recommended settings (DPM++ 2M SDE, Exponential scheduler, 30 steps, CFG 6.0)", + "category": "nsfw", + "model": "lustifySDXLNSFW_endgame.safetensors", + "recommended_settings": { + "sampler": "dpmpp_2m_sde or dpmpp_3m_sde", + "scheduler": "exponential or karras", + "steps": 30, + "cfg_scale": "4.0-7.0" + }, + "tags": ["nsfw", "realistic", "photography", "women", "sdxl"] + } + }, + "version": 0.4 +} diff --git a/example_workflows/musicgen-large-t2m-production-v1.jpg b/example_workflows/musicgen-large-t2m-production-v1.jpg new file mode 100644 index 0000000..d62b7e2 Binary files /dev/null and b/example_workflows/musicgen-large-t2m-production-v1.jpg differ diff --git a/example_workflows/musicgen-large-t2m-production-v1.json b/example_workflows/musicgen-large-t2m-production-v1.json new file mode 100644 index 0000000..e6a87da --- /dev/null +++ b/example_workflows/musicgen-large-t2m-production-v1.json @@ -0,0 +1,151 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "Musicgen_", + "pos": [50, 100], + "size": [400, 300], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "audio", + "type": "AUDIO", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "Musicgen_" + }, + "widgets_values": [ + "Upbeat electronic dance music with energetic beats and synthesizer melodies", + 30.0, + 4.0, + 42, + "auto" + ], + "title": "MusicGen Large Generator" + }, + { + "id": 2, + "type": "AudioPlay", + "pos": [500, 100], + "size": [315, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "AudioPlay" + }, + "title": "API Audio Output" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "MusicGen Large Text-to-Music Production", + "version": "1.2.0", + "description": "High-quality music generation using MusicGen Large. Generates up to 30 seconds of music from text prompts.", + "category": "text-to-music", + "tags": ["musicgen", "large", "t2m", "audio", "production"], + "requirements": { + "models": ["facebook/musicgen-large"], + "custom_nodes": ["comfyui-sound-lab"], + "vram_min": "12GB", + "vram_recommended": "16GB" + }, + "parameters": { + "prompt": { + "node_id": 1, + "widget_index": 0, + "type": "string", + "required": true, + "default": "Upbeat electronic dance music", + "description": "Text description of desired music style, genre, mood, instruments" + }, + "duration": { + "node_id": 1, + "widget_index": 1, + "type": "float", + "required": false, + "default": 30.0, + "min": 1.0, + "max": 60.0, + "description": "Duration in seconds (up to 30s recommended for best quality)" + }, + "guidance_scale": { + "node_id": 1, + "widget_index": 2, + "type": "float", + "required": false, + "default": 4.0, + "min": 0.0, + "max": 20.0, + "description": "How closely to follow the prompt (4.0 recommended)" + }, + "seed": { + "node_id": 1, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 2147483647, + "description": "Random seed for reproducibility" + }, + "device": { + "node_id": 1, + "widget_index": 4, + "type": "string", + "required": false, + "default": "auto", + "options": ["auto", "cpu"], + "description": "Computation device (auto recommended)" + } + }, + "outputs": { + "audio": { + "node_id": 2, + "type": "audio", + "format": "FLAC", + "sample_rate": "32000 Hz", + "channels": "stereo" + } + }, + "performance": { + "avg_generation_time": "60-90 seconds for 30s audio", + "vram_usage": "~14-16GB", + "gpu_utilization": "90-100%" + }, + "use_cases": [ + "Background music generation", + "Game soundtrack creation", + "Video background music", + "Music prototyping and ideation" + ], + "notes": [ + "MusicGen Large produces highest quality output", + "Best results with clear, specific prompts", + "Can specify genre, mood, instruments, tempo", + "Output is 32kHz stereo FLAC format", + "Longer durations (>30s) may reduce coherence" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/musicgen-medium-t2m-production-v1.jpg b/example_workflows/musicgen-medium-t2m-production-v1.jpg new file mode 100644 index 0000000..179759f Binary files /dev/null and b/example_workflows/musicgen-medium-t2m-production-v1.jpg differ diff --git a/example_workflows/musicgen-medium-t2m-production-v1.json b/example_workflows/musicgen-medium-t2m-production-v1.json new file mode 100644 index 0000000..9802746 --- /dev/null +++ b/example_workflows/musicgen-medium-t2m-production-v1.json @@ -0,0 +1,151 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "Musicgen_", + "pos": [50, 100], + "size": [400, 300], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "audio", + "type": "AUDIO", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "Musicgen_" + }, + "widgets_values": [ + "Upbeat electronic dance music with energetic beats and synthesizer melodies", + 30.0, + 3.0, + 42, + "auto" + ], + "title": "MusicGen Medium Generator" + }, + { + "id": 2, + "type": "AudioPlay", + "pos": [500, 100], + "size": [315, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "AudioPlay" + }, + "title": "API Audio Output" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "MusicGen Medium Text-to-Music Production", + "version": "1.2.0", + "description": "Balanced music generation using MusicGen Medium. Good quality with moderate VRAM usage.", + "category": "text-to-music", + "tags": ["musicgen", "medium", "t2m", "audio", "production"], + "requirements": { + "models": ["facebook/musicgen-medium"], + "custom_nodes": ["comfyui-sound-lab"], + "vram_min": "8GB", + "vram_recommended": "10GB" + }, + "parameters": { + "prompt": { + "node_id": 1, + "widget_index": 0, + "type": "string", + "required": true, + "default": "Upbeat electronic dance music", + "description": "Text description of desired music style, genre, mood, instruments" + }, + "duration": { + "node_id": 1, + "widget_index": 1, + "type": "float", + "required": false, + "default": 30.0, + "min": 1.0, + "max": 60.0, + "description": "Duration in seconds (up to 30s recommended for best quality)" + }, + "guidance_scale": { + "node_id": 1, + "widget_index": 2, + "type": "float", + "required": false, + "default": 3.0, + "min": 0.0, + "max": 20.0, + "description": "How closely to follow the prompt (3.0 recommended)" + }, + "seed": { + "node_id": 1, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 2147483647, + "description": "Random seed for reproducibility" + }, + "device": { + "node_id": 1, + "widget_index": 4, + "type": "string", + "required": false, + "default": "auto", + "options": ["auto", "cpu"], + "description": "Computation device (auto recommended)" + } + }, + "outputs": { + "audio": { + "node_id": 2, + "type": "audio", + "format": "FLAC", + "sample_rate": "32000 Hz", + "channels": "stereo" + } + }, + "performance": { + "avg_generation_time": "30-50 seconds for 30s audio", + "vram_usage": "~8-10GB", + "gpu_utilization": "90-100%" + }, + "use_cases": [ + "Background music generation", + "Game soundtrack creation", + "Video background music", + "Music prototyping with moderate quality" + ], + "notes": [ + "MusicGen Medium balances quality and resource usage", + "Faster than Large, better quality than Small", + "Best results with clear, specific prompts", + "Can specify genre, mood, instruments, tempo", + "Output is 32kHz stereo FLAC format" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/musicgen-melody-t2m-production-v1.jpg b/example_workflows/musicgen-melody-t2m-production-v1.jpg new file mode 100644 index 0000000..b659cfb Binary files /dev/null and b/example_workflows/musicgen-melody-t2m-production-v1.jpg differ diff --git a/example_workflows/musicgen-melody-t2m-production-v1.json b/example_workflows/musicgen-melody-t2m-production-v1.json new file mode 100644 index 0000000..f35a5e1 --- /dev/null +++ b/example_workflows/musicgen-melody-t2m-production-v1.json @@ -0,0 +1,150 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "Musicgen_", + "pos": [50, 100], + "size": [400, 300], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "audio", + "type": "AUDIO", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "Musicgen_" + }, + "widgets_values": [ + "Electronic music with melodic elements and catchy hooks", + 30.0, + 3.5, + 42, + "auto" + ], + "title": "MusicGen Melody Generator" + }, + { + "id": 2, + "type": "AudioPlay", + "pos": [500, 100], + "size": [315, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "AudioPlay" + }, + "title": "API Audio Output" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "MusicGen Melody Text-to-Music Production", + "version": "1.2.0", + "description": "Music generation using MusicGen with melodic focus. Note: Melody conditioning via audio input not yet supported.", + "category": "text-to-music", + "tags": ["musicgen", "melody", "t2m", "audio", "production"], + "requirements": { + "models": ["facebook/musicgen-melody"], + "custom_nodes": ["comfyui-sound-lab"], + "vram_min": "10GB", + "vram_recommended": "12GB" + }, + "parameters": { + "prompt": { + "node_id": 1, + "widget_index": 0, + "type": "string", + "required": true, + "default": "Electronic music with melodic elements", + "description": "Text description of desired music style, genre, mood, instruments" + }, + "duration": { + "node_id": 1, + "widget_index": 1, + "type": "float", + "required": false, + "default": 30.0, + "min": 1.0, + "max": 60.0, + "description": "Duration in seconds (up to 30s recommended for best quality)" + }, + "guidance_scale": { + "node_id": 1, + "widget_index": 2, + "type": "float", + "required": false, + "default": 3.5, + "min": 0.0, + "max": 20.0, + "description": "How closely to follow the prompt (3.5 recommended)" + }, + "seed": { + "node_id": 1, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 2147483647, + "description": "Random seed for reproducibility" + }, + "device": { + "node_id": 1, + "widget_index": 4, + "type": "string", + "required": false, + "default": "auto", + "options": ["auto", "cpu"], + "description": "Computation device (auto recommended)" + } + }, + "outputs": { + "audio": { + "node_id": 2, + "type": "audio", + "format": "FLAC", + "sample_rate": "32000 Hz", + "channels": "stereo" + } + }, + "performance": { + "avg_generation_time": "40-60 seconds for 30s audio", + "vram_usage": "~10-12GB", + "gpu_utilization": "90-100%" + }, + "use_cases": [ + "Melodic music generation", + "Creating catchy hooks and melodies", + "Music with strong melodic structure" + ], + "notes": [ + "IMPORTANT: Melody conditioning via audio input not yet supported in current Sound Lab implementation", + "This workflow uses text prompts only - describe melodic characteristics in the prompt", + "For best melodic results, use descriptive terms like 'catchy melody', 'melodic hooks', 'harmonic progression'", + "MusicGen Melody model trained for melodic content", + "Output is 32kHz stereo FLAC format" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/musicgen-small-t2m-production-v1.jpg b/example_workflows/musicgen-small-t2m-production-v1.jpg new file mode 100644 index 0000000..475d68e Binary files /dev/null and b/example_workflows/musicgen-small-t2m-production-v1.jpg differ diff --git a/example_workflows/musicgen-small-t2m-production-v1.json b/example_workflows/musicgen-small-t2m-production-v1.json new file mode 100644 index 0000000..faf39d2 --- /dev/null +++ b/example_workflows/musicgen-small-t2m-production-v1.json @@ -0,0 +1,151 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "Musicgen_", + "pos": [50, 100], + "size": [400, 300], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "audio", + "type": "AUDIO", + "links": [1], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "Musicgen_" + }, + "widgets_values": [ + "Upbeat electronic dance music with energetic beats and synthesizer melodies", + 30.0, + 3.0, + 42, + "auto" + ], + "title": "MusicGen Small Generator" + }, + { + "id": 2, + "type": "AudioPlay", + "pos": [500, 100], + "size": [315, 100], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "audio", + "type": "AUDIO", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "AudioPlay" + }, + "title": "API Audio Output" + } + ], + "links": [ + [1, 1, 0, 2, 0, "AUDIO"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "MusicGen Small Text-to-Music Production", + "version": "1.2.0", + "description": "Fast music generation using MusicGen Small. Lower quality but fastest generation and minimal VRAM.", + "category": "text-to-music", + "tags": ["musicgen", "small", "t2m", "audio", "production", "fast"], + "requirements": { + "models": ["facebook/musicgen-small"], + "custom_nodes": ["comfyui-sound-lab"], + "vram_min": "4GB", + "vram_recommended": "6GB" + }, + "parameters": { + "prompt": { + "node_id": 1, + "widget_index": 0, + "type": "string", + "required": true, + "default": "Upbeat electronic dance music", + "description": "Text description of desired music style, genre, mood, instruments" + }, + "duration": { + "node_id": 1, + "widget_index": 1, + "type": "float", + "required": false, + "default": 30.0, + "min": 1.0, + "max": 60.0, + "description": "Duration in seconds (up to 30s recommended for best quality)" + }, + "guidance_scale": { + "node_id": 1, + "widget_index": 2, + "type": "float", + "required": false, + "default": 3.0, + "min": 0.0, + "max": 20.0, + "description": "How closely to follow the prompt (3.0 recommended)" + }, + "seed": { + "node_id": 1, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 2147483647, + "description": "Random seed for reproducibility" + }, + "device": { + "node_id": 1, + "widget_index": 4, + "type": "string", + "required": false, + "default": "auto", + "options": ["auto", "cpu"], + "description": "Computation device (auto recommended)" + } + }, + "outputs": { + "audio": { + "node_id": 2, + "type": "audio", + "format": "FLAC", + "sample_rate": "32000 Hz", + "channels": "stereo" + } + }, + "performance": { + "avg_generation_time": "20-35 seconds for 30s audio", + "vram_usage": "~4-6GB", + "gpu_utilization": "85-95%" + }, + "use_cases": [ + "Rapid prototyping", + "Low-resource environments", + "Quick background music drafts", + "Testing different prompts quickly" + ], + "notes": [ + "MusicGen Small is fastest but lowest quality", + "Good for rapid iteration and testing", + "Best results with clear, specific prompts", + "Can specify genre, mood, instruments, tempo", + "Output is 32kHz stereo FLAC format" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/nsfw-ultimate-upscale-production-v1.jpg b/example_workflows/nsfw-ultimate-upscale-production-v1.jpg new file mode 100644 index 0000000..66be315 Binary files /dev/null and b/example_workflows/nsfw-ultimate-upscale-production-v1.jpg differ diff --git a/example_workflows/nsfw-ultimate-upscale-production-v1.json b/example_workflows/nsfw-ultimate-upscale-production-v1.json new file mode 100644 index 0000000..38d5e55 --- /dev/null +++ b/example_workflows/nsfw-ultimate-upscale-production-v1.json @@ -0,0 +1,300 @@ +{ + "last_node_id": 8, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": ["input_image.png", "image"], + "title": "API Input Image" + }, + { + "id": 2, + "type": "CheckpointLoaderSimple", + "pos": [50, 250], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [3, 4], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [5], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["lustifySDXLNSFW_endgame.safetensors"], + "title": "LUSTIFY v7.0 GGWP Checkpoint" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": [400, 200], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["photorealistic, professional photography, high quality, detailed skin texture, natural lighting, 8k, masterpiece, best quality, sharp details"], + "title": "API Positive Prompt (Enhancement)" + }, + { + "id": 4, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": [400, 200], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 4 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["(worst quality, low quality:1.4), blurry, pixelated, jpeg artifacts, bad anatomy, deformed, watermark, text"], + "title": "API Negative Prompt (Refinement)" + }, + { + "id": 8, + "type": "UpscaleModelLoader", + "pos": [50, 400], + "size": [350, 100], + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [10], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UpscaleModelLoader" + }, + "widgets_values": ["RealESRGAN_x2.pth"], + "title": "Upscale Model Loader (2x)" + }, + { + "id": 5, + "type": "UltimateSDUpscale", + "pos": [900, 100], + "size": [315, 100], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 1 + }, + { + "name": "model", + "type": "MODEL", + "link": 2 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 5 + }, + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 10 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [8, 9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UltimateSDUpscale" + }, + "widgets_values": [2, 42, "randomize", 20, 7.0, "dpmpp_2m_sde", "exponential", 0.25, "Linear", 512, 512, 8, 32, "None", 1.0, 64, 8, 16, true, false], + "title": "Ultimate SD Upscale NSFW (2x)" + }, + { + "id": 6, + "type": "PreviewImage", + "pos": [1270, 100], + "size": [315, 100], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 8 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Output" + }, + { + "id": 7, + "type": "SaveImage", + "pos": [1270, 400], + "size": [315, 100], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["nsfw_upscale_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 5, 0, "IMAGE"], + [2, 2, 0, 5, 1, "MODEL"], + [3, 2, 1, 3, 0, "CLIP"], + [4, 2, 1, 4, 0, "CLIP"], + [5, 2, 2, 5, 4, "VAE"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "CONDITIONING"], + [8, 5, 0, 6, 0, "IMAGE"], + [9, 5, 0, 7, 0, "IMAGE"], + [10, 8, 0, 5, 5, "UPSCALE_MODEL"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "NSFW Ultimate SD Upscale Production", + "version": "1.0", + "description": "Professional 2x upscaling for NSFW images using Ultimate SD Upscale with LUSTIFY checkpoint. Combines RealESRGAN upscaling with diffusion refinement for superior detail, skin texture, and photorealistic quality in adult content.", + "category": "nsfw", + "model": "lustifySDXLNSFW_endgame.safetensors", + "recommended_settings": { + "upscale_factor": "2x (use RealESRGAN_x2.pth)", + "denoise": "0.2-0.3 (lower preserves original, higher adds detail)", + "sampler": "dpmpp_2m_sde", + "scheduler": "exponential", + "steps": 20, + "cfg_scale": "6.0-8.0", + "tile_size": "512x512 (optimal for SDXL)" + }, + "features": [ + "2x upscaling with RealESRGAN + diffusion refinement", + "LUSTIFY checkpoint for photorealistic NSFW enhancement", + "Tiled processing for handling large images", + "Optimized for detailed skin texture and natural lighting", + "Low denoise (0.25) preserves original composition", + "Can swap checkpoint for different styles (Pony, RealVisXL)" + ], + "tags": ["nsfw", "upscaling", "ultimate-sd-upscale", "lustify", "enhancement", "production"], + "requirements": { + "models": ["lustifySDXLNSFW_endgame.safetensors", "RealESRGAN_x2.pth"], + "custom_nodes": ["ComfyUI_UltimateSDUpscale"], + "vram_min": "18GB" + }, + "usage_notes": { + "checkpoint_swap": "Change node 2 to use different NSFW models (pony, realvisxl, etc.)", + "denoise_tuning": "0.2 = subtle enhancement, 0.3 = moderate refinement, 0.4+ = creative upscaling", + "prompt_matching": "Match enhancement prompt to original generation prompt for best results", + "tile_overlap": "8px overlap prevents visible seams in large upscales" + }, + "performance": { + "avg_generation_time": "90-150 seconds (1024x1024 -> 2048x2048)", + "vram_usage": "~20-22GB (LUSTIFY + tiled processing)" + } + } + }, + "version": 0.4 +} diff --git a/example_workflows/pony-anime-t2i-production-v1.jpg b/example_workflows/pony-anime-t2i-production-v1.jpg new file mode 100644 index 0000000..282f04f Binary files /dev/null and b/example_workflows/pony-anime-t2i-production-v1.jpg differ diff --git a/example_workflows/pony-anime-t2i-production-v1.json b/example_workflows/pony-anime-t2i-production-v1.json new file mode 100644 index 0000000..be27ff0 --- /dev/null +++ b/example_workflows/pony-anime-t2i-production-v1.json @@ -0,0 +1,260 @@ +{ + "last_node_id": 11, + "last_link_id": 16, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 380, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [2, 3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["ponyDiffusionV6XL_v6StartWithThisOne.safetensors"], + "title": "Pony Diffusion V6 XL Checkpoint (Anime/Furry)" + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [480, 100], + "size": {"0": 450, "1": 250}, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["1girl, solo, long_hair, breasts, smile, looking_at_viewer, anime style, high quality, detailed, masterpiece, best quality"], + "title": "API Positive Prompt (Danbooru Tags)" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [480, 400], + "size": {"0": 450, "1": 150}, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["(worst quality, low quality:1.4), bad anatomy, deformed, blurry, watermark, text, signature, artist name"], + "title": "Negative Prompt (Pony Optimized)" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [480, 600], + "size": {"0": 315, "1": 110}, + "flags": {}, + "order": 3, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "Latent Image (SDXL Resolution)" + }, + { + "id": 5, + "type": "KSampler", + "pos": [980, 100], + "size": {"0": 350, "1": 290}, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 35, + 7.5, + "euler_ancestral", + "normal", + 1.0 + ], + "title": "Pony Sampler (Euler A / Normal)" + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1380, 100], + "size": {"0": 210, "1": 50}, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 7, + "type": "SaveImage", + "pos": [1640, 100], + "size": {"0": 320, "1": 290}, + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["pony_anime"], + "title": "API Output Image" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 1, 1, 2, 0, "CLIP"], + [3, 1, 1, 3, 0, "CLIP"], + [4, 1, 2, 6, 1, "VAE"], + [5, 2, 0, 5, 1, "CONDITIONING"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "LATENT"], + [8, 5, 0, 6, 0, "LATENT"], + [9, 6, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Pony Diffusion V6 XL Anime/Furry NSFW Text-to-Image", + "version": "1.0", + "description": "Production workflow for Pony Diffusion V6 XL optimized for anime, cartoon, and furry NSFW generation with danbooru tag support and balanced content (safe/questionable/explicit)", + "category": "nsfw", + "model": "ponyDiffusionV6XL_v6StartWithThisOne.safetensors", + "recommended_settings": { + "sampler": "euler_ancestral or dpmpp_2m", + "scheduler": "normal or karras", + "steps": "30-40", + "cfg_scale": "7.0-8.5" + }, + "training_info": { + "images": "2.6M aesthetically ranked", + "ratio": "1:1:1 safe/questionable/explicit" + }, + "tags": ["nsfw", "anime", "furry", "cartoon", "versatile", "danbooru", "sdxl"] + } + }, + "version": 0.4 +} diff --git a/example_workflows/realvisxl-lightning-t2i-production-v1.jpg b/example_workflows/realvisxl-lightning-t2i-production-v1.jpg new file mode 100644 index 0000000..cf3ae6c Binary files /dev/null and b/example_workflows/realvisxl-lightning-t2i-production-v1.jpg differ diff --git a/example_workflows/realvisxl-lightning-t2i-production-v1.json b/example_workflows/realvisxl-lightning-t2i-production-v1.json new file mode 100644 index 0000000..8d5b203 --- /dev/null +++ b/example_workflows/realvisxl-lightning-t2i-production-v1.json @@ -0,0 +1,263 @@ +{ + "last_node_id": 11, + "last_link_id": 16, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 380, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [2, 3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["realvisxlV50_v50LightningBakedvae.safetensors"], + "title": "RealVisXL V5.0 Lightning Checkpoint" + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [480, 100], + "size": {"0": 450, "1": 250}, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["Beautiful woman portrait, professional photography, natural lighting, high quality, detailed, 8k"], + "title": "API Positive Prompt" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [480, 400], + "size": {"0": 450, "1": 150}, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["(worst quality, low quality:1.4), bad anatomy, deformed, blurry, watermark, text, ugly, cartoon, anime"], + "title": "Negative Prompt (RealVisXL Optimized)" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [480, 600], + "size": {"0": 315, "1": 110}, + "flags": {}, + "order": 3, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "Latent Image (SDXL Resolution)" + }, + { + "id": 5, + "type": "KSampler", + "pos": [980, 100], + "size": {"0": 350, "1": 290}, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 6, + 2.0, + "dpmpp_sde", + "karras", + 1.0 + ], + "title": "Lightning Sampler (DPM++ SDE Karras / 6 Steps)" + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1380, 100], + "size": {"0": 210, "1": 50}, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 7, + "type": "SaveImage", + "pos": [1640, 100], + "size": {"0": 320, "1": 290}, + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["realvisxl_lightning"], + "title": "API Output Image" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 1, 1, 2, 0, "CLIP"], + [3, 1, 1, 3, 0, "CLIP"], + [4, 1, 2, 6, 1, "VAE"], + [5, 2, 0, 5, 1, "CONDITIONING"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "LATENT"], + [8, 5, 0, 6, 0, "LATENT"], + [9, 6, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "RealVisXL V5.0 Lightning Fast NSFW Text-to-Image", + "version": "1.0", + "description": "Production workflow for RealVisXL V5.0 Lightning checkpoint optimized for ultra-fast photorealistic NSFW generation with 4-6 step inference (vs 30+ for standard models)", + "category": "nsfw", + "model": "realvisxlV50_v50LightningBakedvae.safetensors", + "recommended_settings": { + "sampler": "dpmpp_sde with karras scheduler", + "scheduler": "karras", + "steps": "4-6 (Lightning optimized)", + "cfg_scale": "1.0-2.0 (lower for Lightning)" + }, + "features": [ + "Ultra-fast 4-6 step generation", + "High-quality photorealistic output", + "Baked VAE for optimal quality", + "Professional portraits and scenes", + "Both SFW and NSFW capable" + ], + "tags": ["nsfw", "realistic", "photorealistic", "lightning", "fast", "sdxl"] + } + }, + "version": 0.4 +} diff --git a/example_workflows/sd35-large-t2i-production-v1.jpg b/example_workflows/sd35-large-t2i-production-v1.jpg new file mode 100644 index 0000000..9849598 Binary files /dev/null and b/example_workflows/sd35-large-t2i-production-v1.jpg differ diff --git a/example_workflows/sd35-large-t2i-production-v1.json b/example_workflows/sd35-large-t2i-production-v1.json new file mode 100644 index 0000000..17cbe61 --- /dev/null +++ b/example_workflows/sd35-large-t2i-production-v1.json @@ -0,0 +1,376 @@ +{ + "last_node_id": 9, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": null + }, + { + "name": "VAE", + "type": "VAE", + "links": [4], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["sd3.5_large.safetensors"], + "title": "SD3.5 Large Checkpoint Loader" + }, + { + "id": 9, + "type": "TripleCLIPLoader", + "pos": [50, 250], + "size": [350, 150], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [9, 10], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "TripleCLIPLoader" + }, + "widgets_values": ["clip_l.safetensors", "clip_g.safetensors", "t5xxl_fp16.safetensors"], + "title": "SD3.5 CLIP Loaders (L+G+T5)" + }, + { + "id": 2, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": [400, 200], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 9 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["A beautiful mountain landscape at sunset, highly detailed, professional photography, cinematic lighting, 8k ultra HD, photorealistic"], + "title": "API Positive Prompt" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": [400, 200], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 10 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["blurry, low quality, distorted, watermark, text, signature, ugly, cartoon, painting"], + "title": "API Negative Prompt" + }, + { + "id": 4, + "type": "EmptyLatentImage", + "pos": [450, 600], + "size": [315, 106], + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "API Latent Image Config" + }, + { + "id": 5, + "type": "KSampler", + "pos": [900, 100], + "size": [315, 474], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [8], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [42, "fixed", 28, 4.5, "dpmpp_2m", "karras", 1], + "title": "SD3.5 Sampler (28 steps)" + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1270, 100], + "size": [210, 46], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [2, 3], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode" + }, + { + "id": 7, + "type": "PreviewImage", + "pos": [1530, 100], + "size": [400, 400], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 2 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Output" + }, + { + "id": 8, + "type": "SaveImage", + "pos": [1530, 550], + "size": [400, 100], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 3 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["sd35_large_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 5, 0, "MODEL"], + [2, 6, 0, 7, 0, "IMAGE"], + [3, 6, 0, 8, 0, "IMAGE"], + [4, 1, 2, 6, 1, "VAE"], + [5, 2, 0, 5, 1, "CONDITIONING"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "LATENT"], + [8, 5, 0, 6, 0, "LATENT"], + [9, 9, 0, 2, 0, "CLIP"], + [10, 9, 0, 3, 0, "CLIP"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Stable Diffusion 3.5 Large Text-to-Image Production", + "version": "1.2.0", + "description": "Latest generation text-to-image using Stable Diffusion 3.5 Large (28 steps). Provides excellent photorealism and prompt adherence.", + "category": "text-to-image", + "tags": ["sd3.5", "stable-diffusion", "large", "production", "t2i", "photorealistic"], + "requirements": { + "models": ["SD3.5-large", "CLIP-L", "CLIP-G", "T5-XXL FP16"], + "custom_nodes": [], + "vram_min": "18GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": 2, + "widget_index": 0, + "type": "string", + "required": true, + "default": "A beautiful mountain landscape at sunset", + "description": "Text description of desired image" + }, + "negative_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "required": false, + "default": "blurry, low quality", + "description": "Undesired elements to avoid" + }, + "width": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image width in pixels" + }, + "height": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image height in pixels" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 28, + "min": 20, + "max": 50, + "description": "Number of sampling steps (28 recommended for SD3.5)" + }, + "cfg": { + "node_id": 5, + "widget_index": 3, + "type": "float", + "required": false, + "default": 4.5, + "min": 1.0, + "max": 15.0, + "description": "Classifier-free guidance scale (4.5 recommended)" + } + }, + "outputs": { + "image": { + "node_id": 8, + "type": "image", + "format": "PNG", + "resolution": "1024x1024 (configurable)" + } + }, + "performance": { + "avg_generation_time": "35-45 seconds", + "vram_usage": "~18-20GB", + "gpu_utilization": "95-100%" + }, + "notes": [ + "SD3.5 uses CheckpointLoaderSimple for MODEL+VAE", + "TripleCLIPLoader loads CLIP-L, CLIP-G, and T5-XXL separately", + "Checkpoint file doesn't include CLIP encoders", + "All three CLIP encoders required for best quality" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/sdxl-refiner-t2i-production-v1.jpg b/example_workflows/sdxl-refiner-t2i-production-v1.jpg new file mode 100644 index 0000000..27a8145 Binary files /dev/null and b/example_workflows/sdxl-refiner-t2i-production-v1.jpg differ diff --git a/example_workflows/sdxl-refiner-t2i-production-v1.json b/example_workflows/sdxl-refiner-t2i-production-v1.json new file mode 100644 index 0000000..16085c2 --- /dev/null +++ b/example_workflows/sdxl-refiner-t2i-production-v1.json @@ -0,0 +1,581 @@ +{ + "last_node_id": 15, + "last_link_id": 22, + "nodes": [ + { + "id": 1, + "type": "CheckpointLoaderSimple", + "pos": [50, 100], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [1], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [2, 3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "SDXL Base Checkpoint Loader" + }, + { + "id": 2, + "type": "CheckpointLoaderSimple", + "pos": [50, 300], + "size": {"0": 350, "1": 100}, + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [11], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [12, 13], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [14], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["sd_xl_refiner_1.0.safetensors"], + "title": "SDXL Refiner Checkpoint Loader" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 2 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["A beautiful mountain landscape at sunset, highly detailed, professional photography, cinematic lighting, 8k ultra HD, masterpiece"], + "title": "API Positive Prompt (Base)" + }, + { + "id": 4, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["blurry, low quality, distorted, watermark, text, signature, bad anatomy, deformed"], + "title": "API Negative Prompt (Base)" + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [450, 600], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 12 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [15], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["A beautiful mountain landscape at sunset, highly detailed, professional photography, cinematic lighting, 8k ultra HD, masterpiece"], + "title": "API Positive Prompt (Refiner)" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [450, 850], + "size": {"0": 400, "1": 200}, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 13 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [16], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["blurry, low quality, distorted, watermark, text, signature, bad anatomy, deformed"], + "title": "API Negative Prompt (Refiner)" + }, + { + "id": 7, + "type": "EmptyLatentImage", + "pos": [900, 600], + "size": {"0": 315, "1": 106}, + "flags": {}, + "order": 6, + "mode": 0, + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [1024, 1024, 1], + "title": "API Latent Image Config" + }, + { + "id": 8, + "type": "KSampler", + "pos": [900, 100], + "size": {"0": 315, "1": 474}, + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 5 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 7 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [8, 17], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 42, + "fixed", + 30, + 7.5, + "dpmpp_2m", + "karras", + 1 + ], + "title": "SDXL Base Sampler (30 steps)" + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [1270, 100], + "size": {"0": 210, "1": 46}, + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 8 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode (Base)" + }, + { + "id": 10, + "type": "PreviewImage", + "pos": [1530, 100], + "size": {"0": 400, "1": 400}, + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Base Output" + }, + { + "id": 11, + "type": "KSampler", + "pos": [1270, 600], + "size": {"0": 315, "1": 474}, + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 11 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 15 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 16 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 17 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [18], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 42, + "fixed", + 20, + 7.5, + "dpmpp_2m", + "karras", + 1 + ], + "title": "SDXL Refiner Sampler (20 steps)" + }, + { + "id": 12, + "type": "VAEDecode", + "pos": [1640, 600], + "size": {"0": 210, "1": 46}, + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 18 + }, + { + "name": "vae", + "type": "VAE", + "link": 14 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [19, 20], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "title": "VAE Decode (Refiner)" + }, + { + "id": 13, + "type": "PreviewImage", + "pos": [1900, 600], + "size": {"0": 400, "1": 400}, + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 19 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Refined Output" + }, + { + "id": 14, + "type": "SaveImage", + "pos": [1900, 1050], + "size": {"0": 400, "1": 100}, + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 20 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["sdxl_refined_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 8, 0, "MODEL"], + [2, 1, 1, 3, 0, "CLIP"], + [3, 1, 1, 4, 0, "CLIP"], + [4, 1, 2, 9, 1, "VAE"], + [5, 3, 0, 8, 1, "CONDITIONING"], + [6, 4, 0, 8, 2, "CONDITIONING"], + [7, 7, 0, 8, 3, "LATENT"], + [8, 8, 0, 9, 0, "LATENT"], + [9, 9, 0, 10, 0, "IMAGE"], + [11, 2, 0, 11, 0, "MODEL"], + [12, 2, 1, 5, 0, "CLIP"], + [13, 2, 1, 6, 0, "CLIP"], + [14, 2, 2, 12, 1, "VAE"], + [15, 5, 0, 11, 1, "CONDITIONING"], + [16, 6, 0, 11, 2, "CONDITIONING"], + [17, 8, 0, 11, 3, "LATENT"], + [18, 11, 0, 12, 0, "LATENT"], + [19, 12, 0, 13, 0, "IMAGE"], + [20, 12, 0, 14, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "SDXL with Refiner Text-to-Image Production", + "version": "1.0.0", + "author": "RunPod AI Model Orchestrator", + "description": "Two-stage text-to-image generation using SDXL Base (30 steps) + Refiner (20 steps). Produces highly detailed, refined outputs with excellent coherence.", + "category": "text-to-image", + "tags": ["sdxl", "refiner", "two-stage", "high-quality", "production", "t2i"], + "requirements": { + "models": ["stable-diffusion-xl-base-1.0", "stable-diffusion-xl-refiner-1.0"], + "custom_nodes": [], + "vram_min": "20GB", + "vram_recommended": "24GB" + }, + "parameters": { + "prompt": { + "node_id": [3, 5], + "widget_index": 0, + "type": "string", + "required": true, + "default": "A beautiful mountain landscape at sunset", + "description": "Text description of desired image (used for both base and refiner)" + }, + "negative_prompt": { + "node_id": [4, 6], + "widget_index": 0, + "type": "string", + "required": false, + "default": "blurry, low quality", + "description": "Undesired elements to avoid (used for both base and refiner)" + }, + "width": { + "node_id": 7, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image width in pixels" + }, + "height": { + "node_id": 7, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 1024, + "min": 512, + "max": 2048, + "description": "Image height in pixels" + }, + "seed": { + "node_id": [8, 11], + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "min": 0, + "max": 4294967295, + "description": "Random seed for reproducibility (same for base and refiner)" + }, + "base_steps": { + "node_id": 8, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 30, + "min": 20, + "max": 50, + "description": "Number of sampling steps for base model" + }, + "refiner_steps": { + "node_id": 11, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 20, + "min": 10, + "max": 30, + "description": "Number of sampling steps for refiner model" + }, + "cfg": { + "node_id": [8, 11], + "widget_index": 3, + "type": "float", + "required": false, + "default": 7.5, + "min": 1.0, + "max": 15.0, + "description": "Classifier-free guidance scale (7.5 recommended for SDXL)" + } + }, + "outputs": { + "base_image": { + "node_id": 10, + "type": "preview", + "description": "Base model output (before refinement)" + }, + "refined_image": { + "node_id": 14, + "type": "image", + "format": "PNG", + "resolution": "1024x1024 (configurable)", + "description": "Final refined output" + } + }, + "performance": { + "avg_generation_time": "40-60 seconds (30+20 steps)", + "vram_usage": "~18-20GB", + "gpu_utilization": "95-100%", + "notes": "Base and refiner run sequentially to manage VRAM" + } + } + }, + "version": 0.4 +} diff --git a/example_workflows/simple-upscale-production-v1.jpg b/example_workflows/simple-upscale-production-v1.jpg new file mode 100644 index 0000000..8f84906 Binary files /dev/null and b/example_workflows/simple-upscale-production-v1.jpg differ diff --git a/example_workflows/simple-upscale-production-v1.json b/example_workflows/simple-upscale-production-v1.json new file mode 100644 index 0000000..6f3cb4a --- /dev/null +++ b/example_workflows/simple-upscale-production-v1.json @@ -0,0 +1,207 @@ +{ + "last_node_id": 6, + "last_link_id": 5, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": ["input_image.png", "image"], + "title": "API Input Image" + }, + { + "id": 2, + "type": "UpscaleModelLoader", + "pos": [50, 400], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [2], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UpscaleModelLoader" + }, + "widgets_values": ["RealESRGAN_x4.pth"], + "title": "Upscale Model Loader" + }, + { + "id": 3, + "type": "ImageUpscaleWithModel", + "pos": [450, 100], + "size": [315, 100], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 2 + }, + { + "name": "image", + "type": "IMAGE", + "link": 1 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [3], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ImageUpscaleWithModel" + }, + "title": "Upscale with Model (4x)" + }, + { + "id": 4, + "type": "ImageScaleBy", + "pos": [800, 100], + "size": [315, 100], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 3 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [4, 5], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ImageScaleBy" + }, + "widgets_values": ["lanczos", 0.5], + "title": "Optional Downscale to 2x" + }, + { + "id": 5, + "type": "PreviewImage", + "pos": [1150, 100], + "size": [315, 100], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 4 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Output" + }, + { + "id": 6, + "type": "SaveImage", + "pos": [1150, 400], + "size": [315, 100], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 5 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["simple_upscale_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 3, 1, "IMAGE"], + [2, 2, 0, 3, 0, "UPSCALE_MODEL"], + [3, 3, 0, 4, 0, "IMAGE"], + [4, 4, 0, 5, 0, "IMAGE"], + [5, 4, 0, 6, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Simple Upscale Production", + "version": "1.0.0", + "description": "Fast, straightforward upscaling using RealESRGAN. No diffusion refinement, optimized for speed.", + "category": "upscaling", + "tags": ["simple-upscale", "fast", "realesrgan", "production"], + "requirements": { + "models": ["RealESRGAN"], + "custom_nodes": [], + "vram_min": "8GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "type": "image", + "required": true + }, + "model": { + "node_id": 2, + "type": "string", + "default": "RealESRGAN_x4.pth", + "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"] + }, + "final_scale": { + "node_id": 4, + "widget_index": 1, + "type": "float", + "default": 0.5, + "description": "Scale factor after 4x upscale (0.5 = final 2x, 1.0 = keep 4x)" + } + }, + "performance": { + "avg_generation_time": "5-15 seconds", + "vram_usage": "~6-8GB" + } + } + }, + "version": 0.4 +} diff --git a/example_workflows/svd-i2v-production-v1.jpg b/example_workflows/svd-i2v-production-v1.jpg new file mode 100644 index 0000000..cd3727a Binary files /dev/null and b/example_workflows/svd-i2v-production-v1.jpg differ diff --git a/example_workflows/svd-i2v-production-v1.json b/example_workflows/svd-i2v-production-v1.json new file mode 100644 index 0000000..12bdfa3 --- /dev/null +++ b/example_workflows/svd-i2v-production-v1.json @@ -0,0 +1,416 @@ +{ + "last_node_id": 7, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [315, 314], + "widgets_values": ["input_frame.png", "image"], + "title": "API Input Image", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ] + }, + { + "id": 2, + "type": "ImageOnlyCheckpointLoader", + "pos": [50, 500], + "size": [350, 100], + "widgets_values": ["svd_xt.safetensors"], + "title": "SVD-XT Model Loader", + "flags": {}, + "order": 1, + "mode": 0, + "properties": { + "Node name for S&R": "ImageOnlyCheckpointLoader" + }, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4, 5], + "slot_index": 2 + } + ] + }, + { + "id": 3, + "type": "VideoLinearCFGGuidance", + "pos": [450, 500], + "size": [315, 100], + "widgets_values": [1.0], + "title": "Linear CFG Guidance", + "flags": {}, + "order": 2, + "mode": 0, + "properties": { + "Node name for S&R": "VideoLinearCFGGuidance" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 2 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [6], + "slot_index": 0 + } + ] + }, + { + "id": 4, + "type": "SVD_img2vid_Conditioning", + "pos": [450, 100], + "size": [315, 350], + "widgets_values": [1024, 576, 14, 127, 6, 0.0], + "title": "SVD Image-to-Video Conditioning", + "flags": {}, + "order": 3, + "mode": 0, + "properties": { + "Node name for S&R": "SVD_img2vid_Conditioning" + }, + "inputs": [ + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 3 + }, + { + "name": "init_image", + "type": "IMAGE", + "link": 1 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [8], + "slot_index": 1 + }, + { + "name": "latent", + "type": "LATENT", + "links": [9], + "slot_index": 2 + } + ] + }, + { + "id": 5, + "type": "KSampler", + "pos": [800, 100], + "size": [315, 474], + "widgets_values": [42, "fixed", 25, 6.0, "euler", "karras", 1.0], + "title": "KSampler (25 steps)", + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "Node name for S&R": "KSampler" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 6 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 8 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 9 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [10], + "slot_index": 0 + } + ] + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1150, 100], + "size": [210, 46], + "widgets_values": [], + "title": "VAE Decode Video Frames", + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "Node name for S&R": "VAEDecode" + }, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 10 + }, + { + "name": "vae", + "type": "VAE", + "link": 5 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [11], + "slot_index": 0 + } + ] + }, + { + "id": 7, + "type": "VHS_VideoCombine", + "pos": [1400, 100], + "size": [315, 200], + "widgets_values": [6, 0, "svd_output", "video/h264-mp4", false, true], + "title": "Combine Video Frames", + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 11 + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ] + } + ], + "links": [ + [1, 1, 0, 4, 1, "IMAGE"], + [2, 2, 0, 3, 0, "MODEL"], + [3, 2, 1, 4, 0, "CLIP_VISION"], + [4, 2, 2, 4, 2, "VAE"], + [5, 2, 2, 6, 1, "VAE"], + [6, 3, 0, 5, 0, "MODEL"], + [7, 4, 0, 5, 1, "CONDITIONING"], + [8, 4, 1, 5, 2, "CONDITIONING"], + [9, 4, 2, 5, 3, "LATENT"], + [10, 5, 0, 6, 0, "LATENT"], + [11, 6, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Stable Video Diffusion Image-to-Video Production", + "version": "1.2.0", + "description": "Quick animation using SVD-XT. Generate 14-frame video from single image with motion and camera movement.", + "category": "image-to-video", + "tags": ["svd", "svd-xt", "stable-video-diffusion", "i2v", "animation", "production"], + "requirements": { + "models": ["SVD-XT"], + "custom_nodes": ["ComfyUI-VideoHelperSuite"], + "vram_min": "16GB", + "vram_recommended": "20GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "widget_index": 0, + "type": "image", + "required": true, + "description": "Starting frame for video generation (1024x576 recommended)" + }, + "width": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 16, + "max": 16384, + "description": "Output video width" + }, + "height": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 576, + "min": 16, + "max": 16384, + "description": "Output video height" + }, + "video_frames": { + "node_id": 4, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 14, + "min": 1, + "max": 4096, + "description": "Number of frames to generate (14 or 25 for SVD/SVD-XT)" + }, + "motion_bucket_id": { + "node_id": 4, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 127, + "min": 1, + "max": 1023, + "description": "Motion amount (higher = more motion)" + }, + "fps": { + "node_id": 4, + "widget_index": 4, + "type": "integer", + "required": false, + "default": 6, + "min": 1, + "max": 1024, + "description": "Frames per second for conditioning" + }, + "augmentation_level": { + "node_id": 4, + "widget_index": 5, + "type": "float", + "required": false, + "default": 0.0, + "min": 0.0, + "max": 10.0, + "description": "Noise augmentation level" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 25, + "min": 1, + "max": 150, + "description": "Sampling steps (25 recommended)" + }, + "cfg": { + "node_id": 5, + "widget_index": 3, + "type": "float", + "required": false, + "default": 6.0, + "min": 0.0, + "max": 30.0, + "description": "Classifier-free guidance scale" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "description": "Random seed for reproducibility" + }, + "output_fps": { + "node_id": 7, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 6, + "description": "Output video framerate" + } + }, + "outputs": { + "video": { + "node_id": 7, + "type": "video", + "format": "MP4 (H.264)", + "resolution": "1024x576 (configurable)", + "duration": "~2.3 seconds @ 6fps (14 frames)" + } + }, + "performance": { + "avg_generation_time": "25-35 seconds", + "vram_usage": "~16-18GB", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Animate static images with natural motion", + "Create short video loops from single frames", + "Add subtle camera movements to still images", + "Generate product animation previews" + ], + "notes": [ + "SVD-XT extends frame count from 14 to 25 frames", + "Model auto-downloads on first use (~9GB)", + "Recommended resolution: 1024x576 (16:9)", + "Higher motion_bucket_id = more movement", + "Linear CFG guidance improves temporal consistency" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/svd-xt-i2v-production-v1.jpg b/example_workflows/svd-xt-i2v-production-v1.jpg new file mode 100644 index 0000000..e88713d Binary files /dev/null and b/example_workflows/svd-xt-i2v-production-v1.jpg differ diff --git a/example_workflows/svd-xt-i2v-production-v1.json b/example_workflows/svd-xt-i2v-production-v1.json new file mode 100644 index 0000000..df57d25 --- /dev/null +++ b/example_workflows/svd-xt-i2v-production-v1.json @@ -0,0 +1,417 @@ +{ + "last_node_id": 7, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [315, 314], + "widgets_values": ["input_frame.png", "image"], + "title": "API Input Image", + "flags": {}, + "order": 0, + "mode": 0, + "properties": { + "Node name for S&R": "LoadImage" + }, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ] + }, + { + "id": 2, + "type": "ImageOnlyCheckpointLoader", + "pos": [50, 500], + "size": [350, 100], + "widgets_values": ["svd_xt.safetensors"], + "title": "SVD-XT Model Loader", + "flags": {}, + "order": 1, + "mode": 0, + "properties": { + "Node name for S&R": "ImageOnlyCheckpointLoader" + }, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "CLIP_VISION", + "type": "CLIP_VISION", + "links": [3], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [4, 5], + "slot_index": 2 + } + ] + }, + { + "id": 3, + "type": "VideoLinearCFGGuidance", + "pos": [450, 500], + "size": [315, 100], + "widgets_values": [1.0], + "title": "Linear CFG Guidance", + "flags": {}, + "order": 2, + "mode": 0, + "properties": { + "Node name for S&R": "VideoLinearCFGGuidance" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 2 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [6], + "slot_index": 0 + } + ] + }, + { + "id": 4, + "type": "SVD_img2vid_Conditioning", + "pos": [450, 100], + "size": [315, 350], + "widgets_values": [1024, 576, 25, 127, 6, 0.0], + "title": "SVD-XT Image-to-Video Conditioning (25 frames)", + "flags": {}, + "order": 3, + "mode": 0, + "properties": { + "Node name for S&R": "SVD_img2vid_Conditioning" + }, + "inputs": [ + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 3 + }, + { + "name": "init_image", + "type": "IMAGE", + "link": 1 + }, + { + "name": "vae", + "type": "VAE", + "link": 4 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [8], + "slot_index": 1 + }, + { + "name": "latent", + "type": "LATENT", + "links": [9], + "slot_index": 2 + } + ] + }, + { + "id": 5, + "type": "KSampler", + "pos": [800, 100], + "size": [315, 474], + "widgets_values": [42, "fixed", 30, 6.0, "euler", "karras", 1.0], + "title": "KSampler (30 steps)", + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "Node name for S&R": "KSampler" + }, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 6 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 8 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 9 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [10], + "slot_index": 0 + } + ] + }, + { + "id": 6, + "type": "VAEDecode", + "pos": [1150, 100], + "size": [210, 46], + "widgets_values": [], + "title": "VAE Decode Video Frames", + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "Node name for S&R": "VAEDecode" + }, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 10 + }, + { + "name": "vae", + "type": "VAE", + "link": 5 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [11], + "slot_index": 0 + } + ] + }, + { + "id": 7, + "type": "VHS_VideoCombine", + "pos": [1400, 100], + "size": [315, 200], + "widgets_values": [6, 0, "svd_xt_output", "video/h264-mp4", false, true], + "title": "Combine Video Frames", + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 11 + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ] + } + ], + "links": [ + [1, 1, 0, 4, 1, "IMAGE"], + [2, 2, 0, 3, 0, "MODEL"], + [3, 2, 1, 4, 0, "CLIP_VISION"], + [4, 2, 2, 4, 2, "VAE"], + [5, 2, 2, 6, 1, "VAE"], + [6, 3, 0, 5, 0, "MODEL"], + [7, 4, 0, 5, 1, "CONDITIONING"], + [8, 4, 1, 5, 2, "CONDITIONING"], + [9, 4, 2, 5, 3, "LATENT"], + [10, 5, 0, 6, 0, "LATENT"], + [11, 6, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Stable Video Diffusion XT Image-to-Video Production", + "version": "1.2.0", + "description": "Extended animation using SVD-XT. Generate 25-frame video for longer animations with smooth motion.", + "category": "image-to-video", + "tags": ["svd-xt", "stable-video-diffusion", "i2v", "extended", "production"], + "requirements": { + "models": ["SVD-XT"], + "custom_nodes": ["ComfyUI-VideoHelperSuite"], + "vram_min": "18GB", + "vram_recommended": "20GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "widget_index": 0, + "type": "image", + "required": true, + "description": "Starting frame for video generation (1024x576 recommended)" + }, + "width": { + "node_id": 4, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 1024, + "min": 16, + "max": 16384, + "description": "Output video width" + }, + "height": { + "node_id": 4, + "widget_index": 1, + "type": "integer", + "required": false, + "default": 576, + "min": 16, + "max": 16384, + "description": "Output video height" + }, + "video_frames": { + "node_id": 4, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 25, + "min": 1, + "max": 4096, + "description": "Number of frames to generate (25 for SVD-XT)" + }, + "motion_bucket_id": { + "node_id": 4, + "widget_index": 3, + "type": "integer", + "required": false, + "default": 127, + "min": 1, + "max": 1023, + "description": "Motion amount (higher = more motion)" + }, + "fps": { + "node_id": 4, + "widget_index": 4, + "type": "integer", + "required": false, + "default": 6, + "min": 1, + "max": 1024, + "description": "Frames per second for conditioning" + }, + "augmentation_level": { + "node_id": 4, + "widget_index": 5, + "type": "float", + "required": false, + "default": 0.0, + "min": 0.0, + "max": 10.0, + "description": "Noise augmentation level" + }, + "steps": { + "node_id": 5, + "widget_index": 2, + "type": "integer", + "required": false, + "default": 30, + "min": 1, + "max": 150, + "description": "Sampling steps (30 recommended)" + }, + "cfg": { + "node_id": 5, + "widget_index": 3, + "type": "float", + "required": false, + "default": 6.0, + "min": 0.0, + "max": 30.0, + "description": "Classifier-free guidance scale" + }, + "seed": { + "node_id": 5, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 42, + "description": "Random seed for reproducibility" + }, + "output_fps": { + "node_id": 7, + "widget_index": 0, + "type": "integer", + "required": false, + "default": 6, + "description": "Output video framerate" + } + }, + "outputs": { + "video": { + "node_id": 7, + "type": "video", + "format": "MP4 (H.264)", + "resolution": "1024x576 (configurable)", + "duration": "~4.2 seconds @ 6fps (25 frames)" + } + }, + "performance": { + "avg_generation_time": "40-55 seconds", + "vram_usage": "~18-20GB", + "gpu_utilization": "95-100%" + }, + "use_cases": [ + "Extended animations with smooth motion", + "Longer video loops from single frames", + "Cinematic camera movements", + "Product animation showcases" + ], + "notes": [ + "SVD-XT generates 25 frames vs 14 frames in base SVD", + "Requires more VRAM (~18GB vs ~16GB)", + "Model auto-downloads on first use (~9GB)", + "Recommended resolution: 1024x576 (16:9)", + "Higher motion_bucket_id = more movement", + "Linear CFG guidance improves temporal consistency" + ] + } + }, + "version": 0.4 +} diff --git a/example_workflows/ultimate-sd-upscale-production-v1.jpg b/example_workflows/ultimate-sd-upscale-production-v1.jpg new file mode 100644 index 0000000..097a31c Binary files /dev/null and b/example_workflows/ultimate-sd-upscale-production-v1.jpg differ diff --git a/example_workflows/ultimate-sd-upscale-production-v1.json b/example_workflows/ultimate-sd-upscale-production-v1.json new file mode 100644 index 0000000..5cd9980 --- /dev/null +++ b/example_workflows/ultimate-sd-upscale-production-v1.json @@ -0,0 +1,335 @@ +{ + "last_node_id": 8, + "last_link_id": 10, + "nodes": [ + { + "id": 1, + "type": "LoadImage", + "pos": [50, 100], + "size": [350, 100], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": ["input_image.png", "image"], + "title": "API Input Image" + }, + { + "id": 2, + "type": "CheckpointLoaderSimple", + "pos": [50, 250], + "size": [350, 100], + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [3, 4], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [5], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "SDXL Checkpoint Loader" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": [400, 200], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["high quality, detailed, sharp"], + "title": "API Positive Prompt" + }, + { + "id": 4, + "type": "CLIPTextEncode", + "pos": [450, 350], + "size": [400, 200], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 4 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": ["blurry, low quality"], + "title": "API Negative Prompt" + }, + { + "id": 8, + "type": "UpscaleModelLoader", + "pos": [50, 400], + "size": [350, 100], + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [10], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UpscaleModelLoader" + }, + "widgets_values": ["RealESRGAN_x2.pth"], + "title": "Upscale Model Loader" + }, + { + "id": 5, + "type": "UltimateSDUpscale", + "pos": [900, 100], + "size": [315, 100], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 1 + }, + { + "name": "model", + "type": "MODEL", + "link": 2 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 5 + }, + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 10 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [8, 9], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UltimateSDUpscale" + }, + "widgets_values": [2, 42, "randomize", 20, 8.0, "dpmpp_2m", "karras", 0.3, "Linear", 512, 512, 8, 32, "None", 1.0, 64, 8, 16, true, false], + "title": "Ultimate SD Upscale (2x)" + }, + { + "id": 6, + "type": "PreviewImage", + "pos": [1270, 100], + "size": [315, 100], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 8 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "title": "Preview Output" + }, + { + "id": 7, + "type": "SaveImage", + "pos": [1270, 400], + "size": [315, 100], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": ["ultimate_upscale_output"], + "title": "API Image Output" + } + ], + "links": [ + [1, 1, 0, 5, 0, "IMAGE"], + [2, 2, 0, 5, 1, "MODEL"], + [3, 2, 1, 3, 0, "CLIP"], + [4, 2, 1, 4, 0, "CLIP"], + [5, 2, 2, 5, 4, "VAE"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "CONDITIONING"], + [8, 5, 0, 6, 0, "IMAGE"], + [9, 5, 0, 7, 0, "IMAGE"], + [10, 8, 0, 5, 5, "UPSCALE_MODEL"] + ], + "groups": [], + "config": {}, + "extra": { + "workflow_info": { + "name": "Ultimate SD Upscale Production", + "version": "1.1.0", + "description": "Professional upscaling with Ultimate SD Upscale. Combines AI upscaling with diffusion refinement for superior detail and quality.", + "category": "upscaling", + "tags": ["ultimate-sd-upscale", "upscaling", "enhancement", "production"], + "requirements": { + "models": ["stable-diffusion-xl-base-1.0", "RealESRGAN"], + "custom_nodes": ["ComfyUI_UltimateSDUpscale"], + "vram_min": "18GB" + }, + "parameters": { + "input_image": { + "node_id": 1, + "type": "image", + "required": true + }, + "positive_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "default": "high quality, detailed, sharp", + "description": "Enhancement prompt" + }, + "negative_prompt": { + "node_id": 4, + "widget_index": 0, + "type": "string", + "default": "blurry, low quality", + "description": "Qualities to avoid" + }, + "upscale_model": { + "node_id": 8, + "widget_index": 0, + "type": "string", + "default": "RealESRGAN_x2.pth", + "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"], + "description": "Upscale model to use" + }, + "upscale_by": { + "node_id": 5, + "widget_index": 0, + "type": "float", + "default": 2, + "min": 0.05, + "max": 4, + "description": "Upscale factor" + }, + "denoise": { + "node_id": 5, + "widget_index": 6, + "type": "float", + "default": 0.3, + "description": "Refinement strength" + }, + "tile_width": { + "node_id": 5, + "widget_index": 8, + "type": "integer", + "default": 512, + "description": "Tile width for processing" + }, + "tile_height": { + "node_id": 5, + "widget_index": 9, + "type": "integer", + "default": 512, + "description": "Tile height for processing" + } + }, + "performance": { + "avg_generation_time": "60-120 seconds (depending on input size)", + "vram_usage": "~16-20GB" + } + } + }, + "version": 0.4 +} diff --git a/nodes.py b/nodes.py new file mode 100644 index 0000000..16582f4 --- /dev/null +++ b/nodes.py @@ -0,0 +1,4 @@ +"""ComfyUI Extras - Workflow Templates only, no custom nodes.""" + +NODE_CLASS_MAPPINGS = {} +NODE_DISPLAY_NAME_MAPPINGS = {} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..40412d3 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "comfyui-extras" +version = "0.1.0" +description = "Curated workflow templates for ComfyUI" +license = {text = "MIT"} +readme = "README.md" +requires-python = ">=3.10" +dependencies = [] + +[project.urls] +Repository = "https://github.com/valknar/comfyui-extras" + +[tool.comfy] +PublisherId = "valknar" +DisplayName = "ComfyUI Extras" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8cbcfb1 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# For preview image generation script +Pillow>=9.0.0 diff --git a/scripts/generate_previews.py b/scripts/generate_previews.py new file mode 100644 index 0000000..2a5e7d4 --- /dev/null +++ b/scripts/generate_previews.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +"""Generate placeholder preview images for ComfyUI workflow templates.""" + +from pathlib import Path +from PIL import Image, ImageDraw, ImageFont + +PREVIEW_WIDTH = 512 +PREVIEW_HEIGHT = 288 # 16:9 aspect ratio + +# Category colors based on filename patterns +# Order matters: more specific patterns first, generic ones last +CATEGORY_COLORS = { + # NSFW patterns (check first - most specific) + "lustify": "#9B2C2C", # Dark red - NSFW + "realvis": "#9B2C2C", # Dark red - NSFW + "pony": "#9B2C2C", # Dark red - NSFW + "nsfw": "#9B2C2C", # Dark red - NSFW + # Advanced patterns + "animatediff": "#4ad9d9", # Cyan - advanced + "controlnet": "#4ad9d9", # Cyan - advanced + "batch": "#4ad9d9", # Cyan - advanced + # Upscaling + "upscale": "#9b4ad9", # Purple - upscaling + # Generic type patterns (check last) + "t2i": "#4a90d9", # Blue - text-to-image + "i2v": "#d94a4a", # Red - image-to-video + "i2i": "#4ad96b", # Green - image-to-image + "t2m": "#d9a04a", # Orange - text-to-music + "m2m": "#d9a04a", # Orange - music-to-music +} +DEFAULT_COLOR = "#2d2d2d" + + +def get_color_for_workflow(filename: str) -> str: + """Determine background color based on filename.""" + lower = filename.lower() + for pattern, color in CATEGORY_COLORS.items(): + if pattern in lower: + return color + return DEFAULT_COLOR + + +def humanize_filename(filename: str) -> str: + """Convert filename to readable title.""" + # Remove extension and common suffixes + name = filename.replace('.json', '') + name = name.replace('-production-v1', '') + name = name.replace('-production', '') + name = name.replace('-v1', '') + # Replace separators with spaces + name = name.replace('-', ' ').replace('_', ' ') + # Title case + return name.title() + + +def generate_preview(json_path: Path, output_path: Path): + """Generate a placeholder preview image with workflow title.""" + filename = json_path.name + bg_color = get_color_for_workflow(filename) + title = humanize_filename(filename) + + # Create image + img = Image.new('RGB', (PREVIEW_WIDTH, PREVIEW_HEIGHT), bg_color) + draw = ImageDraw.Draw(img) + + # Try to load fonts + try: + title_font = ImageFont.truetype( + "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 24 + ) + except OSError: + title_font = ImageFont.load_default() + + # Word wrap title + words = title.split() + lines = [] + current_line = "" + for word in words: + test = f"{current_line} {word}".strip() + if len(test) > 28: + if current_line: + lines.append(current_line) + current_line = word + else: + current_line = test + if current_line: + lines.append(current_line) + + # Draw centered text + y_offset = PREVIEW_HEIGHT // 2 - (len(lines) * 30) // 2 + for line in lines: + bbox = draw.textbbox((0, 0), line, font=title_font) + text_width = bbox[2] - bbox[0] + x = (PREVIEW_WIDTH - text_width) // 2 + draw.text((x, y_offset), line, fill="white", font=title_font) + y_offset += 30 + + img.save(output_path, 'JPEG', quality=85) + + +def main(): + workflows_dir = Path(__file__).parent.parent / 'example_workflows' + + count = 0 + for json_file in sorted(workflows_dir.glob('*.json')): + preview_path = json_file.with_suffix('.jpg') + + if preview_path.exists(): + print(f"Skipping (exists): {json_file.name}") + continue + + generate_preview(json_file, preview_path) + print(f"Generated: {preview_path.name}") + count += 1 + + print(f"\nDone! Generated {count} preview images.") + + +if __name__ == '__main__': + main()