{"id": "a7e1c2d4-5b6f-4e8a-9c0d-gmanski-flowextend", "revision": 0, "last_node_id": 41, "last_link_id": 64, "nodes": [{"id": 1, "type": "MarkdownNote", "pos": [-1900, -460], "size": [600, 820], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [], "properties": {"Node name for S&R": "MarkdownNote"}, "widgets_values": ["## Gmanski Flow (Extend)\n\nTwo takes that play as **one continuous shot**, on Gmanski's own H3 Long nodes.\n\n1. **Reference photo** - drop your photo in. Both takes use it as `<Picture 1>`.\n2. **Take 1** - prompt + duration, generated normally. Its sampled latent is saved beside the clip\n   (`output/Gmanski/h3_extend/take_001.h3lat.safetensors`).\n3. **Take 2** - a new prompt for what happens next. *H3 Pin Window* copies the last **39 frames** of\n   take 1's latent into take 2 and locks them with a noise mask, so take 2 starts exactly where take 1 ends:\n   same lighting, same motion, no flicker. *H3 Trim Pinned* cuts those shared frames off the result.\n4. **Colour** - *H3 Color Match* measures any colour/brightness shift between take 1's last frame and\n   take 2's first frames and applies that one correction to all of take 2 (skipped when there is no\n   visible shift). Set `mode` to `off` to compare.\n5. **Full take** - *H3 Join Clips* appends take 2 to take 1, sound included.\n\nThree videos are saved: take 1, the new part of take 2, and the full take.\n\n**Continue a day later:** connect the red *Load H3 Latent* node (set it to `take_002`) to Pin Window's\n`source_latent` instead of the Save node, give take 2 a new prompt, and you get take 3. Keep extending,\nor bridge: a second Pin Window with `take_from=head`, `place=after`, `mode=both` makes the model land on\nthe start of another saved take.\n\n**Flicker at the join?** Set Pin Window's `context_noise` to 0.1: a little noise on the pinned frames\n(the one touching the join stays clean) so take 2 continues the motion instead of copying texture.\n\n**Window**: 39 frames is right for most shots. Longer windows (90, 141) hand the model more motion\ncontext at the cost of new frames. Only 39, 90, 141, 192 are valid.\n\nTurbo LoRA is bypassed by default (right-click -> Mode -> Always once `minimax-h3-ref2v` is installed,\nthen set steps to 8).\n"], "title": "Read me: Gmanski Flow (Extend)", "color": "#432", "bgcolor": "#653"}, {"id": 2, "type": "LoadImage", "pos": [-1250, -460], "size": [320, 314], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [{"name": "IMAGE", "type": "IMAGE", "links": [9, 31]}, {"name": "MASK", "type": "MASK", "links": []}], "properties": {"Node name for S&R": "LoadImage"}, "widgets_values": ["example.png", "image"], "title": "Reference photo (both takes)"}, {"id": 3, "type": "PrimitiveInt", "pos": [-1250, -100], "size": [300, 60], "flags": {}, "order": 2, "mode": 0, "inputs": [{"name": "value", "type": "INT", "link": null, "widget": {"name": "value"}}], "outputs": [{"name": "INT", "type": "INT", "links": [10, 32]}], "properties": {"Node name for S&R": "PrimitiveInt"}, "widgets_values": [544], "title": "Width (x32)"}, {"id": 4, "type": "PrimitiveInt", "pos": [-1250, -10], "size": [300, 60], "flags": {}, "order": 3, "mode": 0, "inputs": [{"name": "value", "type": "INT", "link": null, "widget": {"name": "value"}}], "outputs": [{"name": "INT", "type": "INT", "links": [11, 33]}], "properties": {"Node name for S&R": "PrimitiveInt"}, "widgets_values": [960], "title": "Height (x32)"}, {"id": 5, "type": "PrimitiveFloat", "pos": [-1250, 90], "size": [300, 60], "flags": {}, "order": 4, "mode": 0, "inputs": [{"name": "value", "type": "FLOAT", "link": null, "widget": {"name": "value"}}], "outputs": [{"name": "FLOAT", "type": "FLOAT", "links": [1]}], "properties": {"Node name for S&R": "PrimitiveFloat"}, "widgets_values": [8.0], "title": "Take 1 duration (seconds)"}, {"id": 6, "type": "ComfyMathExpression", "pos": [-1250, 180], "size": [300, 90], "flags": {}, "order": 5, "mode": 0, "inputs": [{"name": "values.a", "type": "FLOAT,INT,BOOLEAN", "link": 1}], "outputs": [{"name": "FLOAT", "type": "FLOAT", "links": []}, {"name": "INT", "type": "INT", "links": [12]}, {"name": "BOOL", "type": "BOOLEAN", "links": []}], "properties": {"Node name for S&R": "ComfyMathExpression"}, "widgets_values": ["max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17"], "title": "Take 1 frames (17n+5)"}, {"id": 7, "type": "PrimitiveFloat", "pos": [-1250, 300], "size": [300, 60], "flags": {}, "order": 6, "mode": 0, "inputs": [{"name": "value", "type": "FLOAT", "link": null, "widget": {"name": "value"}}], "outputs": [{"name": "FLOAT", "type": "FLOAT", "links": [2]}], "properties": {"Node name for S&R": "PrimitiveFloat"}, "widgets_values": [8.0], "title": "Take 2 duration (seconds)"}, {"id": 8, "type": "ComfyMathExpression", "pos": [-1250, 390], "size": [300, 90], "flags": {}, "order": 7, "mode": 0, "inputs": [{"name": "values.a", "type": "FLOAT,INT,BOOLEAN", "link": 2}], "outputs": [{"name": "FLOAT", "type": "FLOAT", "links": []}, {"name": "INT", "type": "INT", "links": [34]}, {"name": "BOOL", "type": "BOOLEAN", "links": []}], "properties": {"Node name for S&R": "ComfyMathExpression"}, "widgets_values": ["max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17"], "title": "Take 2 frames (17n+5)"}, {"id": 9, "type": "UNETLoader", "pos": [500, 900], "size": [440, 90], "flags": {}, "order": 8, "mode": 0, "inputs": [{"name": "unet_name", "type": "COMBO", "link": null, "widget": {"name": "unet_name"}}, {"name": "weight_dtype", "type": "COMBO", "link": null, "widget": {"name": "weight_dtype"}}], "outputs": [{"name": "MODEL", "type": "MODEL", "links": [3]}], "properties": {"Node name for S&R": "UNETLoader", "models": [{"name": "minimax_h3_ref2va_pruned_int8_convrot.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/diffusion_models/minimax_h3_ref2va_pruned_int8_convrot.safetensors", "directory": "diffusion_models"}]}, "widgets_values": ["minimax_h3_ref2va_pruned_int8_convrot.safetensors", "default"], "title": "MiniMax H3 ref2v checkpoint"}, {"id": 10, "type": "LoraLoaderModelOnly", "pos": [500, 1020], "size": [440, 90], "flags": {}, "order": 9, "mode": 4, "inputs": [{"name": "model", "type": "MODEL", "link": 3}, {"name": "lora_name", "type": "COMBO", "link": null, "widget": {"name": "lora_name"}}, {"name": "strength_model", "type": "FLOAT", "link": null, "widget": {"name": "strength_model"}}], "outputs": [{"name": "MODEL", "type": "MODEL", "links": [4]}], "properties": {"Node name for S&R": "LoraLoaderModelOnly", "models": [{"name": "minimax_h3_ref2v_turbo_8step_v1.0_768p_comfyui_bf16.safetensors", "url": "https://huggingface.co/lightx2v/Minimax-h3-Turbo/resolve/main/minimax_h3_ref2v_turbo_8step_v1.0_768p_comfyui_bf16.safetensors", "directory": "loras"}]}, "widgets_values": ["minimax_h3_ref2v_turbo_8step_v1.0_768p_comfyui_bf16.safetensors", 1.0], "title": "Turbo LoRA — bypassed by default, see readme"}, {"id": 11, "type": "MiniMaxH3SigmaShift", "pos": [500, 1140], "size": [300, 110], "flags": {}, "order": 10, "mode": 0, "inputs": [{"name": "model", "type": "MODEL", "link": 4}, {"name": "shift_video", "type": "FLOAT", "link": null, "widget": {"name": "shift_video"}}, {"name": "shift_audio", "type": "FLOAT", "link": null, "widget": {"name": "shift_audio"}}], "outputs": [{"name": "MODEL", "type": "MODEL", "links": [5, 13, 38]}], "properties": {"Node name for S&R": "MiniMaxH3SigmaShift"}, "widgets_values": [12, 3], "title": "Sigma shift"}, {"id": 12, "type": "CLIPLoader", "pos": [500, 1280], "size": [440, 110], "flags": {}, "order": 11, "mode": 0, "inputs": [{"name": "clip_name", "type": "COMBO", "link": null, "widget": {"name": "clip_name"}}, {"name": "type", "type": "COMBO", "link": null, "widget": {"name": "type"}}, {"name": "device", "type": "COMBO", "link": null, "widget": {"name": "device"}}], "outputs": [{"name": "CLIP", "type": "CLIP", "links": [6, 28]}], "properties": {"Node name for S&R": "CLIPLoader", "models": [{"name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors", "directory": "text_encoders"}]}, "widgets_values": ["qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors", "minimax", "default"], "title": "MiniMax H3 text encoder"}, {"id": 13, "type": "VAELoader", "pos": [500, 1420], "size": [440, 60], "flags": {}, "order": 12, "mode": 0, "inputs": [{"name": "vae_name", "type": "COMBO", "link": null, "widget": {"name": "vae_name"}}], "outputs": [{"name": "VAE", "type": "VAE", "links": [7, 22, 29, 47]}], "properties": {"Node name for S&R": "VAELoader", "models": [{"name": "minimax_h3_video_vae_fp16.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_fp16.safetensors", "directory": "vae"}]}, "widgets_values": ["minimax_h3_video_vae_fp16.safetensors"], "title": "MiniMax H3 video VAE"}, {"id": 14, "type": "VAELoader", "pos": [500, 1510], "size": [440, 60], "flags": {}, "order": 13, "mode": 0, "inputs": [{"name": "vae_name", "type": "COMBO", "link": null, "widget": {"name": "vae_name"}}], "outputs": [{"name": "VAE", "type": "VAE", "links": [8, 24, 30, 49]}], "properties": {"Node name for S&R": "VAELoader", "models": [{"name": "minimax_h3_audio_vae_fp32.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors", "directory": "vae"}]}, "widgets_values": ["minimax_h3_audio_vae_fp32.safetensors"], "title": "MiniMax H3 audio VAE (required input, decoded audio unused — see module docstring)"}, {"id": 15, "type": "KSamplerSelect", "pos": [500, 1600], "size": [300, 60], "flags": {}, "order": 14, "mode": 0, "inputs": [{"name": "sampler_name", "type": "COMBO", "link": null, "widget": {"name": "sampler_name"}}], "outputs": [{"name": "SAMPLER", "type": "SAMPLER", "links": [17, 42]}], "properties": {"Node name for S&R": "KSamplerSelect"}, "widgets_values": ["res_multistep"], "title": "Sampler (shared)"}, {"id": 16, "type": "BasicScheduler", "pos": [500, 1680], "size": [300, 130], "flags": {}, "order": 15, "mode": 0, "inputs": [{"name": "model", "type": "MODEL", "link": 5}, {"name": "scheduler", "type": "COMBO", "link": null, "widget": {"name": "scheduler"}}, {"name": "steps", "type": "INT", "link": null, "widget": {"name": "steps"}}, {"name": "denoise", "type": "FLOAT", "link": null, "widget": {"name": "denoise"}}], "outputs": [{"name": "SIGMAS", "type": "SIGMAS", "links": [18, 43]}], "properties": {"Node name for S&R": "BasicScheduler"}, "widgets_values": ["simple", 20, 1.0], "title": "Scheduler (shared, 20 steps — 8 if turbo LoRA enabled)"}, {"id": 17, "type": "MiniMaxH3ReferenceToVideo", "pos": [0, -460], "size": [460, 330], "flags": {}, "order": 16, "mode": 0, "inputs": [{"name": "clip", "type": "CLIP", "link": 6}, {"name": "vae", "type": "VAE", "link": 7}, {"name": "audio_vae", "type": "VAE", "link": 8}, {"name": "ref_images.ref_image_0", "type": "IMAGE", "link": 9}, {"name": "prompt", "type": "STRING", "link": null, "widget": {"name": "prompt"}}, {"name": "width", "type": "INT", "link": 10, "widget": {"name": "width"}}, {"name": "height", "type": "INT", "link": 11, "widget": {"name": "height"}}, {"name": "length", "type": "INT", "link": 12, "widget": {"name": "length"}}, {"name": "ref_image_size", "type": "COMBO", "link": null, "widget": {"name": "ref_image_size"}}], "outputs": [{"name": "CONDITIONING", "type": "CONDITIONING", "links": [14]}, {"name": "LATENT", "type": "LATENT", "links": [19]}], "properties": {"Node name for S&R": "MiniMaxH3ReferenceToVideo"}, "widgets_values": ["photorealistic style. <Picture 1> is the subject. They walk slowly through a sunlit forest path, looking around at the trees, natural handheld camera following from the front. Birdsong and soft footsteps.", 544, 960, 192, "max"], "title": "Take 1: H3 reference-to-video (prompt here)"}, {"id": 18, "type": "BasicGuider", "pos": [540, -460], "size": [290, 46], "flags": {}, "order": 17, "mode": 0, "inputs": [{"name": "model", "type": "MODEL", "link": 13}, {"name": "conditioning", "type": "CONDITIONING", "link": 14}], "outputs": [{"name": "GUIDER", "type": "GUIDER", "links": [16]}], "properties": {"Node name for S&R": "BasicGuider"}, "widgets_values": [], "title": "Take 1: guider"}, {"id": 19, "type": "RandomNoise", "pos": [540, -380], "size": [290, 82], "flags": {}, "order": 18, "mode": 0, "inputs": [{"name": "noise_seed", "type": "INT", "link": null, "widget": {"name": "noise_seed"}}], "outputs": [{"name": "NOISE", "type": "NOISE", "links": [15]}], "properties": {"Node name for S&R": "RandomNoise"}, "widgets_values": [12345, "randomize"], "title": "Take 1: seed"}, {"id": 20, "type": "SamplerCustomAdvanced", "pos": [870, -460], "size": [300, 200], "flags": {}, "order": 19, "mode": 0, "inputs": [{"name": "noise", "type": "NOISE", "link": 15}, {"name": "guider", "type": "GUIDER", "link": 16}, {"name": "sampler", "type": "SAMPLER", "link": 17}, {"name": "sigmas", "type": "SIGMAS", "link": 18}, {"name": "latent_image", "type": "LATENT", "link": 19}], "outputs": [{"name": "output", "type": "LATENT", "links": [20]}, {"name": "denoised_output", "type": "LATENT", "links": []}], "properties": {"Node name for S&R": "SamplerCustomAdvanced"}, "widgets_values": [], "title": "Take 1: sample"}, {"id": 21, "type": "GmanskiH3SaveLatentAV", "pos": [1220, -460], "size": [340, 150], "flags": {}, "order": 20, "mode": 0, "inputs": [{"name": "latent", "type": "LATENT", "link": 20}, {"name": "project_folder", "type": "STRING", "link": null, "widget": {"name": "project_folder"}}, {"name": "clip_name", "type": "STRING", "link": null, "widget": {"name": "clip_name"}}, {"name": "notes", "type": "STRING", "link": null, "widget": {"name": "notes"}}], "outputs": [{"name": "latent", "type": "LATENT", "links": [21, 23, 37]}, {"name": "path", "type": "STRING", "links": []}], "properties": {"Node name for S&R": "GmanskiH3SaveLatentAV"}, "widgets_values": ["Gmanski/h3_extend", "take_001", ""], "title": "Take 1: save latent (extend it any time)"}, {"id": 22, "type": "VAEDecode", "pos": [1620, -460], "size": [300, 46], "flags": {}, "order": 21, "mode": 0, "inputs": [{"name": "samples", "type": "LATENT", "link": 21}, {"name": "vae", "type": "VAE", "link": 22}], "outputs": [{"name": "IMAGE", "type": "IMAGE", "links": [25, 54, 58]}], "properties": {"Node name for S&R": "VAEDecode"}, "widgets_values": [], "title": "Take 1: decode frames"}, {"id": 23, "type": "VAEDecodeAudio", "pos": [1620, -370], "size": [300, 46], "flags": {}, "order": 22, "mode": 0, "inputs": [{"name": "samples", "type": "LATENT", "link": 23}, {"name": "vae", "type": "VAE", "link": 24}], "outputs": [{"name": "AUDIO", "type": "AUDIO", "links": [26, 60]}], "properties": {"Node name for S&R": "VAEDecodeAudio"}, "widgets_values": [], "title": "Take 1: decode sound"}, {"id": 24, "type": "CreateVideo", "pos": [1980, -460], "size": [280, 126], "flags": {}, "order": 23, "mode": 0, "inputs": [{"name": "images", "type": "IMAGE", "link": 25}, {"name": "audio", "type": "AUDIO", "link": 26}, {"name": "fps", "type": "FLOAT", "link": null, "widget": {"name": "fps"}}, {"name": "bit_depth", "type": "COMBO", "link": null, "widget": {"name": "bit_depth"}}], "outputs": [{"name": "VIDEO", "type": "VIDEO", "links": [27]}], "properties": {"Node name for S&R": "CreateVideo"}, "widgets_values": [24, 8, "sRGB"], "title": "Take 1: join into a video"}, {"id": 25, "type": "SaveVideo", "pos": [1980, -290], "size": [280, 200], "flags": {}, "order": 24, "mode": 0, "inputs": [{"name": "video", "type": "VIDEO", "link": 27}, {"name": "filename_prefix", "type": "STRING", "link": null, "widget": {"name": "filename_prefix"}}, {"name": "format", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "format"}}, {"name": "codec", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "codec"}}], "outputs": [], "properties": {"Node name for S&R": "SaveVideo"}, "widgets_values": ["video/Gmanski/h3_extend/take_001", "auto", "auto", "auto"], "title": "Take 1: save"}, {"id": 26, "type": "MiniMaxH3ReferenceToVideo", "pos": [0, 160], "size": [460, 330], "flags": {}, "order": 25, "mode": 0, "inputs": [{"name": "clip", "type": "CLIP", "link": 28}, {"name": "vae", "type": "VAE", "link": 29}, {"name": "audio_vae", "type": "VAE", "link": 30}, {"name": "ref_images.ref_image_0", "type": "IMAGE", "link": 31}, {"name": "prompt", "type": "STRING", "link": null, "widget": {"name": "prompt"}}, {"name": "width", "type": "INT", "link": 32, "widget": {"name": "width"}}, {"name": "height", "type": "INT", "link": 33, "widget": {"name": "height"}}, {"name": "length", "type": "INT", "link": 34, "widget": {"name": "length"}}, {"name": "ref_image_size", "type": "COMBO", "link": null, "widget": {"name": "ref_image_size"}}], "outputs": [{"name": "CONDITIONING", "type": "CONDITIONING", "links": [35]}, {"name": "LATENT", "type": "LATENT", "links": [36]}], "properties": {"Node name for S&R": "MiniMaxH3ReferenceToVideo"}, "widgets_values": ["photorealistic style. <Picture 1> is the subject. They keep walking through the forest and stop to look up at the canopy, the camera slowly tilting up with them. Birdsong and soft footsteps.", 544, 960, 192, "max"], "title": "Take 2: H3 reference-to-video (prompt here)"}, {"id": 27, "type": "GmanskiH3LoadLatentAV", "pos": [0, 540], "size": [340, 110], "flags": {}, "order": 26, "mode": 0, "inputs": [{"name": "project_folder", "type": "STRING", "link": null, "widget": {"name": "project_folder"}}, {"name": "clip_name", "type": "STRING", "link": null, "widget": {"name": "clip_name"}}], "outputs": [{"name": "latent", "type": "LATENT", "links": []}, {"name": "frames", "type": "INT", "links": []}, {"name": "notes", "type": "STRING", "links": []}], "properties": {"Node name for S&R": "GmanskiH3LoadLatentAV"}, "widgets_values": ["Gmanski/h3_extend", "take_002"], "title": "NOT connected: Load a saved take to extend it later (wire to source_latent)", "color": "#533", "bgcolor": "#a33"}, {"id": 28, "type": "GmanskiH3PinWindow", "pos": [540, 160], "size": [380, 230], "flags": {}, "order": 27, "mode": 0, "inputs": [{"name": "positive", "type": "CONDITIONING", "link": 35}, {"name": "latent", "type": "LATENT", "link": 36}, {"name": "source_latent", "type": "LATENT", "link": 37}, {"name": "trim_info", "type": "STRING", "link": null}, {"name": "window_frames", "type": "INT", "link": null, "widget": {"name": "window_frames"}}, {"name": "take_from", "type": "COMBO", "link": null, "widget": {"name": "take_from"}}, {"name": "place", "type": "COMBO", "link": null, "widget": {"name": "place"}}, {"name": "mode", "type": "COMBO", "link": null, "widget": {"name": "mode"}}, {"name": "mask_ramp_tokens", "type": "INT", "link": null, "widget": {"name": "mask_ramp_tokens"}}, {"name": "context_noise", "type": "FLOAT", "link": null, "widget": {"name": "context_noise"}}], "outputs": [{"name": "positive", "type": "CONDITIONING", "links": [39]}, {"name": "latent", "type": "LATENT", "links": [44]}, {"name": "trim_info", "type": "STRING", "links": [51]}], "properties": {"Node name for S&R": "GmanskiH3PinWindow"}, "widgets_values": [39, "tail", "before", "masked", 0, 0.0], "title": "Take 2 starts on take 1's last 39 frames (H3 Pin Window)"}, {"id": 29, "type": "BasicGuider", "pos": [960, 160], "size": [290, 46], "flags": {}, "order": 28, "mode": 0, "inputs": [{"name": "model", "type": "MODEL", "link": 38}, {"name": "conditioning", "type": "CONDITIONING", "link": 39}], "outputs": [{"name": "GUIDER", "type": "GUIDER", "links": [41]}], "properties": {"Node name for S&R": "BasicGuider"}, "widgets_values": [], "title": "Take 2: guider"}, {"id": 30, "type": "RandomNoise", "pos": [960, 240], "size": [290, 82], "flags": {}, "order": 29, "mode": 0, "inputs": [{"name": "noise_seed", "type": "INT", "link": null, "widget": {"name": "noise_seed"}}], "outputs": [{"name": "NOISE", "type": "NOISE", "links": [40]}], "properties": {"Node name for S&R": "RandomNoise"}, "widgets_values": [12346, "randomize"], "title": "Take 2: seed"}, {"id": 31, "type": "SamplerCustomAdvanced", "pos": [1290, 160], "size": [300, 200], "flags": {}, "order": 30, "mode": 0, "inputs": [{"name": "noise", "type": "NOISE", "link": 40}, {"name": "guider", "type": "GUIDER", "link": 41}, {"name": "sampler", "type": "SAMPLER", "link": 42}, {"name": "sigmas", "type": "SIGMAS", "link": 43}, {"name": "latent_image", "type": "LATENT", "link": 44}], "outputs": [{"name": "output", "type": "LATENT", "links": [45]}, {"name": "denoised_output", "type": "LATENT", "links": []}], "properties": {"Node name for S&R": "SamplerCustomAdvanced"}, "widgets_values": [], "title": "Take 2: sample"}, {"id": 32, "type": "GmanskiH3SaveLatentAV", "pos": [1640, 160], "size": [340, 150], "flags": {}, "order": 31, "mode": 0, "inputs": [{"name": "latent", "type": "LATENT", "link": 45}, {"name": "project_folder", "type": "STRING", "link": null, "widget": {"name": "project_folder"}}, {"name": "clip_name", "type": "STRING", "link": null, "widget": {"name": "clip_name"}}, {"name": "notes", "type": "STRING", "link": null, "widget": {"name": "notes"}}], "outputs": [{"name": "latent", "type": "LATENT", "links": [46, 48]}, {"name": "path", "type": "STRING", "links": []}], "properties": {"Node name for S&R": "GmanskiH3SaveLatentAV"}, "widgets_values": ["Gmanski/h3_extend", "take_002", ""], "title": "Take 2: save latent"}, {"id": 33, "type": "VAEDecode", "pos": [2040, 160], "size": [300, 46], "flags": {}, "order": 32, "mode": 0, "inputs": [{"name": "samples", "type": "LATENT", "link": 46}, {"name": "vae", "type": "VAE", "link": 47}], "outputs": [{"name": "IMAGE", "type": "IMAGE", "links": [50]}], "properties": {"Node name for S&R": "VAEDecode"}, "widgets_values": [], "title": "Take 2: decode frames"}, {"id": 34, "type": "VAEDecodeAudio", "pos": [2040, 250], "size": [300, 46], "flags": {}, "order": 33, "mode": 0, "inputs": [{"name": "samples", "type": "LATENT", "link": 48}, {"name": "vae", "type": "VAE", "link": 49}], "outputs": [{"name": "AUDIO", "type": "AUDIO", "links": [52]}], "properties": {"Node name for S&R": "VAEDecodeAudio"}, "widgets_values": [], "title": "Take 2: decode sound"}, {"id": 35, "type": "GmanskiH3TrimPinned", "pos": [2400, 160], "size": [300, 90], "flags": {}, "order": 34, "mode": 0, "inputs": [{"name": "images", "type": "IMAGE", "link": 50}, {"name": "trim_info", "type": "STRING", "link": 51}, {"name": "audio", "type": "AUDIO", "link": 52}], "outputs": [{"name": "images", "type": "IMAGE", "links": [53]}, {"name": "audio", "type": "AUDIO", "links": [56, 61]}, {"name": "frames", "type": "INT", "links": []}], "properties": {"Node name for S&R": "GmanskiH3TrimPinned"}, "widgets_values": [], "title": "Take 2: drop the shared 39 frames"}, {"id": 36, "type": "GmanskiH3ColorMatch", "pos": [2400, 290], "size": [300, 170], "flags": {}, "order": 35, "mode": 0, "inputs": [{"name": "images", "type": "IMAGE", "link": 53}, {"name": "reference", "type": "IMAGE", "link": 54}, {"name": "mode", "type": "COMBO", "link": null, "widget": {"name": "mode"}}, {"name": "strength", "type": "FLOAT", "link": null, "widget": {"name": "strength"}}, {"name": "match_frames", "type": "INT", "link": null, "widget": {"name": "match_frames"}}, {"name": "min_shift", "type": "FLOAT", "link": null, "widget": {"name": "min_shift"}}], "outputs": [{"name": "images", "type": "IMAGE", "links": [55, 59]}, {"name": "report", "type": "STRING", "links": []}], "properties": {"Node name for S&R": "GmanskiH3ColorMatch"}, "widgets_values": ["target_frame", 1.0, 5, 0.5], "title": "Take 2: match take 1's colour at the join"}, {"id": 37, "type": "CreateVideo", "pos": [2760, 160], "size": [280, 126], "flags": {}, "order": 36, "mode": 0, "inputs": [{"name": "images", "type": "IMAGE", "link": 55}, {"name": "audio", "type": "AUDIO", "link": 56}, {"name": "fps", "type": "FLOAT", "link": null, "widget": {"name": "fps"}}, {"name": "bit_depth", "type": "COMBO", "link": null, "widget": {"name": "bit_depth"}}], "outputs": [{"name": "VIDEO", "type": "VIDEO", "links": [57]}], "properties": {"Node name for S&R": "CreateVideo"}, "widgets_values": [24, 8, "sRGB"], "title": "Take 2 (new part): join into a video"}, {"id": 38, "type": "SaveVideo", "pos": [2760, 330], "size": [280, 200], "flags": {}, "order": 37, "mode": 0, "inputs": [{"name": "video", "type": "VIDEO", "link": 57}, {"name": "filename_prefix", "type": "STRING", "link": null, "widget": {"name": "filename_prefix"}}, {"name": "format", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "format"}}, {"name": "codec", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "codec"}}], "outputs": [], "properties": {"Node name for S&R": "SaveVideo"}, "widgets_values": ["video/Gmanski/h3_extend/take_002_new_part", "auto", "auto", "auto"], "title": "Take 2 (new part): save"}, {"id": 39, "type": "GmanskiH3JoinClips", "pos": [2400, 560], "size": [300, 110], "flags": {}, "order": 38, "mode": 0, "inputs": [{"name": "images_a", "type": "IMAGE", "link": 58}, {"name": "images_b", "type": "IMAGE", "link": 59}, {"name": "audio_a", "type": "AUDIO", "link": 60}, {"name": "audio_b", "type": "AUDIO", "link": 61}], "outputs": [{"name": "images", "type": "IMAGE", "links": [62]}, {"name": "audio", "type": "AUDIO", "links": [63]}, {"name": "frames", "type": "INT", "links": []}], "properties": {"Node name for S&R": "GmanskiH3JoinClips"}, "widgets_values": [], "title": "Full take: take 1 + take 2"}, {"id": 40, "type": "CreateVideo", "pos": [2760, 560], "size": [280, 126], "flags": {}, "order": 39, "mode": 0, "inputs": [{"name": "images", "type": "IMAGE", "link": 62}, {"name": "audio", "type": "AUDIO", "link": 63}, {"name": "fps", "type": "FLOAT", "link": null, "widget": {"name": "fps"}}, {"name": "bit_depth", "type": "COMBO", "link": null, "widget": {"name": "bit_depth"}}], "outputs": [{"name": "VIDEO", "type": "VIDEO", "links": [64]}], "properties": {"Node name for S&R": "CreateVideo"}, "widgets_values": [24, 8, "sRGB"], "title": "Full take: join into a video"}, {"id": 41, "type": "SaveVideo", "pos": [2760, 730], "size": [280, 200], "flags": {}, "order": 40, "mode": 0, "inputs": [{"name": "video", "type": "VIDEO", "link": 64}, {"name": "filename_prefix", "type": "STRING", "link": null, "widget": {"name": "filename_prefix"}}, {"name": "format", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "format"}}, {"name": "codec", "type": "COMFY_DYNAMICCOMBO_V3", "link": null, "widget": {"name": "codec"}}], "outputs": [], "properties": {"Node name for S&R": "SaveVideo"}, "widgets_values": ["video/Gmanski/h3_extend/full_take", "auto", "auto", "auto"], "title": "Full take: save"}], "links": [[1, 5, 0, 6, 0, "FLOAT"], [2, 7, 0, 8, 0, "FLOAT"], [3, 9, 0, 10, 0, "MODEL"], [4, 10, 0, 11, 0, "MODEL"], [5, 11, 0, 16, 0, "MODEL"], [6, 12, 0, 17, 0, "CLIP"], [7, 13, 0, 17, 1, "VAE"], [8, 14, 0, 17, 2, "VAE"], [9, 2, 0, 17, 3, "IMAGE"], [10, 3, 0, 17, 5, "INT"], [11, 4, 0, 17, 6, "INT"], [12, 6, 1, 17, 7, "INT"], [13, 11, 0, 18, 0, "MODEL"], [14, 17, 0, 18, 1, "CONDITIONING"], [15, 19, 0, 20, 0, "NOISE"], [16, 18, 0, 20, 1, "GUIDER"], [17, 15, 0, 20, 2, "SAMPLER"], [18, 16, 0, 20, 3, "SIGMAS"], [19, 17, 1, 20, 4, "LATENT"], [20, 20, 0, 21, 0, "LATENT"], [21, 21, 0, 22, 0, "LATENT"], [22, 13, 0, 22, 1, "VAE"], [23, 21, 0, 23, 0, "LATENT"], [24, 14, 0, 23, 1, "VAE"], [25, 22, 0, 24, 0, "IMAGE"], [26, 23, 0, 24, 1, "AUDIO"], [27, 24, 0, 25, 0, "VIDEO"], [28, 12, 0, 26, 0, "CLIP"], [29, 13, 0, 26, 1, "VAE"], [30, 14, 0, 26, 2, "VAE"], [31, 2, 0, 26, 3, "IMAGE"], [32, 3, 0, 26, 5, "INT"], [33, 4, 0, 26, 6, "INT"], [34, 8, 1, 26, 7, "INT"], [35, 26, 0, 28, 0, "CONDITIONING"], [36, 26, 1, 28, 1, "LATENT"], [37, 21, 0, 28, 2, "LATENT"], [38, 11, 0, 29, 0, "MODEL"], [39, 28, 0, 29, 1, "CONDITIONING"], [40, 30, 0, 31, 0, "NOISE"], [41, 29, 0, 31, 1, "GUIDER"], [42, 15, 0, 31, 2, "SAMPLER"], [43, 16, 0, 31, 3, "SIGMAS"], [44, 28, 1, 31, 4, "LATENT"], [45, 31, 0, 32, 0, "LATENT"], [46, 32, 0, 33, 0, "LATENT"], [47, 13, 0, 33, 1, "VAE"], [48, 32, 0, 34, 0, "LATENT"], [49, 14, 0, 34, 1, "VAE"], [50, 33, 0, 35, 0, "IMAGE"], [51, 28, 2, 35, 1, "STRING"], [52, 34, 0, 35, 2, "AUDIO"], [53, 35, 0, 36, 0, "IMAGE"], [54, 22, 0, 36, 1, "IMAGE"], [55, 36, 0, 37, 0, "IMAGE"], [56, 35, 1, 37, 1, "AUDIO"], [57, 37, 0, 38, 0, "VIDEO"], [58, 22, 0, 39, 0, "IMAGE"], [59, 36, 0, 39, 1, "IMAGE"], [60, 23, 0, 39, 2, "AUDIO"], [61, 35, 1, 39, 3, "AUDIO"], [62, 39, 0, 40, 0, "IMAGE"], [63, 39, 1, 40, 1, "AUDIO"], [64, 40, 0, 41, 0, "VIDEO"]], "groups": [], "config": {}, "extra": {"ds": {"scale": 0.62, "offset": [1480, 420]}, "gmanski_template": "flow-extend", "generator": "scripts/build_gmanski_flow_extend_workflow.py", "source": "https://gmanski.com/workflows/flow-extend"}, "version": 0.4}