🎨 PosterOmni
Generalized Artistic Poster Creation via Task Distillation and Unified Reward Feedback

PosterOmni Logo

arXiv GitHub HuggingFace Diffusers Website


✨ Overview

PosterOmni is a unified image-to-poster framework that bridges two regimes in poster creation:

  • Poster Local Editing: Rescaling, Filling, Extending, Identity-driven
  • Poster Global Creation: Layout-driven, Style-driven
  • Unified Training: Task distillation + unified reward feedback.
PosterOmni Teaser

This Hugging Face repository currently provides PosterOmni-v1 transformer weights (component-only). Other components (VAE / text encoder / tokenizer / scheduler / processor) should be loaded from a compatible base pipeline.

πŸ”₯ News

  • πŸ“„ [2026.02] Paper available on arXiv.
  • πŸ€— [2026.02] PosterOmni-v1 transformer weights released on Hugging Face.

πŸš€ Quick Start

1) Installation

git clone https://github.com/Ephemeral182/PosterOmni.git
cd PosterOmni

conda create -n posteromni python=3.11 -y
conda activate posteromni

pip install -r requirements.txt

2) Load with QwenImageEditPlusPipeline (Transformer from this repo)

This repo provides PosterOmni-v1 transformer weights (Diffusers component).
You should load the full QwenImageEditPlusPipeline from a compatible base model, then replace its transformer with our weights.

import torch
from PIL import Image
from diffusers import QwenImageEditPlusPipeline

device = "cuda" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.bfloat16 if device.startswith("cuda") else torch.float32

base_model = "Qwen/Qwen-Image-Edit-Plus"   # <-- change to your base
pipe = QwenImageEditPlusPipeline.from_pretrained(base_model, torch_dtype=torch_dtype)
pipe.tokenizer_max_length = 1024
pipe = pipe.to(device)

# ----------------------
Load PosterOmni transformer from this repo and plug in
# ----------------------
posteromni_transformer_id = "MeiGen-AI/PosterOmni_v1"
pipe.transformer = pipe.transformer.__class__.from_pretrained(
    posteromni_transformer_id,
    torch_dtype=torch_dtype,
)

img = Image.open("your_input.jpg").convert("RGB")

# make width/height multiples of 16 (recommended)
w, h = img.size
w = round(w / 16) * 16
h = round(h / 16) * 16

prompt = "Rescale image to 1:1"   # <-- must contain "to"
generator = torch.Generator(device=device).manual_seed(42)

out = pipe(
    image=[img],                
    prompt=prompt,
    negative_prompt="",
    width=w,
    height=h,
    num_inference_steps=40,
    true_cfg_scale=4.0,
    guidance_scale=1.0,
    generator=generator,
).images[0]

out.save("posteromni_test.png")
print("Saved to posteromni_test.png")

⚠️ Notes:

  • This repository is component-only. If you try FluxPipeline.from_pretrained("MeiGen-AI/PosterOmni_v1") it will not work because it lacks model_index.json and other pipeline components.
  • Use a compatible base pipeline and replace its transformer with PosterOmni weights as shown above.

🧠 Method (High-level)

PosterOmni is trained with a four-stage workflow:

  1. Task-specific SFT: train specialized experts for local editing and global creation tasks.
  2. Task Distillation: distill expert knowledge into a single multi-task model.
  3. Unified Reward Training: learn a universal reward for text fidelity, visual consistency, and aesthetics.
  4. Omni-Edit Reinforcement Learning: further align the model with unified reward feedback.
PosterOmni Model Architecture

πŸ“š PosterOmni Dataset

We introduce a unified data suite with PosterOmni-200K (training) and PosterOmni-Bench (evaluation) for image-to-poster generation. PosterOmni-200K contains 200K+ paired samples covering six tasksβ€”local editing (Rescaling, Filling, Extending, Identity-driven) and global creation (Layout-driven, Style-driven)β€”and spans six poster themes: Products, Food, Events/Travel, Nature, Education, Entertainment. PosterOmni-Bench provides 540 Chinese and 480 English prompts, evenly distributed across the same six themes for consistent evaluation across tasks.

PosterOmni Dataset Construction Pipeline

πŸ“Š Performance Benchmarks

PosterOmni Results

🧩 Supported Tasks

Regime Tasks
Poster Local Editing Rescaling Β· Filling Β· Extending Β· Identity-driven
Poster Global Creation Layout-driven Β· Style-driven

πŸ”— Related Project

We also have another text-to-poster work that may interest you:

PosterCraft: Rethinking High-Quality Aesthetic Poster Generation in a Unified Framework GitHub arXiv Project HF


πŸ“Œ Model Files

This repository provides:

  • config.json
  • diffusion_pytorch_model-*.safetensors
  • diffusion_pytorch_model.safetensors.index.json

(i.e., Transformer2DModel weights in Diffusers format.)


πŸ“¬ Contact

Sixiang Chen: schen691@connect.hkust-gz.edu.cn

Jianyu Lai: jlai218@connect.hkust-gz.edu.cn

Jialin Gao: gaojialin04@meituan.com

Hengyu Shi: qq1842084@gmail.com

Zhongying Liu: liuzhongying@meituan.com


πŸ“ Citation

If you find PosterOmni useful for your research, please cite:

@article{chen2026posteromni,
  title={PosterOmni: Generalized Artistic Poster Creation via Task Distillation and Unified Reward Feedback},
  author={Chen, Sixiang and Lai, Jianyu and Gao, Jialin and Shi, Hengyu and Liu, Zhongying and Ye, Tian and Luo, Junfeng and Wei, Xiaoming and Zhu, Lei},
  journal={arXiv preprint arXiv:2602.12127},
  year={2026}
}
Downloads last month
99
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Papers for MeiGen-AI/PosterOmni_v1