PRX pixel pipeline#6
Open
DavidBert wants to merge 7 commits into
Open
Conversation
- Use relative imports in pipeline_prx_pixel.py - Register prompt_max_tokens/noise_scale to config for save/load round-trip - Fix Optional[int] annotation for bottleneck_size - Fix PRXResolutionEmbedder dtype handling (cast to compute dtype, fixes layerwise casting with float8 storage) - Fix import ordering (PRXPipeline before PRXPixelPipeline) in __init__ files and dummy objects - Add PRXPixelPipeline autodoc entry and pixel-variant mention to docs - Add fast pipeline tests (tests/pipelines/prx/test_pipeline_prx_pixel.py) - make style/quality/fix-copies clean Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The inherited PRXPipeline.__call__ raised for output_type='pil'/'np' when no VAE was loaded. Pixel-space outputs are already images in [-1, 1], so PRXPixelPipeline now creates a PixArtImageProcessor (vae_scale_factor=1) and the base post-processing denormalizes the denoised latents directly instead of requiring a VAE decode. This also enables resolution binning for the pixel pipeline. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
check_inputs only checked divisibility by vae_scale_factor, which is 1 for the pixel pipeline (and ignores the patch size for latent ones), so sizes like 1000px passed validation and crashed mid-denoising with an opaque reshape RuntimeError in img2seq. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add the pixel model to the available-models table, a pixel-space loading example in the docs, and an Examples block in the PRXPixelPipeline docstring now that the weights are public. Verified end-to-end: from_pretrained + 1024px generation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lead the intro, models table, loading examples, and autodoc sections with the pixel-space model; present the latent-space checkpoints as earlier PRX versions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- PRXPixelPipeline now inherits DiffusionPipeline directly (not PRXPipeline); shared methods copied via # Copied from, __call__ and pixel-specific methods reimplemented standalone - tokenizer_max_length and skip_text_cleaning added as explicit __call__ and encode_prompt args in PRXPipeline (per comment 1) - prediction_type removed entirely (baked per-class); noise_scale is a proper PRXPixelPipeline __init__ arg registered to config (per comment 2) - Remove xfail mark from pixel tests (per comment 4) - Add docs/source/en/api/pipelines/prx_pixel.md + toctree entry; restore prx.md to pre-PR state Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PRX-Pixel in 🧨 diffusers
Quick note for running a trained PRX-Pixel checkpoint (7B, pixel-space RGB, no VAE, Qwen3-VL
text tower) through
PRXPixelPipeline. Three steps: convert → load → predict.Checkpoints
The research checkpoints live on the other cluster (point
--checkpoint_pathat one of these):/mnt/data/users/davidb/checkpoints/PRX7B-ckpt/SFT/mnt/data/users/davidb/checkpoints/PRX7B-ckpt/FDFO_forensic_omniaid1. Setup
PRX-Pixel needs the Qwen3-VL text tower →
transformers >= 4.57(pin< 5, 5.x breaks torchvision).2. Convert the checkpoint
Reads the research checkpoint (a DCP dir
*.distcpor a.ptfile) and writes a diffusers folder.Look for
✓ All parameters loaded successfully (0 missing, 0 unexpected)!. This also downloads theQwen3-VL text encoder + tokenizer into the output folder.
3. Load + predict
The pipeline already handles the PRX-Pixel specifics (x0-prediction,
noise_scale=2, 256-tokenbudget, full-res RGB). Good defaults: 50 steps, CFG 1, scheduler shift ≈ 3.