Reset optimized workflows to Flux2 Klein baseline

This commit is contained in:
Morpheus
2026-09-21 13:41:47 +00:00
parent 29e97994e7
commit cc51237840
44 changed files with 130 additions and 23400 deletions
+9 -71
View File
@@ -1,75 +1,13 @@
# Optimized Workflows # Optimized workflows
This section is the maintained layer for "best current" master workflows. This directory contains the current tested production-oriented workflows for the available hardware.
The `models/` tree stores collected originals and community finds. ## Current baseline
The `optimized/` tree stores the cleaned-up workflows built from analyzing what we have collected. - **Flux.2 Klein 9B FP8** text-to-image at 1920×1080
- Euler CFG++ sampler, 6 steps, CFG 1.3
- Fixed seed `20260920` for repeatable baseline comparisons
- Measured generation time: approximately 78 seconds on the RTX 3070
- Optional SeedVR2 3B FP8 second pass tested separately at 2560×1440; the full 3840×2160 target exceeded 8 GB VRAM
The `optimized/notes/` tree stores accumulated optimization notes so future review passes can reuse prior judgments instead of re-reading every collected workflow from scratch. See [`text-to-image/flux2klein-9b-3070-best/`](text-to-image/flux2klein-9b-3070-best/).
## Maintenance rule
Keep the `optimized/` lane deliberately small.
- Each category should usually expose one maintained default.
- A category may keep a second maintained challenger or specialist path when it serves a distinct job.
- Historical experiments, stepping stones, and source imports belong in `models/` or `custom/`, not as long-lived `optimized/` masters.
## Purpose
These workflows are intended to become the practical default choices for each category after comparing:
- official workflows
- community workflows
- custom-node variants
- model-specific optimizations
- quality vs speed tradeoffs
## Categories
- `text-to-image/`
- `image-edit/`
- `image-to-video/`
- `text-to-video/`
- `upscale-restoration/`
## Current maintained masters
- `text-to-image/zimage-turbo-3070-fast-start/`
- `image-edit/flux2klein-9b-fp8-edit-master/`
- `image-edit/zimage-turbo-3070-inpaint-start/`
- `image-to-video/minimax-h3-r2v-master/`
- `image-to-video/minimax-h3-extension-master/`
- `text-to-video/minimax-h3-3070-turbo-master/`
## Workflow format
Each optimized workflow should have its own folder and usually include:
- `workflow.json` or another portable Comfy workflow asset
- `README.md` with a compact record of the parameters and graph changes that define the current master
- optional notes, screenshots, or benchmark artifacts
## Notes layer
Use `optimized/notes/` for durable working notes such as:
- category heuristics
- strong and weak source workflows
- recurring node/version pitfalls
- preferred model paths
- unresolved test questions
- "best current" assumptions waiting for proof
## Update policy
This section is reviewed on a Sunday-evening cadence.
The weekly review should:
- inspect newly collected workflows
- decide whether a category master should be created or updated
- document what changed and why
- document the workflow settings that actually changed, especially prompt, negative prompt, CFG, steps, sampler, scheduler, seed, denoise, resolution, model swaps, LoRA weights, ControlNet wiring, and any node removals or additions
- commit and push changes before reporting back
-39
View File
@@ -1,39 +0,0 @@
# Image Edit Masters
Home for maintained category masters focused on image editing, inpainting, outpainting, and reference-driven edits.
This category may keep up to two maintained workflows: one default winner and one specialist or challenger.
## Current masters
- `flux2klein-9b-fp8-edit-master`
- `zimage-turbo-3070-inpaint-start`
## Roles
- `flux2klein-9b-fp8-edit-master`
Current default edit master and present benchmark winner for Chris's setup.
- `zimage-turbo-3070-inpaint-start`
Secondary inpaint-focused challenger kept for comparison and niche masked-edit work.
## README rule
Every image-edit master README should carry a compact run record for meaningful tuning changes.
Minimum fields to record:
- positive prompt
- negative prompt
- CFG
- steps
- sampler
- scheduler
- seed
- denoise
- resolution
- checkpoint / model
- VAE
- LoRAs
- ControlNets or other guidance nodes
- mask or inpaint settings
- node-level graph changes
@@ -1,88 +0,0 @@
# FLUX.2-klein 9B FP8 Edit Master
## Summary
Best current `FLUX.2-klein` image-edit master for your setup.
This is built from the official `9B distilled` template because it matches your `9B fp8` preference while still leaning toward practicality rather than the heavier `base` route.
## Status
- `best-current`
- `tested-on-chris-box`
## Workflow asset
- `workflow.json`
## Built from
- `models/flux2klein/image-edit-9b-distilled/`
## Why this is the current master
- Matches your default family: `FLUX.2-klein 9B fp8`
- Official Comfy template is a safer foundation than community pages with weak provenance.
- Distilled is the most sensible first optimization bias for a `3070`.
- The 2026-08-28 smoke test on this box produced another clean full-body white-background reference, which keeps this as the current practical master.
## What I intentionally kept
- official Comfy node layout
- official `9B fp8` model path
- official text-encoder pairing
- speed-first distilled route
## What I intentionally did not add yet
- community `GGUF` ideas
- KV-cache experimentation
- extra custom-node edits with unclear payoff
- a fake outpainting claim before we prove it on your machine
## Change Record
Fill this out whenever the master is materially updated so we can see exactly what changed, not just that something changed.
- Positive prompt: not recorded yet
- Negative prompt: not recorded yet
- CFG: `1`
- Steps: `4`
- Sampler: `euler`
- Scheduler: not recorded yet
- Seed: `26416064315367`
- Denoise: not recorded yet
- Resolution: `1536x864`
- Checkpoint / model: `models/diffusion_models/flux-2-klein-9b-fp8.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: 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; the 2026-08-28 single-image smoke held cleanly at `4` steps, `cfg 1`, `1536x864`, with `euler` and noise seed `26416064315367`
- Smoke test: `2026-08-27`, `4` steps, `cfg 1`, `1536x864`, output `benchmarks/flux2klein/runs/2026-08-27T02-08-31-134Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00002_.png`
- Smoke test: `2026-08-28`, `4` steps, `cfg 1`, `1536x864`, output `benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png`
- Smoke test: `2026-08-31`, `4` steps, `cfg 1`, `1536x864`, output `benchmarks/flux2klein/runs/2026-08-31T02-08-05-386Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00004_.png`
- 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
- Why this was reviewed again: no graph change was needed, but the 2026-08-31 smoke confirmed the current master still holds up as the benchmark winner for now, so keep it pinned and queue one more smoke test before broader promotion
## Required models
- `models/diffusion_models/flux-2-klein-9b-fp8.safetensors`
- `models/text_encoders/qwen_3_8b_fp8mixed.safetensors`
- `models/vae/full_encoder_small_decoder.safetensors`
## Required custom nodes
- none beyond current official Comfy support for the template nodes
## Monday test checklist
- Confirm the model paths line up with your local layout.
- Test a plain edit, then an expand-canvas outpaint attempt.
- Compare `9B distilled` behavior against any `4B distilled` outpaint workflow you already trust.
## Next optimization candidates
- clone this into a dedicated outpaint master if the graph behaves well
- borrow only proven community prompt or graph hygiene improvements
File diff suppressed because it is too large Load Diff
@@ -1,83 +0,0 @@
# Z-Image Turbo 3070 Inpaint Start
## Summary
Best current `Z-Image` edit starter for inpainting on tighter VRAM.
This master is a curated hold of the community inpainting workflow because it gives us a real edit path while still staying more plausible on a `3070` than heavier image stacks.
## Status
- `best-current`
- `not-yet-tested-on-chris-box`
## Workflow asset
- `workflow.json`
## Built from
- `models/zimage/z-image-turbo-inpainting-community/`
## Why this is the current master
- It is the strongest actual `Z-Image Turbo` edit workflow we have right now.
- Editing matters more than toy text-to-image wins for practical day-to-day use.
- The graph is specific enough to be useful without being a giant kitchen-sink workflow.
## What I intentionally kept
- inpainting-focused graph shape
- existing `ZImageFunControlnet` route
- community sampler path that is already wired for edit work
## What I intentionally did not add yet
- control-union extras from the separate community workflow
- any manual sampler surgery before real testing
- any claim that this is better than `FLUX.2-klein` for edits
## Change Record
Fill this out whenever the master is materially updated so we can see exactly what changed, not just that something changed.
- Positive prompt: not recorded yet
- Negative prompt: not recorded yet
- CFG: not recorded yet
- Steps: not recorded yet
- Sampler: community inpaint sampler path retained; exact values not recorded yet
- Scheduler: not recorded yet
- Seed: not recorded yet
- Denoise: not recorded yet
- Resolution: not recorded yet
- Checkpoint / model: `models/diffusion_models/zImageTurbo_turbo.safetensors`
- VAE: `models/vae/ae.safetensors`
- Text encoder(s): `models/text_encoders/qwen_3_4b.safetensors`
- LoRAs: none recorded yet
- ControlNets / guidance nodes: `ZImageFunControlnet`
- Masks / inpaint settings: inpainting-focused graph retained; exact mask settings not recorded yet
- Node-level graph changes: held the community inpainting graph shape with `LanPaint_KSampler` and `ZImageFunControlnet`; the live loader resolves to `zImageTurbo_turbo.safetensors` even though the embedded source metadata still labels the split-file `z_image_turbo_bf16.safetensors`
- Why this change was made: keep a plausible real edit path on a `3070` without prematurely bloating the graph
## Required models
- `models/text_encoders/qwen_3_4b.safetensors`
- `models/diffusion_models/zImageTurbo_turbo.safetensors`
- `models/vae/ae.safetensors`
## Required custom nodes
- `rgthree-comfy`
- the package that provides `LanPaint_KSampler`
- the package that provides `ZImageFunControlnet`
## Monday test checklist
- Confirm missing custom nodes first.
- Check whether masked edits are stable enough to keep.
- Compare it directly against the `flux2klein` edit master on the same input.
## Next optimization candidates
- reduce custom-node dependency count if the graph is good but fragile
- borrow only the useful control ideas from the community control-union workflow
File diff suppressed because it is too large Load Diff
-20
View File
@@ -1,20 +0,0 @@
# Image-to-Video Masters
Home for maintained category masters focused on image-to-video generation.
This category is intentionally capped at two maintained workflows:
- `minimax-h3-r2v-master`
- `minimax-h3-extension-master`
## Roles
- `minimax-h3-r2v-master`
The current reference-first generation master when the job starts from still images and should grow into connected clips.
- `minimax-h3-extension-master`
The current extension master when the job starts from an existing video clip and should continue through the `Contex Loop` lane.
## Policy
- If a workflow is only a stepping stone, benchmark, or dead-end experiment, move it out of `optimized/`.
- New `image-to-video` work should improve one of these two lanes rather than creating another maintained sibling by default.
@@ -1,63 +0,0 @@
# MiniMax H3 Extension Master
## Summary
Best-current `MiniMax H3` imported-video extension master for the maintained
optimized lane. It takes the proven MiniMax `ref2v` stack back into the
`Contex Loop` family so an existing clip can be extended through a server-safe
continuation workflow.
This variant keeps the `Contex Loop` existing-video flow, swaps to the proven
`INT8` base model, drops the Heretic text encoder, disables the failing
`MiniMaxH3MemoryEfficientSageAttentionPatch`, and expands the continuation plan
to `6 x 10s` clips with review pauses disabled.
## Status
- `best-current-extension-master`
- `server-safe-loop-60s-test`
## Workflow asset
- `workflow.json`
## Built from
- successful ComfyUI run `cc74efa5-1a53-4b2a-9d7c-7170ea7eba5b`
- the maintained `MiniMax` `ref2v` stack used in `optimized/image-to-video/minimax-h3-r2v-master/`
- earlier compact `Contex Loop` experiments that established the local-safe continuation budget
## Key model stack
- `minimax_h3_ref2va_pruned_int8_convrot.safetensors`
- `qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\minimax_h3_ref2v_lightx2v_turbo_4step_v0.1_resized_avg_rank_20_bf16.safetensors`
## Main changes
- switches from the `w4a8` loop stack to the successful `int8` `ref2v` base
- replaces the Heretic encoder with `qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors`
- keeps `SolAttn`, but bypasses `MiniMaxH3MemoryEfficientSageAttentionPatch`
because it crashes on the current server
- sets `prepend_original=false` so the assembled output is a generated `60s`
continuation rather than source-plus-extension
- disables the review gate for unattended queue runs
- expands the plan to `6 x 10s` continuation shots with continuity-first handoff
## Why this is the kept extension master
- Chris's current extension path should live in the `MiniMaxH3Chain*` /
`Contex Loop` family, not as a pile of separate optimized siblings
- it is the cleanest current bridge between the proven `MiniMax` `ref2v` stack
and imported-video continuation
- it avoids the current live-server SageAttention failure path while preserving
the stronger `INT8` model route
## Notes
- Queue with a real server-side source video override because the placeholder
`1.mp4` is not present on the live ComfyUI box.
- This is intended as the first unattended minute-long loop test, not the final
quality-maxed master.
File diff suppressed because one or more lines are too long
@@ -1,109 +0,0 @@
# MiniMax H3 R2V Master
## Summary
Best-current `MiniMax H3` reference-first generation master for Chris's actual
priority: `reference-to-video` first, not generic `t2v`. This maintained
version now promotes the quality features from the Chris working graph:
second-pass enhancement enabled, `RTXVideoSuperResolution` enabled, and the
non-Heretic `AWQ` text-encoder path.
## Status
- `best-current-r2v-master`
## Workflow asset
- `workflow.json`
- `api-prompt.json`
- `prompt-guide.md`
- `prompt-template.md`
- `references/default-character-reference.jpg`
- `references/default-location-reference.jpg`
- `references/default-location-reference.url`
## This pass
- Promoted the Chris working quality lane into the maintained master.
- Enabled the built-in `2 Pass` path.
- Enabled the built-in `HIGH QUALITY` path so `RTXVideoSuperResolution` runs.
- Swapped away from the Heretic text encoder to the `AWQ` MiniMax encoder path.
- Kept the prompt structure generic and reusable for the single-clip `ref2v` lane.
## Built from
- `custom/chris/minimax-h3-extender-working/`
- current MiniMax Ref2VA prompt guidance in `optimized/notes/minimax-h3-ref2va-prompt-guidelines.md`
- local MiniMax continuation lessons gathered from earlier optimized `ref2v` and `Contex Loop` experiments
- official MiniMax H3 docs for prompt relationships, role labels, and limits
## Key model stack
- `minimax_h3_ref2va_pruned_int8_convrot.safetensors`
- `qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\minimax_h3_ref2v_turbo_4step_v0.1_comfyui_bf16.safetensors`
## Main changes
- keeps the safer `864x480` working canvas for the main `ref2v` lane
- uses the `AWQ` MiniMax text encoder instead of the Heretic path
- enables the graph's `2 Pass` lane
- enables the graph's `HIGH QUALITY` lane so `RTXVideoSuperResolution` runs
- sets the RTX upscale multiplier to `2x`
- keeps `Sol Attn` enabled in the promoted working graph
- keeps generic reusable prompt text in the single-clip lane
- replaces the old Chris-specific continuation plan with a generic three-shot starter
## Current working settings
- main `ref2v` resolution: `864x480`
- source timeline basis: `24 fps`
- main scheduler lane: `simple`
- standard sampler option present: `euler_ancestral`
- high-quality sampler option present: `euler_ancestral_cfg_pp`
- second-pass denoise in the promoted working graph: `0.4`
- starter continuation plan defaults: `10s` clips, `8` plan steps
- RTX upscale: `2x`, `ULTRA`
## API submission
- `workflow.json` is the maintained front-end graph and still includes helper
nodes that ComfyUI rejects when you post the raw graph directly to `/prompt`.
- `api-prompt.json` is the server-safe prompt-style export for direct API
submission.
- `scripts/queue-minimax-r2v-duration-sweep.mjs` uploads the bundled scene +
character refs and queues the `2s/5s/8s/12s/15s/17s/20s` duration sweep with
first-pass steps set to `8` by default.
- On the current `8 GiB` test box, the corrected default-reference sweep
completed successfully through `17s`; the `20s` run failed with a GPU
out-of-memory error. Treat `17s` as the current verified upper bound for
this exact local setup unless the workflow or hardware changes.
## When to use this
- use this first when the goal is: keep one or more reference images stable and
generate a higher-quality `MiniMax H3` `ref2v` clip with the current quality
passes enabled
- use `optimized/image-to-video/minimax-h3-extension-master/`
instead when the main job is extending an already existing source video
rather than generating a new reference-driven chain
## Notes
- This master is now heavier than the older lightweight `w4a8` / Heretic lane.
- It is the quality-biased `ref2v` path, not the cheapest local-safe path.
- The graph still carries extra continuation machinery from the promoted Chris
working workflow, but the maintained `ref2v` lane is the generic single-clip
starter built around the reusable prompt block and quality passes.
- Use `prompt-guide.md` for the short authoring rules and `prompt-template.md`
for a copy-ready starter block that matches this maintained workflow.
- Default bundled `<Picture 1>` scene reference:
`references/default-location-reference.jpg`
- Optional provenance note for the scene reference:
`references/default-location-reference.url`
- Default bundled Subject 1 character reference:
`references/default-character-reference.jpg`
- Verified corrected-reference duration sweep on `2026-08-22`:
`2s`, `5s`, `8s`, `12s`, `15s`, and `17s` passed; `20s` failed on VRAM.
@@ -1,908 +0,0 @@
{
"500": {
"class_type": "ModelPreviewOverrideKJ",
"inputs": {
"model": [
"680:498",
0
],
"max_resolution": 1024,
"jpeg_quality": 80,
"suppress_default_preview": true,
"preview_frames": 240,
"preview_fps": 9,
"tiny_vae": "taeh3.safetensors"
},
"_meta": {
"title": "ModelPreviewOverrideKJ"
}
},
"513": {
"class_type": "RTXVideoSuperResolution",
"inputs": {
"images": [
"571:522",
0
],
"resize_type": "scale by multiplier",
"quality": "HIGH",
"resize_type.scale": [
"723",
0
]
},
"_meta": {
"title": "RTXVideoSuperResolution"
}
},
"514": {
"class_type": "PixaromaResolution",
"inputs": {
"ResolutionState": "{\"mode\":\"custom\",\"ratio\":\"16:9\",\"w\":1088,\"h\":608,\"custom_w\":1088,\"custom_h\":608,\"custom_ratio_w\":17,\"custom_ratio_h\":9,\"snap\":16}"
},
"_meta": {
"title": "PixaromaResolution"
}
},
"539": {
"class_type": "RandomNoise",
"inputs": {
"noise_seed": 6406
},
"_meta": {
"title": "RandomNoise"
}
},
"541": {
"class_type": "KSamplerSelect",
"inputs": {
"sampler_name": "euler_ancestral"
},
"_meta": {
"title": "KSamplerSelect"
}
},
"548": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": false
},
"_meta": {
"title": "Boolean 2 Pass"
}
},
"549": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": true
},
"_meta": {
"title": "Boolean - Distilled"
}
},
"566": {
"class_type": "INTConstant",
"inputs": {
"value": 8
},
"_meta": {
"title": "Steps"
}
},
"572": {
"class_type": "LoadVideoUI",
"inputs": {
"video": "1.mp4",
"start_time": 0,
"end_time": 33.6,
"duration": 33.6,
"start_frame": 0,
"end_frame": 806,
"duration_frames": 806,
"resize_method": "maintain aspect ratio",
"custom_width": 0,
"custom_height": 0,
"frame_rate": 24,
"display_mode": "seconds",
"crop_x": 0,
"crop_y": 0,
"crop_w": 1,
"crop_h": 1
},
"_meta": {
"title": "LoadVideoUI"
}
},
"573": {
"class_type": "LoadAudioUI",
"inputs": {
"audio": "リアルもエーアイもこんなんばっか(ソウル).wav",
"start_time": 17,
"end_time": 35,
"duration": 18,
"audioUI": null
},
"_meta": {
"title": "LoadAudioUI"
}
},
"574": {
"class_type": "LoadImage",
"inputs": {
"image": "default-location-reference.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"575": {
"class_type": "LoadImage",
"inputs": {
"image": "default-character-reference.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"576": {
"class_type": "MiniMaxH3ReferenceToVideo",
"inputs": {
"clip": [
"680:487",
0
],
"vae": [
"680:488",
0
],
"audio_vae": [
"680:489",
0
],
"prompt": [
"591",
0
],
"width": 1088,
"height": 608,
"length": 243,
"ref_image_size": "max",
"ref_images.ref_image_0": [
"574",
0
],
"ref_images.ref_image_1": [
"575",
0
]
},
"_meta": {
"title": "MiniMaxH3ReferenceToVideo"
}
},
"577": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"578": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"579": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"580": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"581": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"591": {
"class_type": "StringConcatenate",
"inputs": {
"string_a": "<Picture 1> is the master scene, environment and composition reference. Preserve its double-height luxury living room, exposed dark ceiling beams, tall glass walls, fireplace, piano, furniture placement, warm natural light and overall upscale interior mood. Ignore the watermark in <Picture 1>.\n\n<Picture 2> is the primary identity reference for Subject 1. Use it to preserve the same woman, platinum-blonde vintage waves, blue eyes, fair skin, facial structure, glamorous makeup and sparkling silver sleeveless dress. Ignore the event backdrop, close-up framing and original environment from <Picture 2>.\n\nPlace Subject 1 inside the environment defined by <Picture 1>. Do not copy the background from <Picture 2>.",
"string_b": "A clean 10-second cinematic shot inside the double-height luxury living room. Subject 1 stands near the central seating area, takes a few relaxed steps through the room, lightly brushes a hand across the back of the sofa, then pauses and looks across the space. The camera makes a gentle lateral drift with restrained handheld realism, soft lens breathing and controlled parallax. Keep the lighting warm and elegant from the tall windows and interior practicals. Preserve the same identity, hair, face, dress and proportions throughout. No dialogue, no text overlays, no extra people appearing in the room. Ambient sound is limited to soft room tone, distant house ambience, faint piano resonance and subtle fabric movement.",
"delimiter": ""
},
"_meta": {
"title": "StringConcatenate"
}
},
"601": {
"class_type": "CreateVideo",
"inputs": {
"images": [
"718",
0
],
"fps": 24,
"audio": [
"571:519",
0
],
"bit_depth": 8
},
"_meta": {
"title": "CreateVideo"
}
},
"602": {
"class_type": "SaveVideo",
"inputs": {
"video": [
"601",
0
],
"filename_prefix": "MiniMax/v6-int8-ref2v-1088x608",
"format": "auto",
"codec": "auto"
},
"_meta": {
"title": "SaveVideo"
}
},
"703": {
"class_type": "KSamplerSelect",
"inputs": {
"sampler_name": "euler_ancestral_cfg_pp"
},
"_meta": {
"title": "KSamplerSelect"
}
},
"714": {
"class_type": "Switch",
"inputs": {
"on_true": [
"703",
0
],
"on_false": [
"541",
0
],
"switch": [
"715",
0
]
},
"_meta": {
"title": "Switch"
}
},
"715": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": false
},
"_meta": {
"title": "HIGH QUALITY"
}
},
"718": {
"class_type": "Switch",
"inputs": {
"on_true": [
"513",
0
],
"on_false": [
"571:522",
0
],
"switch": [
"715",
0
]
},
"_meta": {
"title": "Switch"
}
},
"723": {
"class_type": "FloatConstant",
"inputs": {
"value": 1.5
},
"_meta": {
"title": "Upscale Multiplier"
}
},
"680:492": {
"class_type": "DiffusionModelLoaderKJ",
"inputs": {
"model_name": "minimax_h3_ref2va_pruned_int8_convrot.safetensors",
"weight_dtype": "default",
"compute_dtype": "default",
"patch_cublaslinear": false,
"sage_attention": "auto",
"enable_fp16_accumulation": true
},
"_meta": {
"title": "DiffusionModelLoaderKJ"
}
},
"680:493": {
"class_type": "SolAttnPatch",
"inputs": {
"model": [
"680:492",
0
],
"tau": 1.3,
"start_percent": 0.2,
"end_percent": 0.9,
"min_tokens": 4096,
"int8_qk": true,
"sink_conditioning": "exact_kv_and_rows",
"morton": false,
"morton_curve": "2d_frame",
"int8_pv": true,
"verbose": false,
"use_tma": false,
"dense_blocks": ""
},
"_meta": {
"title": "SolAttnPatch"
}
},
"680:494": {
"class_type": "ComfySwitchNode",
"inputs": {
"switch": true,
"on_false": [
"680:492",
0
],
"on_true": [
"680:493",
0
]
},
"_meta": {
"title": "ComfySwitchNode"
}
},
"680:491": {
"class_type": "MiniMaxH3SigmaShift",
"inputs": {
"model": [
"680:494",
0
],
"shift_video": 12,
"shift_audio": 4
},
"_meta": {
"title": "MiniMaxH3SigmaShift"
}
},
"680:490": {
"class_type": "SpectrumApplyMiniMaxH3",
"inputs": {
"model": [
"680:491",
0
],
"enabled": false,
"blend_weight": 0.5,
"degree": 1,
"ridge_lambda": 0.1,
"window_size": 2,
"flex_window": 0.75,
"warmup_steps": 1,
"tail_actual_steps": 1,
"max_history": 8,
"debug": false,
"history_storage": "system_ram",
"bootstrap_first_forecast": true,
"anchor_residual_feedback": false,
"selective_rollback_correction": false,
"offline_smoothing_replay": true,
"audio_blend_weight": 0,
"offline_archive_storage": "system_ram",
"model_aware_mode": "off",
"model_aware_risk_threshold": 0.65,
"model_aware_trust_shrinkage": false,
"model_aware_replay_generic_correction": false,
"generic_correction_mode": "coordinate_rls",
"generic_correction_limiter": "hard_clip",
"generic_correction_limit": 0.4,
"generic_correction_attenuation": "no_attenuation"
},
"_meta": {
"title": "SpectrumApplyMiniMaxH3"
}
},
"680:704": {
"class_type": "MiniMaxH3TurboLoRA",
"inputs": {
"model": [
"680:490",
0
],
"lora_name": "minimax\\minimax_h3_ref2v_lightx2v_turbo_4step_v0.1_resized_avg_rank_20_bf16.safetensors",
"strength": 1,
"low_vram": false
},
"_meta": {
"title": "MiniMaxH3TurboLoRA"
}
},
"680:499": {
"class_type": "Power Lora Loader (rgthree)",
"inputs": {
"model": [
"680:704",
0
]
},
"_meta": {
"title": "Power Lora Loader (rgthree)"
}
},
"680:700": {
"class_type": "ModelAttentionBackend",
"inputs": {
"model": [
"680:499",
0
],
"attention": "comfy kitchen attention"
},
"_meta": {
"title": "ModelAttentionBackend"
}
},
"680:497": {
"class_type": "MiniMaxLowVRAMAttention",
"inputs": {
"model": [
"680:700",
0
],
"head_chunks": 4
},
"_meta": {
"title": "MiniMaxLowVRAMAttention"
}
},
"680:498": {
"class_type": "MiniMaxChunkFeedForward",
"inputs": {
"model": [
"680:497",
0
],
"chunks": 4,
"seq_threshold": 4096
},
"_meta": {
"title": "MiniMaxChunkFeedForward"
}
},
"680:487": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors",
"type": "minimax",
"device": "default"
},
"_meta": {
"title": "CLIPLoader"
}
},
"680:488": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "minimax_h3_video_vae_int8_convrot.safetensors"
},
"_meta": {
"title": "VAELoader"
}
},
"680:489": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "minimax_h3_audio_vae_fp32.safetensors"
},
"_meta": {
"title": "VAELoader"
}
},
"550:537": {
"class_type": "easy int",
"inputs": {
"value": 10
},
"_meta": {
"title": "Int - Duration"
}
},
"550:538": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17",
"values.a": [
"550:537",
0
]
},
"_meta": {
"title": "ComfyMathExpression"
}
},
"571:525": {
"class_type": "BasicGuider",
"inputs": {
"model": [
"500",
0
],
"conditioning": [
"576",
0
]
},
"_meta": {
"title": "BasicGuider"
}
},
"571:535": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"576",
0
]
},
"_meta": {
"title": "ConditioningZeroOut"
}
},
"571:526": {
"class_type": "CFGGuider",
"inputs": {
"model": [
"500",
0
],
"positive": [
"576",
0
],
"negative": [
"571:535",
0
],
"cfg": 1
},
"_meta": {
"title": "CFGGuider"
}
},
"571:527": {
"class_type": "ComfySwitchNode",
"inputs": {
"switch": [
"549",
0
],
"on_false": [
"571:525",
0
],
"on_true": [
"571:526",
0
]
},
"_meta": {
"title": "ComfySwitchNode"
}
},
"571:521": {
"class_type": "BasicScheduler",
"inputs": {
"model": [
"500",
0
],
"scheduler": "simple",
"steps": [
"566",
0
],
"denoise": 1
},
"_meta": {
"title": "BasicScheduler"
}
},
"571:523": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "a / 2",
"values.a": [
"566",
0
]
},
"_meta": {
"title": "ComfyMathExpression"
}
},
"571:530": {
"class_type": "SplitSigmas",
"inputs": {
"sigmas": [
"571:521",
0
],
"step": [
"571:523",
1
]
},
"_meta": {
"title": "SplitSigmas"
}
},
"571:534": {
"class_type": "ComfySwitchNode",
"inputs": {
"switch": [
"548",
0
],
"on_false": [
"571:521",
0
],
"on_true": [
"571:530",
0
]
},
"_meta": {
"title": "ComfySwitchNode"
}
},
"571:540": {
"class_type": "SamplerCustomAdvanced",
"inputs": {
"noise": [
"539",
0
],
"guider": [
"571:527",
0
],
"sampler": [
"714",
0
],
"sigmas": [
"571:534",
0
],
"latent_image": [
"576",
1
]
},
"_meta": {
"title": "SamplerCustomAdvanced"
}
},
"571:520": {
"class_type": "DisableNoise",
"inputs": {},
"_meta": {
"title": "DisableNoise"
}
},
"571:531": {
"class_type": "MiniMaxH3LatentUpscaleCombined",
"inputs": {
"samples": [
"571:540",
1
],
"scale_by": 1,
"method": "bilinear",
"model": [
"500",
0
],
"noise": [
"539",
0
],
"sigmas": [
"571:530",
1
],
"audio_denoise": 0.35,
"positive": [
"576",
0
],
"negative": [
"571:535",
0
],
"learned_model": "h3_clean_latent_upscaler_film_epoch200.safetensors",
"noise_resample": "independent"
},
"_meta": {
"title": "MiniMaxH3LatentUpscaleCombined"
}
},
"571:533": {
"class_type": "BasicGuider",
"inputs": {
"model": [
"500",
0
],
"conditioning": [
"571:531",
1
]
},
"_meta": {
"title": "BasicGuider"
}
},
"571:528": {
"class_type": "CFGGuider",
"inputs": {
"model": [
"500",
0
],
"positive": [
"571:531",
1
],
"negative": [
"571:531",
2
],
"cfg": 1
},
"_meta": {
"title": "CFGGuider"
}
},
"571:529": {
"class_type": "ComfySwitchNode",
"inputs": {
"switch": [
"548",
0
],
"on_false": [
"571:533",
0
],
"on_true": [
"571:528",
0
]
},
"_meta": {
"title": "ComfySwitchNode"
}
},
"571:532": {
"class_type": "SamplerCustomAdvanced",
"inputs": {
"noise": [
"571:520",
0
],
"guider": [
"571:529",
0
],
"sampler": [
"714",
0
],
"sigmas": [
"571:530",
1
],
"latent_image": [
"571:531",
0
]
},
"_meta": {
"title": "SamplerCustomAdvanced"
}
},
"571:536": {
"class_type": "ComfySwitchNode",
"inputs": {
"switch": [
"548",
0
],
"on_false": [
"571:540",
0
],
"on_true": [
"571:532",
0
]
},
"_meta": {
"title": "ComfySwitchNode"
}
},
"571:519": {
"class_type": "VAEDecodeAudio",
"inputs": {
"samples": [
"571:536",
0
],
"vae": [
"680:489",
0
]
},
"_meta": {
"title": "VAEDecodeAudio"
}
},
"571:522": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"571:536",
0
],
"vae": [
"680:488",
0
]
},
"_meta": {
"title": "VAEDecode"
}
}
}
@@ -1,158 +0,0 @@
# MiniMax H3 Prompt Guide
## Purpose
Short prompt-authoring companion for the maintained `MiniMax H3` `r2v`
master. This keeps the prompt shape close to MiniMax's official H3 docs while
matching the local ComfyUI workflow that Chris is actually using.
Bundled default Subject 1 character reference image:
`references/default-character-reference.jpg`
Bundled default location reference for `<Picture 1>`:
`references/default-location-reference.jpg`
Optional provenance note for that location reference:
`references/default-location-reference.url`
## Official MiniMax doc takeaways
Based on:
- `https://platform.minimax.io/docs/guides/video-generation`
- `https://platform.minimax.io/docs/guides/video-prompt`
- `https://platform.minimax.io/docs/api-reference/video-generation-v2-h3-context-ir`
Key points worth preserving:
- Every request needs one non-empty text prompt.
- `reference-to-video` can combine `reference_image`, `reference_video`, and
`reference_audio`.
- Official H3 limits allow up to `9` reference images, `3` reference videos,
and `3` reference audio clips, with mixed inputs capped at `12` files total.
- Prompt length limit is `7000` characters.
- Official duration is `4-15` seconds, but this local workflow should still be
planned around one clean `10s` beat per generation block.
- Local corrected-reference testing on `2026-08-22` showed this maintained
workflow completing through `17s` on the current `8 GiB` machine, while
`20s` failed with GPU out-of-memory. Treat `17s` as the verified local
ceiling for this exact setup, not a universal MiniMax limit.
- MiniMax explicitly recommends describing the relationship between references,
not just listing disconnected visual details.
- Camera guidance can be embedded directly in the prompt; their docs call out
tags like `[pan]`, `[zoom]`, and `[static]` as valid simple controls.
- `H3-Context-IR` exists to expand multimodal input into a richer structured
prompt, but the current ComfyUI workflow still benefits from a clean manual
prompt shape.
## Local workflow rules
- Treat `<Picture 1>` as the environment / master-scene reference when an
environment reference is used.
- Use `references/default-location-reference.jpg` as the default `<Picture 1>`
location reference until a shot-specific environment image replaces it.
- Treat `references/default-character-reference.jpg` as the default file to
load into `<Picture 2>` when you need a starter Subject 1 full-body
reference and have not chosen a different one yet. Duplicate that same file
into `<Picture 3>` when you want a face-reinforcement slot but only have the
single bundled starter identity image available.
- Group all images belonging to the same character explicitly.
- State what each reference controls and what it must not control.
- Ignore the backgrounds of character references unless a reference is
explicitly assigned as the environment.
- Keep one coherent action beat per `10s` block.
- End each block in a state that naturally feeds the next continuation shot.
- If you need the safest local duration target, stay at `12s` or below; use
`17s` only as the tested upper bound for this box.
## Recommended prompt order
Use this order for the actual text block:
1. `Reference assignment`
2. `Reference usage and conflict resolution`
3. `Shot description`
4. `Camera`
5. `Visual continuity`
6. `Dialogue`
7. `Audio`
That order matches both the official MiniMax emphasis on relationship-aware
multimodal prompting and the authority rules already captured in the local
workflow.
## Prompt-writing rules
- Start by declaring which pictures belong to which subject.
- Say which image owns environment, body, face, clothing, props, or product
identity.
- Tell the model what to ignore from each reference.
- Describe the shot chronologically.
- Keep camera language simple and continuous.
- Keep dialogue short enough to fit inside the same motion beat.
- State ambience and sound effects plainly instead of over-scoring the audio.
## Copy style that works well
Preferred reference phrasing:
```text
<Picture 1> is the environment and master scene reference.
<Picture 2> and <Picture 3> both represent Subject 1.
<Picture 2> is the primary full-body reference for Subject 1.
<Picture 3> is the facial identity reference for Subject 1.
Use <Picture 1> to define the environment, layout, lighting, and composition.
Use <Picture 2> to define Subject 1's body proportions, hair, and clothing.
Use <Picture 3> to reinforce Subject 1's face.
Ignore the original backgrounds of character references.
The environment is defined only by <Picture 1>.
```
Preferred shot phrasing:
```text
Shot 1 - 0.00s-10.00s
Subject 1 stands near the shop counter facing three-quarters left.
Subject 2 enters from the right edge and slows beside the doorway.
Subject 1 looks up, turns towards Subject 2, and gives a restrained nod.
Subject 2 answers with a small smile and steps closer.
The action ends with both subjects holding position, leaving the conversation
open for the next extension.
```
Preferred camera phrasing:
```text
Camera: medium-wide eye-level two-shot, slow push in, no cut, no sudden
reframe. [static] at the start, then a gentle [push in] as Subject 2 enters.
```
Preferred audio phrasing:
```text
ambient_sound: quiet interior room tone, distant refrigeration hum, soft street
noise outside
sound_effects: light footsteps, fabric rustle, door handle click
non_diegetic_music: N/A
```
## Avoid
- Re-describing the whole environment when `<Picture 1>` already establishes it
- Treating multiple references of one person as separate people
- Stacking several unrelated actions into one `10s` block
- Long monologues inside a movement-heavy shot
- Overcomplicated camera choreography
- Mixing environment authority between the master scene and character images
## Recommended workflow use
- Use `prompt-template.md` as the starting copy block.
- Use `custom/chris/minimax-h3-extender-working/prompt-set-specification.md`
when building a full multi-shot extension plan.
- Use `optimized/notes/minimax-h3-ref2va-prompt-guidelines.md` when you need
the longer rationale behind reference authority and local-safe constraints.
@@ -1,110 +0,0 @@
# MiniMax H3 Prompt Template
Use this as a starter for the maintained `MiniMax H3` `r2v` master.
Default bundled Subject 1 primary character reference:
`references/default-character-reference.jpg`
Default bundled location reference for `<Picture 1>`:
`references/default-location-reference.jpg`
Source URL for the bundled location image:
`references/default-location-reference.url`
```text
## Reference Assignment
<Picture 1> is the environment and master scene reference.
<Picture 2> and <Picture 3> both represent Subject 1.
<Picture 2> is the primary full-body reference for Subject 1.
<Picture 3> is the facial identity reference for Subject 1.
<Picture 4> and <Picture 5> both represent Subject 2.
<Picture 4> is the primary full-body reference for Subject 2.
<Picture 5> is the facial identity reference for Subject 2.
[Optional]
<Picture 6> defines the key prop / product / vehicle.
<Picture 7> defines the secondary prop / product / vehicle.
## Reference Usage
Use <Picture 1> to define the environment, composition, spatial layout,
lighting, and overall scene.
Use <Picture 2> to define Subject 1's body proportions, build, hair, clothing,
and overall appearance.
Use <Picture 3> only to reinforce Subject 1's facial identity.
Use <Picture 4> to define Subject 2's body proportions, build, hair, clothing,
and overall appearance.
Use <Picture 5> only to reinforce Subject 2's facial identity.
[Optional]
Use <Picture 6> only for the appearance of the key prop / product / vehicle.
Use <Picture 7> only for the appearance of the secondary prop / product /
vehicle.
Ignore the original backgrounds, locations, and camera compositions of all
character references.
The environment is defined only by <Picture 1>.
Do not mix identity traits between subjects.
## Shot
Shot 1 - 0.00s-10.00s
The environment remains exactly as established by <Picture 1>.
Subject 1 is [starting position, orientation, and mood].
Subject 2 is [starting position, orientation, and mood].
0.00s-3.00s:
[opening action beat]
3.00s-7.00s:
[main interaction or movement]
7.00s-10.00s:
[ending action that leaves a clean handoff into the next block if needed]
The subjects preserve their established identities throughout the shot.
## Camera
Camera: [framing], [height], [angle], [movement].
Example tags when useful: [static], [pan left], [pan right], [push in],
[pull out], [zoom in], [zoom out].
Keep the camera movement continuous and appropriate to the action.
Do not introduce a sudden cut or reset unless that is explicitly intended.
## Visual Continuity
Preserve the environment, object placement, perspective, and lighting
established by <Picture 1>.
Do not duplicate, mirror, offset, or reconstruct a second version of the
environment.
Subject 1 must remain the same person defined by <Picture 2> and <Picture 3>.
Subject 2 must remain the same person defined by <Picture 4> and <Picture 5>.
## Dialogue
Subject 1 says:
<d>[English] [SUBJECT 1 DIALOGUE]</d>
Subject 2 says:
<d>[English] [SUBJECT 2 DIALOGUE]</d>
[Optional]
Both say together:
<d>[English] [SHARED DIALOGUE]</d>
## Audio
ambient_sound: [room tone / ambience / background environment]
sound_effects: [diegetic action sounds]
non_diegetic_music: [N/A or short music direction]
```
Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

@@ -1,2 +0,0 @@
[InternetShortcut]
URL=local-repo-asset://default-location-reference.jpg
File diff suppressed because it is too large Load Diff
-22
View File
@@ -1,22 +0,0 @@
# Optimization Notes
This folder is the working memory for the optimized workflow layer.
Use it to capture:
- what looks strong
- what looks weak
- what settings seem worth preserving
- what still needs live proof
- what should be ignored next time
These notes exist so future review passes do not have to re-trawl every collected workflow from scratch.
## Current note files
- `flux.md`
- `flux2klein.md`
- `ltx.md`
- `minimax.md`
- `zimage.md`
- `reviews/`
-37
View File
@@ -1,37 +0,0 @@
# FLUX Notes
## Current useful collected workflows
- `models/flux/all-in-one-fluxdev-v0-2/`
- `models/flux/flow-upscaler/`
- `models/flux/flux-fill-inpainting/`
- `models/flux/flux-redux-reference-restyle/`
- `models/flux/flux-union-controlnet/`
## Current strongest roles
- `flow-upscaler`:
- strongest practical upscale-oriented FLUX workflow so far
- `flux-fill-inpainting`:
- cleanest dedicated edit/inpaint route
- `flux-redux-reference-restyle`:
- good reference-led variation / restyling baseline
- `flux-union-controlnet`:
- strongest structure-control baseline
- `all-in-one-fluxdev-v0-2`:
- useful as a source mine, not necessarily as a final master
## Current heuristics
- Prefer clean specialist graphs over giant all-in-one graphs when building optimized masters.
- Use big all-in-one graphs as idea mines for nodes/settings, not as the final default.
- Control, edit, and upscale workflows matter more than plain text-to-image for the current interest group.
## Best current optimization direction
- `optimized/upscale-restoration/` should likely borrow first from `flow-upscaler`
- `optimized/image-edit/` should likely compare:
- `flux-fill-inpainting`
- `flux-redux-reference-restyle`
- `flux-union-controlnet`
- `all-in-one-fluxdev-v0-2` is the place to steal useful sub-ideas if a cleaner graph needs a missing feature
-65
View File
@@ -1,65 +0,0 @@
# FLUX.2-klein Notes
## Current default assumptions
- Chris uses `FLUX.2-klein 9B`.
- Prefer `9B fp8` paths first.
- `GGUF` is not the default path unless it is the only strong or practical workflow route.
## Strong current source workflows
- Official Comfy `image edit` templates:
- `image-edit-9b-base`
- `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.
- 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`
- Community Hugging Face workflow worth remembering:
- `models/flux2klein/community-gguf-kv-yarvixpa/`
- Interesting because of KV-cache / GGUF optimization ideas, not because it is the default path
- Community multi-reference donor worth watching:
- `models/flux2klein/geceff-flux2klein9b-multiref-3image/`
- Useful as a reference-control donor, but still too heavy and opinionated to replace the official `9B fp8` edit baseline by default
## Strong current heuristics
- Prefer official Comfy templates as the baseline unless a community workflow clearly improves something real.
- For `9B`, watch closely for text-encoder mismatches.
- Keep the maintained `9B fp8` master pinned to the literal `flux-2-klein-9b-fp8.safetensors` filename; the imported distilled template still shows `fp8mixed` in the widget value, so do not copy that label back into the maintained graph.
- Community `9B` optimization notes often revolve around:
- low-step usage
- `CFG=1`
- 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
- We still do not have a clean, trusted, explicitly labeled `9B fp8 outpainting` community workflow import.
- Some public workflow pages mention outpainting but do not expose a trustworthy raw workflow asset.
- The multi-reference donor is promising, but it is not a clean maintainable replacement for the current edit master.
## Best current optimization direction
- Build future `optimized/image-edit/flux2klein-9b-master/` from the official `9B` edit template family first.
- Borrow only proven improvements from community sources:
- cleaner graph organization
- low-step settings when they are clearly validated
- better reference/outpaint control if portable
- Treat the `geceff` multi-reference pack as a donor for future reference-heavy variants, not as the first default promotion.
- The 2026-08-31 overnight `image-edit-9b-distilled` smoke stayed clean enough to keep `flux2klein-9b-fp8-edit-master` as the benchmark winner for now: identity retention remained strong, the full-body silhouette stayed tidy, and the white background remained uncluttered. Queue one more smoke test before any broader promotion.
- The 2026-08-28 overnight `image-edit-9b-distilled` smoke still looks clean enough to keep `flux2klein-9b-fp8-edit-master` as the benchmark winner for now: identity retention stayed strong, the full-body silhouette remained tidy, and the white background stayed uncluttered. Queue one more smoke test before any broader promotion.
- The 2026-08-22 overnight `image-edit-9b-distilled` smoke stayed clean enough to keep the current `flux2klein-9b-fp8-edit-master` lane as the benchmark winner for now: strong identity retention, a tidy full-body silhouette, and a clean white background. Keep one more smoke test queued before any broader claim of stability.
- The 2026-08-23 overnight `image-edit-9b-distilled` smoke is still clean enough to keep `flux2klein-9b-fp8-edit-master` as the benchmark winner: identity stayed locked, the body read stayed clean, and the white background remained uncluttered. Queue another smoke test before any stronger promotion.
- The 2026-08-27 overnight `image-edit-9b-distilled` smoke held up on review and is still clean enough to keep `flux2klein-9b-fp8-edit-master` as the benchmark winner for now: identity retention is still strong, the silhouette is tidy, and the white background stayed uncluttered. Queue one more smoke test before any broader promotion.
## What needs Monday proof
- Whether `9B distilled` or `9B base` is the better real default for edit/outpaint on Chris's setup
- Whether a `4B distilled` outpaint starter still beats `9B` in practical iteration speed enough to matter
- Which custom-node optimizations are real versus noise
-39
View File
@@ -1,39 +0,0 @@
# LTX Notes
## Current default assumptions
- Low-VRAM practicality matters more than graph sophistication.
- The first question is whether `LTX 2.3` is usable at all on Chris's `3070`.
## Strong current source workflows
- `models/ltx/ltx23-i2v-t2v-simple-single-pass/`
- `models/ltx/ltx23-t2v-simple-single-pass/`
- `models/ltx/ltx23-first-last-frame/`
- `models/ltx/ltx23-character-sheet-best-face-id/`
- `models/ltx/ltx25-multiple-subject-reference/`
## Strong current heuristics
- Start with simple single-pass before trying larger consistency graphs.
- Prefer split-model and extracted-model routes when the source pack says they are easier locally.
- Treat first-last-frame and character-sheet workflows as second-wave tests, not the baseline.
- Keep the `LTX-2.5` multi-subject reference pack as the best current donor for heavier consistency work, but do not let it displace the simpler `LTX 2.3` master until we have proof on the `3070`.
## Current weak areas
- No real proof yet for what is genuinely practical on Chris's box.
- Community packs bundle lots of helper nodes, which raises import fragility.
- The newer `LTX-2.5` reference pack looks promising, but it is not yet a clean default candidate.
## Best current optimization direction
- Keep `LTX` in `models/ltx/` and notes until it earns a real maintained optimized slot again.
- Only promote first-last-frame or character-sheet variants after the simple master proves viable.
- Use the `LTX-2.5` multi-subject reference workflow as a future donor for reference-heavy jobs, not as the baseline.
## What needs Monday proof
- whether the simple master loads and runs at all on the `3070`
- whether preview/decode or the core model path is the real bottleneck
- whether `LTX` has any realistic chance of displacing `MiniMax` for local use
@@ -1,389 +0,0 @@
# MiniMax H3 Ref2VA Prompt Guidelines
Source basis: Chris-provided `MiniMax H3 Ref2VA Reference & Scene Guidelines — V2`
## Purpose
Practical prompt and reference-structure guide for `MiniMax H3 Ref2VA`,
especially on an `8GB VRAM` workflow where the safe planning baseline is:
- `480p`
- maximum `10s` per generated shot
- one coherent shot per generation
- explicit roles for every reference image
## Core rule
Reduce the system to five responsibilities:
1. `Master scene`
Defines where the shot happens and how it initially looks.
2. `Full-body references`
Define who is present and their overall appearance.
3. `Headshot references`
Reinforce whose face it is.
4. `Specialist references`
Define clothing, props, vehicles, or other narrow details.
5. `Prompt`
Defines what happens during the next `10` seconds.
## Reference hierarchy
Use this authority order:
1. `master scene / environment`
2. `primary full-body character references`
3. `facial identity references`
4. `clothing references`
5. `props / vehicles / specialist references`
6. `text prompt`
Within a character:
- `full body` controls overall appearance, body proportions, hair, and clothing
- `headshots` refine facial identity
## Master scene rules
Prefer `<Picture 1>` as the master scene when possible.
It should control:
- environment
- composition
- camera position
- perspective
- field of view
- lighting
- initial subject placement
- important object placement
Preferred phrasing:
`<Picture 1> is the master scene, environment and composition reference.`
`Use <Picture 1> as the sole visual reference for the environment.`
`Preserve its initial camera position, framing, perspective, field of view, horizon, lighting, environment geometry, object positions, proportions and spatial layout.`
`Do not duplicate, offset, mirror, layer or reconstruct a second version of the environment.`
## Environment rules
If a reference already establishes the environment, do not re-describe every
visible object in text unless something changes.
Prefer:
`The environment, background, spatial layout and lighting remain as established by <Picture 1>.`
Over a full textual rebuild of the room.
## Character reference grouping
When multiple images represent the same person, explicitly say so.
Preferred phrasing:
`<Picture 2>, <Picture 3> and <Picture 4> all represent Subject 1.`
`Use their consistent identity information together to preserve Subject 1 throughout the video.`
`Do not describe them as separate subjects.`
## Full-body reference role
Primary use:
- overall appearance
- body proportions
- build
- hair
- clothing
- silhouette
Preferred phrasing:
`<Picture 2> is the primary full-body reference for Subject 1.`
`Use <Picture 2> to define Subject 1's overall appearance, body proportions, build, hair and clothing.`
`Ignore the background, environment, camera composition and location shown in <Picture 2>.`
## Headshot reference role
Primary use:
- facial identity
- facial structure
- eyes
- nose
- mouth
- skin appearance
Preferred phrasing:
`<Picture 3> is a facial identity reference for Subject 1.`
`Use <Picture 3> to reinforce Subject 1's face, facial structure, eyes, nose, mouth, skin appearance and other facial characteristics.`
`Do not use <Picture 3> to determine body proportions, clothing, environment or scene composition.`
## Full-body vs headshot conflict rule
Always resolve authority explicitly:
`<Picture 2> defines Subject 1's overall body, proportions, hair and clothing.`
`<Picture 3> and <Picture 4> provide additional facial identity information for the same Subject 1.`
`Use the headshot references to improve facial identity while preserving the body, clothing and overall appearance established by <Picture 2>.`
## Multi-character separation
Keep groups explicit to avoid identity leakage:
`<Picture 2> and <Picture 3> represent Subject 1.`
`<Picture 4> and <Picture 5> represent Subject 2.`
`Do not allow the identity or physical characteristics of one subject to influence another subject.`
## Background isolation rule
Character references often contain irrelevant backgrounds. State that those
backgrounds should be ignored.
Preferred phrasing:
`Use all character reference images only for their assigned character information.`
`Ignore their original backgrounds, locations, scene compositions, camera positions and environmental lighting.`
`The environment is defined exclusively by <Picture 1>.`
## Specialist references
Narrow responsibility prevents conflicts.
Example clothing phrasing:
`<Picture 5> defines the clothing worn by Subject 1.`
`Use <Picture 5> only as a clothing reference.`
`Ignore the person, face, body, pose, environment and background shown in <Picture 5>.`
Example vehicle phrasing:
`<Picture 6> defines the appearance of the vehicle.`
`Use <Picture 6> only as a visual reference for the vehicle.`
`Ignore its original environment, camera position and background.`
## 8GB VRAM constraints
Assume this baseline unless direct testing proves otherwise:
- resolution: `480p`
- maximum duration: `10s`
- one coherent action beat per shot
Do not design a single generation as a long sequence of unrelated events.
## Action design for 10 seconds
Good:
- `Subject 1 walks towards Subject 2.`
- `Subject 2 turns towards Subject 1.`
- `They briefly look at each other.`
- `The camera slowly tracks forward.`
Bad:
- entering a room
- crossing the room
- talking
- sitting
- picking something up
- finishing a conversation
- standing
- leaving
all in one `10s` shot
## Timing guidance
Simple timing is useful when sequencing matters:
- `0-3 seconds`: approach
- `3-7 seconds`: reaction
- `7-10 seconds`: settle / hold
Avoid over-micro-timing unless necessary.
## Dialogue guidance
Dialogue must fit within the same `10s` budget as motion and camera changes.
If the line is long, keep action simple.
Preferred pattern:
- character holds position or makes one simple move
- one spoken line
- one visible reaction
- one restrained camera movement
## Camera guidance
The master scene defines the opening frame.
Prompt text should describe how that camera changes, not replace it with a new
simultaneous framing.
Good camera phrasing:
- `The camera slowly pushes forward.`
- `The camera gently pans right to follow Subject 1.`
- `The camera slowly arcs around both subjects while maintaining their spatial relationship.`
## Expression guidance
Headshots lock identity, not frozen expression.
Expression belongs in performance instructions:
`Subject 1 initially appears relaxed.`
`As Subject 2 speaks, their expression gradually becomes concerned.`
## Recommended prompt architecture
Use this section order:
1. `Reference definitions`
2. `Scene anchor`
3. `Reference restrictions`
4. `Subject placement`
5. `Action / performance`
6. `Camera`
7. `Dialogue / audio`
## Single-character template
```text
<Picture 1> is the master scene, environment and composition reference.
<Picture 2>, <Picture 3> and <Picture 4> all represent Subject 1.
<Picture 2> is Subject 1's primary full-body reference and defines
their overall appearance, body proportions, build, hair and clothing.
<Picture 3> and <Picture 4> are complementary facial identity
references for Subject 1.
Use these headshot references to reinforce Subject 1's facial identity
while preserving the overall appearance established by <Picture 2>.
Use <Picture 1> as the sole visual reference for the environment.
Preserve its initial composition, camera position, perspective,
field of view, lighting, environment geometry and spatial layout.
Ignore the backgrounds, environments and compositions shown in
<Picture 2>, <Picture 3> and <Picture 4>.
[ACTION — MAXIMUM 10 SECONDS]
[CAMERA]
[DIALOGUE]
[AUDIO]
```
## Multi-character template
```text
<Picture 1> is the master scene, environment and composition reference.
<Picture 2>, <Picture 3> and <Picture 4> all represent Subject 1.
<Picture 2> is the primary full-body reference for Subject 1
and defines their overall appearance, body proportions, build,
hair and clothing.
<Picture 3> and <Picture 4> are complementary facial identity
references for Subject 1 and provide additional information about
their facial structure and appearance.
<Picture 5> and <Picture 6> both represent Subject 2.
<Picture 5> is the primary full-body reference for Subject 2
and defines their overall appearance, body proportions, build,
hair and clothing.
<Picture 6> is a facial identity reference for Subject 2.
The opening frame uses the environment and composition established
by <Picture 1>.
Use <Picture 1> as the sole visual reference for the environment.
Preserve its initial camera position, framing, perspective,
field of view, horizon, lighting, environment geometry,
object positions, proportions and spatial layout.
Do not duplicate, offset, mirror, layer or reconstruct a second
version of the environment.
Use the full-body character references to establish the overall
appearance of their respective subjects.
Use the headshot references to reinforce facial identity while
preserving the body and overall appearance established by the
corresponding full-body reference.
Ignore the backgrounds, environments, camera positions and scene
compositions shown in all character reference images.
Do not allow the identity or physical characteristics of one
subject to influence another subject.
[ACTION AND PERFORMANCE — MAXIMUM 10-SECOND SHOT]
[CAMERA MOVEMENT]
[DIALOGUE]
[AUDIO / ENVIRONMENTAL SOUND]
```
## Efficiency rule
Do not add references just because they exist.
Good default set for one important character:
- `1 x` full-body reference
- `1 x` frontal headshot
- `1 x` three-quarter headshot
The goal is the smallest reference set that clearly defines the required
information.
## Practical default checklist
- work at `480p`
- treat `10s` as the safe maximum shot duration
- use one coherent action or interaction per generation
- use a master scene whenever possible
- give the master scene authority over environment and composition
- give each important character one primary full-body reference
- add headshots only when facial identity needs reinforcement
- explicitly state which images belong to the same character
- stop character-reference backgrounds from influencing the master scene
- use the text prompt mainly for action, performance, camera, dialogue, and audio
-63
View File
@@ -1,63 +0,0 @@
# MiniMax Notes
## Current default assumptions
- `MiniMax H3` is promising, but brute-force paths are too heavy to be the first bet on a `3070`.
- Speed-first and low-VRAM community workflows matter more than official purity for the first real test.
## Strong current source workflows
- `models/minimax/minimax-h3-official-t2v/`
- `models/minimax/minimax-h3-official-i2v/`
- `models/minimax/minimax-h3-turbo-lora-community/`
- `models/minimax/minimax-h3-int8-r2v-community/`
- `models/minimax/minimax-h3-extender-ref2va/`
- `models/minimax/minimax-h3-int8-r2v-javano2608-23/`
- `models/minimax/minimax-h3-turbo-gguf-i2va/`
- `models/minimax/minimax-h3-seamless-chain-v2/`
## Strong current heuristics
- Prefer Turbo LoRA for the first `text-to-video` attempt.
- Prefer INT8-based community workflows for `reference-to-video` exploration.
- Keep attention and memory-efficiency helpers if they are already integrated and well documented.
- Treat the same-day `javawock7618` `INT8 R2V` import as the strongest current donor for local continuity and identity retention, but not as proof that the graph is light enough for a `3070`.
- Keep the GGUF `I2VA` path as an audio-aware fallback, not the default lane.
## Current weak areas
- No proof yet that MiniMax is truly practical on Chris's box.
- Custom-node stack is more fragile than the current `flux2klein` path.
- The full `seamless-chain` graph is interesting, but it is not a clean baseline for the first maintained master.
## Best current optimization direction
- Keep `optimized/text-to-video/minimax-h3-3070-turbo-master/` as the first MiniMax default.
- Keep the INT8 reference-video workflow as the next donor for future low-VRAM optimization.
- Keep only two maintained `optimized/image-to-video/` MiniMax lanes:
- `optimized/image-to-video/minimax-h3-r2v-master/` as the reference-first generation master
- `optimized/image-to-video/minimax-h3-extension-master/` as the imported-video extension master
- Use the new same-day `javawock7618` `INT8 R2V` import as the main donor for future `best-current-r2v` revisions if the current master needs another pass.
## Ref2VA prompt guidance
- For `MiniMax H3 Ref2VA`, treat `480p` and `10s` as the safe planning baseline on `8GB VRAM` unless direct tests prove otherwise.
- Chris's later manual testing suggests `20s @ 480p` is a real context-loop candidate ceiling, so maintained loop masters should compare `3 x 20s` against `6 x 10s` rather than assuming only `10s` clips are viable.
- In the maintained `best-current-r2v-master`, keep `Picture 1` as the master scene / environment reference and `Picture 2` as the primary full-body identity reference.
- Use one master-scene reference to control environment/composition, one primary full-body reference per subject to control overall appearance, and headshots only to reinforce facial identity.
- Explicitly state when multiple images represent the same subject, and explicitly tell the model to ignore character-reference backgrounds so they do not fight the master environment.
- Use the prompt mainly for action, performance, camera movement, dialogue, and audio rather than re-describing scene details already visible in the references.
- Full guidance now lives in `optimized/notes/minimax-h3-ref2va-prompt-guidelines.md`.
## Loop enhancement direction
- For the target maintained `Contex Loop` quality workflow, treat the second-pass enhancement lane as mandatory, not optional.
- That second pass should reuse the conditioning from the original `MiniMaxH3ReferenceToVideo` node that gathers the reference images, and feed that original reference conditioning back into the guider for the enhancement pass instead of relying only on first-pass latent continuity.
- Current preferred sampler/scheduler direction for that enhancement pass is `Euler` plus `beta`.
## What needs Monday proof
- whether the Turbo LoRA workflow is just technically possible or actually usable
- whether the source-recommended `8`-step path holds up in quality
- whether MiniMax feels like a real challenger to `LTX` locally
- whether the same-day `INT8 R2V` donor stays practical on the `3070` once the helper stack is trimmed to the minimum
-47
View File
@@ -1,47 +0,0 @@
# Optimization Process Notes
## Standing rules
- Always `git pull --ff-only` before changing the repo.
- Prefer practical gains over clever complexity.
- Do not claim "optimal" when the evidence is still thin; "best current" is acceptable.
- Prefer removing dead branches, duplicated wiring, and stale custom-node clutter.
## Current review priorities
1. `flux2klein`
2. `zimage`
3. `ltx`
4. `minimax`
5. category masters in:
- `image-edit`
- `image-to-video`
- `text-to-video`
- `text-to-image`
- `upscale-restoration`
## Current repo split
- `models/` = collected originals and community finds
- `optimized/` = maintained masters
- `optimized/notes/` = accumulated reasoning and unresolved questions
## Overnight flow
- `03:00 UK`
- optimize maintained workflows where the evidence is strong enough
- prefer low-cost `flux2klein` smoke tests first
- only submit a test if the ComfyUI queue is idle
- `06:00 UK`
- inspect overnight single-image outputs
- update benchmark notes and any affected maintained notes
- clear the overnight review-pending state
## What to record after each review
- Which optimized categories changed
- Which source workflows influenced the update
- What was removed
- What was kept
- What still needs Monday testing
- The parameter-level change record for any promoted workflow: positive prompt, negative prompt, CFG, steps, sampler, scheduler, seed, denoise, resolution, checkpoint/model path, VAE, LoRAs, ControlNets, and any meaningful node rewiring
@@ -1,42 +0,0 @@
# Optimization Review 2026-08-08
## Scope
First manual optimization pass before the Sunday cadence has enough historical material to build from.
## Created masters
- `optimized/text-to-image/zimage-turbo-3070-fast-start/`
- `optimized/image-edit/zimage-turbo-3070-inpaint-start/`
- `optimized/image-edit/flux2klein-9b-fp8-edit-master/`
- `optimized/image-to-video/ltx23-3070-simple-master/`
- `optimized/text-to-video/minimax-h3-3070-turbo-master/`
## Source workflows used
- `models/zimage/z-image-turbo-official-example/`
- `models/zimage/z-image-turbo-inpainting-community/`
- `models/flux2klein/image-edit-9b-distilled/`
- `models/ltx/ltx23-i2v-t2v-simple-single-pass/`
- `models/minimax/minimax-h3-turbo-lora-community/`
## What was optimized in this pass
- Chose low-complexity or speed-first baselines instead of heavier graphs.
- Aligned `flux2klein` with Chris's `9B fp8` preference.
- Treated `LTX` and `MiniMax` as "prove viability first" families.
- Added durable notes so future passes can build on judgments instead of re-reading everything.
## What was deliberately not done
- no graph surgery without testing
- no blind node removal
- no fake "one workflow to rule them all" claims
- no promotion of first-last-frame or INT8 reference-video paths to default status yet
## Monday proof needed
- whether the two `Z-Image` masters are actually lighter and pleasant to use
- whether `flux2klein 9B distilled` behaves well enough for edit/outpaint work
- whether the `LTX` simple master is viable on a `3070`
- whether `MiniMax Turbo` is practically usable or still too tight
@@ -1,33 +0,0 @@
# 2026-08-09 Live Model Check
Checked the quiet 5am UK window against Chris's live ComfyUI server at `http://192.168.1.202:8188`.
Verified directly from live loader metadata:
- `VAELoader`: `LTX23_audio_vae_bf16.safetensors`, `LTX23_video_vae_bf16.safetensors`, `ae.safetensors`, `flux2-vae.safetensors`, `full_encoder_small_decoder.safetensors`, `taeltx2_3.safetensors`
- `UNETLoader`: `flux-2-klein-9b-fp8mixed.safetensors`, `ltx-2.3-22b-distilled-1.1_transformer_only_fp8_scaled.safetensors`, `ltx-2.3-22b-distilled-1.1_transformer_only_int8_convrot.safetensors`, `zImageTurbo_turbo.safetensors`
- `CLIPLoader`: `Qwen\\qwen_3_4b.safetensors`, `qwen_3_8b_fp8mixed.safetensors`, `gemma_3_12B_it_fp8_scaled.safetensors`, `ltx-2.3_text_projection_bf16.safetensors`
- `LoraLoader` / `LTXDirectorGuideCS`: confirmed live LTX and Flux/ZImage subpaths such as `ltx\\ltx-2.3-22b-distilled-lora-1.1_fro90_ceil72_condsafe.safetensors`, `LTX\\ltx-2.3-22b-distilled-lora-dynamic_fro09_avg_rank_105_bf16.safetensors`
Verified from successful history:
- `ltx-2.3-22b-distilled-1.1_transformer_only_fp8_scaled.safetensors`
- `ltx-2.3-22b-distilled-1.1_transformer_only_int8_convrot.safetensors`
- `gemma_3_12B_it_fp8_scaled.safetensors`
- `ltx-2.3_text_projection_bf16.safetensors`
- `taeltx2_3.safetensors`
- `LTX23_video_vae_bf16.safetensors`
- `LTX23_audio_vae_bf16.safetensors`
- `flux-2-klein-9b-fp8mixed.safetensors`
- `qwen_3_8b_fp8mixed.safetensors`
Repo updates in this pass:
- Repointed verified LTX workflows to the live `taeltx2_3`, `LTX23_video_vae_bf16`, `gemma_3_12B_it_fp8_scaled`, and `ltx-2.3-22b-distilled-1.1_*` filenames.
- Repointed the verified Flux2-klein 9B workflows to `flux-2-klein-9b-fp8mixed.safetensors`.
- Repointed the verified Z-Image workflows to `Qwen\\qwen_3_4b.safetensors` and `zImageTurbo_turbo.safetensors`.
Still unresolved:
- MiniMax loader/model filenames were not surfaced by current live loader metadata, and no recent successful MiniMax jobs were available in history to confirm the real local filenames.
- Several legacy Flux and older Flux2-klein/LTX helper workflows still reference models or LoRAs with no direct live match; those were left untouched rather than guessed.
@@ -1,110 +0,0 @@
# 2026-08-13 Flux2Klein Turnaround Batch
## Goal
Build a fast local `flux2klein` turnaround workflow from a single reference image and push a broad overnight test sweep toward a clean 4-view character sheet:
- pure white background
- even studio lighting
- front / left profile / right profile / rear
- identity consistency prioritized over style variation
## What ran
### Cleanup pass
- Workflow: `models/flux2klein/image-edit-9b-distilled/workflow.json`
- Branch: single reference
- Prompt intent: convert the source photo into a front-facing full-body studio reference on white
- Output:
- prompt id: `b00b7d92-b7cc-4731-b8b7-199a257e3bdd`
- local output: `tmp/comfyui-workflow-tests/2026-08-13T22-15-27-386Z-workflow-single/01-flux2klein-front-clean_00001_.png`
### Probe turnaround pass
- Workflow: `models/flux2klein/image-edit-9b-distilled/workflow.json`
- Branch: dual reference
- References:
- original inbound image
- cleanup pass front reference
- Prompt intent: 4-view reference sheet on white
- Key settings:
- steps: `5`
- cfg: `1.2`
- seed: `1105`
- resolution: `1664x928`
- Output:
- prompt id: `36038921-42da-4b69-8d3d-baba0d97fad1`
- local output: `tmp/comfyui-workflow-tests/2026-08-13T22-17-26-853Z-workflow-multi/01-flux2klein-turnaround-probe_00001_.png`
### Overnight queue
- Successful queued turnaround submissions: `30`
- Family used for all successful queued jobs: `9b distilled`
- Matrix dimensions explored:
- steps: `4` to `9`
- cfg: `1.0` to `1.4`
- seeds: `1101-1110`, `4101-4120`
- resolutions:
- `1536x864`
- `1664x928`
- `1920x1088`
## First 10 queued prompt ids
- `9bd_s01` -> `a5c08d95-7dd2-4b5e-bb5d-f00a54ebfcd9`
- `9bd_s02` -> `1cdae84e-b356-44b5-9588-4af62c7af38b`
- `9bd_s03` -> `73be0ed7-04a2-4503-a7d7-5935f3d0f025`
- `9bd_s04` -> `0f63b054-cd8f-4e03-aaab-efa8c8ab20cf`
- `9bd_s05` -> `37c326a6-2930-47ea-a506-b9c600240466`
- `9bd_s06` -> `568f8687-db3d-4d96-85e8-045a3fb802cb`
- `9bd_s07` -> `385905af-575e-4e81-a902-b946f6c0bedd`
- `9bd_s08` -> `437c6d22-be23-4adc-ae77-ad9833459905`
- `9bd_s09` -> `6a0e7b57-6f29-4c3d-afd5-f6d767cba440`
- `9bd_s10` -> `57f83e11-8844-40b5-a31e-f4a023f97ebe`
## Extra 20 queued prompt ids
- `9bd_x01` -> `31ea5ad0-3893-495a-925f-2a65f4ad4ad6`
- `9bd_x02` -> `0d6a4b7e-685d-47d5-be94-010546b876f6`
- `9bd_x03` -> `e8ed1cc0-7dcb-43ec-be67-69bab9d98af4`
- `9bd_x04` -> `f984a196-9edf-4900-975d-aca71218d209`
- `9bd_x05` -> `58dad1cc-22c1-43ce-9125-d774722fe1ed`
- `9bd_x06` -> `fae2c765-48c7-4cb2-921b-09cca204d783`
- `9bd_x07` -> `38000496-c6b8-4803-92ce-f1615dd96528`
- `9bd_x08` -> `27e8d0b2-56a5-4e34-bd94-692563bdbf96`
- `9bd_x09` -> `2ecf88fb-58ec-402c-8ced-74967748dfaf`
- `9bd_x10` -> `97b481e5-5835-4c1a-b9c5-a9b1fc21ee12`
- `9bd_x11` -> `1e5bd564-1b29-45c3-b562-3f2ce41bccc8`
- `9bd_x12` -> `cac2b203-7298-449a-9537-edb5eba983ae`
- `9bd_x13` -> `d64cf656-6efb-4cbd-a533-8176967e3639`
- `9bd_x14` -> `7c3be665-58aa-4637-b467-3071fab4ac63`
- `9bd_x15` -> `0ce6b306-1080-41ef-80fe-1afd6e11e714`
- `9bd_x16` -> `28a91c5c-3bd9-4d71-acd9-587f42f6f657`
- `9bd_x17` -> `86c1500f-e8df-43ce-9a6b-cfefa1e63cf1`
- `9bd_x18` -> `2a130a3c-4b53-432b-8d09-10c9ca643000`
- `9bd_x19` -> `1162ed9d-956f-4898-8298-a83816fff6e9`
- `9bd_x20` -> `ace7959f-a2b0-49ac-b258-dd924d9ce591`
## Tooling added
- `scripts/submit-flux2klein-edit-test.mjs`
It:
- uploads local image refs into Comfy input
- expands the official template subgraph into a prompt graph
- applies prompt / seed / steps / cfg / sampler / resolution overrides
- remaps loader filenames to the live server when needed
- can submit and wait, or submit with `--no-wait`
## Blockers found
- `models/flux2klein/image-edit-4b-distilled/workflow.json`
- contains another nested template layer (`27eacb9f-0da2-421d-a0bf-b4b4e5fe5709`) not yet expanded by the current script
- `models/flux2klein/image-edit-9b-base/workflow.json`
- expects `flux-2-klein-base-9b-fp8.safetensors`, which is not present on the live server
## Current best visible result
The best immediate visible result so far is the probe turnaround sheet from `36038921-42da-4b69-8d3d-baba0d97fad1`. It is strong enough to justify the broader 9B distilled overnight sweep before spending more time on nested-template support.
@@ -1,27 +0,0 @@
# 2026-08-20 Daily Review
## Scope
Reviewed the current MiniMax, Z-Image, LTX, and FLUX.2-klein source packs against the maintained optimized layer.
## Repo updates
- Updated `optimized/image-to-video/README.md` so the category index now lists the maintained `MiniMax H3` best-current R2V master.
- Refreshed `optimized/image-to-video/minimax-h3-best-current-r2v-master-480p-3x10s/README.md` with the current Ref2VA prompt hierarchy and the same-day MiniMax donor context.
## Notes updated
- `optimized/notes/minimax.md`
- `optimized/notes/ltx.md`
- `optimized/notes/zimage.md`
- `optimized/notes/flux2klein.md`
## Best first test
- Validate the maintained `MiniMax H3` best-current R2V master on the `3070` with the new prompt hierarchy, then compare it against the same-day `javawock7618` `INT8 R2V` donor if time allows.
## What still needs proof
- Whether the same-day `MiniMax H3` donor is actually practical on Chris's box.
- Whether `Z-Image` edit workflows meaningfully beat the current FLUX edit baseline.
- Whether `LTX-2.5` reference control is strong enough to justify a future promoted master.
@@ -1,27 +0,0 @@
# 2026-08-27 Daily Review
## Scope
Reviewed the overnight `flux2klein` single-image smoke test recorded in `benchmarks/flux2klein/overnight-state.json`.
## Tests found
- One successful overnight smoke test in `runs/2026-08-27T02-08-31-134Z-single-smoke/`.
- Workflow: `models/flux2klein/image-edit-9b-distilled/workflow.json`
- Output: `benchmarks/flux2klein/runs/2026-08-27T02-08-31-134Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00002_.png`
## Best output
- Clean full-body studio restage on a pure white seamless background.
- Identity retention is strong enough to keep the current winner in place for now.
- The gold corset and black thigh-high boots stayed readable and the silhouette stayed tidy.
- No obvious background clutter or compositional noise.
## Verdict
Keep `runs/2026-08-27T02-08-31-134Z-single-smoke/` as the current benchmark winner, but do not treat it as fully settled from one image.
## Follow-up
- Queue one more smoke test on a later night.
- Use the next test to confirm the identity lock and background cleanliness hold up across another sample.
@@ -1,27 +0,0 @@
# 2026-08-28 Daily Review
## Scope
Reviewed the overnight `flux2klein` single-image smoke test recorded in `benchmarks/flux2klein/overnight-state.json`.
## Tests found
- One successful overnight smoke test in `runs/2026-08-28T02-07-42-007Z-single-smoke/`.
- Workflow: `models/flux2klein/image-edit-9b-distilled/workflow.json`
- Output: `benchmarks/flux2klein/runs/2026-08-28T02-07-42-007Z-single-smoke/cases/case01/01-flux2klein-overnight-smoke_00003_.png`
## Best output
- Clean full-body studio restage on a pure white seamless background.
- Identity retention is still strong enough to keep the current winner in place for now.
- The gold corset and black thigh-high boots stayed readable and the silhouette stayed tidy.
- No obvious background clutter or compositional noise.
## Verdict
Keep `runs/2026-08-28T02-07-42-007Z-single-smoke/` as the current benchmark winner, but do not treat it as fully settled from one image.
## Follow-up
- Queue one more smoke test on a later night.
- Use the next test to confirm the identity lock and background cleanliness hold up across another sample.
@@ -1,26 +0,0 @@
# 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/`
## Review result
- The rendered output is clean and practical: identity retention is strong, the full-body silhouette is tidy, and the white seamless background stays uncluttered.
- Keep the run as the current benchmark winner for now, but queue one more smoke test before any broader promotion.
-36
View File
@@ -1,36 +0,0 @@
# Z-Image Notes
## Current default assumption
- `Z-Image` is in scope for collection and optimization alongside `FLUX.2-klein`, `LTX`, and `MiniMax`.
## What to look for
- strong official `text-to-image` workflows
- reference and edit workflows
- outpaint / inpaint workflows
- high-quality upscaling or restoration-adjacent workflows
- any workflow that clearly beats a comparable `FLUX` path in practical image quality or simplicity
## Strong current source workflows
- `models/zimage/z-image-turbo-official-example/`
- `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
- Prefer real workflow assets over showcase pages.
- Favor workflows with clear node requirements and portable imports.
- 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
- which `Z-Image` workflows are genuinely stronger than the best current `FLUX` image-generation paths
- whether `Z-Image` should become a category-master candidate for `text-to-image` or `image-edit`
- whether the inpaint or union-style community graph is the better maintained edit baseline on Chris's machine
+2 -16
View File
@@ -1,17 +1,3 @@
# Text-to-Image Masters # Text-to-image
Home for maintained category masters focused on text-to-image generation. The optimized text-to-image collection currently focuses on the tested Flux.2 Klein baseline.
This category should stay lean. Keep one maintained default unless a second path earns a clearly different role.
## Current master
- `zimage-turbo-3070-fast-start`
## Test submission
For direct server tests, use:
`node scripts/submit-workflow-test.mjs --workflow optimized/text-to-image/zimage-turbo-3070-fast-start/workflow.png --prompt "<your prompt>"`
The first version is intentionally scoped to direct ComfyUI text-to-image submission. It works best with prompt-style JSON workflows and PNG workflows that contain an embedded `prompt` text chunk.
@@ -0,0 +1,21 @@
# Flux.2 Klein 9B — RTX 3070 best baseline
This is the current best tested Flux.2 Klein text-to-image workflow for the 8 GB RTX 3070.
## Settings
- Model: `flux-2-klein-9b-fp8mixed.safetensors`
- Text encoder: `qwen_3_8b_fp8mixed.safetensors` (`flux2`)
- VAE: `flux2-vae.safetensors`
- Resolution: 1920×1080
- Sampler: `euler_cfg_pp`
- Steps: 6
- CFG: 1.3
- Seed: `20260920`
- Measured generation time: approximately 78 seconds
The seed and prompt are intentionally fixed so future sampler, scheduler, step, CFG, LoRA, and second-pass experiments can be compared consistently.
## Optional second pass
SeedVR2 3B FP8 produced a successful 2560×1440 output from this baseline. A 3840×2160 attempt ran out of the GPU's 8 GB VRAM. The SeedVR2 pass is therefore an optional export step, not part of the fast generation baseline.
@@ -0,0 +1,98 @@
{
"1": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "flux-2-klein-9b-fp8mixed.safetensors",
"weight_dtype": "default"
}
},
"2": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "qwen_3_8b_fp8mixed.safetensors",
"type": "flux2",
"device": "default"
}
},
"3": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "flux2-vae.safetensors"
}
},
"4": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "Hyper-realistic cinematic documentary photograph inside the canteen of a deep-space exploration spaceship, a spacious lived-in dining hall with brushed titanium bulkheads, warm amber practical lights, cool cyan window spill, a huge panoramic observation window showing a blue nebula, distant stars and the curved limb of a planet, two adult human crew members in the foreground seated across from one another at a scratched metal table playing a tense friendly game of cards, a beautiful adult woman with natural facial features, expressive eyes, shoulder-length dark wavy hair, a fitted practical navy flight jacket over a cream knit top, subtle silver earrings and realistic skin texture, leaning forward holding a playing card, a muscular adult mixed-race man with short curly hair, trimmed beard, broad shoulders and powerful forearms, wearing a charcoal utility shirt with rolled sleeves and a worn leather wristband, studying the table with a half-smile, anatomically correct five-finger hands, orderly readable playing cards and coherent poker chips, steaming coffee, a glass of amber fruit drink, metal cutlery, ceramic bowls, half-eaten noodles, bread, fruit, condiments and scattered crumbs on the table, background crew in varied practical uniforms, one person using a wall-mounted food synthesizer, another carrying a tray, a cook behind a compact galley counter, illuminated panels with abstract non-legible interface graphics, utensils hanging from magnetic rails, food printers, refrigeration drawers, mugs secured in holders, subtle condensation, reflections in polished metal, believable spaceship engineering, cables and access panels, small personal photographs and mission patches, natural candid interaction, rich environmental storytelling, carefully composed wide medium shot at eye level, 35mm cinema lens, realistic perspective, moderate depth of field with both main players and the busy canteen readable, soft volumetric atmosphere, practical motivated lighting, gentle rim light on hair and shoulders, bounced fill light on faces, subtle lens bloom, restrained anamorphic horizontal flares, realistic film grain, high dynamic range, accurate color science, crisp micro-detail, premium science-fiction production design, photorealistic, ultra-detailed, physically plausible materials, cinematic lighting, no text or logos",
"clip": ["2", 0]
}
},
"5": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "cartoon, illustration, anime, CGI look, plastic skin, waxy faces, beauty filter, over-smoothed skin, duplicate people, extra limbs, missing limbs, malformed hands, fused fingers, unreadable cards, floating objects, distorted faces, crossed eyes, asymmetrical eyes, bad anatomy, warped perspective, overexposure, crushed blacks, muddy detail, extreme saturation, heavy vignette, excessive bloom, excessive lens flare, motion blur, low resolution, artifacts, watermark, caption, subtitle, logo, illegible text, celebrity likeness",
"clip": ["2", 0]
}
},
"6": {
"class_type": "CFGGuider",
"inputs": {
"cfg": 1.3,
"model": ["1", 0],
"positive": ["4", 0],
"negative": ["5", 0]
}
},
"7": {
"class_type": "KSamplerSelect",
"inputs": {
"sampler_name": "euler_cfg_pp"
}
},
"8": {
"class_type": "Flux2Scheduler",
"inputs": {
"steps": 6,
"width": 1920,
"height": 1080
}
},
"9": {
"class_type": "RandomNoise",
"inputs": {
"noise_seed": 20260920
}
},
"10": {
"class_type": "EmptyFlux2LatentImage",
"inputs": {
"width": 1920,
"height": 1080,
"batch_size": 1
}
},
"11": {
"class_type": "SamplerCustomAdvanced",
"inputs": {
"noise": ["9", 0],
"guider": ["6", 0],
"sampler": ["7", 0],
"sigmas": ["8", 0],
"latent_image": ["10", 0]
}
},
"12": {
"class_type": "VAEDecode",
"inputs": {
"samples": ["11", 0],
"vae": ["3", 0]
}
},
"13": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "fluxExperiments/experiment/flux2klein_best_baseline",
"images": ["12", 0]
}
}
}
@@ -1,78 +0,0 @@
# Z-Image Turbo 3070 Fast Start
## Summary
Best current `text-to-image` starter for a lighter local box.
This master stays close to the official `Z-Image Turbo` example because that is still the cleanest and most portable `Z-Image` graph in the repo.
## Status
- `best-current`
- `not-yet-tested-on-chris-box`
## Workflow asset
- `workflow.json`
- `workflow.png`
- Prefer `workflow.json` for current testing and editing.
- `workflow.png` is the original embedded example import.
## Direct test command
You can also submit it straight to the live ComfyUI server with:
`node scripts/submit-workflow-test.mjs --workflow optimized/text-to-image/zimage-turbo-3070-fast-start/workflow.png --prompt "<your prompt>"`
That path reads either the JSON workflow or the embedded PNG `prompt` chunk, applies text-to-image overrides, submits the job, polls history, and downloads the outputs locally.
## Built from
- `models/zimage/z-image-turbo-official-example/`
## Why this is the current master
- Official source beats community guesswork for a first baseline.
- `Z-Image Turbo` looks like one of the strongest fast-image candidates for a `3070`.
- The graph is simple enough to troubleshoot without drowning in custom-node noise.
## What I intentionally kept
- Official model wiring
- Official `qwen_3_4b` text encoder path
- The original embedded PNG workflow as a reference import
## What I intentionally changed
- switched the maintained test target to `workflow.json`
- repointed the loader names to the live server filenames
- lowered the default latent size to `768x768`
- lowered the default sampler steps to `6`
## What I intentionally did not add yet
- community patch nodes
- extra control branches
- reference-image complexity
- "magic" speed hacks without proof
## Required models
- `models/text_encoders/Qwen/qwen_3_4b.safetensors`
- `models/diffusion_models/zImageTurbo_turbo.safetensors`
- `models/vae/ae.safetensors`
## Required custom nodes
- none beyond current official Comfy support
## Monday test checklist
- Confirm it imports cleanly from PNG on your current Comfy build.
- Check whether it really feels lighter than your usual FLUX path.
- Check whether prompt adherence is good enough to justify keeping it as the `fast-start` master.
## Next optimization candidates
- merge in useful edit/reference ideas from the community `Z-Image` graphs
- build a stronger prompt preset if the base graph is good but inconsistent
@@ -1,128 +0,0 @@
{
"3": {
"inputs": {
"seed": 47447417949230,
"steps": 6,
"cfg": 1,
"sampler_name": "euler",
"scheduler": "simple",
"denoise": 1,
"model": [
"16",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"13",
0
]
},
"class_type": "KSampler",
"_meta": {
"title": "KSampler"
}
},
"6": {
"inputs": {
"text": "cute anime style girl with massive fluffy fennec ears and a big fluffy tail blonde messy long hair blue eyes wearing a maid outfit with a long black gold leaf pattern dress and a white apron, it is a postcard held by a hand in front of a beautiful realistic city at sunset and there is cursive writing that says \"ZImage, Now in ComfyUI\"",
"clip": [
"18",
0
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"7": {
"inputs": {
"text": "blurry ugly bad",
"clip": [
"18",
0
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"8": {
"inputs": {
"samples": [
"3",
0
],
"vae": [
"17",
0
]
},
"class_type": "VAEDecode",
"_meta": {
"title": "VAE Decode"
}
},
"9": {
"inputs": {
"filename_prefix": "zimage-3070-fast-start",
"images": [
"8",
0
]
},
"class_type": "SaveImage",
"_meta": {
"title": "Save Image"
}
},
"13": {
"inputs": {
"width": 768,
"height": 768,
"batch_size": 1
},
"class_type": "EmptySD3LatentImage",
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"16": {
"inputs": {
"unet_name": "zImageTurbo_turbo.safetensors",
"weight_dtype": "default"
},
"class_type": "UNETLoader",
"_meta": {
"title": "Load Diffusion Model"
}
},
"17": {
"inputs": {
"vae_name": "ae.safetensors"
},
"class_type": "VAELoader",
"_meta": {
"title": "Load VAE"
}
},
"18": {
"inputs": {
"clip_name": "Qwen\\qwen_3_4b.safetensors",
"type": "lumina2",
"device": "default"
},
"class_type": "CLIPLoader",
"_meta": {
"title": "Load CLIP"
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

-9
View File
@@ -1,9 +0,0 @@
# Text-to-Video Masters
Home for maintained category masters focused on text-to-video generation.
Keep this category to one maintained default unless a second path earns a materially different role.
## Current master
- `minimax-h3-3070-turbo-master`
@@ -1,65 +0,0 @@
# MiniMax H3 3070 Turbo Master
## Summary
Best current `MiniMax H3` speed-first starter for local text-to-video tests.
This master is built from the community Turbo LoRA workflow because standard MiniMax paths are too expensive to be the first serious attempt on a `3070`.
## Status
- `best-current`
- `not-yet-tested-on-chris-box`
## Workflow asset
- `workflow.json`
## Built from
- `models/minimax/minimax-h3-turbo-lora-community/`
## Why this is the current master
- Explicitly optimized for lower step count
- Much more aligned with your hardware than generic official baselines
- Clear developer guidance exists for key settings
## What I intentionally kept
- Turbo LoRA route
- `8`-step recommendation from the source notes
- `euler` sampler direction
- MiniMax acceleration helpers already wired in the graph
## What I intentionally did not add yet
- INT8 reference-video complexity from the separate community workflow
- extra latent upscale stages
- broad claims that MiniMax beats `LTX` before we see real results
## Required custom nodes
- MiniMax-compatible Comfy support
- `ComfyUI-KJNodes`-style helper nodes present in the graph
- optional acceleration stack may include SageAttention, Sol Attention, Gradient, and Spectrum support
## Expected source model route
- Turbo LoRA source notes recommend:
- `minimax_h3_turbo_v4_step600_ema_pruned_comfyui.safetensors`
- `8` steps
- `euler`
- `beta`
- LoRA strength `1.0`
## Monday test checklist
- Confirm whether all MiniMax helper nodes resolve.
- Try the source-recommended settings before changing anything.
- Judge whether this is merely "possible" or actually practical on your box.
## Next optimization candidates
- merge proven low-VRAM ideas from the INT8 R2V workflow
- split out an `image-to-video` MiniMax master if the family proves worth keeping
File diff suppressed because it is too large Load Diff
-3
View File
@@ -1,3 +0,0 @@
# Upscale and Restoration Masters
Home for maintained category masters focused on upscaling, restoration, relighting, and detail recovery.
@@ -1,44 +0,0 @@
# SeedVR2 I2I Upscaler
## Summary
Practical `SeedVR2` image-to-image upscaler and restoration workflow from the `wizdroid/comfyui-workflows` pack. This is the kind of workflow you keep around when you want cleaner detail recovery, not just a bigger image.
## Model Family
- `seedvr2`
## Status
- `imported-only`
## Source
- Repository: <https://huggingface.co/wizdroid/comfyui-workflows>
- Workflow file: <https://huggingface.co/wizdroid/comfyui-workflows/raw/main/seedvr2-i2i.json>
- Original publisher: `wizdroid`
- Date imported: `2026-08-31`
## Developer notes
- This came from the same workflow pack that also ships Flux2-Klein, Z-Image-Turbo, and MiniMax H3 templates.
- The source README positions this as one of the stronger local upscaling and restoration paths in the pack.
## Our notes
- This looks like a real SeedVR2 workflow to keep, not just a benchmark artifact.
- On an `RTX 3070` with `8 GB` VRAM, expect it to feel tight to heavy, especially if you try to push larger inputs or aggressive tiling.
- Best use case is detail recovery and restoration where quality matters more than speed.
## Required custom nodes
- `ComfyUI-SeedVR2_VideoUpscaler` (`ainvfx`)
## Required model files
- `seedvr2_ema_7b_sharp_fp16.safetensors`
- `ema_vae_fp16.safetensors`
## Notes
- Good candidate when SeedVR2 is the right tool and you want a ready-made ComfyUI path instead of wiring the graph by hand.
File diff suppressed because one or more lines are too long