{ "last_node_id": 9, "last_link_id": 7, "nodes": [ { "id": 1, "type": "Note", "pos": [0, -240], "size": {"0": 1840, "1": 190}, "flags": {}, "order": 7, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": ["CraftKit × SeedVR2 — Smart Upscale\n\nPattern:\n1. SmartResolutionMultiplier calculates the 2× target resolution from the input image automatically\n2. ImageScaleBy pre-downscales the input (0.75×) so SeedVR2 has room to work\n3. SeedVR2 upscales to the computed target resolution (connected from SmartResolutionMultiplier → resolution)\n4. SmartResize normalizes the output to a consistent longest side\n\nChange multiplier on SmartResolutionMultiplier to control the upscale factor. Change longest_side on SmartResize to control output size."], "color": "#2a3a2a", "bgcolor": "#1a2a1a" }, { "id": 2, "type": "LoadImage", "pos": [0, -10], "size": {"0": 280, "1": 320}, "flags": {}, "order": 0, "mode": 0, "inputs": [ {"name": "image", "type": "COMBO", "widget": {"name": "image"}, "link": null}, {"name": "upload", "type": "IMAGEUPLOAD", "widget": {"name": "upload"}, "link": null} ], "outputs": [ {"name": "IMAGE", "type": "IMAGE", "links": [1, 2], "slot_index": 0}, {"name": "MASK", "type": "MASK", "links": null, "slot_index": 1} ], "properties": {"cnr_id": "comfy-core", "Node name for S&R": "LoadImage"}, "widgets_values": ["example.png", "image"] }, { "id": 3, "type": "SmartResolutionMultiplier", "pos": [320, -10], "size": {"0": 320, "1": 150}, "flags": {}, "order": 1, "mode": 0, "inputs": [ {"name": "image", "type": "IMAGE", "link": 1} ], "outputs": [ {"name": "width", "type": "INT", "links": null, "slot_index": 0}, {"name": "height", "type": "INT", "links": null, "slot_index": 1}, {"name": "resolution", "type": "INT", "links": [3], "slot_index": 2} ], "properties": {"cnr_id": "comfyui-craftkit", "Node name for S&R": "SmartResolutionMultiplier"}, "widgets_values": [2.0, 8] }, { "id": 4, "type": "ImageScaleBy", "pos": [320, 180], "size": {"0": 270, "1": 130}, "flags": {}, "order": 2, "mode": 0, "inputs": [ {"name": "image", "type": "IMAGE", "link": 2} ], "outputs": [ {"name": "IMAGE", "type": "IMAGE", "links": [4], "slot_index": 0} ], "title": "Pre-downscale (0.75×)", "properties": {"cnr_id": "comfy-core", "Node name for S&R": "ImageScaleBy"}, "widgets_values": ["lanczos", 0.75] }, { "id": 5, "type": "SeedVR2LoadDiTModel", "pos": [680, -10], "size": {"0": 380, "1": 260}, "flags": {}, "order": 3, "mode": 0, "inputs": [ {"name": "torch_compile_args", "shape": 7, "type": "TORCH_COMPILE_ARGS", "link": null}, {"name": "model", "type": "COMBO", "widget": {"name": "model"}, "link": null}, {"name": "device", "type": "COMBO", "widget": {"name": "device"}, "link": null}, {"name": "blocks_to_swap", "shape": 7, "type": "INT", "widget": {"name": "blocks_to_swap"}, "link": null}, {"name": "swap_io_components", "shape": 7, "type": "BOOLEAN", "widget": {"name": "swap_io_components"}, "link": null}, {"name": "offload_device", "shape": 7, "type": "COMBO", "widget": {"name": "offload_device"}, "link": null}, {"name": "cache_model", "shape": 7, "type": "BOOLEAN", "widget": {"name": "cache_model"}, "link": null}, {"name": "attention_mode", "shape": 7, "type": "COMBO", "widget": {"name": "attention_mode"}, "link": null} ], "outputs": [ {"name": "SEEDVR2_DIT", "type": "SEEDVR2_DIT", "links": [5], "slot_index": 0} ], "properties": {"cnr_id": "seedvr2_videoupscaler", "Node name for S&R": "SeedVR2LoadDiTModel"}, "widgets_values": ["seedvr2_ema_3b_fp8_e4m3fn.safetensors", "cuda:0", 0, false, "none", false, "sdpa"] }, { "id": 6, "type": "SeedVR2LoadVAEModel", "pos": [680, 300], "size": {"0": 380, "1": 300}, "flags": {}, "order": 4, "mode": 0, "inputs": [ {"name": "torch_compile_args", "shape": 7, "type": "TORCH_COMPILE_ARGS", "link": null}, {"name": "model", "type": "COMBO", "widget": {"name": "model"}, "link": null}, {"name": "device", "type": "COMBO", "widget": {"name": "device"}, "link": null}, {"name": "encode_tiled", "shape": 7, "type": "BOOLEAN", "widget": {"name": "encode_tiled"}, "link": null}, {"name": "encode_tile_size", "shape": 7, "type": "INT", "widget": {"name": "encode_tile_size"}, "link": null}, {"name": "encode_tile_overlap", "shape": 7, "type": "INT", "widget": {"name": "encode_tile_overlap"}, "link": null}, {"name": "decode_tiled", "shape": 7, "type": "BOOLEAN", "widget": {"name": "decode_tiled"}, "link": null}, {"name": "decode_tile_size", "shape": 7, "type": "INT", "widget": {"name": "decode_tile_size"}, "link": null}, {"name": "decode_tile_overlap", "shape": 7, "type": "INT", "widget": {"name": "decode_tile_overlap"}, "link": null}, {"name": "tile_debug", "shape": 7, "type": "COMBO", "widget": {"name": "tile_debug"}, "link": null}, {"name": "offload_device", "shape": 7, "type": "COMBO", "widget": {"name": "offload_device"}, "link": null}, {"name": "cache_model", "shape": 7, "type": "BOOLEAN", "widget": {"name": "cache_model"}, "link": null} ], "outputs": [ {"name": "SEEDVR2_VAE", "type": "SEEDVR2_VAE", "links": [6], "slot_index": 0} ], "properties": {"cnr_id": "seedvr2_videoupscaler", "Node name for S&R": "SeedVR2LoadVAEModel"}, "widgets_values": ["ema_vae_fp16.safetensors", "cuda:0", true, 1024, 128, true, 1024, 128, "false", "cpu", false] }, { "id": 7, "type": "SeedVR2VideoUpscaler", "pos": [1100, -10], "size": {"0": 380, "1": 560}, "flags": {}, "order": 5, "mode": 0, "inputs": [ {"name": "image", "type": "IMAGE", "link": 4}, {"name": "dit", "type": "SEEDVR2_DIT", "link": 5}, {"name": "vae", "type": "SEEDVR2_VAE", "link": 6}, {"name": "seed", "type": "INT", "widget": {"name": "seed"}, "link": null}, {"name": "resolution", "type": "INT", "widget": {"name": "resolution"}, "link": 3}, {"name": "max_resolution", "type": "INT", "widget": {"name": "max_resolution"}, "link": null}, {"name": "batch_size", "type": "INT", "widget": {"name": "batch_size"}, "link": null}, {"name": "uniform_batch_size", "type": "BOOLEAN", "widget": {"name": "uniform_batch_size"}, "link": null}, {"name": "color_correction", "type": "COMBO", "widget": {"name": "color_correction"}, "link": null}, {"name": "temporal_overlap", "shape": 7, "type": "INT", "widget": {"name": "temporal_overlap"}, "link": null}, {"name": "prepend_frames", "shape": 7, "type": "INT", "widget": {"name": "prepend_frames"}, "link": null}, {"name": "input_noise_scale", "shape": 7, "type": "FLOAT", "widget": {"name": "input_noise_scale"}, "link": null}, {"name": "latent_noise_scale", "shape": 7, "type": "FLOAT", "widget": {"name": "latent_noise_scale"}, "link": null}, {"name": "offload_device", "shape": 7, "type": "COMBO", "widget": {"name": "offload_device"}, "link": null}, {"name": "enable_debug", "shape": 7, "type": "BOOLEAN", "widget": {"name": "enable_debug"}, "link": null} ], "outputs": [ {"name": "IMAGE", "type": "IMAGE", "links": [7], "slot_index": 0} ], "properties": {"cnr_id": "seedvr2_videoupscaler", "Node name for S&R": "SeedVR2VideoUpscaler"}, "widgets_values": [42, "fixed", 0, 1, false, "lab", 0, 0, 0.0, 0.0, "cpu", false] }, { "id": 8, "type": "SmartResize", "pos": [1520, -10], "size": {"0": 320, "1": 240}, "flags": {}, "order": 6, "mode": 0, "inputs": [ {"name": "image", "type": "IMAGE", "link": 7} ], "outputs": [ {"name": "image", "type": "IMAGE", "links": [], "slot_index": 0}, {"name": "width", "type": "INT", "links": [], "slot_index": 1}, {"name": "height", "type": "INT", "links": [], "slot_index": 2} ], "properties": {"cnr_id": "comfyui-craftkit", "Node name for S&R": "SmartResize"}, "widgets_values": [1024, 8, "lanczos", false] }, { "id": 9, "type": "Note", "pos": [1520, 260], "size": {"0": 320, "1": 310}, "flags": {}, "order": 8, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": ["Outputs:\n\n→ image (SmartResize)\n connect to PreviewImage or SaveImage\n\nTweak:\n• multiplier on SmartResolutionMultiplier\n 2.0 = double, 1.5 = 50% bigger\n• scale_by on Pre-downscale\n lower = more room for SeedVR2 to\n reconstruct detail\n• longest_side on SmartResize\n target output size after upscale\n\nModel options:\n• 3b fp8 — fast, less VRAM\n• 7b fp16 — best quality, high VRAM"], "color": "#2a3a2a", "bgcolor": "#1a2a1a" } ], "links": [ [1, 2, 0, 3, 0, "IMAGE"], [2, 2, 0, 4, 0, "IMAGE"], [3, 3, 2, 7, 4, "INT"], [4, 4, 0, 7, 0, "IMAGE"], [5, 5, 0, 7, 1, "SEEDVR2_DIT"], [6, 6, 0, 7, 2, "SEEDVR2_VAE"], [7, 7, 0, 8, 0, "IMAGE"] ], "groups": [ { "title": "Input", "bounding": [-20, -30, 640, 390], "color": "#4a2d5a", "font_size": 24 }, { "title": "SeedVR2 Models", "bounding": [660, -30, 420, 640], "color": "#1e3d5a", "font_size": 24 }, { "title": "Upscale + Output", "bounding": [1080, -30, 800, 630], "color": "#1e4a4a", "font_size": 24 } ], "config": {}, "extra": { "ds": {"scale": 0.6, "offset": [-20, 230]} }, "version": 0.4 }