Tighten optimized workflow masters

This commit is contained in:
Morpheus
2026-08-22 15:24:04 +00:00
parent 2e940d7e71
commit 6bcfd3904f
23 changed files with 89 additions and 13712 deletions
+14 -6
View File
@@ -2,11 +2,19 @@
Home for maintained category masters focused on image-to-video generation.
## Current masters
This category is intentionally capped at two maintained workflows:
- `ltx23-3070-simple-master`
- `minimax-h3-3070-single-10s-1152x640-r2v-master`
- `minimax-h3-best-current-r2v-master-480p-3x10s`
- `minimax-h3-contex-loop-3070-compact-30s`
- `minimax-h3-contex-loop-3070-compact-prepend-480p-3x10s`
- `minimax-h3-extender-3070-r2v-480p-60s-clip-by-clip`
- `minimax-h3-contex-loop-3070-safe-60s-awq-int8`
## Roles
- `minimax-h3-best-current-r2v-master-480p-3x10s`
The current reference-first generation master when the job starts from still images and should grow into connected clips.
- `minimax-h3-contex-loop-3070-safe-60s-awq-int8`
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,56 +0,0 @@
# LTX 2.3 3070 Simple Master
## Summary
Best current `LTX 2.3` low-complexity starter for local video work.
This master uses the simple single-pass workflow instead of the more ambitious first-last-frame or character-sheet variants because your `3070` needs a realistic first foothold, not the fanciest graph on paper.
## Status
- `best-current`
- `not-yet-tested-on-chris-box`
## Workflow asset
- `workflow.json`
## Built from
- `models/ltx/ltx23-i2v-t2v-simple-single-pass/`
## Why this is the current master
- Most plausible `LTX` starting point on tighter VRAM
- Simpler graph means less time chasing broken helper nodes
- Supports both `image-to-video` and `text-to-video` style experimentation from one baseline
## What I intentionally kept
- single-pass graph shape
- split-model assumption from the source pack
- lighter starting complexity than the bigger RuneXX graphs
## What I intentionally did not add yet
- first-last-frame complexity
- character-sheet consistency branches
- extra memory-efficiency gadgets unless needed
## Required custom nodes
- `ComfyUI-KJNodes`
- `rgthree-comfy`
- `easy use` / `easy showAnything`
- optional `ComfyUI-GGUF` support remains present in the source graph
## Monday test checklist
- Confirm whether it loads at all on the `3070`.
- Check whether preview/decode settings feel like the real bottleneck.
- If it works, then try the heavier first-last-frame workflow second.
## Next optimization candidates
- strip unused optional loader paths if they create confusion
- create a separate `first-last-frame` master only if the simple master proves viable
File diff suppressed because it is too large Load Diff
@@ -1,61 +0,0 @@
# MiniMax H3 3070 Single 10s 1152x640 R2V Master
## Summary
Best-current single-shot `MiniMax H3` `reference-to-video` master for a
`3070 / 8 GB` box when the goal is one strong `10s` clip before post-upscale.
This is the first proven higher-resolution step above the safer `480p` chain
masters while still completing locally.
## Status
- `best-current-single-10s-r2v-master`
## Workflow asset
- `workflow.json`
## Built from
- `optimized/image-to-video/minimax-h3-best-current-r2v-master-480p-3x10s/`
- the successful `1152x640` max-resolution probe run from
`tmp/comfyui-maxres-probe/2026-08-16T21-36-15-454Z/`
## What this proves
- `1280x704` OOMed on the tested `3070 / 8 GB`
- `1216x672` OOMed on the tested `3070 / 8 GB`
- `1152x640` completed successfully as a single `10s` `R2V` render
## Key model stack
- `minimax_h3_ref2va_pruned_int8_convrot.safetensors`
- `qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\minimax_h3_turbo_v4_step600_ema.safetensors`
## Main changes
- raises the working canvas to `1152x640`
- keeps the single `10s` duration target
- keeps the low-VRAM attention and chunked feed-forward path
- keeps the latent upscale stage plus `RTXVideoSuperResolution` hook for the
post-pass workflow shape
- preserves the exact proven prompt graph instead of prematurely generalizing
away the validated settings
## When to use this
- use this when you want the best current single `10s` local MiniMax render
before RTX upscale
- use the `480p` chain masters when the priority is longer continuation or
safer multi-clip iteration
## Notes
- The bundled prompt and image references are the validated probe example.
- Replace the demo reference image, prompt text, and output prefix for your own
run after loading the workflow.
- Treat `1152x640` as the current confirmed ceiling for this graph on the
tested machine until a tighter probe proves otherwise.
@@ -1,902 +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\":1152,\"h\":640,\"custom_w\":1152,\"custom_h\":640,\"custom_ratio_w\":5,\"custom_ratio_h\":2,\"snap\":16}"
},
"_meta": {
"title": "PixaromaResolution"
}
},
"539": {
"class_type": "RandomNoise",
"inputs": {
"noise_seed": 5203
},
"_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": "alig.jpg"
},
"_meta": {
"title": "LoadImage"
}
},
"575": {
"class_type": "LoadImage",
"inputs": {
"image": "alig.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": 1152,
"height": 640,
"length": 243,
"ref_image_size": "max",
"ref_images.ref_image_0": [
"574",
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 a character identity reference for Subject 1 only. Use it to preserve the same man, facial structure, trimmed goatee, tinted wraparound glasses, red beanie, oversized yellow sports jersey, gold chain, rings and overall Ali G styling. Ignore the original street, car, daylight, watermark text and all original background elements from the reference image.\n\nCreate a completely new scene inside a warm 1970s roller rink with a polished wooden floor, colored rink lights, mirrored walls, retro signage, skaters in the background and period atmosphere. Do not bring the original photo to life. Use it only as a character reference while placing Subject 1 into the new roller rink environment.",
"string_b": "A clean 10-second shot in old handheld personal camera style. Subject 1 roller skates through a 1970s roller rink with loose confident swagger, arms moving naturally for balance while he glides past the camera and then curves slightly around the rink. The camera follows like a friend filming on a vintage handheld camcorder, with small natural shake, imperfect framing, soft focus breathing and casual home-video energy. Keep the lighting warm and nostalgic with colored rink lights and practical overhead glow. Preserve the same identity, outfit details, accessories and proportions throughout. No dialogue. No text overlays. Ambient sound is limited to skate wheels on wood, distant rink music muffled in the space, crowd chatter and room ambience.",
"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/r03-1152x640-alig-roller-rink",
"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_turbo_v4_step600_ema.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.5,
"method": "bilinear",
"model": [
"500",
0
],
"noise": [
"539",
0
],
"sigmas": [
"571:530",
1
],
"audio_denoise": 0.35,
"positive": [
"576",
0
],
"negative": [
"571:535",
0
]
},
"_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"
}
}
}
@@ -2,10 +2,11 @@
## Summary
Best-current `MiniMax H3` continuation master for Chris's actual priority:
`reference-to-video` first, not generic `t2v`. This workflow keeps the
extender's validated clip-by-clip cache flow, but locks it into the safest
current local shape: `480p`, `3 x 10s`, lighter `Ref2VA` stack, and reusable
Best-current `MiniMax H3` reference-first generation master for Chris's actual
priority: `reference-to-video` first, not generic `t2v`. This workflow is the
maintained start-of-chain lane: begin from still references, establish the
look, and generate the first connected clips in the safest current local
shape: `480p`, `3 x 10s`, lighter `Ref2VA` stack, and reusable
subject-definition prompts for continuity across the chain.
## Status
@@ -23,13 +24,10 @@ subject-definition prompts for continuity across the chain.
## Built from
- `optimized/image-to-video/minimax-h3-extender-3070-r2v-480p-clip-by-clip/`
- `models/minimax/minimax-h3-extender-ref2va/`
- `models/minimax/minimax-h3-int8-r2v-javano2608-23/`
- current MiniMax Ref2VA prompt guidance in `optimized/notes/minimax-h3-ref2va-prompt-guidelines.md`
- local lessons from:
- `optimized/image-to-video/minimax-h3-contex-loop-3070-compact-prepend-480p-3x10s/`
- `optimized/image-to-video/minimax-h3-contex-loop-3070-compact-30s/`
- local MiniMax continuation lessons gathered from earlier extender and `Contex Loop` experiments
## Key model stack
@@ -50,15 +48,14 @@ subject-definition prompts for continuity across the chain.
- uses neutral reusable `R2V` prompts instead of a source-specific demo scene
- keeps `context_length=22` and `ref_image_size=match`
## Why this is the best current one
## Why this is the kept reference-first master
- Chris's standing preference is `reference-to-video` first, so this workflow
is optimized around `Ref2VA` continuation instead of plain `t2v`
- the extender node's validation/cache loop is the strongest current UX for
building a long sequence progressively without rerendering accepted clips
- the current compact `Contex Loop` masters still define the safe local budget,
and this workflow inherits that budget shape instead of pretending the source
defaults are free
- it is still the cleanest workflow for starting from reference images before
any imported-video continuation takes over
- it inherits the safe local budget lessons from the earlier MiniMax loop and
extender experiments instead of pretending the source defaults are free
- the newer same-day `javawock7618` `INT8 R2V` import is the strongest current
donor for tighter subject retention, so the maintained master now spells out
the scene/subject authority order more explicitly
@@ -71,9 +68,9 @@ subject-definition prompts for continuity across the chain.
- use this first when the goal is: keep one or more reference images stable and
extend the action across several connected clips
- use the compact `Contex Loop` masters instead when the main job is extending
an already existing source video rather than generating a new reference-driven
chain
- use `optimized/image-to-video/minimax-h3-contex-loop-3070-safe-60s-awq-int8/`
instead when the main job is extending an already existing source video
rather than generating a new reference-driven chain
## Notes
@@ -905,7 +905,7 @@
1,
"22",
0,
"{\"version\":1,\"clips\":[{\"id\":\"clip_1\",\"prompt\":\"subject_definitions:\\n<Picture 1> is the main reference for the exact visual identity, face, clothing, proportions, and overall appearance of <Subject 1>, and it also establishes the environment and scene context.\\n\\nsummary:\\nCreate the first continuation beat from the reference image. Preserve the same subject, environment, lighting direction, and overall scene logic while beginning a natural forward action.\\n\\ndetailed_description:\\n[Shot 1] Begin from the identity and environment established by <Picture 1>. Preserve the same subject, face, clothing, proportions, and scene context. Use grounded camera movement and natural continuity. End with the action still slightly unresolved so the next clip can continue it cleanly.\\n\\noverall_soundscape:\\nPreserve continuous ambience and synchronized movement sounds. No abrupt audio reset at the clip boundary.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4001,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false},{\"id\":\"clip_2\",\"prompt\":\"subject_definitions:\\n<Picture 1> remains the main reference for the exact visual identity, face, clothing, proportions, and environment of <Subject 1>.\\n\\nsummary:\\nContinue directly from the validated previous clip with no restart. Preserve identity, environment, and motion logic while extending the action into the next natural beat.\\n\\ndetailed_description:\\n[Shot 1] Continue seamlessly from the previous clip. Keep the same subject, wardrobe, lighting direction, environment, and camera logic. Extend the motion naturally through the same connected space and keep the ending open enough for one more continuation clip.\\n\\noverall_soundscape:\\nMaintain continuous ambience and synchronized movement sounds across the join.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4002,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false},{\"id\":\"clip_3\",\"prompt\":\"subject_definitions:\\n<Picture 1> remains the main reference for the exact visual identity, face, clothing, proportions, and environment of <Subject 1>.\\n\\nsummary:\\nContinue from the validated previous clip and resolve the current action cleanly while preserving the same identity, environment, and continuity.\\n\\ndetailed_description:\\n[Shot 1] Continue directly from the previous clip without restarting the subject or camera logic. Preserve the same identity, clothing, environment, and motion style. Resolve the action into a readable final composition while keeping small natural residual motion in the subject and environment.\\n\\noverall_soundscape:\\nMaintain continuous ambience and synchronized movement sounds, easing the final seconds toward a stable ending.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4003,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false}]}"
"{\"version\":1,\"clips\":[{\"id\":\"clip_1\",\"prompt\":\"subject_definitions:\\n<Picture 1> is the master scene, environment and composition reference. Preserve its camera position, framing, perspective, field of view, lighting direction, environment geometry and subject placement.\\n\\n<Picture 2> is the primary full-body reference for <Subject 1>. Use it to define <Subject 1>'s overall appearance, body proportions, build, hair, face and clothing. Ignore the background, location and camera composition shown in <Picture 2>.\\n\\nsummary:\\nCreate the first continuation beat from the references. Preserve the same subject and environment while beginning one simple natural action that can continue into the next clip.\\n\\ndetailed_description:\\n[Shot 1] Begin from the opening frame established by <Picture 1> while preserving the identity established by <Picture 2>. Keep the subject grounded in the same space, maintain stable wardrobe and proportions, and use only restrained camera movement. End with the action slightly unresolved so the next clip can continue cleanly.\\n\\noverall_soundscape:\\nPreserve continuous ambience and synchronized movement sounds. No abrupt audio reset at the clip boundary.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4001,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false},{\"id\":\"clip_2\",\"prompt\":\"subject_definitions:\\n<Picture 1> remains the master scene and environment reference.\\n\\n<Picture 2> remains the primary identity and clothing reference for <Subject 1>.\\n\\nsummary:\\nContinue directly from the validated previous clip with no restart. Preserve identity, environment, camera logic and motion direction while extending the same action into the next natural beat.\\n\\ndetailed_description:\\n[Shot 1] Continue seamlessly from the previous clip. Keep the same subject, wardrobe, lighting direction, environment and camera logic. Extend the movement naturally through the same connected space and keep the ending open enough for one more continuation clip.\\n\\noverall_soundscape:\\nMaintain continuous ambience and synchronized movement sounds across the join.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4002,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false},{\"id\":\"clip_3\",\"prompt\":\"subject_definitions:\\n<Picture 1> remains the master scene and environment reference.\\n\\n<Picture 2> remains the primary identity and clothing reference for <Subject 1>.\\n\\nsummary:\\nContinue from the validated previous clip and resolve the current action cleanly while preserving the same identity, environment and continuity.\\n\\ndetailed_description:\\n[Shot 1] Continue directly from the previous clip without restarting the subject or camera logic. Preserve the same identity, clothing, environment and motion style. Resolve the action into a readable final composition while keeping small natural residual motion in the subject and environment.\\n\\noverall_soundscape:\\nMaintain continuous ambience and synchronized movement sounds, easing the final seconds toward a stable ending.\\n\\nnon_diegetic_music:\\nNone unless already established by the source material.\",\"seed\":4003,\"seed_mode\":\"fixed\",\"duration\":10,\"validated\":false}]}"
],
"color": "#222",
"bgcolor": "#000"
@@ -1,48 +0,0 @@
# MiniMax H3 Contex Loop 3070 Compact 30s
## Summary
Compact `MiniMax H3` imported-video extension master tuned around the smaller
working stack Chris validated today.
This variant keeps the `Contex Loop` existing-video flow, swaps in the lighter
`w4a8` transformer and compact video VAE, points the stock source to `1.mp4`,
and stretches the generated extension to `30` seconds total across two `15`
second scenes.
## Status
- `best-current-compact-existing-video-test`
- `queued-live-test`
## Workflow asset
- `workflow.json`
## Built from
- `ethanfel/ComfyUI-MiniMaxH3-Contex-Loop`
- `example_workflows/MiniMax H3 Extend Existing Video Model Workflow.json`
## Key model stack
- `minimax_h3_ref2va_pruned_w4a8_mixed.safetensors`
- `qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\\minimax_h3_fl2v_lightx2v_turbo_4step_v0.1_comfy.safetensors`
## Main changes
- set generated duration to `30s` total via two `15s` scenes
- kept `5` step defaults for the compact stack
- set source video to `1.mp4`
- disabled source prepend so the extension target stays `30s`
- kept `context_length=22`, `encode_mode=video`, `anchor_mode=head`
## Notes
- This is the saved repo version of the optimized flow.
- For unattended queue testing, the live queued run uses the compact MiniMax
prompt graph directly so it can enter the Comfy queue immediately while other
jobs are still running.
File diff suppressed because it is too large Load Diff
@@ -1,45 +0,0 @@
# MiniMax H3 Contex Loop 3070 Compact Prepend 480p 3x10s
## Summary
Safer `MiniMax H3` imported-video extension master for the compact model stack
when `480p` and `10s` per generated clip are the practical VRAM ceiling.
This variant keeps the `Contex Loop` existing-video flow, preserves the
original source at the front, and generates the extension as three `10` second
scenes instead of two `15` second scenes.
## Status
- `best-current-compact-existing-video-safe-vram`
## Workflow asset
- `workflow.json`
## Built from
- `optimized/image-to-video/minimax-h3-contex-loop-3070-compact-30s/`
## Key model stack
- `minimax_h3_ref2va_pruned_w4a8_mixed.safetensors`
- `qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\\minimax_h3_fl2v_lightx2v_turbo_4step_v0.1_comfy.safetensors`
## Main changes
- set working canvas to `864x480`
- switched to `prepend_original=true`
- split the generated extension into `3 x 10s` scenes
- kept `5` step defaults for the compact stack
- kept `context_length=22`, `encode_mode=video`, `anchor_mode=head`
- kept source video as `1.mp4`
## Why this exists
- the smaller stack appears able to hold `480p`
- `15s` clips are more likely to OOM
- `10s` clips are a more honest ceiling for repeatable runs
@@ -2,17 +2,19 @@
## Summary
Server-safe `MiniMax H3` imported-video continuation workflow built from the
successful local `1024x576` `ref2v` run and adapted back into the `Contex Loop`
lane for unattended `60s` generation.
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, but swaps to the
proven `INT8` base model, drops the Heretic text encoder, disables the failing
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
@@ -21,8 +23,9 @@ to `6 x 10s` clips with review pauses disabled.
## Built from
- `optimized/image-to-video/minimax-h3-contex-loop-3070-compact-prepend-480p-3x10s/`
- successful ComfyUI run `cc74efa5-1a53-4b2a-9d7c-7170ea7eba5b`
- the maintained `MiniMax` `ref2v` stack used in `optimized/image-to-video/minimax-h3-best-current-r2v-master-480p-3x10s/`
- earlier compact `Contex Loop` experiments that established the local-safe continuation budget
## Key model stack
@@ -43,6 +46,15 @@ to `6 x 10s` clips with review pauses disabled.
- 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,44 +0,0 @@
# MiniMax H3 Extender 3070 R2V 480p 60s Clip By Clip
## Summary
`MiniMax H3 Extender` tuned for a local-safe `Ref2VA` minute-long continuation
path on Chris's box. This variant keeps the validated `clip_by_clip` extender
model, uses the lighter local stack, and stretches the chain to `60s` total as
six `10s` clips so each segment can be reviewed and validated before the next
one runs.
## Status
- `best-current-extender-r2v-60s-safe-start`
## Workflow asset
- `workflow.json`
## Built from
- `models/minimax/minimax-h3-extender-ref2va/`
- `optimized/image-to-video/minimax-h3-extender-3070-r2v-480p-clip-by-clip/`
## Key model stack
- `minimax_h3_ref2va_pruned_w4a8_mixed.safetensors`
- `qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\\minimax_h3_fl2v_lightx2v_turbo_4step_v0.1_comfy.safetensors`
## Main changes
- keeps `clip_by_clip` validation instead of `full_batch`
- keeps the lighter `864x480` local-safe canvas
- keeps `5` steps and the compact local stack
- expands `clips_json` to six `10s` continuation clips for a `60s` total chain
- keeps prompt structure continuity-first so each clip hands off cleanly
## Notes
- This is the minute-long direct successor to the current local-safe extender starter.
- It is intended for progressive validation, not blind unattended full-chain trust.
- Start by validating clip 1, then continue through the chain as each segment holds up.
File diff suppressed because one or more lines are too long
@@ -1,61 +0,0 @@
# MiniMax H3 Extender 3070 R2V 480p Clip By Clip
## Summary
`MiniMax H3 Extender` optimized for Chris's actual MiniMax lane:
`reference-to-video` first, incremental continuation, and safer `3070`
execution. This variant keeps the extender's validated cache / clip approval
model, but swaps it toward the lighter stack already used by the current local
MiniMax extension masters.
## Status
- `best-current-extender-r2v-safe-start`
## Workflow asset
- `workflow.json`
## Built from
- `models/minimax/minimax-h3-extender-ref2va/`
- upstream repo: `tritant/ComfyUI_MiniMax_H3_Extender`
## Key model stack
- `minimax_h3_ref2va_pruned_w4a8_mixed.safetensors`
- `qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors`
- `minimax_h3_video_vae_int8_convrot.safetensors`
- `minimax_h3_audio_vae_fp32.safetensors`
- `minimax\minimax_h3_fl2v_lightx2v_turbo_4step_v0.1_comfy.safetensors`
## Main changes
- switched the workflow to `clip_by_clip` so each clip can be generated,
reviewed, and validated before the chain continues
- reduced the working canvas from `896x576` to `864x480`
- raised the step count from `4` to `5` for a slightly less brittle low-step
path
- swapped the source stack toward the lighter local stack already used by the
compact MiniMax continuation masters
- replaced the source demo story with a neutral reusable `R2V` continuation
starter in `clips_json`
## Why this exists
- the upstream extender logic is genuinely useful, but the shipped example is
more optimistic than Chris's `3070 / 8 GB` box wants
- Chris's primary MiniMax lane is `reference-to-video`, so the optimized
variant should open in an `R2V`-friendly continuation shape instead of
generic batch-generation mode
- `clip_by_clip` plus validation is a better fit than `full_batch` when trying
to preserve continuity without wasting render time on bad downstream clips
## Notes
- This is the right workflow to test if the goal is "can the extender model be
useful on the local box?"
- It does not replace the current compact `Contex Loop` extension masters yet;
it is the best direct `Extender`-style challenger to compare against them.
- Start with one reference image, short `10s` clips, and explicit
`subject_definitions` blocks before scaling up.