Instructions to use iamkaikai/MiniMax-H3-Single-Frame-VAE-500K with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use iamkaikai/MiniMax-H3-Single-Frame-VAE-500K with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("iamkaikai/MiniMax-H3-Single-Frame-VAE-500K", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
Initial release: 500K single-frame decoder
Browse files- .DS_Store +0 -0
- .gitattributes +15 -0
- MODIFICATIONS.md +13 -0
- README.md +345 -0
- example-prompts.json +50 -0
- examples/edit/product-material/contact-sheet.jpg +0 -0
- examples/edit/product-material/transition-grid.png +3 -0
- examples/edit/sketch-render/contact-sheet.jpg +0 -0
- examples/edit/sketch-render/transition-grid.png +3 -0
- examples/edit/sofa-recolor/contact-sheet.jpg +0 -0
- examples/edit/sofa-recolor/transition-grid.png +3 -0
- examples/reconstruction/native-h3-single-frame.png +3 -0
- examples/reconstruction/reconstruction-diagram.png +3 -0
- examples/reconstruction/reconstruction-stress.png +3 -0
- examples/t2i/diagram-community.png +3 -0
- examples/t2i/diagram-comparison.png +3 -0
- examples/t2i/diagram-ours.png +3 -0
- examples/t2i/natural-community.png +3 -0
- examples/t2i/natural-comparison.png +3 -0
- examples/t2i/natural-ours.png +3 -0
- examples/t2i/product-community.png +3 -0
- examples/t2i/product-comparison.png +3 -0
- examples/t2i/product-ours.png +3 -0
- load_decoder.py +69 -0
- minimax_h3_single_frame_decoder_500k.safetensors +3 -0
- release-manifest.json +250 -0
- requirements.txt +7 -0
- source-fixtures/interior.png +0 -0
- source-fixtures/product-photo.png +0 -0
- source-fixtures/product-sketch.png +0 -0
- vae/config.json +97 -0
.DS_Store
ADDED
|
Binary file (6.15 kB). View file
|
|
|
.gitattributes
CHANGED
|
@@ -33,3 +33,18 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
examples/edit/product-material/transition-grid.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
examples/edit/sketch-render/transition-grid.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
examples/edit/sofa-recolor/transition-grid.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
examples/reconstruction/native-h3-single-frame.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
examples/reconstruction/reconstruction-diagram.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
examples/reconstruction/reconstruction-stress.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
examples/t2i/diagram-community.png filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
examples/t2i/diagram-comparison.png filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
examples/t2i/diagram-ours.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
examples/t2i/natural-community.png filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
examples/t2i/natural-comparison.png filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
examples/t2i/natural-ours.png filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
examples/t2i/product-community.png filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
examples/t2i/product-comparison.png filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
examples/t2i/product-ours.png filter=lfs diff=lfs merge=lfs -text
|
MODIFICATIONS.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Modifications
|
| 2 |
+
|
| 3 |
+
`minimax_h3_single_frame_decoder_500k.safetensors` is a modified decoder-side
|
| 4 |
+
checkpoint derived from MiniMax H3 and Mamad8/MiniMax-H3-Image-VAE.
|
| 5 |
+
|
| 6 |
+
The H3-compatible encoder and `quant_conv` remained frozen. The full decoder
|
| 7 |
+
and `post_quant_conv` were further trained for 62,500 optimizer updates on
|
| 8 |
+
500,000 unique still-image reconstruction examples using the curriculum and
|
| 9 |
+
objective documented in `README.md`.
|
| 10 |
+
|
| 11 |
+
This modification targets independent single-frame decoding. It does not claim
|
| 12 |
+
full-sequence video compatibility.
|
| 13 |
+
|
README.md
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
base_model:
|
| 3 |
+
- MiniMaxAI/MiniMax-H3
|
| 4 |
+
- Mamad8/MiniMax-H3-Image-VAE
|
| 5 |
+
library_name: diffusers
|
| 6 |
+
tags:
|
| 7 |
+
- minimax-h3
|
| 8 |
+
- vae
|
| 9 |
+
- decoder
|
| 10 |
+
- image-reconstruction
|
| 11 |
+
- single-frame
|
| 12 |
+
- experimental
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# MiniMax H3 Single-Frame VAE 500K
|
| 16 |
+
|
| 17 |
+
This is an independent, experimental **decoder-only** checkpoint for decoding
|
| 18 |
+
one image from a MiniMax H3 latent slice. It is not a full MiniMax H3 model, it
|
| 19 |
+
does not include an encoder or transformer, and it is not used in production.
|
| 20 |
+
|
| 21 |
+
The decoder started from
|
| 22 |
+
[`Mamad8/MiniMax-H3-Image-VAE`](https://huggingface.co/Mamad8/MiniMax-H3-Image-VAE)
|
| 23 |
+
and was further trained on 500,000 unique image-reconstruction examples using
|
| 24 |
+
the frozen H3-compatible encoder. The full decoder and `post_quant_conv` were
|
| 25 |
+
trainable. Text and captions were not used during decoder training.
|
| 26 |
+
|
| 27 |
+
## Scope
|
| 28 |
+
|
| 29 |
+
Use this checkpoint when the intended output is one independently decoded
|
| 30 |
+
image. It is most reliable on structured content such as product contours,
|
| 31 |
+
line art, diagrams, documents, and UI-like layouts.
|
| 32 |
+
|
| 33 |
+
Do **not** treat it as a replacement decoder for MiniMax H3 video. Still-image
|
| 34 |
+
training supervised one temporal boundary condition, while the full temporal
|
| 35 |
+
decoder weights were updated. Later frames in a full-sequence decode can show
|
| 36 |
+
grid or block artifacts, flicker, abrupt transitions, and texture drift.
|
| 37 |
+
|
| 38 |
+
## Examples
|
| 39 |
+
|
| 40 |
+
All decoder comparisons use the same input image or the same frozen generated
|
| 41 |
+
latent for every displayed decoder. The new T2I prompts were fixed before the
|
| 42 |
+
outputs were reviewed.
|
| 43 |
+
|
| 44 |
+
### Reconstruction
|
| 45 |
+
|
| 46 |
+

|
| 47 |
+
|
| 48 |
+
The fixed benchmark also includes natural photographs and scene text. Their
|
| 49 |
+
aggregate metrics are reported below, but the source images are not
|
| 50 |
+
redistributed here. A procedurally generated
|
| 51 |
+
[high-frequency stress case](examples/reconstruction/reconstruction-stress.png)
|
| 52 |
+
and a [native H3 single-frame comparison](examples/reconstruction/native-h3-single-frame.png)
|
| 53 |
+
are included.
|
| 54 |
+
|
| 55 |
+
### H3 text-to-image through a single latent slice
|
| 56 |
+
|
| 57 |
+
The H3 `t2va` workflow generated a full normalized latent sequence. One fixed
|
| 58 |
+
temporal slice was then independently decoded with the community decoder and
|
| 59 |
+
this checkpoint.
|
| 60 |
+
|
| 61 |
+

|
| 62 |
+
|
| 63 |
+
Prompt: “Studio product photograph of a compact futuristic electric espresso
|
| 64 |
+
machine, brushed aluminum and matte black, precise industrial design, centered
|
| 65 |
+
three-quarter view, soft gray seamless background, crisp edges, realistic
|
| 66 |
+
materials, no people, no text.”
|
| 67 |
+
|
| 68 |
+
Additional fixed examples:
|
| 69 |
+
|
| 70 |
+
- [Industrial-design board](examples/t2i/diagram-comparison.png)
|
| 71 |
+
- [Natural photograph](examples/t2i/natural-comparison.png)
|
| 72 |
+
|
| 73 |
+
These examples test the decoder, not a native text-to-image pipeline. H3 still
|
| 74 |
+
constructs and denoises its joint video/audio latent, so this is substantially
|
| 75 |
+
more expensive than a purpose-built image generator.
|
| 76 |
+
|
| 77 |
+
### First-frame-conditioned image editing
|
| 78 |
+
|
| 79 |
+
The following examples use H3's `fl2va` workflow. The contact sheets show the
|
| 80 |
+
source followed by independently decoded temporal slices. They intentionally
|
| 81 |
+
show the transition instead of selecting only the most flattering frame.
|
| 82 |
+
|
| 83 |
+

|
| 84 |
+
|
| 85 |
+
Instruction: “Change only the sofa upholstery from rust red to deep navy blue
|
| 86 |
+
velvet. Preserve the room layout, window, lamp, rug, floor, lighting, and
|
| 87 |
+
camera.”
|
| 88 |
+
|
| 89 |
+
Additional edits:
|
| 90 |
+
|
| 91 |
+
- [Sketch-to-render transition](examples/edit/sketch-render/transition-grid.png)
|
| 92 |
+
- [Product-material transition](examples/edit/product-material/transition-grid.png)
|
| 93 |
+
|
| 94 |
+
This is image-conditioned video used as a static-edit experiment. Early slices
|
| 95 |
+
usually reconstruct the source, later slices apply more of the requested edit,
|
| 96 |
+
and composition, lighting, material, or geometry can drift during the
|
| 97 |
+
transition. A useful result may depend on searching multiple slices. That is a
|
| 98 |
+
fundamental limitation compared with a native image-edit model.
|
| 99 |
+
|
| 100 |
+
## Fixed reconstruction benchmark
|
| 101 |
+
|
| 102 |
+
The benchmark contains 288 held-out cases spanning photographs, text,
|
| 103 |
+
documents, diagrams, line art, product contours, UI-like content, and synthetic
|
| 104 |
+
high-frequency stress patterns.
|
| 105 |
+
|
| 106 |
+
| Decoder | PSNR dB ↑ | SSIM ↑ | LPIPS-Alex ↓ | DISTS ↓ | Edge F1 ↑ |
|
| 107 |
+
|---|---:|---:|---:|---:|---:|
|
| 108 |
+
| Official MiniMax H3 VAE | 30.3544 | **0.9258** | **0.0323** | **0.0533** | **0.7387** |
|
| 109 |
+
| Mamad8/MiniMax-H3-Image-VAE | 22.7022 | 0.8060 | 0.1671 | 0.2494 | 0.4647 |
|
| 110 |
+
| **This checkpoint** | **31.1185** | 0.9208 | 0.0454 | 0.0883 | 0.7236 |
|
| 111 |
+
|
| 112 |
+
This checkpoint has the highest PSNR in this three-way benchmark, but the
|
| 113 |
+
official H3 decoder remains better on SSIM, LPIPS, DISTS, and Edge F1. The
|
| 114 |
+
result should not be read as universal superiority over the official decoder.
|
| 115 |
+
|
| 116 |
+
### What the aggregate metrics mean
|
| 117 |
+
|
| 118 |
+
- PSNR emphasizes average pixel accuracy. This checkpoint is `+0.7641` dB
|
| 119 |
+
above official H3 and `+8.4163` dB above the community initialization.
|
| 120 |
+
- SSIM measures structural similarity. Official H3 remains ahead by `0.0050`.
|
| 121 |
+
- LPIPS and DISTS are perceptual-distance metrics. Official H3 remains clearly
|
| 122 |
+
better, especially on photographs and small text.
|
| 123 |
+
- Edge F1 measures alignment of detected edges. This checkpoint is close to
|
| 124 |
+
official in aggregate, but the result varies substantially by domain.
|
| 125 |
+
|
| 126 |
+
Compared with the community initialization, this checkpoint reduces LPIPS by
|
| 127 |
+
about 72.8%, reduces DISTS by about 64.6%, and raises Edge F1 from `0.4647` to
|
| 128 |
+
`0.7236`. Compared with official H3, it trades slightly better average pixel
|
| 129 |
+
accuracy for worse perceptual texture and slightly worse edge alignment.
|
| 130 |
+
|
| 131 |
+
### Per-domain study
|
| 132 |
+
|
| 133 |
+
Each cell below is `this checkpoint / official H3`. Lower is better for LPIPS
|
| 134 |
+
and DISTS; higher is better for the other metrics.
|
| 135 |
+
|
| 136 |
+
| Domain | Cases | PSNR dB ↑ | SSIM ↑ | LPIPS ↓ | DISTS ↓ | Edge F1 ↑ |
|
| 137 |
+
|---|---:|---:|---:|---:|---:|---:|
|
| 138 |
+
| Broad photographs | 64 | 29.7037 / 30.9661 | 0.8504 / 0.8816 | 0.0873 / 0.0372 | 0.1439 / 0.0413 | 0.7679 / 0.8377 |
|
| 139 |
+
| UI | 32 | 29.1883 / 28.3791 | 0.9571 / 0.9510 | 0.0316 / 0.0251 | 0.0746 / 0.0424 | 0.8530 / 0.8546 |
|
| 140 |
+
| Documents | 32 | 27.3963 / 27.0216 | 0.9460 / 0.9333 | 0.0516 / 0.0366 | 0.0779 / 0.0465 | 0.7632 / 0.7326 |
|
| 141 |
+
| Scene text | 32 | 32.5351 / 33.3653 | 0.9270 / 0.9312 | 0.0435 / 0.0204 | 0.0898 / 0.0304 | 0.8541 / 0.8937 |
|
| 142 |
+
| Line art | 32 | 36.3202 / 34.1489 | 0.9975 / 0.9962 | 0.0058 / 0.0078 | 0.0463 / 0.0357 | 0.6666 / 0.7013 |
|
| 143 |
+
| Diagrams | 32 | 34.0079 / 29.9501 | 0.9928 / 0.9815 | 0.0063 / 0.0256 | 0.0346 / 0.0570 | 0.8656 / 0.8225 |
|
| 144 |
+
| Product contours | 32 | 37.2439 / 34.4608 | 0.9956 / 0.9905 | 0.0058 / 0.0164 | 0.0300 / 0.0421 | 0.6966 / 0.7082 |
|
| 145 |
+
| Synthetic stress patterns | 32 | 23.9673 / 23.9315 | 0.7707 / 0.7850 | 0.0892 / 0.0846 | 0.1536 / 0.1433 | 0.2770 / 0.2598 |
|
| 146 |
+
|
| 147 |
+
The strongest result is on diagrams, where this checkpoint beats official H3
|
| 148 |
+
on all five metrics. It also performs well on product contours, line art,
|
| 149 |
+
documents, and UI. These domains reward clean geometry, flat regions, and
|
| 150 |
+
structured edges, which match the decoder's training signal well.
|
| 151 |
+
|
| 152 |
+
The clearest weakness is natural photography. Pixel values remain close, but
|
| 153 |
+
LPIPS and DISTS show that texture, tone, and fine local structure drift more
|
| 154 |
+
than with official H3. Scene text is another weak area: small lettering and
|
| 155 |
+
thin glyphs may soften, change shape, or become illegible. Dense grids,
|
| 156 |
+
checkerboards, and repeated high-frequency patterns remain phase-sensitive and
|
| 157 |
+
can show moiré or small line shifts.
|
| 158 |
+
|
| 159 |
+
| Intended use | Assessment | Main caveat |
|
| 160 |
+
|---|---|---|
|
| 161 |
+
| Diagrams and structured graphics | Strong | Fine repeated patterns can still shift phase |
|
| 162 |
+
| Product contours and industrial-design forms | Strong | Very thin edges can move by a pixel or soften |
|
| 163 |
+
| UI and documents | Competitive | Small text is less reliable than large layout structure |
|
| 164 |
+
| Line art | Strong pixel fidelity | Edge F1 remains below official H3 |
|
| 165 |
+
| Natural photographs | Limited | Texture and perceptual detail trail official H3 |
|
| 166 |
+
| Exact scene text | Limited | Glyph identity and thin strokes can change |
|
| 167 |
+
| Full H3 video | Unsupported | Still-image training did not supervise temporal consistency |
|
| 168 |
+
|
| 169 |
+
Scaling from the earlier 75K decoder to 500K improved SSIM, LPIPS, DISTS, and
|
| 170 |
+
Edge F1, but it did not close the photograph or scene-text gap. This suggests
|
| 171 |
+
that additional generic reconstruction data alone is unlikely to solve those
|
| 172 |
+
weaknesses. Targeted natural-texture, tiny-text, and phase-aware training would
|
| 173 |
+
be more directly relevant.
|
| 174 |
+
|
| 175 |
+
An exact 74-frame native H3 latent panel also completed with no non-finite or
|
| 176 |
+
geometry failures. Those generated latents have no ground-truth image, so
|
| 177 |
+
decoder-to-decoder distances are disagreement measurements rather than quality
|
| 178 |
+
scores. An AI visual review found the 500K outputs consistently sharper and
|
| 179 |
+
more coherent than the community decoder, but this was not a human preference
|
| 180 |
+
study and does not establish superiority over official H3 on generator
|
| 181 |
+
latents.
|
| 182 |
+
|
| 183 |
+
### Study boundaries
|
| 184 |
+
|
| 185 |
+
- Reconstruction metrics use 288 fixed held-out cases with known targets.
|
| 186 |
+
- T2I and editing examples are illustrative fixed-seed cases, not a benchmark.
|
| 187 |
+
- Generator-latent comparisons have no ground-truth image.
|
| 188 |
+
- The public study does not include human preference ratings or confidence
|
| 189 |
+
intervals.
|
| 190 |
+
- The 1024 stage ran near the end of a cosine schedule with almost zero learning
|
| 191 |
+
rate, so it does not establish mature 1024-resolution specialization.
|
| 192 |
+
|
| 193 |
+
## Training
|
| 194 |
+
|
| 195 |
+
| Stage | Unique images | Resolution | Microbatch |
|
| 196 |
+
|---|---:|---:|---:|
|
| 197 |
+
| 0 | 250,000 | 256 | 8 |
|
| 198 |
+
| 1 | 150,000 | 384 | 8 |
|
| 199 |
+
| 2 | 75,000 | 512 | 8 |
|
| 200 |
+
| 3 | 20,000 | 768 | 2 |
|
| 201 |
+
| 4 | 5,000 | 1024 | 1 |
|
| 202 |
+
|
| 203 |
+
- Optimizer updates: 62,500
|
| 204 |
+
- Effective batch size: 8
|
| 205 |
+
- Learning rate: `2e-6`
|
| 206 |
+
- Warmup: 625 updates
|
| 207 |
+
- Schedule: one continuous cosine decay
|
| 208 |
+
- Trainable modules: full decoder and `post_quant_conv`
|
| 209 |
+
- Frozen modules: encoder and `quant_conv`
|
| 210 |
+
- Distillation coefficient: `0.0`
|
| 211 |
+
|
| 212 |
+
The reconstruction objective was:
|
| 213 |
+
|
| 214 |
+
```text
|
| 215 |
+
1.0 * Charbonnier reconstruction
|
| 216 |
+
0.2 * first-order edge reconstruction
|
| 217 |
+
0.1 * (1 - SSIM)
|
| 218 |
+
0.05 * log-frequency-magnitude reconstruction
|
| 219 |
+
0.0113518046 * LPIPS-Alex
|
| 220 |
+
```
|
| 221 |
+
|
| 222 |
+
The final 5,000-image 1024 stage occurred near the end of the cosine schedule,
|
| 223 |
+
when the learning rate was almost zero. It was neutral to slightly positive,
|
| 224 |
+
but it does not establish meaningful 1024-resolution specialization.
|
| 225 |
+
|
| 226 |
+
## Training data
|
| 227 |
+
|
| 228 |
+
Of the 500,000 training examples, 475,140 came from disjoint shards of
|
| 229 |
+
[`Spawning/pd12m-full`](https://huggingface.co/datasets/Spawning/pd12m-full).
|
| 230 |
+
The other 24,860 were native-resolution hard cases: 19,860 at 768 and 5,000
|
| 231 |
+
at 1024, balanced across WebSight, DocLayNet, Quick, Draw!, deterministic
|
| 232 |
+
procedural diagrams, and deterministic procedural product contours. No
|
| 233 |
+
training images are included in this repository. Users should review each
|
| 234 |
+
source dataset's current terms and attribution requirements independently.
|
| 235 |
+
|
| 236 |
+
## Loading
|
| 237 |
+
|
| 238 |
+
Clone the repository and install the pinned dependencies:
|
| 239 |
+
|
| 240 |
+
```shell
|
| 241 |
+
git clone https://huggingface.co/iamkaikai/MiniMax-H3-Single-Frame-VAE-500K
|
| 242 |
+
cd MiniMax-H3-Single-Frame-VAE-500K
|
| 243 |
+
pip install -r requirements.txt
|
| 244 |
+
```
|
| 245 |
+
|
| 246 |
+
The following CUDA example loads one normalized H3 generator-latent sequence,
|
| 247 |
+
selects a temporal slice, decodes it independently, and writes a PNG. The
|
| 248 |
+
input safetensors file must contain a tensor named `latents` with shape
|
| 249 |
+
`[batch, channels, time, height, width]` in H3's normalized generator-latent
|
| 250 |
+
space.
|
| 251 |
+
|
| 252 |
+
```python
|
| 253 |
+
import torch
|
| 254 |
+
from diffusers import AutoencoderKLMiniMaxH3
|
| 255 |
+
from PIL import Image
|
| 256 |
+
from safetensors.torch import load_file
|
| 257 |
+
|
| 258 |
+
from load_decoder import load_single_frame_decoder
|
| 259 |
+
|
| 260 |
+
device = "cuda"
|
| 261 |
+
dtype = torch.float16
|
| 262 |
+
|
| 263 |
+
vae = AutoencoderKLMiniMaxH3.from_pretrained(
|
| 264 |
+
"MiniMaxAI/MiniMax-H3",
|
| 265 |
+
subfolder="vae",
|
| 266 |
+
revision="42ed227ee7df40d41602854ae760620d6eb651fe",
|
| 267 |
+
torch_dtype=dtype,
|
| 268 |
+
).to(device).eval()
|
| 269 |
+
|
| 270 |
+
load_single_frame_decoder(vae, "minimax_h3_single_frame_decoder_500k.safetensors")
|
| 271 |
+
|
| 272 |
+
# This is the normalized latent emitted by H3 generation, before applying
|
| 273 |
+
# vae.config.latents_std and vae.config.latents_mean.
|
| 274 |
+
normalized = load_file("normalized-latents.safetensors")["latents"]
|
| 275 |
+
latent_index = 0
|
| 276 |
+
z = normalized[:, :, latent_index : latent_index + 1].to(device, dtype=dtype)
|
| 277 |
+
|
| 278 |
+
latent_mean = torch.tensor(
|
| 279 |
+
vae.config.latents_mean, device=device, dtype=dtype
|
| 280 |
+
).view(1, -1, 1, 1, 1)
|
| 281 |
+
latent_std = torch.tensor(
|
| 282 |
+
vae.config.latents_std, device=device, dtype=dtype
|
| 283 |
+
).view(1, -1, 1, 1, 1)
|
| 284 |
+
z = z * latent_std + latent_mean
|
| 285 |
+
|
| 286 |
+
# Direct decoder use is intentional for a temporal extent of one.
|
| 287 |
+
with torch.inference_mode(), torch.autocast("cuda", dtype=dtype):
|
| 288 |
+
decoded = vae.decoder(vae.post_quant_conv(z))
|
| 289 |
+
|
| 290 |
+
pixel_mean = torch.tensor(
|
| 291 |
+
[0.485, 0.456, 0.406], device=device
|
| 292 |
+
).view(1, 3, 1, 1)
|
| 293 |
+
pixel_std = torch.tensor(
|
| 294 |
+
[0.229, 0.224, 0.225], device=device
|
| 295 |
+
).view(1, 3, 1, 1)
|
| 296 |
+
frame = (decoded[:, :, -1].float() * pixel_std + pixel_mean).clamp(0, 1)
|
| 297 |
+
|
| 298 |
+
rgb = frame[0].mul(255).round().to(torch.uint8).permute(1, 2, 0).cpu().numpy()
|
| 299 |
+
Image.fromarray(rgb, mode="RGB").save("decoded-frame.png")
|
| 300 |
+
```
|
| 301 |
+
|
| 302 |
+
The file contains 585 tensors with `decoder.` and `post_quant_conv.` prefixes.
|
| 303 |
+
It intentionally contains no encoder weights. `load_single_frame_decoder`
|
| 304 |
+
strictly verifies the 9 GB file's SHA-256 by default, so the first load can take
|
| 305 |
+
several seconds before GPU inference begins.
|
| 306 |
+
|
| 307 |
+
## Known limitations
|
| 308 |
+
|
| 309 |
+
- Single-frame use only. Full video decoding is unsupported.
|
| 310 |
+
- Natural textures can be smoothed or shifted.
|
| 311 |
+
- Small lettering and thin glyphs can change.
|
| 312 |
+
- Dense lines, checkerboards, and fine grids can show moiré or phase errors.
|
| 313 |
+
- H3 T2I and FL2VA examples still pay the cost of full video/audio latent
|
| 314 |
+
generation.
|
| 315 |
+
- FL2VA edits can require searching temporal slices and can drift in crop,
|
| 316 |
+
lighting, material, geometry, or unrelated content.
|
| 317 |
+
- The public comparisons are a bounded benchmark, not a human preference
|
| 318 |
+
study and not evidence of universal superiority.
|
| 319 |
+
|
| 320 |
+
## Reproducibility
|
| 321 |
+
|
| 322 |
+
- Training exposures: `500000`
|
| 323 |
+
- Optimizer step: `62500`
|
| 324 |
+
- Training config fingerprint:
|
| 325 |
+
`225279cbb4cd1e2db94b5b2ae15e123a921fefada0782e5c68d35302e4b4d0a9`
|
| 326 |
+
- Original final decoder SHA-256:
|
| 327 |
+
`4a5e4d0041c6fdd15af5292db3e10574e28500b216ad2d1f78b5951f2b8abfe2`
|
| 328 |
+
- Audited release export SHA-256:
|
| 329 |
+
`6c5ff2caa8fade6769f4dd53ee244f77a06652c8cb66b2fedc93f75046d9f001`
|
| 330 |
+
- Community initialization revision:
|
| 331 |
+
`c7b9252c73707dba494cf4d99ca45d3f33f561b3`
|
| 332 |
+
- Official MiniMax H3 revision:
|
| 333 |
+
`42ed227ee7df40d41602854ae760620d6eb651fe`
|
| 334 |
+
|
| 335 |
+
The release export contains the same 585 decoder tensors as the exact final
|
| 336 |
+
resume state. Its file hash differs from the training export because the
|
| 337 |
+
release file includes provenance metadata.
|
| 338 |
+
|
| 339 |
+
## License
|
| 340 |
+
|
| 341 |
+
This checkpoint is a modified derivative of MiniMax H3 and remains subject to
|
| 342 |
+
the [MiniMax H3 Community License Agreement](LICENSE). The upstream license
|
| 343 |
+
contains territorial and use restrictions. Review it before downloading,
|
| 344 |
+
using, or redistributing this checkpoint. See [NOTICE](NOTICE) and
|
| 345 |
+
[MODIFICATIONS.md](MODIFICATIONS.md).
|
example-prompts.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"selection_policy": "Prompts fixed before generation; no best-of-seed search.",
|
| 4 |
+
"t2i": [
|
| 5 |
+
{
|
| 6 |
+
"id": "product",
|
| 7 |
+
"prompt": "Studio product photograph of a compact futuristic electric espresso machine, brushed aluminum and matte black, precise industrial design, centered three-quarter view, soft gray seamless background, crisp edges, realistic materials, no people, no text.",
|
| 8 |
+
"seed": 2026081901,
|
| 9 |
+
"inference_steps": 30,
|
| 10 |
+
"latent_index": 0
|
| 11 |
+
},
|
| 12 |
+
{
|
| 13 |
+
"id": "diagram",
|
| 14 |
+
"prompt": "Clean industrial design concept board showing a modular electric bicycle from side view, one large hero rendering with three small exploded-view callouts, white background, graphite and cobalt accents, precise linework, premium presentation.",
|
| 15 |
+
"seed": 2026081902,
|
| 16 |
+
"inference_steps": 30,
|
| 17 |
+
"latent_index": 0
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": "natural",
|
| 21 |
+
"prompt": "Cinematic close-up photograph of a red fox standing in wet green moss after rain, detailed fur and droplets, soft morning light, shallow depth of field, natural colors, 35mm lens.",
|
| 22 |
+
"seed": 2026081903,
|
| 23 |
+
"inference_steps": 30,
|
| 24 |
+
"latent_index": 0
|
| 25 |
+
}
|
| 26 |
+
],
|
| 27 |
+
"image_editing": [
|
| 28 |
+
{
|
| 29 |
+
"id": "sketch-render",
|
| 30 |
+
"prompt": "Transform the hand-drawn compact desktop coffee maker into a photorealistic premium industrial design render in brushed aluminum and matte black. Preserve the exact silhouette, camera, and layout.",
|
| 31 |
+
"seed": 2026081911,
|
| 32 |
+
"inference_steps": 25,
|
| 33 |
+
"decoded_latent_indices": [0, 9, 18, 27, 36]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": "sofa-recolor",
|
| 37 |
+
"prompt": "Change only the sofa upholstery from rust red to deep navy blue velvet. Preserve the room layout, window, lamp, rug, floor, lighting, and camera.",
|
| 38 |
+
"seed": 2026081912,
|
| 39 |
+
"inference_steps": 25,
|
| 40 |
+
"decoded_latent_indices": [0, 9, 18, 27, 36]
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"id": "product-material",
|
| 44 |
+
"prompt": "Change only the coffee machine body from warm silver to glossy cobalt blue anodized metal. Preserve the geometry, black front panel, controls, shadow, background, and camera.",
|
| 45 |
+
"seed": 2026081913,
|
| 46 |
+
"inference_steps": 25,
|
| 47 |
+
"decoded_latent_indices": [0, 9, 18, 27, 36]
|
| 48 |
+
}
|
| 49 |
+
]
|
| 50 |
+
}
|
examples/edit/product-material/contact-sheet.jpg
ADDED
|
examples/edit/product-material/transition-grid.png
ADDED
|
Git LFS Details
|
examples/edit/sketch-render/contact-sheet.jpg
ADDED
|
examples/edit/sketch-render/transition-grid.png
ADDED
|
Git LFS Details
|
examples/edit/sofa-recolor/contact-sheet.jpg
ADDED
|
examples/edit/sofa-recolor/transition-grid.png
ADDED
|
Git LFS Details
|
examples/reconstruction/native-h3-single-frame.png
ADDED
|
Git LFS Details
|
examples/reconstruction/reconstruction-diagram.png
ADDED
|
Git LFS Details
|
examples/reconstruction/reconstruction-stress.png
ADDED
|
Git LFS Details
|
examples/t2i/diagram-community.png
ADDED
|
Git LFS Details
|
examples/t2i/diagram-comparison.png
ADDED
|
Git LFS Details
|
examples/t2i/diagram-ours.png
ADDED
|
Git LFS Details
|
examples/t2i/natural-community.png
ADDED
|
Git LFS Details
|
examples/t2i/natural-comparison.png
ADDED
|
Git LFS Details
|
examples/t2i/natural-ours.png
ADDED
|
Git LFS Details
|
examples/t2i/product-community.png
ADDED
|
Git LFS Details
|
examples/t2i/product-comparison.png
ADDED
|
Git LFS Details
|
examples/t2i/product-ours.png
ADDED
|
Git LFS Details
|
load_decoder.py
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Strictly load the 500K single-frame weights into a MiniMax H3 VAE."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import hashlib
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
from typing import Any
|
| 8 |
+
|
| 9 |
+
from safetensors.torch import load_file
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
EXPECTED_SHA256 = "6c5ff2caa8fade6769f4dd53ee244f77a06652c8cb66b2fedc93f75046d9f001"
|
| 13 |
+
EXPECTED_TENSOR_COUNT = 585
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def _sha256(path: Path) -> str:
|
| 17 |
+
digest = hashlib.sha256()
|
| 18 |
+
with path.open("rb") as handle:
|
| 19 |
+
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
|
| 20 |
+
digest.update(chunk)
|
| 21 |
+
return digest.hexdigest()
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def _split_state(state: dict[str, Any]) -> tuple[dict[str, Any], dict[str, Any]]:
|
| 25 |
+
decoder = {
|
| 26 |
+
key.removeprefix("decoder."): value
|
| 27 |
+
for key, value in state.items()
|
| 28 |
+
if key.startswith("decoder.")
|
| 29 |
+
}
|
| 30 |
+
post_quant_conv = {
|
| 31 |
+
key.removeprefix("post_quant_conv."): value
|
| 32 |
+
for key, value in state.items()
|
| 33 |
+
if key.startswith("post_quant_conv.")
|
| 34 |
+
}
|
| 35 |
+
unexpected = sorted(
|
| 36 |
+
key
|
| 37 |
+
for key in state
|
| 38 |
+
if not key.startswith("decoder.")
|
| 39 |
+
and not key.startswith("post_quant_conv.")
|
| 40 |
+
)
|
| 41 |
+
if unexpected or not decoder or not post_quant_conv:
|
| 42 |
+
raise RuntimeError(
|
| 43 |
+
"single-frame decoder key contract differs: "
|
| 44 |
+
f"unexpected={unexpected[:5]}, decoder={len(decoder)}, "
|
| 45 |
+
f"post_quant_conv={len(post_quant_conv)}"
|
| 46 |
+
)
|
| 47 |
+
return decoder, post_quant_conv
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
def load_single_frame_decoder(
|
| 51 |
+
vae: Any,
|
| 52 |
+
checkpoint_path: str | Path,
|
| 53 |
+
*,
|
| 54 |
+
verify_sha256: bool = True,
|
| 55 |
+
) -> Any:
|
| 56 |
+
"""Replace only ``decoder`` and ``post_quant_conv`` on an H3 VAE."""
|
| 57 |
+
|
| 58 |
+
checkpoint = Path(checkpoint_path)
|
| 59 |
+
if verify_sha256 and _sha256(checkpoint) != EXPECTED_SHA256:
|
| 60 |
+
raise RuntimeError("single-frame decoder SHA-256 differs")
|
| 61 |
+
state = load_file(str(checkpoint), device="cpu")
|
| 62 |
+
if len(state) != EXPECTED_TENSOR_COUNT:
|
| 63 |
+
raise RuntimeError(
|
| 64 |
+
f"expected {EXPECTED_TENSOR_COUNT} tensors, found {len(state)}"
|
| 65 |
+
)
|
| 66 |
+
decoder, post_quant_conv = _split_state(state)
|
| 67 |
+
vae.decoder.load_state_dict(decoder, strict=True)
|
| 68 |
+
vae.post_quant_conv.load_state_dict(post_quant_conv, strict=True)
|
| 69 |
+
return vae
|
minimax_h3_single_frame_decoder_500k.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6c5ff2caa8fade6769f4dd53ee244f77a06652c8cb66b2fedc93f75046d9f001
|
| 3 |
+
size 9694193992
|
release-manifest.json
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"files": [
|
| 3 |
+
{
|
| 4 |
+
"bytes": 1244,
|
| 5 |
+
"path": "ASSET_PROVENANCE.md",
|
| 6 |
+
"sha256": "7705779ec1e701831a17354aec25ac650552e6cac724a950a9db55eedbb2aa6e"
|
| 7 |
+
},
|
| 8 |
+
{
|
| 9 |
+
"bytes": 17604,
|
| 10 |
+
"path": "LICENSE",
|
| 11 |
+
"sha256": "59b99642b95ea21630e311198ddbfffbfe05aadba0c2f5d884cbdf4efcc90f44"
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"bytes": 545,
|
| 15 |
+
"path": "MODIFICATIONS.md",
|
| 16 |
+
"sha256": "aa29c19da66df5f30c571118d3e1b8efce2bf2e97c2f2a2f0fc7452d42cd0c65"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"bytes": 122,
|
| 20 |
+
"path": "NOTICE",
|
| 21 |
+
"sha256": "0ee234b090f3f3f19484751f051668c145ca9d0c180417f7abef46e8378a923d"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"bytes": 15253,
|
| 25 |
+
"path": "README.md",
|
| 26 |
+
"sha256": "3bc8f2f5f91069b2610eb17d7388da791411ea984d40842848541cf9985bc4bb"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"bytes": 2245,
|
| 30 |
+
"path": "example-prompts.json",
|
| 31 |
+
"sha256": "025ab567aa1ccbfd292bb85ac2276fccbac9a06dc25f855432f860ec1cd99e02"
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"bytes": 93081,
|
| 35 |
+
"path": "examples/edit/product-material/contact-sheet.jpg",
|
| 36 |
+
"sha256": "fe84c13209dc305c50592e92fdd08cc320b90f97a058cd7ddf9c1b7c6d65b12a"
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"bytes": 316819,
|
| 40 |
+
"path": "examples/edit/product-material/transition-grid.png",
|
| 41 |
+
"sha256": "8f38664ff83fed8e22d58f7cc46ebea8130647b6be884340ebba8bb688763fd0"
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"bytes": 62004,
|
| 45 |
+
"path": "examples/edit/sketch-render/contact-sheet.jpg",
|
| 46 |
+
"sha256": "6581b9d497752fb9c86e9715f02f34f1f8a7d46c9d22953db049b980f0134029"
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"bytes": 202583,
|
| 50 |
+
"path": "examples/edit/sketch-render/transition-grid.png",
|
| 51 |
+
"sha256": "58f23d459bb7596a94788c27d40297a2bf5b22cfb7a6020bba4bc27c589d3131"
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"bytes": 96059,
|
| 55 |
+
"path": "examples/edit/sofa-recolor/contact-sheet.jpg",
|
| 56 |
+
"sha256": "8e9e7a70ca9776468914df02cd126025b941a5f97b0f27900042631db016dc2d"
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"bytes": 391559,
|
| 60 |
+
"path": "examples/edit/sofa-recolor/transition-grid.png",
|
| 61 |
+
"sha256": "8be0f1fd04a3602f89849f2ad48e53a4b59098dc43299b785129d1f6628ccf35"
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"bytes": 3111329,
|
| 65 |
+
"path": "examples/reconstruction/native-h3-single-frame.png",
|
| 66 |
+
"sha256": "f196b6e2d86ccdd4937190d087f7582bd0d1226b4225611ea36d728768c58cbe"
|
| 67 |
+
},
|
| 68 |
+
{
|
| 69 |
+
"bytes": 1014965,
|
| 70 |
+
"path": "examples/reconstruction/reconstruction-diagram.png",
|
| 71 |
+
"sha256": "2e16eb24d6688aa09908d7458a599091422295fefb90197977ab42990b243115"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"bytes": 3999517,
|
| 75 |
+
"path": "examples/reconstruction/reconstruction-stress.png",
|
| 76 |
+
"sha256": "ddcb073ab2c95dc66a7055b356c0fa7ad4358b3b721a0418824fae59bdd23a42"
|
| 77 |
+
},
|
| 78 |
+
{
|
| 79 |
+
"bytes": 414247,
|
| 80 |
+
"path": "examples/t2i/diagram-community.png",
|
| 81 |
+
"sha256": "1fc1cb201cc64e397d963d668c3ad09bac335ebe7f35e6f74384c14131735232"
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"bytes": 648473,
|
| 85 |
+
"path": "examples/t2i/diagram-comparison.png",
|
| 86 |
+
"sha256": "01170a97d39e25dbf93f7c157feb2e3857e0e15ea5cfdca234c3fb1fb6a14927"
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"bytes": 243607,
|
| 90 |
+
"path": "examples/t2i/diagram-ours.png",
|
| 91 |
+
"sha256": "54f5fc862dce7ae440aaa802bbcae44c04e27e1cd306a6dc1ce06906ce6410f5"
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"bytes": 650559,
|
| 95 |
+
"path": "examples/t2i/natural-community.png",
|
| 96 |
+
"sha256": "c2416e00300b5a47a0c17597b3f6e75d60ba843e89e9e8677cde5ec1cb39dde4"
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"bytes": 1250127,
|
| 100 |
+
"path": "examples/t2i/natural-comparison.png",
|
| 101 |
+
"sha256": "9f6aacba304de88ff05055598fa7bd92f30c1081147fcd5162f3cec18325248b"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"bytes": 620719,
|
| 105 |
+
"path": "examples/t2i/natural-ours.png",
|
| 106 |
+
"sha256": "7c837927ea26213a9a40f756c2ff5722294b768534a20f925898463081a85559"
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"bytes": 410060,
|
| 110 |
+
"path": "examples/t2i/product-community.png",
|
| 111 |
+
"sha256": "ffd3a45aafb66446a191ea4b5800180f9cfc0bc3f75c7b7bbf68e50eae6acb1f"
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"bytes": 673826,
|
| 115 |
+
"path": "examples/t2i/product-comparison.png",
|
| 116 |
+
"sha256": "4885f6b2b035b26b41b5fc6f3d641cd73633801c1f83ec7088064233f7425761"
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"bytes": 297480,
|
| 120 |
+
"path": "examples/t2i/product-ours.png",
|
| 121 |
+
"sha256": "8dcc562b2c1753c4e52f952666ea20693a05e6b85f2c8a644a3360ca093e3c67"
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"bytes": 2202,
|
| 125 |
+
"path": "load_decoder.py",
|
| 126 |
+
"sha256": "4638ee384e9abb0254f5e46bfd1212cd8b5f9d923b1560fc0b1da08dd9c861dd"
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"bytes": 9694193992,
|
| 130 |
+
"path": "minimax_h3_single_frame_decoder_500k.safetensors",
|
| 131 |
+
"sha256": "6c5ff2caa8fade6769f4dd53ee244f77a06652c8cb66b2fedc93f75046d9f001"
|
| 132 |
+
},
|
| 133 |
+
{
|
| 134 |
+
"bytes": 155,
|
| 135 |
+
"path": "requirements.txt",
|
| 136 |
+
"sha256": "44a88473c0eda6e40e2489ab9323dd2f8dc5098bf8f8556d6d66ec49d839fb48"
|
| 137 |
+
},
|
| 138 |
+
{
|
| 139 |
+
"bytes": 6319,
|
| 140 |
+
"path": "source-fixtures/interior.png",
|
| 141 |
+
"sha256": "49e7096a1df03068051f99a6522df320d7cb75599eaa42408b69625cc57941a0"
|
| 142 |
+
},
|
| 143 |
+
{
|
| 144 |
+
"bytes": 5470,
|
| 145 |
+
"path": "source-fixtures/product-photo.png",
|
| 146 |
+
"sha256": "6e4aa4be38360d7c4bde2589535966e9f76c6a41f96b02736d33efdd28035808"
|
| 147 |
+
},
|
| 148 |
+
{
|
| 149 |
+
"bytes": 5760,
|
| 150 |
+
"path": "source-fixtures/product-sketch.png",
|
| 151 |
+
"sha256": "475ea1cf6abda5cffd57cedb4c75e95ef6fe250419be01be3799c6e0060b67b4"
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"bytes": 2011,
|
| 155 |
+
"path": "vae/config.json",
|
| 156 |
+
"sha256": "78f67deec3d63aae807f2bfe7154bc1e26f6372cb20b63265fcbae1b62bb5745"
|
| 157 |
+
}
|
| 158 |
+
],
|
| 159 |
+
"issues": [],
|
| 160 |
+
"publication_status": "blocked_pending_upstream_distribution_clearance",
|
| 161 |
+
"repository_target": "iamkaikai/MiniMax-H3-Single-Frame-VAE-500K",
|
| 162 |
+
"required_examples": [
|
| 163 |
+
{
|
| 164 |
+
"bytes": 1014965,
|
| 165 |
+
"height": 2812,
|
| 166 |
+
"mode": "RGB",
|
| 167 |
+
"path": "examples/reconstruction/reconstruction-diagram.png",
|
| 168 |
+
"sha256": "2e16eb24d6688aa09908d7458a599091422295fefb90197977ab42990b243115",
|
| 169 |
+
"width": 1280
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"bytes": 3999517,
|
| 173 |
+
"height": 2812,
|
| 174 |
+
"mode": "RGB",
|
| 175 |
+
"path": "examples/reconstruction/reconstruction-stress.png",
|
| 176 |
+
"sha256": "ddcb073ab2c95dc66a7055b356c0fa7ad4358b3b721a0418824fae59bdd23a42",
|
| 177 |
+
"width": 1280
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"bytes": 3111329,
|
| 181 |
+
"height": 1996,
|
| 182 |
+
"mode": "RGB",
|
| 183 |
+
"path": "examples/reconstruction/native-h3-single-frame.png",
|
| 184 |
+
"sha256": "f196b6e2d86ccdd4937190d087f7582bd0d1226b4225611ea36d728768c58cbe",
|
| 185 |
+
"width": 1152
|
| 186 |
+
},
|
| 187 |
+
{
|
| 188 |
+
"bytes": 673826,
|
| 189 |
+
"height": 596,
|
| 190 |
+
"mode": "RGB",
|
| 191 |
+
"path": "examples/t2i/product-comparison.png",
|
| 192 |
+
"sha256": "4885f6b2b035b26b41b5fc6f3d641cd73633801c1f83ec7088064233f7425761",
|
| 193 |
+
"width": 1920
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"bytes": 648473,
|
| 197 |
+
"height": 596,
|
| 198 |
+
"mode": "RGB",
|
| 199 |
+
"path": "examples/t2i/diagram-comparison.png",
|
| 200 |
+
"sha256": "01170a97d39e25dbf93f7c157feb2e3857e0e15ea5cfdca234c3fb1fb6a14927",
|
| 201 |
+
"width": 1920
|
| 202 |
+
},
|
| 203 |
+
{
|
| 204 |
+
"bytes": 1250127,
|
| 205 |
+
"height": 596,
|
| 206 |
+
"mode": "RGB",
|
| 207 |
+
"path": "examples/t2i/natural-comparison.png",
|
| 208 |
+
"sha256": "9f6aacba304de88ff05055598fa7bd92f30c1081147fcd5162f3cec18325248b",
|
| 209 |
+
"width": 1920
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"bytes": 202583,
|
| 213 |
+
"height": 632,
|
| 214 |
+
"mode": "RGB",
|
| 215 |
+
"path": "examples/edit/sketch-render/transition-grid.png",
|
| 216 |
+
"sha256": "58f23d459bb7596a94788c27d40297a2bf5b22cfb7a6020bba4bc27c589d3131",
|
| 217 |
+
"width": 1440
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"bytes": 391559,
|
| 221 |
+
"height": 632,
|
| 222 |
+
"mode": "RGB",
|
| 223 |
+
"path": "examples/edit/sofa-recolor/transition-grid.png",
|
| 224 |
+
"sha256": "8be0f1fd04a3602f89849f2ad48e53a4b59098dc43299b785129d1f6628ccf35",
|
| 225 |
+
"width": 1440
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"bytes": 316819,
|
| 229 |
+
"height": 632,
|
| 230 |
+
"mode": "RGB",
|
| 231 |
+
"path": "examples/edit/product-material/transition-grid.png",
|
| 232 |
+
"sha256": "8f38664ff83fed8e22d58f7cc46ebea8130647b6be884340ebba8bb688763fd0",
|
| 233 |
+
"width": 1440
|
| 234 |
+
}
|
| 235 |
+
],
|
| 236 |
+
"schema_version": 1,
|
| 237 |
+
"status": "passed",
|
| 238 |
+
"weight": {
|
| 239 |
+
"bytes": 9694193992,
|
| 240 |
+
"metadata": {
|
| 241 |
+
"source_config_fingerprint": "225279cbb4cd1e2db94b5b2ae15e123a921fefada0782e5c68d35302e4b4d0a9",
|
| 242 |
+
"source_resume_sha256": "40e94c1bef5a8467b5d41ec7c039212c6246b67b37f61b9ae802f4f48dfb23b4",
|
| 243 |
+
"source_run_name": "minimax_h3_t1_hardwarm_scale500k_curriculum256_384_512_768_1024_20260818_v2",
|
| 244 |
+
"source_step": "62500"
|
| 245 |
+
},
|
| 246 |
+
"path": "minimax_h3_single_frame_decoder_500k.safetensors",
|
| 247 |
+
"sha256": "6c5ff2caa8fade6769f4dd53ee244f77a06652c8cb66b2fedc93f75046d9f001",
|
| 248 |
+
"tensor_count": 585
|
| 249 |
+
}
|
| 250 |
+
}
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
git+https://github.com/huggingface/diffusers.git@9284607295a09f759aadd65ed08f48b35feea6d9
|
| 2 |
+
accelerate
|
| 3 |
+
huggingface_hub
|
| 4 |
+
Pillow
|
| 5 |
+
safetensors
|
| 6 |
+
torch
|
| 7 |
+
transformers
|
source-fixtures/interior.png
ADDED
|
source-fixtures/product-photo.png
ADDED
|
source-fixtures/product-sketch.png
ADDED
|
vae/config.json
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_class_name": "AutoencoderKLMiniMaxH3",
|
| 3 |
+
"_diffusers_version": "0.36.0.dev0",
|
| 4 |
+
"in_channels": 3,
|
| 5 |
+
"out_channels": 3,
|
| 6 |
+
"latent_channels": 24,
|
| 7 |
+
"block_out_channels": [
|
| 8 |
+
128,
|
| 9 |
+
256,
|
| 10 |
+
256,
|
| 11 |
+
512,
|
| 12 |
+
512,
|
| 13 |
+
1024
|
| 14 |
+
],
|
| 15 |
+
"layers_per_block": 2,
|
| 16 |
+
"spatial_downsample_factors": [
|
| 17 |
+
2,
|
| 18 |
+
2,
|
| 19 |
+
2,
|
| 20 |
+
2,
|
| 21 |
+
1,
|
| 22 |
+
1
|
| 23 |
+
],
|
| 24 |
+
"temporal_downsample_factors": [
|
| 25 |
+
1,
|
| 26 |
+
2,
|
| 27 |
+
2,
|
| 28 |
+
1,
|
| 29 |
+
1,
|
| 30 |
+
1
|
| 31 |
+
],
|
| 32 |
+
"norm_num_groups": 32,
|
| 33 |
+
"norm_eps": 1e-06,
|
| 34 |
+
"spatial_padding_mode": "reflect",
|
| 35 |
+
"decoder_num_layers": 36,
|
| 36 |
+
"decoder_num_attention_heads": 32,
|
| 37 |
+
"decoder_attention_head_dim": 64,
|
| 38 |
+
"decoder_num_register_tokens": 4,
|
| 39 |
+
"decoder_ffn_mult": 4,
|
| 40 |
+
"decoder_rope_theta": 100.0,
|
| 41 |
+
"decoder_rope_dim_ratio": 0.75,
|
| 42 |
+
"decoder_norm_eps": 1e-05,
|
| 43 |
+
"clip_length": 17,
|
| 44 |
+
"token_drop": 3,
|
| 45 |
+
"latents_mean": [
|
| 46 |
+
0.858090341091156,
|
| 47 |
+
-0.9606591463088989,
|
| 48 |
+
1.0661640167236328,
|
| 49 |
+
-0.5090325474739075,
|
| 50 |
+
-0.2727581858634949,
|
| 51 |
+
-1.3675414323806763,
|
| 52 |
+
-0.2553254961967468,
|
| 53 |
+
-0.26907554268836975,
|
| 54 |
+
-0.5376840829849243,
|
| 55 |
+
-0.0464097298681736,
|
| 56 |
+
0.6657370328903198,
|
| 57 |
+
0.19690127670764923,
|
| 58 |
+
-0.5460608005523682,
|
| 59 |
+
-0.4035342037677765,
|
| 60 |
+
-0.23683024942874908,
|
| 61 |
+
0.25928452610969543,
|
| 62 |
+
-0.30133944749832153,
|
| 63 |
+
0.211341992020607,
|
| 64 |
+
-1.1206848621368408,
|
| 65 |
+
0.3581933379173279,
|
| 66 |
+
-0.04225143790245056,
|
| 67 |
+
0.2604829967021942,
|
| 68 |
+
0.22864092886447906,
|
| 69 |
+
0.7056031823158264
|
| 70 |
+
],
|
| 71 |
+
"latents_std": [
|
| 72 |
+
1.2223774194717407,
|
| 73 |
+
1.2767263650894165,
|
| 74 |
+
1.6831774711608887,
|
| 75 |
+
1.7549455165863037,
|
| 76 |
+
1.5636216402053833,
|
| 77 |
+
2.194143533706665,
|
| 78 |
+
0.9653137922286987,
|
| 79 |
+
1.0569885969161987,
|
| 80 |
+
0.841948926448822,
|
| 81 |
+
0.7729952931404114,
|
| 82 |
+
1.8955937623977661,
|
| 83 |
+
0.946841835975647,
|
| 84 |
+
0.7996809482574463,
|
| 85 |
+
0.44988900423049927,
|
| 86 |
+
0.7197399735450745,
|
| 87 |
+
0.6936293244361877,
|
| 88 |
+
2.961095094680786,
|
| 89 |
+
2.7694199085235596,
|
| 90 |
+
3.0496184825897217,
|
| 91 |
+
2.1088054180145264,
|
| 92 |
+
3.276226282119751,
|
| 93 |
+
3.1627357006073,
|
| 94 |
+
2.2816812992095947,
|
| 95 |
+
2.6127843856811523
|
| 96 |
+
]
|
| 97 |
+
}
|