{
  "1": {
    "class_type": "UNETLoader",
    "_comment": "Hybrid FL2VA+REF2VA int8. NOTE: pack README specifies band b25-49; this repo already had b30-49 on disk and we start there to avoid a redundant 21GB fetch. If output is unusable, fetch b25-49 and re-test.",
    "inputs": {
      "unet_name": "minimax_h3_hybrid_fl2va_ref2va_b30-49-int8.safetensors",
      "weight_dtype": "default"
    }
  },
  "2": {
    "class_type": "CLIPLoader",
    "inputs": {
      "clip_name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
      "type": "minimax",
      "device": "default"
    }
  },
  "3": {
    "class_type": "VAELoader",
    "_comment": "EXPERIMENTAL one-frame image VAE. NOT the video VAE - the one-frame path needs a dedicated image VAE (video VAE stays for multi-frame workflows).",
    "inputs": {
      "vae_name": "minimax_h3_t1_image_vae_step1597.safetensors"
    }
  },
  "15": {
    "class_type": "LoraLoaderModelOnly",
    "_comment": "Turbo adapter required by the 'hybrid single image | ER-SDE 8 steps' profile. Byte-identical to this repo's older minimax_h3_fl2v_lightx2v_turbo_8step_v1.0_comfy.safetensors (same sha256); the pack's name is used here.",
    "inputs": {
      "model": [
        "1",
        0
      ],
      "lora_name": "minimax_h3_fl2v_turbo_8step_v1.0_comfyui_bf16.safetensors",
      "strength_model": 0.75
    }
  },
  "16": {
    "class_type": "LoraLoaderModelOnly",
    "_comment": "Detail adapter, deliberately 0.5. Pack docs: 1.0 over-preserved Picture 1 and SUPPRESSED the requested pose; 0.5 kept identity while letting Picture 2's pose transfer. This is the identity<->scene-change knob.",
    "inputs": {
      "model": [
        "15",
        0
      ],
      "lora_name": "MaxiMin-HHH-R2V-ThisIsFine_LoRA_V0_1.safetensors",
      "strength_model": 0.5
    }
  },
  "101": {
    "class_type": "LoadImage",
    "_comment": "<Picture 1> reference. ONE image per socket - an IMAGE batch would collapse to its first frame and break <Picture N> numbering.",
    "inputs": {
      "image": "dockaiq-input-450050-input_image-ref-3shot.webp",
      "upload": "image"
    }
  },
  "ow": {
    "class_type": "PrimitiveInt",
    "inputs": {
      "value": 768
    },
    "_meta": {
      "title": "출력 폭 — ★러너가 제출값을 여기 넣는다(registry width)"
    }
  },
  "oh": {
    "class_type": "PrimitiveInt",
    "inputs": {
      "value": 1344
    },
    "_meta": {
      "title": "출력 높이 — ★러너가 제출값을 여기 넣는다(registry height)"
    }
  },
  "ux": {
    "class_type": "PrimitiveFloat",
    "inputs": {
      "value": 2.0
    },
    "_meta": {
      "title": "내부 배율 — ★붕괴하면 여기 하나만 낮춘다(registry `canvas_scale` 로도 잡별 지정 가능)"
    }
  },
  "cw": {
    "class_type": "ComfyMathExpression",
    "inputs": {
      "expression": "round(a * b / 32) * 32",
      "values.a": [
        "ow",
        0
      ],
      "values.b": [
        "ux",
        0
      ]
    },
    "_meta": {
      "title": "캔버스 폭 = 출력값 × 배율 → **32 격자로 스냅**(노드 step=32)"
    }
  },
  "ch": {
    "class_type": "ComfyMathExpression",
    "inputs": {
      "expression": "round(a * b / 32) * 32",
      "values.a": [
        "oh",
        0
      ],
      "values.b": [
        "ux",
        0
      ]
    },
    "_meta": {
      "title": "캔버스 높이 = 출력값 × 배율 → **32 격자로 스냅**(노드 step=32)"
    }
  },
  "5": {
    "class_type": "H3ReferenceEditPrepare",
    "_comment": "Vertical 768x1344 by default - yusti's still spec. The pack's examples use 1344x768 (landscape); copying that verbatim would lay the subject down. width/height are opened as top-level runner inputs, never baked.",
    "inputs": {
      "clip": [
        "2",
        0
      ],
      "vae": [
        "3",
        0
      ],
      "source_image": [
        "101",
        0
      ],
      "edit_instruction": "A head-and-shoulders portrait of the woman from the reference: her whole head sits inside the frame with a little space above her hair, and the frame ends just below her collarbones, so her shoulders and the top of her chest are visible. Her expression is completely neutral — lips closed and relaxed, no smile, eyes open and looking straight into the lens, the calm unposed face of a model between shots. Photorealistic, live-action film still, 85mm portrait lens, natural skin texture with visible pores. A plain solid black background, completely empty. Soft even studio light on her face from the front, falling off into the black. She wears a plain white spaghetti-strap camisole.",
      "width": [
        "cw",
        1
      ],
      "height": [
        "ch",
        1
      ],
      "quality_profile": "single image | 1 frame (image VAE)",
      "source_fidelity": 0.6,
      "source_fit": "crop_center",
      "reference_detail": "max_identity_2048",
      "optimize_for_still": true
    }
  },
  "6": {
    "class_type": "RandomNoise",
    "inputs": {
      "noise_seed": 2121630558
    }
  },
  "8": {
    "class_type": "H3ImageSamplingPreset",
    "inputs": {
      "model": [
        "16",
        0
      ],
      "sampling_profile": "custom | use controls below",
      "custom_sampler": "er_sde",
      "custom_scheduler": "sgm_uniform",
      "custom_steps": 8,
      "custom_denoise": 1.0,
      "custom_shift_video": 12.0,
      "custom_shift_audio": 3.0
    }
  },
  "7": {
    "class_type": "BasicGuider",
    "inputs": {
      "model": [
        "8",
        0
      ],
      "conditioning": [
        "5",
        0
      ]
    }
  },
  "10": {
    "class_type": "SamplerCustomAdvanced",
    "inputs": {
      "noise": [
        "6",
        0
      ],
      "guider": [
        "7",
        0
      ],
      "sampler": [
        "8",
        1
      ],
      "sigmas": [
        "8",
        2
      ],
      "latent_image": [
        "5",
        1
      ]
    }
  },
  "11": {
    "class_type": "H3ImageDecode",
    "inputs": {
      "samples": [
        "10",
        0
      ],
      "vae": [
        "3",
        0
      ]
    }
  },
  "12": {
    "class_type": "H3ImageFrameSelector",
    "inputs": {
      "frames": [
        "11",
        0
      ],
      "source_image": [
        "5",
        2
      ],
      "recommended_index": [
        "11",
        3
      ],
      "strategy": "decode_recommended",
      "manual_index": 0,
      "skip_first_frames": 0,
      "candidate_start": 0.0,
      "candidate_end": 1.0,
      "similarity_weight": 0.35,
      "top_k": 1
    }
  },
  "dn": {
    "class_type": "ImageScale",
    "inputs": {
      "image": [
        "12",
        0
      ],
      "upscale_method": "lanczos",
      "width": [
        "ow",
        0
      ],
      "height": [
        "oh",
        0
      ],
      "crop": "disabled"
    },
    "_meta": {
      "title": "최종 축소 — ★lanczos(축소용) · 목표는 제출값 그대로"
    }
  },
  "13": {
    "class_type": "SaveImage",
    "inputs": {
      "images": [
        "dn",
        0
      ],
      "filename_prefix": "i2i-minimax-h3-refsingle-5090-1_j450050"
    }
  }
}