{
  "1": {
    "class_type": "UNETLoader",
    "inputs": {
      "unet_name": "minimax_h3_ref2va_pruned_int8_convrot.safetensors",
      "weight_dtype": "default"
    }
  },
  "m0": {
    "class_type": "MiniMaxH3TurboLoRA",
    "inputs": {
      "lora_name": "minimax_h3_fl2v_lightx2v_turbo_8step_v1.0_comfy.safetensors",
      "strength": 1.0,
      "low_vram": false,
      "model": [
        "1",
        0
      ]
    },
    "_comment": "lightx2v Minimax-h3 Turbo **8step v1.0** 단독 @1.0 (2026-08-12 `t_4e40bb6cf50d` · CEO 승격 지시). 구 `ckpt850`(4step) 에서 교체 — 격자 4판 실측에서 **8step·캐시ON 이 최적**이었다: 6step·캐시OFF 대비 **80초 빠르고**(521~525s vs 601s) 오디오·화질이 같거나 낫다. ★6step·캐시ON 은 **오디오가 갈라진다**(CEO 육안 \"목소리 갈라지네\") — 속도만 보고 6step 으로 내리지 말 것."
  },
  "L2": {
    "class_type": "LoraLoaderModelOnly",
    "inputs": {
      "lora_name": "MysticXXX_MMH3-V4.safetensors",
      "strength_model": 0.4,
      "model": [
        "m0",
        0
      ]
    },
    "_comment": "Mystic XXX `MysticXXX_MMH3-V4` **0.4** — 2026-09-06 `t_0ae98911f9cb` 신설 슬롯. 체인은 `m0(터보) → L2(mystic 0.4) → m1(sage)`. ★★2026-09-10 CEO 판정으로 **realism(구 L1) 을 이 판에서 걷었다**(`t_2ac5b03c5db2`) — 사유 = *\"mystic 과 realism 이 같이 적용되면 영상 품질이 망가지더라. 각각 쓰면 괜찮은데\"*. ⇒ 종전 이 자리에 있던 *\"realism 을 빼고 그 칸을 쓰지 않았다\"* 는 **그 판정 이전의 입장**이라 걷었다 (이 필드는 실행 `workflow.json` 에까지 실리므로, 낡은 입장을 현재형으로 남기면 읽는 사람이 **누락으로 읽고 되넣는다**). ★realism 자체가 기각된 게 아니라 **Mystic 과의 동시 적용**이 기각됐다. ★값 0.4 의 근거 = 형제 `ref2va-minimax-h3-mystic-5090-1` 의 저작값과 같게 둔다(같은 파일을 두 판이 다른 강도로 쓰면 「어느 쪽이 정본인가」가 생긴다). 제작자 권장은 0.5~0.9 라 우리 값은 그 아래이고, 강도 확정은 CEO 육안 별건이다. ★끄려면 `spec_override.toggles {\"lora_2\": false}` — 그러면 러너 splice 가 `m1.model` 을 `[\"m0\", 0]` 로 되돌려 **LoRA 0장(터보만)** 체인이 된다."
  },
  "m1": {
    "class_type": "MiniMaxH3MemoryEfficientSageAttentionPatch",
    "inputs": {
      "model": [
        "L2",
        0
      ]
    }
  },
  "2": {
    "class_type": "CLIPLoader",
    "inputs": {
      "clip_name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
      "type": "minimax",
      "device": "default"
    }
  },
  "3": {
    "class_type": "VAELoader",
    "inputs": {
      "vae_name": "minimax_h3_video_vae_fp16.safetensors"
    }
  },
  "4": {
    "class_type": "VAELoader",
    "inputs": {
      "vae_name": "minimax_h3_audio_vae_fp32.safetensors"
    }
  },
  "101": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "dockaiq-input-457641-input_image-373b128b-4135-48ab-ba6b-d2284eb23fe3.webp"
    }
  },
  "102": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "dockaiq-input-457641-picture_2-ref-3shot.webp"
    }
  },
  "103": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "dockaiq-input-457641-picture_3-3880888d-5900-4a22-9749-3f92d848a988-outer.webp"
    }
  },
  "104": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "dockaiq-input-457641-picture_4-ref-3shot.webp"
    }
  },
  "105": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "dockaiq-input-457641-picture_5-54ffff18-0eed-4a03-b500-6e76aeab017e-outer.webp"
    }
  },
  "6": {
    "class_type": "MiniMaxH3ReferenceToVideo",
    "inputs": {
      "prompt": "<Picture 1> is the location; keep its layout and furnishings, surfaces clear of small objects.\n<Picture 2> is <Subject 1> — this exact person; keep the same face and hair. <Picture 3> is <Subject 1>'s clothing sheet.\n<Picture 4> is <Subject 2> — this exact person; keep the same face and hair. <Picture 5> is <Subject 2>'s clothing sheet.\n\n<Subject 1> is the woman with dark brown long wavy hair. She is lying on her side on the bed in the center, in front of <Subject 2>, her back to him, her upper leg lifted and laid over his hip, her body pressed close against him, facing away from the camera and not turning her head or body toward it, wearing the black sheer thigh-high stockings pulled down and bunched at the ankles in <Picture 3>; her chest is bare and she is bare from the waist down.\n<Subject 2> is the man with black short straight hair. He is lying on his side on the bed directly behind <Subject 1>, his chest against her back, one arm wrapped around her waist, his body pressed close against her, facing her back and away from the camera, wearing the worn black hoodie and the worn leather bracelet with the faded brown strap in <Picture 5>; he is bare from the waist down.\n\n[SHOT 1] The camera watches from the side and slightly above the bed, a few steps back from the two of them, both of them lying on their sides in the center of the frame with <Subject 1> in front and <Subject 2> behind her, neither of them turned toward the camera. <Subject 1> lies on her side with <Subject 2> behind her, being penetrated from behind, his arm around her waist, her upper leg lifted and laid over his hip, her hands gripping his forearm. She lifts her upper leg and lays it over his hip, then lets her body go into the arm wrapped around her and presses the nape of her neck against his jaw, and a short breath escapes her. Daylight from the window runs along the side where their bodies meet, sweat-damp waves of her hair spread across the pillow, and the black stockings bunched at her ankles push and fold against the bedsheet.\n\n<Subject 1> (<Picture 2>) is the ONLY one who speaks in this shot, speaking to <Subject 2> and turning her head slightly back toward him, her tone teasing and breathless, a small laugh caught under the words: <d>[Korean] 옆으로… 이건 좀 반칙인데.</d> While she speaks, <Subject 2> keeps his mouth closed.\n\nShe tips her head back and buries her cheek against his shoulder, a low moan slipping out that she cannot hold back, and her fingertips tighten on his forearm. Then, still holding his forearm, her tone softening into a low, urging murmur: <d>[Korean] 하아… 유준 씨, 거기, 계속… 응, 계속 그렇게.</d> While she speaks, <Subject 2> keeps his mouth closed.\n\nMatch visible mouth motion to each spoken phrase, then let the mouth rest naturally between phrases. Speak these two lines in order as one flowing thought, with natural breath spacing and one brief hesitation. Do not repeat, rewrite, add, sing, chant, or narrate the words.\n\nSubtle early reflections from nearby walls. The dialogue is naturally embedded in the environment rather than sounding close-miked or studio-recorded. Soft environmental ambience continuously fills the space. Very subtle natural reverberation. No artificial narration quality.\n\nDialogue and faint room tone only. No male reply, no music, no lyrics, no singing, no subtitles, no captions, no text.\n\nNo text overlays, no subtitles, no watermark, no extra people in the background, no camera shake, no jump cuts, no scene changes, no split screen.",
      "width": 512,
      "height": 896,
      "length": 294,
      "ref_image_size": "match",
      "clip": [
        "2",
        0
      ],
      "vae": [
        "3",
        0
      ],
      "audio_vae": [
        "4",
        0
      ],
      "ref_images.ref_image_0": [
        "101",
        0
      ],
      "ref_images.ref_image_1": [
        "102",
        0
      ],
      "ref_images.ref_image_2": [
        "103",
        0
      ],
      "ref_images.ref_image_3": [
        "104",
        0
      ],
      "ref_images.ref_image_4": [
        "105",
        0
      ]
    }
  },
  "7": {
    "class_type": "BasicGuider",
    "inputs": {
      "model": [
        "mS",
        0
      ],
      "conditioning": [
        "6",
        0
      ]
    }
  },
  "8": {
    "inputs": {
      "sampler_name": "er_sde"
    },
    "class_type": "KSamplerSelect",
    "_meta": {
      "title": "KSampler (선택)"
    }
  },
  "9": {
    "class_type": "BasicScheduler",
    "inputs": {
      "scheduler": "beta",
      "steps": 8,
      "denoise": 1.0,
      "model": [
        "mS",
        0
      ]
    }
  },
  "10": {
    "class_type": "RandomNoise",
    "inputs": {
      "noise_seed": 263423884
    }
  },
  "11": {
    "class_type": "SamplerCustomAdvanced",
    "inputs": {
      "noise": [
        "10",
        0
      ],
      "guider": [
        "7",
        0
      ],
      "sampler": [
        "8",
        0
      ],
      "sigmas": [
        "9",
        0
      ],
      "latent_image": [
        "6",
        1
      ]
    }
  },
  "12": {
    "class_type": "VAEDecode",
    "inputs": {
      "samples": [
        "11",
        0
      ],
      "vae": [
        "vb",
        0
      ]
    }
  },
  "13": {
    "class_type": "VAEDecodeAudio",
    "inputs": {
      "samples": [
        "11",
        0
      ],
      "vae": [
        "4",
        0
      ]
    }
  },
  "14": {
    "class_type": "CreateVideo",
    "inputs": {
      "fps": 24,
      "bit_depth": 8,
      "images": [
        "wm",
        0
      ],
      "audio": [
        "13",
        0
      ]
    }
  },
  "15": {
    "class_type": "SaveVideo",
    "inputs": {
      "filename_prefix": "h3_r2v_v384_j457641",
      "format": "auto",
      "video": [
        "14",
        0
      ],
      "codec": "auto"
    }
  },
  "vb": {
    "class_type": "H3VideoVAEBatchDecode",
    "inputs": {
      "vae": [
        "3",
        0
      ],
      "enabled": true
    }
  },
  "mL": {
    "inputs": {
      "head_chunks": 4,
      "model": [
        "m1",
        0
      ]
    },
    "class_type": "MiniMaxLowVRAMAttention",
    "_meta": {
      "title": "MiniMax H3 Low VRAM Attention"
    }
  },
  "mC": {
    "inputs": {
      "chunks": 2,
      "seq_threshold": 4096,
      "model": [
        "mL",
        0
      ]
    },
    "class_type": "MiniMaxChunkFeedForward",
    "_meta": {
      "title": "MiniMax H3 Chunk FeedForward"
    }
  },
  "mS": {
    "inputs": {
      "shift_video": 12.0,
      "shift_audio": 6.0,
      "model": [
        "mC",
        0
      ]
    },
    "class_type": "MiniMaxH3SigmaShift",
    "_meta": {
      "title": "ModelSamplingMiniMaxH3"
    }
  },
  "wm": {
    "inputs": {
      "images": [
        "12",
        0
      ],
      "line1": "AI",
      "line2": "yusti.net",
      "height_px": 12,
      "alpha": 0.85,
      "margin_px": 13,
      "shadow_px": 1,
      "line3": "2e62c3fd"
    },
    "class_type": "DockContentWatermark",
    "_meta": {
      "title": "법정 표시 워터마크 (t_88479c752c44)"
    }
  }
}