{
  "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-435914-input_image-ref-3shot.webp",
      "upload": "image"
    }
  },
  "102": {
    "class_type": "LoadImage",
    "_comment": "<Picture 2> reference. ONE image per socket - an IMAGE batch would collapse to its first frame and break <Picture N> numbering.",
    "inputs": {
      "image": "dockaiq-input-435914-picture_2-59f963f7-29f1-47f4-810e-de3635c79b3c.webp",
      "upload": "image"
    }
  },
  "103": {
    "class_type": "LoadImage",
    "_comment": "<Picture 3> reference. ONE image per socket - an IMAGE batch would collapse to its first frame and break <Picture N> numbering.",
    "inputs": {
      "image": "dockaiq-input-435914-picture_3-14c9fa9e-4883-4167-ab29-decbaf942b35-outer.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
      ],
      "reference_image_2": [
        "102",
        0
      ],
      "reference_image_3": [
        "103",
        0
      ],
      "edit_instruction": "<Picture 1> is 도밍, the only person in the frame. Follow <Picture 1> exactly for her face, her hair and her body — change nothing about her appearance. 도밍 is framed from head to mid-thigh, legs cropped below the thighs, subject fills the frame, face in sharp focus with crisp skin and eye detail. Place 도밍 inside the 숙소 현관 안쪽 shown in <Picture 2>, with a low wooden shoe rack and a small round mirror visible behind 도밍, matching its lighting, background and depth. This is a single still photograph: hold one motionless pose, framed as described below. Do not render a full-length shot: the frame ends at mid-thigh and the face is large and sharp — no small distant face, no visible feet or shoes.\n\ncowboy shot, straight-on, standing, hand on hip, cropped legs, closed-mouth smile\n\n[OUTFIT REFERENCE SHEETS]\nHOW TO READ <Picture 3>: it is a product reference sheet divided into separate panels on a plain studio backdrop. Any grey headless mannequin form in it is only a display stand — copy the garments and jewellery, NEVER the grey mannequin, and never put a grey body in the video.\n<Picture 3> shows, from left to right: ivory ribbed knit wrap cardigan, thin ribbed texture, waist tie front, sleeves tied at waist, hip length; brown wide-leg cotton pants, elastic waistband, loose fit, ankle length, side pockets worn front view, the SAME garments worn back view, then ivory cotton ankle socks; ivory canvas sneakers, then an intentionally empty panel, then silver minimalist hoop earrings, silver thin chain bracelet.\nFRAMING OVERRIDES THE SHEET: the sheet shows the whole outfit, but this photograph is cropped at mid-thigh — feet and shoes are outside the frame. Within that head-to-mid-thigh frame, WHAT 도밍 WEARS.\nShe starts dressed in ivory ribbed knit wrap cardigan, thin ribbed texture, waist tie front, sleeves tied at waist, hip length, brown wide-leg cotton pants, elastic waistband, loose fit, ankle length, side pockets from <Picture 3>.\nON HER: silver minimalist hoop earrings, silver thin chain bracelet — all exactly as shown in <Picture 3>.\nShe does NOT wear any coat. The coat panel in <Picture 3> is intentionally empty — ignore that panel completely.\nno grey mannequin, no headless figure, no dress form, no coat, no visible underwear, no exposed lingerie, no cropped or lifted outer clothing, no fully nude body, no exposed nipples, no exposed genitals.\nThis is a single still image, not a scene: the underwear is worn but COMPLETELY COVERED by the outer clothing and NOT VISIBLE anywhere in the image.",
      "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": 1707489429
    }
  },
  "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_j435914"
    }
  }
}