diff --git a/custom/chris/minimax-h3-two-beat-savevideo-test/README.md b/custom/chris/minimax-h3-two-beat-savevideo-test/README.md new file mode 100644 index 0000000..d236317 --- /dev/null +++ b/custom/chris/minimax-h3-two-beat-savevideo-test/README.md @@ -0,0 +1,40 @@ +# MiniMax H3 Two-Beat SaveVideo Test + +Practical test flow for `DumasH3LongVideos` that: + +- uses `LoadImage` refs derived from images stored in this repo +- renders exactly 2 beats +- stays under 10 seconds total +- converts the returned image batch with `CreateVideo` +- saves the final file with `SaveVideo` + +## Repo source images + +- Character ref: + `optimized/image-to-video/minimax-h3-r2v-master/references/default-character-reference.jpg` +- Location ref: + `optimized/image-to-video/minimax-h3-r2v-master/references/default-location-reference.jpg` + +## ComfyUI input names used by the prompt + +Upload those repo images into the live ComfyUI input folder with these names: + +- `default-character-reference.jpg` +- `default-location-reference.jpg` + +The included `api-prompt.json` expects those names in `LoadImage`. + +## Flow summary + +`LoadImage x2 -> DiffusionModelLoaderKJ / CLIPLoader / VAELoader x2 -> DumasH3LongVideos -> CreateVideo -> SaveVideo` + +## Timing + +- `shot_seconds = 3` +- `2 beats` +- total target runtime = `6s` + +## Notes + +- This is a practical API flow, not a promoted master workflow. +- The H3 node is configured for a cheap proof run, not final quality. diff --git a/custom/chris/minimax-h3-two-beat-savevideo-test/api-prompt.json b/custom/chris/minimax-h3-two-beat-savevideo-test/api-prompt.json new file mode 100644 index 0000000..88a4608 --- /dev/null +++ b/custom/chris/minimax-h3-two-beat-savevideo-test/api-prompt.json @@ -0,0 +1,160 @@ +{ + "1": { + "class_type": "LoadImage", + "inputs": { + "image": "default-character-reference.jpg" + }, + "_meta": { + "title": "Character Ref" + } + }, + "2": { + "class_type": "LoadImage", + "inputs": { + "image": "default-location-reference.jpg" + }, + "_meta": { + "title": "Location Ref" + } + }, + "10": { + "class_type": "DiffusionModelLoaderKJ", + "inputs": { + "model_name": "minimax_h3_ref2va_pruned_int8_convrot.safetensors", + "weight_dtype": "default", + "compute_dtype": "default", + "patch_cublaslinear": false, + "sage_attention": "disabled", + "enable_fp16_accumulation": false + }, + "_meta": { + "title": "Load Model" + } + }, + "11": { + "class_type": "CLIPLoader", + "inputs": { + "clip_name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors", + "type": "minimax", + "device": "default" + }, + "_meta": { + "title": "Load CLIP" + } + }, + "12": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "minimax_h3_video_vae_int8_convrot.safetensors" + }, + "_meta": { + "title": "Video VAE" + } + }, + "13": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "minimax_h3_audio_vae_fp32.safetensors" + }, + "_meta": { + "title": "Audio VAE" + } + }, + "20": { + "class_type": "DumasH3LongVideos", + "inputs": { + "model": [ + "10", + 0 + ], + "clip": [ + "11", + 0 + ], + "vae": [ + "12", + 0 + ], + "audio_vae": [ + "13", + 0 + ], + "ref_image_1": [ + "1", + 0 + ], + "ref_image_2": [ + "2", + 0 + ], + "prompt": " pauses in the place shown in and studies the surroundings in a steady medium shot.\n\n walks forward through the place shown in as the camera follows from the side.", + "anchor_override": "short silver hair, scar over the left eyebrow, slim build", + "character_memory": "weathered red flight jacket, grey cargo shorts, black boots", + "resolution": "16:9", + "megapixels": 0.1, + "steps": 6, + "cfg": 1, + "sampler_name": "res_multistep", + "scheduler": "simple", + "seed": 3, + "plan_only": false, + "shot_seconds": 3, + "ref_mode": "where tagged", + "per_beat_length": false, + "mute_nonspeech_audio": true, + "cleanup_between_shots": true, + "allow_res_backoff": true, + "decode_tile_frames": 8, + "decode_tile_size": 256, + "auto_soundscape": "fill if blank" + }, + "_meta": { + "title": "Dumas H3 Long Videos" + } + }, + "30": { + "class_type": "CreateVideo", + "inputs": { + "images": [ + "20", + 0 + ], + "fps": 24, + "audio": [ + "20", + 1 + ], + "bit_depth": 8 + }, + "_meta": { + "title": "CreateVideo" + } + }, + "31": { + "class_type": "SaveVideo", + "inputs": { + "video": [ + "30", + 0 + ], + "filename_prefix": "MiniMax/dumas-two-beat-savevideo-test", + "format": "auto", + "codec": "auto" + }, + "_meta": { + "title": "SaveVideo" + } + }, + "32": { + "class_type": "PreviewAny", + "inputs": { + "source": [ + "20", + 2 + ] + }, + "_meta": { + "title": "Info" + } + } +}