Add Image v2 Refine for on-device regional edits.

Mask painter and denoise strength sit beside Edit and Compose. The canned hand/chest prompt helper is gone so that text stays yours.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-28 22:03:20 -05:00
co-authored by Cursor
parent 21fe2412f9
commit a2895b8054
10 changed files with 825 additions and 56 deletions
+204
View File
@@ -0,0 +1,204 @@
{
"1": {
"inputs": { "image": "" },
"class_type": "LoadImage",
"_meta": { "title": "Load Canvas" }
},
"30": {
"inputs": { "image": "" },
"class_type": "LoadImage",
"_meta": { "title": "Load Mask" }
},
"2": {
"inputs": {
"upscale_method": "lanczos",
"megapixels": 1,
"resolution_steps": 1,
"image": ["1", 0]
},
"class_type": "ImageScaleToTotalPixels",
"_meta": { "title": "Scale Canvas" }
},
"3": {
"inputs": { "image": ["2", 0] },
"class_type": "GetImageSize",
"_meta": { "title": "Get Canvas Size" }
},
"31": {
"inputs": {
"upscale_method": "lanczos",
"width": ["3", 0],
"height": ["3", 1],
"crop": "disabled",
"image": ["30", 0]
},
"class_type": "ImageScale",
"_meta": { "title": "Resize Mask to Canvas" }
},
"32": {
"inputs": {
"channel": "red",
"image": ["31", 0]
},
"class_type": "ImageToMask",
"_meta": { "title": "Mask Channel" }
},
"34": {
"inputs": {
"expand": 6,
"tapered_corners": true,
"mask": ["32", 0]
},
"class_type": "GrowMask",
"_meta": { "title": "Grow Mask" }
},
"4": {
"inputs": {
"unet_name": "flux-2-klein-base-9b-fp8.safetensors",
"weight_dtype": "default"
},
"class_type": "UNETLoader",
"_meta": { "title": "Load Flux.2 Klein 9B Base" }
},
"5": {
"inputs": {
"clip_name": "qwen_3_8b_fp8mixed.safetensors",
"type": "flux2",
"device": "default"
},
"class_type": "CLIPLoader",
"_meta": { "title": "Load Qwen 3 8B CLIP" }
},
"6": {
"inputs": { "vae_name": "full_encoder_small_decoder.safetensors" },
"class_type": "VAELoader",
"_meta": { "title": "Load Klein VAE" }
},
"7": {
"inputs": {
"lora_name": "klein_snofs_v1_4.safetensors",
"strength_model": 0.65,
"strength_clip": 0.3,
"model": ["4", 0],
"clip": ["5", 0]
},
"class_type": "LoraLoader",
"_meta": { "title": "SNOFS" }
},
"8": {
"inputs": {
"lora_name": "Flux2-Klein-9B-consistency-V2.safetensors",
"strength_model": 0.7,
"strength_clip": 0.7,
"model": ["7", 0],
"clip": ["7", 1]
},
"class_type": "LoraLoader",
"_meta": { "title": "Consistency" }
},
"9": {
"inputs": {
"text": "",
"clip": ["8", 1]
},
"class_type": "CLIPTextEncode",
"_meta": { "title": "Positive Prompt" }
},
"10": {
"inputs": {
"text": "",
"clip": ["8", 1]
},
"class_type": "CLIPTextEncode",
"_meta": { "title": "Negative Prompt" }
},
"11": {
"inputs": {
"pixels": ["2", 0],
"vae": ["6", 0]
},
"class_type": "VAEEncode",
"_meta": { "title": "VAE Encode Canvas" }
},
"12": {
"inputs": {
"conditioning": ["9", 0],
"latent": ["11", 0]
},
"class_type": "ReferenceLatent",
"_meta": { "title": "Reference Latent +" }
},
"13": {
"inputs": {
"conditioning": ["10", 0],
"latent": ["11", 0]
},
"class_type": "ReferenceLatent",
"_meta": { "title": "Reference Latent -" }
},
"33": {
"inputs": {
"samples": ["11", 0],
"mask": ["34", 0]
},
"class_type": "SetLatentNoiseMask",
"_meta": { "title": "Mask Latent Noise" }
},
"15": {
"inputs": { "noise_seed": 1 },
"class_type": "RandomNoise",
"_meta": { "title": "RandomNoise" }
},
"16": {
"inputs": { "sampler_name": "euler" },
"class_type": "KSamplerSelect",
"_meta": { "title": "KSamplerSelect" }
},
"17": {
"inputs": {
"scheduler": "simple",
"steps": 24,
"denoise": 0.35,
"model": ["8", 0]
},
"class_type": "BasicScheduler",
"_meta": { "title": "BasicScheduler" }
},
"18": {
"inputs": {
"cfg": 4,
"model": ["8", 0],
"positive": ["12", 0],
"negative": ["13", 0]
},
"class_type": "CFGGuider",
"_meta": { "title": "CFG Guider" }
},
"19": {
"inputs": {
"noise": ["15", 0],
"guider": ["18", 0],
"sampler": ["16", 0],
"sigmas": ["17", 0],
"latent_image": ["33", 0]
},
"class_type": "SamplerCustomAdvanced",
"_meta": { "title": "SamplerCustomAdvanced" }
},
"20": {
"inputs": {
"samples": ["19", 0],
"vae": ["6", 0]
},
"class_type": "VAEDecode",
"_meta": { "title": "VAE Decode" }
},
"21": {
"inputs": {
"filename_prefix": "aigen-v2-refine",
"images": ["20", 0]
},
"class_type": "SaveImage",
"_meta": { "title": "Save Image" }
}
}