Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Deepseek ai Janus Image Post Processing Flow

From Leeroopedia
Revision as of 14:45, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Deepseek_ai_Janus_Image_Post_Processing_Flow.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Knowledge Sources
Domains Computer_Vision, Image_Generation
Last Updated 2026-02-10 09:30 GMT

Overview

Pattern for converting VAE-decoded tensors to displayable images with Lanczos upscaling in the JanusFlow pipeline.

Description

This user-defined pattern converts the SDXL VAE decoder output to uint8 images and upscales them from 384×384 to 1024×1024 using PIL's Lanczos filter.

Usage

Implement this pattern after AutoencoderKL.decode() to produce final output images.

Code Reference

Source Location

  • Repository: Janus
  • File: demo/app_janusflow.py
  • Lines: L136-138 (tensor conversion), L175 (resize to 1024)

Pattern Implementation

import numpy as np
from PIL import Image

# decoded_image: [B, 3, 384, 384] from VAE decode
images = decoded_image.float().clip_(-1., 1.).permute(0, 2, 3, 1).cpu().numpy()
images = ((images + 1) / 2. * 255).astype(np.uint8)

# Upscale to 1024x1024 with Lanczos filter
output_images = [
    Image.fromarray(images[i]).resize((1024, 1024), Image.LANCZOS)
    for i in range(images.shape[0])
]

Import

import numpy as np
from PIL import Image

I/O Contract

Inputs

Name Type Required Description
decoded_image torch.Tensor [B, 3, 384, 384] Yes VAE-decoded images, range [-1, 1]

Outputs

Name Type Description
output_images List[PIL.Image.Image] 1024×1024 RGB images ready for display or saving

Usage Examples

Full Post-Processing

decoded_image = vae.decode(z / vae.config.scaling_factor).sample

images = decoded_image.float().clip_(-1., 1.).permute(0, 2, 3, 1).cpu().numpy()
images = ((images + 1) / 2. * 255).astype(np.uint8)

output = [
    Image.fromarray(images[i]).resize((1024, 1024), Image.LANCZOS)
    for i in range(images.shape[0])
]
# output: list of 5 PIL Images at 1024x1024 resolution

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment