diff --git a/benchmarks/flux2klein/overnight-state.json b/benchmarks/flux2klein/overnight-state.json index 4a1d50e..d45cdb4 100644 --- a/benchmarks/flux2klein/overnight-state.json +++ b/benchmarks/flux2klein/overnight-state.json @@ -1,19 +1,19 @@ { - "testsSet": false, + "testsSet": true, "serverBusy": false, - "reason": "Could not verify queue state: connection timed out.", + "reason": "Overnight flux2klein smoke test submitted successfully.", "cases": [ { "workflow": "models/flux2klein/image-edit-9b-distilled/workflow.json", - "input": "benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/input-1.jpg", - "output": "benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png", - "runRecord": "benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/run-record.json", - "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/resolved-prompt.json", - "promptId": "02c26744-e573-42be-9b5d-2f4e54a13fa4", + "input": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/input-1.jpg", + "output": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png", + "runRecord": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/run-record.json", + "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/resolved-prompt.json", + "promptId": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", "status": "success", "optimizedPaths": [ - "optimized/image-edit/flux2klein-9b-fp8-edit-master/README.md", - "optimized/image-edit/zimage-turbo-3070-inpaint-start/README.md" + "optimized/notes/flux2klein.md", + "optimized/notes/zimage.md" ], "overrides": { "steps": 4, @@ -24,10 +24,11 @@ } } ], - "reviewPending": false, - "verdict": "Keep the 2026-08-28 single-image smoke as the benchmark winner for now; identity and background stayed clean, but queue one more smoke test before broader promotion.", - "date": "2026-08-30T02:04:46.554Z", + "reviewPending": true, + "verdict": null, + "date": "2026-08-31T02:09:14.664Z", "optimizedPaths": [ - "optimized/notes/flux2klein.md" + "optimized/notes/flux2klein.md", + "optimized/notes/zimage.md" ] } diff --git a/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png new file mode 100644 index 0000000..6be4b46 Binary files /dev/null and b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png differ diff --git a/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/history.json b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/history.json new file mode 100644 index 0000000..a027ea8 --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/history.json @@ -0,0 +1,319 @@ +{ + "prompt": [ + 1, + "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + { + "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": "input-1.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": "ab7c0e3d-e68d-47b6-b6a8-2d860d97815f", + "create_time": 1788142081685 + }, + [ + "901000" + ] + ], + "outputs": { + "901000": { + "images": [ + { + "filename": "flux2klein-overnight-smoke_00004_.png", + "subfolder": "", + "type": "output" + } + ] + } + }, + "status": { + "status_str": "success", + "completed": true, + "messages": [ + [ + "execution_start", + { + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142081686 + } + ], + [ + "execution_cached", + { + "nodes": [], + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142081880 + } + ], + [ + "execution_success", + { + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142149158 + } + ] + ] + }, + "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-31T02-08-05-386Z-single-smoke/cases/case01/input-1.jpg b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-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-31T02-08-05-386Z-single-smoke/cases/case01/input-1.jpg differ diff --git a/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/resolved-prompt.json b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/resolved-prompt.json new file mode 100644 index 0000000..2bde1cd --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-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": "input-1.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-31T02-08-05-386Z-single-smoke/cases/case01/run-record.json b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/run-record.json new file mode 100644 index 0000000..0f48d1b --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-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": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "submittedAt": "2026-08-31T02:08:05.554Z", + "topNodeId": 75, + "subgraphId": "7b34ab90-36f9-45ba-a665-71d418f0df18", + "target": "single", + "uploadedImages": { + "image": "input-1.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-31T02-08-05-386Z-single-smoke/cases/case01", + "imageCount": 1, + "images": [ + { + "nodeId": "901000", + "filename": "flux2klein-overnight-smoke_00004_.png", + "subfolder": "", + "type": "output", + "localPath": "/home/node/.openclaw/workspace/work/comfyui-workflows/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png" + } + ], + "status": { + "status_str": "success", + "completed": true, + "messages": [ + [ + "execution_start", + { + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142081686 + } + ], + [ + "execution_cached", + { + "nodes": [], + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142081880 + } + ], + [ + "execution_success", + { + "prompt_id": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "timestamp": 1788142149158 + } + ] + ] + } +} \ No newline at end of file diff --git a/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/manifest.json b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/manifest.json new file mode 100644 index 0000000..3ac8a69 --- /dev/null +++ b/benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/manifest.json @@ -0,0 +1,20 @@ +{ + "workflow": "models/flux2klein/image-edit-9b-distilled/workflow.json", + "input": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/input-1.jpg", + "output": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png", + "runRecord": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/run-record.json", + "resolvedPrompt": "benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/resolved-prompt.json", + "promptId": "c17cc8ae-e69c-44d4-b685-b64e78137e2e", + "status": "success", + "optimizedPaths": [ + "optimized/notes/flux2klein.md", + "optimized/notes/zimage.md" + ], + "overrides": { + "steps": 4, + "cfg": 1, + "width": 1536, + "height": 864, + "prefix": "flux2klein-overnight-smoke" + } +} diff --git a/optimized/notes/flux2klein.md b/optimized/notes/flux2klein.md index 7dd797c..ff86f81 100644 --- a/optimized/notes/flux2klein.md +++ b/optimized/notes/flux2klein.md @@ -14,6 +14,7 @@ - `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. +- Keep the maintained `9B fp8` edit master as the canonical saved graph; the imported `9B distilled` and `9B base` templates still serialize the older `fp8mixed` widget label, so those are source imports to mine, not promotion targets. - 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` @@ -35,6 +36,7 @@ - cleaner model/text-encoder pairing - avoiding broken loader substitutions - Keep the official `9B fp8` edit master as the default lane, then borrow from the multi-reference donor only when reference control is the real problem. +- When testing, use the maintained `9B fp8` master as the comparison baseline rather than the raw imported `fp8mixed` widget label. ## Current weak areas diff --git a/optimized/notes/reviews/2026-08-31-daily-review.md b/optimized/notes/reviews/2026-08-31-daily-review.md new file mode 100644 index 0000000..7cc080c --- /dev/null +++ b/optimized/notes/reviews/2026-08-31-daily-review.md @@ -0,0 +1,21 @@ +# 2026-08-31 Daily Review + +## Scope + +Reviewed the current `flux2klein`, `zimage`, `ltx`, and `minimax` source packs against the maintained optimized layer. + +## Findings + +- `flux2klein`: the maintained `9B fp8` edit master remains the only canonical saved graph to keep promoting. The raw imported `9B distilled` and `9B base` templates still carry the older `fp8mixed` widget label, so they should stay source imports rather than promotion targets. +- `zimage`: the maintained inpaint starter is still a straight hold of the imported community graph, so there is no separate graph-side optimization to carry tonight. +- `ltx` and `minimax`: no new low-risk maintained promotion surfaced from the notes-only pass. + +## Smoke test + +- Submitted one single-image `flux2klein` smoke test using the existing repo runner. +- Queue check came back idle, so the job was accepted. +- Handoff state was written to `benchmarks/flux2klein/overnight-state.json` with `testsSet=true` and `reviewPending=true`. + +## Review target + +- `benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/` diff --git a/optimized/notes/zimage.md b/optimized/notes/zimage.md index 0783fad..33bd66f 100644 --- a/optimized/notes/zimage.md +++ b/optimized/notes/zimage.md @@ -18,6 +18,7 @@ - `models/zimage/z-image-turbo-inpainting-community/` - `models/zimage/z-image-turbo-controlnet-union-community/` - `models/zimage/qujincheng-z-image-lora-facetailer/` for face-detail follow-up, not as a core generator +- `optimized/image-edit/zimage-turbo-3070-inpaint-start/` is currently a straight hold of `z-image-turbo-inpainting-community`, so it should stay a curated import until a real graph-side improvement appears. ## Current heuristics @@ -26,6 +27,7 @@ - Treat `Z-Image` as especially relevant for image-generation and image-edit categories, not video categories. - Keep the official example as the clean text-to-image baseline, then compare the community inpaint and controlnet-union graphs against it for real edit gains. - Treat facetailer-style graphs as post-pass helpers unless they prove they can stand alone. +- Do not spend optimization time on the inpaint master unless a new run shows a concrete advantage over the imported community graph. ## What still needs proof