MetaView-ComfyUI / README.md
Wherebot101's picture
Upload README.md with huggingface_hub
0402aa4 verified
|
Raw
History Blame Contribute Delete
5.25 kB
---
license: apache-2.0
base_model: Qwen/Qwen-Image-Edit
pipeline_tag: image-to-image
tags:
- comfyui
- novel-view-synthesis
- camera-control
- fp8
- qwen-image-edit
- diffusion-single-file
---
# MetaView for ComfyUI (fp8-scaled, Lightning 8-step fused)
Single-file ComfyUI checkpoint of **[MetaView](https://huggingface.co/Kwai-Kolors/MetaView)** โ€” *Monocular Novel View Synthesis with Scale-Aware Implicit Geometry Priors* (ECCV 2026, [arXiv:2607.12000](https://arxiv.org/abs/2607.12000)) โ€” pre-fused and quantized for fast, low-VRAM inference. Give it one photo and a camera move (yaw / pitch / radius) and it re-renders the scene from the new viewpoint.
![Example: left = input photo, right = generated novel view at yaw โˆ’30ยฐ, pitch +15ยฐ (8 steps, CFG 1.0)](assets/example_yaw-30_pitch15.png)
*Left: input photo ยท Right: generated novel view (yaw โˆ’30ยฐ, pitch +15ยฐ, 8 steps / CFG 1.0, this checkpoint)*
## What's inside
| Component | Detail |
|---|---|
| Base | [Qwen/Qwen-Image-Edit](https://huggingface.co/Qwen/Qwen-Image-Edit) transformer (original release) |
| Graft | MetaView `model-2500-best` delta: `_3D_in` projection + per-block `prope_attn` parallel 3D attention (PRoPE camera-aware rope), kept bf16 |
| Speed | [Qwen-Image-Edit-Lightning-8steps-V1.0](https://huggingface.co/lightx2v/Qwen-Image-Lightning) LoRA fused at alpha 0.125 โ†’ **8 steps, CFG 1.0** |
| Quantization | 841 base layers fp8_e4m3fn, per-tensor scale = amax/448, ComfyUI-native `weight_scale` convention; sensitive layers (img_in / txt_in / proj_out / norms / biases) and all MetaView layers bf16 |
| Size | 26.5 GB (vs ~41 GB bf16 stack) โ€” runs on a 16 GB GPU via ComfyUI weight streaming |
Quantization is effectively lossless in practice (max per-layer relative error ~0.03% typical; outputs match the bf16 reference within run-to-run sampler noise).
## Requirements
Load with the **[Enviral Design node pack](https://github.com/EnviralDesign/comfyUI-enviral-design-node-pack)** (`MetaViewModelLoader`, `MetaViewDA3Loader`, `MetaView3DConditioning`) โ€” the grafted architecture is not detected by stock loaders. Everything else is stock ComfyUI.
Companion models:
| Model | File / dir | Where |
|---|---|---|
| Text encoder | `qwen_2.5_vl_7b_fp8_scaled.safetensors` โ†’ `models/text_encoders/` | [Comfy-Org/Qwen-Image_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI) |
| VAE | `qwen_image_vae.safetensors` โ†’ `models/vae/` | [Comfy-Org/Qwen-Image_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI) |
| 3D features | `DA3-GIANT-1.1/` (whole dir) โ†’ `models/depth_anything_3/` | [depth-anything/DA3-GIANT-1.1](https://huggingface.co/depth-anything/DA3-GIANT-1.1) |
| Depth | `DA3NESTED-GIANT-LARGE-1.1/` (whole dir) โ†’ `models/depth_anything_3/` | [depth-anything/DA3NESTED-GIANT-LARGE-1.1](https://huggingface.co/depth-anything/DA3NESTED-GIANT-LARGE-1.1) |
This file goes in `models/diffusion_models/`.
## Usage
Example workflow ships with the node pack (`workflows/`). Wiring summary:
```
LoadImage โ”€โ”€โ”ฌโ”€โ–ถ MetaView3DConditioning (yaw / pitch / radius, auto_radius) โ”€โ–ถ positive โ”€โ–ถ SamplerCustom
โ””โ”€โ–ถ TextEncodeQwenImageEdit (image, no vae) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ (via conditioning node)
MetaViewDA3Loader โ”€โ–ถ (da3_model) LATENT from MetaView3DConditioning โ”€โ–ถ SamplerCustom + MetaViewSigmas
MetaViewModelLoader โ”€โ–ถ MODEL โ”€โ–ถ SamplerCustom (euler, CFG 1.0, sigmas from MetaViewSigmas) โ”€โ–ถ VAEDecode โ”€โ–ถ Save
```
- **Sampler:** stock `SamplerCustom` + euler at **CFG 1.0**, sigmas from the pack's `MetaViewSigmas` node (8 steps default). Lightning is fused โ€” do not add another speed LoRA, and use `MetaViewSigmas` rather than a named scheduler (it reproduces the exact Qwen-Image flow-match schedule the model expects).
- **Prompt:** the trigger phrase `้•œๅคด่ง†่ง’่ฝฌๅˆฐๆŒ‡ๅฎšไฝ็ฝฎ` ("move the camera to the specified position"). Extra text after it is best-effort โ€” the model's first-class use is promptless scene mutation.
- **Camera:** yaw/pitch in degrees; `auto_radius` derives orbit radius from scene depth (recommended).
- Wire the **VAE into MetaView3DConditioning** (not into the text encode node) so the reference latent lands at generation resolution.
- Precision note: the loader tags the fp8 layers `full_precision_matrix_mult` (Comfy-Org scaled-fp8 convention) โ€” weights stay fp8 in RAM/VRAM and dequantize to bf16 for each matmul. No launch flags needed; `--fast fp8_matrix_mult` does not apply to these layers (this model's outputs degrade under fp8 activation matmul, so the loader opts out per-layer).
## License & attribution
This checkpoint is a merge of Apache-2.0 licensed weights and is released under **Apache-2.0**:
[Kwai-Kolors/MetaView](https://huggingface.co/Kwai-Kolors/MetaView) ยฉ Kuaishou (ECCV 2026) ยท [Qwen/Qwen-Image-Edit](https://huggingface.co/Qwen/Qwen-Image-Edit) ยฉ Alibaba Cloud ยท [lightx2v Qwen-Image-Lightning](https://huggingface.co/lightx2v/Qwen-Image-Lightning).
Note: the Depth-Anything-3 models used by the conditioning stage (not contained in this file) are **CC-BY-NC-4.0 (non-commercial)** โ€” evaluate accordingly for commercial pipelines.