diff --git a/benchmarks/flux2klein/README.md b/benchmarks/flux2klein/README.md index 591c3d3..cb75fb2 100644 --- a/benchmarks/flux2klein/README.md +++ b/benchmarks/flux2klein/README.md @@ -39,5 +39,6 @@ Do not call a workflow fully optimal from one benchmark image. Use these batches ## Latest review +- 2026-08-23 overnight single-image smoke: clean full-body white-background restage with strong identity retention and a tidy silhouette. Keep `runs/2026-08-23T02-05-24-860Z-single-smoke/` ready for the 6am pass; no stronger promotion yet. - 2026-08-21 overnight single-image smoke: clean full-body studio restage on a pure white background, with good identity retention and a tidy silhouette. Treat it as the current benchmark winner for now, but keep one more smoke test queued before any stronger promotion. -- 2026-08-22 overnight single-image smoke: another clean white-background restage with strong identity retention, a tidy full-body silhouette, and no obvious background clutter. Keep the new output in `runs/2026-08-22T02-04-08-861Z-single-smoke/` as the current winner, but queue one more smoke test before any stronger promotion. +- 2026-08-22 overnight single-image smoke: another clean white-background restage with strong identity retention, a tidy full-body silhouette, and no obvious background clutter. It was the prior winner before the 2026-08-23 run. diff --git a/benchmarks/flux2klein/overnight-state.json b/benchmarks/flux2klein/overnight-state.json index 212a59b..cdf4bf9 100644 --- a/benchmarks/flux2klein/overnight-state.json +++ b/benchmarks/flux2klein/overnight-state.json @@ -5,14 +5,15 @@ "cases": [ { "workflow": "models/flux2klein/image-edit-9b-distilled/workflow.json", - "input": "benchmarks/flux2klein/runs/2026-08-22T02-04-08-861Z-single-smoke/cases/case01/input-1.jpg", - "output": "benchmarks/flux2klein/runs/2026-08-22T02-04-08-861Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00002_.png", - "runRecord": "benchmarks/flux2klein/runs/2026-08-22T02-04-08-861Z-single-smoke/cases/case01/run-record.json", - "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-22T02-04-08-861Z-single-smoke/cases/case01/resolved-prompt.json", - "promptId": "8a4650e9-e0e1-4984-a548-b01ce959f25e", + "input": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/input-1.jpg", + "output": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png", + "runRecord": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/run-record.json", + "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/resolved-prompt.json", + "promptId": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", "status": "success", "optimizedPaths": [ - "optimized/notes/minimax.md" + "optimized/image-edit/flux2klein-9b-fp8-edit-master", + "optimized/notes/flux2klein.md" ], "overrides": { "steps": 4, @@ -23,11 +24,12 @@ } } ], - "reviewPending": false, - "verdict": "keep winner for now; strong identity and clean silhouette; queue one more smoke", - "date": "2026-08-22T02:05:12.171Z", + "reviewPending": true, + "verdict": null, + "date": "2026-08-23T02:06:31.524Z", "optimizedPaths": [ - "optimized/notes/minimax.md" + "optimized/image-edit/flux2klein-9b-fp8-edit-master", + "optimized/notes/flux2klein.md" ], "reviewedAt": "2026-08-22T05:00:00Z" } diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png new file mode 100644 index 0000000..ac495bc Binary files /dev/null and b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png differ diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/history.json b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/history.json new file mode 100644 index 0000000..00d4c3f --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/history.json @@ -0,0 +1,319 @@ +{ + "prompt": [ + 85, + "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + { + "61": { + "class_type": "KSamplerSelect", + "inputs": { + "sampler_name": "euler" + }, + "_meta": { + "title": "KSamplerSelect" + } + }, + "62": { + "class_type": "Flux2Scheduler", + "inputs": { + "steps": 4, + "width": 1536, + "height": 864 + }, + "_meta": { + "title": "Flux2Scheduler" + } + }, + "63": { + "class_type": "CFGGuider", + "inputs": { + "model": [ + "70", + 0 + ], + "positive": [ + "125", + 0 + ], + "negative": [ + "123", + 0 + ], + "cfg": 1 + }, + "_meta": { + "title": "CFGGuider" + } + }, + "64": { + "class_type": "SamplerCustomAdvanced", + "inputs": { + "noise": [ + "73", + 0 + ], + "guider": [ + "63", + 0 + ], + "sampler": [ + "61", + 0 + ], + "sigmas": [ + "62", + 0 + ], + "latent_image": [ + "66", + 0 + ] + }, + "_meta": { + "title": "SamplerCustomAdvanced" + } + }, + "65": { + "class_type": "VAEDecode", + "inputs": { + "samples": [ + "64", + 0 + ], + "vae": [ + "72", + 0 + ] + }, + "_meta": { + "title": "VAEDecode" + } + }, + "66": { + "class_type": "EmptyFlux2LatentImage", + "inputs": { + "width": 1536, + "height": 864, + "batch_size": 1 + }, + "_meta": { + "title": "EmptyFlux2LatentImage" + } + }, + "70": { + "class_type": "UNETLoader", + "inputs": { + "unet_name": "flux-2-klein-9b-fp8mixed.safetensors", + "weight_dtype": "default" + }, + "_meta": { + "title": "UNETLoader" + } + }, + "71": { + "class_type": "CLIPLoader", + "inputs": { + "clip_name": "qwen_3_8b_fp8mixed.safetensors", + "type": "flux2", + "device": "default" + }, + "_meta": { + "title": "CLIPLoader" + } + }, + "72": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "full_encoder_small_decoder.safetensors" + }, + "_meta": { + "title": "VAELoader" + } + }, + "73": { + "class_type": "RandomNoise", + "inputs": { + "noise_seed": 26416064315367 + }, + "_meta": { + "title": "RandomNoise" + } + }, + "74": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "Restage the exact same woman as a clean full-body studio reference photo on a pure white seamless background. Face the camera directly in a neutral standing pose. Preserve identical facial features, platinum blonde hair, skin tone, gold corset dress, black thigh-high boots, proportions, and age. Even soft studio lighting, no props, no street, no buildings, no text.", + "clip": [ + "71", + 0 + ] + }, + "_meta": { + "title": "CLIP Text Encode (Positive Prompt)" + } + }, + "80": { + "class_type": "ImageScaleToTotalPixels", + "inputs": { + "image": [ + "900000", + 0 + ], + "upscale_method": "nearest-exact", + "megapixels": 1, + "resolution_steps": 1 + }, + "_meta": { + "title": "ImageScaleToTotalPixels" + } + }, + "82": { + "class_type": "ConditioningZeroOut", + "inputs": { + "conditioning": [ + "74", + 0 + ] + }, + "_meta": { + "title": "ConditioningZeroOut" + } + }, + "99": { + "class_type": "GetImageSize", + "inputs": { + "image": [ + "80", + 0 + ] + }, + "_meta": { + "title": "GetImageSize" + } + }, + "123": { + "class_type": "ReferenceLatent", + "inputs": { + "conditioning": [ + "82", + 0 + ], + "latent": [ + "124", + 0 + ] + }, + "_meta": { + "title": "ReferenceLatent" + } + }, + "124": { + "class_type": "VAEEncode", + "inputs": { + "pixels": [ + "80", + 0 + ], + "vae": [ + "72", + 0 + ] + }, + "_meta": { + "title": "VAEEncode" + } + }, + "125": { + "class_type": "ReferenceLatent", + "inputs": { + "conditioning": [ + "74", + 0 + ], + "latent": [ + "124", + 0 + ] + }, + "_meta": { + "title": "ReferenceLatent" + } + }, + "900000": { + "class_type": "LoadImage", + "inputs": { + "image": "2026-08-13-pinup-ref.jpg" + }, + "_meta": { + "title": "Load Image (image)" + } + }, + "901000": { + "class_type": "SaveImage", + "inputs": { + "images": [ + "65", + 0 + ], + "filename_prefix": "flux2klein-overnight-smoke" + }, + "_meta": { + "title": "Save Image" + } + } + }, + { + "client_id": "02a73ffb-e5ae-4a2a-b48a-73ab097a30c5", + "create_time": 1787450723363 + }, + [ + "901000" + ] + ], + "outputs": { + "901000": { + "images": [ + { + "filename": "flux2klein-overnight-smoke_00003_.png", + "subfolder": "", + "type": "output" + } + ] + } + }, + "status": { + "status_str": "success", + "completed": true, + "messages": [ + [ + "execution_start", + { + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450723364 + } + ], + [ + "execution_cached", + { + "nodes": [], + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450723400 + } + ], + [ + "execution_success", + { + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450788853 + } + ] + ] + }, + "meta": { + "901000": { + "node_id": "901000", + "display_node": "901000", + "parent_node": null, + "real_node_id": "901000" + } + } +} \ No newline at end of file diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/input-1.jpg b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/input-1.jpg new file mode 100644 index 0000000..b5a5fca Binary files /dev/null and b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/input-1.jpg differ diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/resolved-prompt.json b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/resolved-prompt.json new file mode 100644 index 0000000..69cfc8e --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/resolved-prompt.json @@ -0,0 +1,259 @@ +{ + "61": { + "class_type": "KSamplerSelect", + "inputs": { + "sampler_name": "euler" + }, + "_meta": { + "title": "KSamplerSelect" + } + }, + "62": { + "class_type": "Flux2Scheduler", + "inputs": { + "steps": 4, + "width": 1536, + "height": 864 + }, + "_meta": { + "title": "Flux2Scheduler" + } + }, + "63": { + "class_type": "CFGGuider", + "inputs": { + "model": [ + "70", + 0 + ], + "positive": [ + "125", + 0 + ], + "negative": [ + "123", + 0 + ], + "cfg": 1 + }, + "_meta": { + "title": "CFGGuider" + } + }, + "64": { + "class_type": "SamplerCustomAdvanced", + "inputs": { + "noise": [ + "73", + 0 + ], + "guider": [ + "63", + 0 + ], + "sampler": [ + "61", + 0 + ], + "sigmas": [ + "62", + 0 + ], + "latent_image": [ + "66", + 0 + ] + }, + "_meta": { + "title": "SamplerCustomAdvanced" + } + }, + "65": { + "class_type": "VAEDecode", + "inputs": { + "samples": [ + "64", + 0 + ], + "vae": [ + "72", + 0 + ] + }, + "_meta": { + "title": "VAEDecode" + } + }, + "66": { + "class_type": "EmptyFlux2LatentImage", + "inputs": { + "width": 1536, + "height": 864, + "batch_size": 1 + }, + "_meta": { + "title": "EmptyFlux2LatentImage" + } + }, + "70": { + "class_type": "UNETLoader", + "inputs": { + "unet_name": "flux-2-klein-9b-fp8mixed.safetensors", + "weight_dtype": "default" + }, + "_meta": { + "title": "UNETLoader" + } + }, + "71": { + "class_type": "CLIPLoader", + "inputs": { + "clip_name": "qwen_3_8b_fp8mixed.safetensors", + "type": "flux2", + "device": "default" + }, + "_meta": { + "title": "CLIPLoader" + } + }, + "72": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "full_encoder_small_decoder.safetensors" + }, + "_meta": { + "title": "VAELoader" + } + }, + "73": { + "class_type": "RandomNoise", + "inputs": { + "noise_seed": 26416064315367 + }, + "_meta": { + "title": "RandomNoise" + } + }, + "74": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "Restage the exact same woman as a clean full-body studio reference photo on a pure white seamless background. Face the camera directly in a neutral standing pose. Preserve identical facial features, platinum blonde hair, skin tone, gold corset dress, black thigh-high boots, proportions, and age. Even soft studio lighting, no props, no street, no buildings, no text.", + "clip": [ + "71", + 0 + ] + }, + "_meta": { + "title": "CLIP Text Encode (Positive Prompt)" + } + }, + "80": { + "class_type": "ImageScaleToTotalPixels", + "inputs": { + "image": [ + "900000", + 0 + ], + "upscale_method": "nearest-exact", + "megapixels": 1, + "resolution_steps": 1 + }, + "_meta": { + "title": "ImageScaleToTotalPixels" + } + }, + "82": { + "class_type": "ConditioningZeroOut", + "inputs": { + "conditioning": [ + "74", + 0 + ] + }, + "_meta": { + "title": "ConditioningZeroOut" + } + }, + "99": { + "class_type": "GetImageSize", + "inputs": { + "image": [ + "80", + 0 + ] + }, + "_meta": { + "title": "GetImageSize" + } + }, + "123": { + "class_type": "ReferenceLatent", + "inputs": { + "conditioning": [ + "82", + 0 + ], + "latent": [ + "124", + 0 + ] + }, + "_meta": { + "title": "ReferenceLatent" + } + }, + "124": { + "class_type": "VAEEncode", + "inputs": { + "pixels": [ + "80", + 0 + ], + "vae": [ + "72", + 0 + ] + }, + "_meta": { + "title": "VAEEncode" + } + }, + "125": { + "class_type": "ReferenceLatent", + "inputs": { + "conditioning": [ + "74", + 0 + ], + "latent": [ + "124", + 0 + ] + }, + "_meta": { + "title": "ReferenceLatent" + } + }, + "900000": { + "class_type": "LoadImage", + "inputs": { + "image": "2026-08-13-pinup-ref.jpg" + }, + "_meta": { + "title": "Load Image (image)" + } + }, + "901000": { + "class_type": "SaveImage", + "inputs": { + "images": [ + "65", + 0 + ], + "filename_prefix": "flux2klein-overnight-smoke" + }, + "_meta": { + "title": "Save Image" + } + } +} \ No newline at end of file diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/run-record.json b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/run-record.json new file mode 100644 index 0000000..e2e19d6 --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/run-record.json @@ -0,0 +1,63 @@ +{ + "workflowPath": "/home/node/.openclaw/workspace/work/comfyui-workflows/models/flux2klein/image-edit-9b-distilled/workflow.json", + "server": "http://192.168.1.202:8188", + "promptId": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "submittedAt": "2026-08-23T02:05:25.264Z", + "topNodeId": 75, + "subgraphId": "7b34ab90-36f9-45ba-a665-71d418f0df18", + "target": "single", + "uploadedImages": { + "image": "2026-08-13-pinup-ref.jpg", + "image2": null + }, + "overrides": { + "prompt": "Restage the exact same woman as a clean full-body studio reference photo on a pure white seamless background. Face the camera directly in a neutral standing pose. Preserve identical facial features, platinum blonde hair, skin tone, gold corset dress, black thigh-high boots, proportions, and age. Even soft studio lighting, no props, no street, no buildings, no text.", + "negative": null, + "seed": null, + "steps": 4, + "cfg": 1, + "sampler": null, + "width": 1536, + "height": 864, + "prefix": "flux2klein-overnight-smoke" + }, + "outputDir": "/home/node/.openclaw/workspace/work/comfyui-workflows/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01", + "imageCount": 1, + "images": [ + { + "nodeId": "901000", + "filename": "flux2klein-overnight-smoke_00003_.png", + "subfolder": "", + "type": "output", + "localPath": "/home/node/.openclaw/workspace/work/comfyui-workflows/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png" + } + ], + "status": { + "status_str": "success", + "completed": true, + "messages": [ + [ + "execution_start", + { + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450723364 + } + ], + [ + "execution_cached", + { + "nodes": [], + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450723400 + } + ], + [ + "execution_success", + { + "prompt_id": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "timestamp": 1787450788853 + } + ] + ] + } +} \ No newline at end of file diff --git a/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/manifest.json b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/manifest.json new file mode 100644 index 0000000..671ea20 --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/manifest.json @@ -0,0 +1,20 @@ +{ + "workflow": "models/flux2klein/image-edit-9b-distilled/workflow.json", + "input": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/input-1.jpg", + "output": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png", + "runRecord": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/run-record.json", + "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-23T02-05-24-860Z-single-smoke/cases/case01/resolved-prompt.json", + "promptId": "f442a41b-608a-461e-a4e2-fe9dd5f42c2b", + "status": "success", + "optimizedPaths": [ + "optimized/image-edit/flux2klein-9b-fp8-edit-master", + "optimized/notes/flux2klein.md" + ], + "overrides": { + "steps": 4, + "cfg": 1, + "width": 1536, + "height": 864, + "prefix": "flux2klein-overnight-smoke" + } +} diff --git a/optimized/image-edit/flux2klein-9b-fp8-edit-master/README.md b/optimized/image-edit/flux2klein-9b-fp8-edit-master/README.md index 111bdb8..ad45ef4 100644 --- a/optimized/image-edit/flux2klein-9b-fp8-edit-master/README.md +++ b/optimized/image-edit/flux2klein-9b-fp8-edit-master/README.md @@ -54,20 +54,20 @@ Fill this out whenever the master is materially updated so we can see exactly wh - Denoise: not recorded yet - Resolution: not recorded yet - Checkpoint / model: `models/diffusion_models/flux-2-klein-9b-fp8.safetensors` -- VAE: `models/vae/flux2-vae.safetensors` +- VAE: `models/vae/full_encoder_small_decoder.safetensors` - Text encoder(s): `models/text_encoders/qwen_3_8b_fp8mixed.safetensors` - LoRAs: none recorded yet - ControlNets / guidance nodes: none recorded yet - Masks / inpaint settings: not recorded yet -- Node-level graph changes: stayed on the official `9B distilled` template route; no extra community graph surgery recorded yet +- Node-level graph changes: aligned both saved diffusion-model widgets to the real `flux-2-klein-9b-fp8.safetensors` filename and kept the shared `full_encoder_small_decoder.safetensors` VAE; no extra community graph surgery recorded yet - Smoke test: `2026-08-21`, `4` steps, `cfg 1`, `1536x864`, output `benchmarks/flux2klein/runs/2026-08-21T02-03-28-751Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00001_.png` -- Why this change was made: keep the master aligned with your `9B fp8` preference while staying more practical than the heavier base route +- Why this change was made: keep the master aligned with your `9B fp8` preference and the actual saved model filenames while staying more practical than the heavier base route ## Required models - `models/diffusion_models/flux-2-klein-9b-fp8.safetensors` - `models/text_encoders/qwen_3_8b_fp8mixed.safetensors` -- `models/vae/flux2-vae.safetensors` +- `models/vae/full_encoder_small_decoder.safetensors` ## Required custom nodes diff --git a/optimized/image-edit/flux2klein-9b-fp8-edit-master/workflow.json b/optimized/image-edit/flux2klein-9b-fp8-edit-master/workflow.json index ecaaa19..5d74c3e 100644 --- a/optimized/image-edit/flux2klein-9b-fp8-edit-master/workflow.json +++ b/optimized/image-edit/flux2klein-9b-fp8-edit-master/workflow.json @@ -203,7 +203,7 @@ "previewExposures": [] }, "widgets_values": [ - "flux-2-klein-9b-fp8mixed.safetensors", + "flux-2-klein-9b-fp8.safetensors", "qwen_3_8b_fp8mixed.safetensors", "full_encoder_small_decoder.safetensors", "Replace the background with a quiet coastal cliff at overcast sunset. Remove all buildings and streets. Add wind-shaped grass and a distant ocean horizon. Keep the subject’s pose and framing unchanged.", @@ -386,7 +386,7 @@ "previewExposures": [] }, "widgets_values": [ - "flux-2-klein-9b-fp8mixed.safetensors", + "flux-2-klein-9b-fp8.safetensors", "qwen_3_8b_fp8mixed.safetensors", "full_encoder_small_decoder.safetensors", "Let this character hold the bag with both hands", diff --git a/optimized/notes/flux2klein.md b/optimized/notes/flux2klein.md index 8ceeae7..bf7db90 100644 --- a/optimized/notes/flux2klein.md +++ b/optimized/notes/flux2klein.md @@ -13,6 +13,7 @@ - `image-edit-9b-distilled` - `image-edit-4b-base` - `image-edit-4b-distilled` +- The maintained `flux2klein-9b-fp8-edit-master` now lines up with the real `9B fp8` diffusion filename and `full_encoder_small_decoder` VAE, so the documented model pair matches the saved graph instead of the older mixed-label shorthand. - Current best outpainting starter: - `models/flux2klein/image-edit-4b-distilled/` - Reason: official, current, and easiest first test even though Chris's main stack is `9B`