Safetensors
PyTorch
text-rendering
image-editing

PixText

arXiv Code License

English | 简体中文

PixText refines local text in pixel space. Provide an image, the regions to edit, and the target text. The model generates those regions using the image as context and preserves pixels outside the actual edited footprints. Multiple targets are generated jointly.

Model Default sampling Glyph guidance
PixText-Teacher 25-step Euler 3.3
PixText-MeanFlow 4-step interval Euler 3.3

MeanFlow is the default quick-start choice. Each model package contains its weights, configuration, fonts and SHA-256 checksums. MeanFlow needs no additional text encoder, OCR model, VAE, or teacher.

Example

Two input images and their targets are bundled in examples/. Cyan boxes mark the edited regions. Click an image to enlarge it.

Input MeanFlow · 4 steps Teacher · 25 steps
Input with edit regions MeanFlow output with edit regions Teacher output with edit regions

Each row pairs two targets; every target shows input, MeanFlow output and Teacher output.

# Input MeanFlow · 4 steps Teacher · 25 steps # Input MeanFlow · 4 steps Teacher · 25 steps
1 喜 喜 input 喜 meanflow 喜 teacher 8 给 给 input 给 meanflow 给 teacher
2 发 发 input 发 meanflow 发 teacher 9 解 解 input 解 meanflow 解 teacher
3 甜 甜 input 甜 meanflow 甜 teacher 10 馋 馋 input 馋 meanflow 馋 teacher
4 初 初 input 初 meanflow 初 teacher 11 满 满 input 满 meanflow 满 teacher
5 恋 恋 input 恋 meanflow 恋 teacher 12 满 满 input 满 meanflow 满 teacher
6 鞭 鞭 input 鞭 meanflow 鞭 teacher 13 畜 畜 input 畜 meanflow 畜 teacher
7 炮 炮 input 炮 meanflow 炮 teacher

English tagline repair. examples/english_case repairs three damaged spots in a printed tagline: a broken letter plus two words, leaving the surrounding logo untouched.

Input MeanFlow · 4 steps Teacher · 25 steps
Tagline input with edit region Tagline MeanFlow output with edit region Tagline Teacher output with edit region

Each row shows one repaired region: input, MeanFlow output and Teacher output.

Region Input MeanFlow · 4 steps Teacher · 25 steps
Worldwide Worldwide input Worldwide MeanFlow Worldwide Teacher
Excellence Excellence input Excellence MeanFlow Excellence Teacher
Quality Quality input Quality MeanFlow Quality Teacher

Both cases use seed 42, and the adjacent JSON files record the reproduction metadata. To reproduce them, run the code from ATH-MaaS/PixText with --model pointing at the packages in models/.

Full-resolution images: pipeline input, MeanFlow, Teacher; tagline input, MeanFlow, Teacher.

Method

PixText pipeline

Installation

The inference code is at github.com/ATH-MaaS/PixText. Use Python 3.11 or newer and a CUDA GPU. Install a CUDA build of PyTorch and torchvision appropriate for your machine, then install the package:

pip install "git+https://github.com/ATH-MaaS/PixText.git"

Pillow must support RAQM. The system must provide HarfBuzz (libharfbuzz0 on Debian/Ubuntu). Font files are loaded from the model packages in this directory; no system font installation is required.

What is in this release

This directory contains both model packages, their fonts, example images and checksums. The inference code lives at github.com/ATH-MaaS/PixText.

Path Contents
models/PixText-Teacher/ 25-step teacher weights, configuration, and bundled fonts.
models/PixText-MeanFlow/ 4-step MeanFlow weights, configuration, and bundled fonts.
examples/ Input and output images for both cases, with reproduction metadata.
docs/assets/ Pipeline figure.
model_index.json Model identifiers and weight checksums.
manifest.sha256 SHA-256 checksums for every model file, configuration file, and font.

Verify the release from its root:

sha256sum -c manifest.sha256

The benchmark for this model, TextRefinementBench, ships as a separate dataset package with its own card.

Model packages

Both packages are included under models/, laid out as follows:

models/
  PixText-Teacher/
  PixText-MeanFlow/
    model.safetensors
    config.json
    inference_config.json
    manifest.json
    README.md
    fonts/
      AlibabaPuHuiTi-3-55-Regular.ttf
      GoNotoCJKCore-v7.0.ttf
      OFL-GoNoto.txt
      README.md

Teacher uses the same package layout. model_index.json lists the model identifiers and weight checksums. from_pretrained loads a local directory and checks the files listed in its manifest, including the weights, configuration and fonts. A missing or modified bundled font is reported before weights are loaded. Complete packages can be moved without changing their configuration.

Python

from pixtext import PixTextPipeline, TextEdit

pipeline = PixTextPipeline.from_pretrained("models/PixText-MeanFlow")
result = pipeline.edit(
    "input.png",
    edits=[TextEdit(bbox=(120, 80, 160, 125), text="鹿")],
    seed=42,
)
result.image.save("output.png")

Use models/PixText-Teacher to load Teacher. Both variants can coexist in one process. Results contain image and metadata, including model identity, seed, sample identity, sampling settings, and crop geometry.

Command line

Create edits.json:

[{"bbox": [120, 80, 160, 125], "text": "鹿"}]
pixtext --model models/PixText-MeanFlow \
  --image input.png --edits edits.json --output output.png --seed 42

The CLI saves a PNG and a matching JSON metadata file. python -m pixtext provides the same command. --steps and --guidance-scale override the package defaults.

Batch editing

results = pipeline.edit_batch(
    ["first.png", "second.png"],
    [
        [TextEdit((120, 80, 160, 125), "鹿")],
        [TextEdit((20, 30, 100, 70), "PixText")],
    ],
    seeds=[42, 43],
    sample_ids=["first", "second"],
)

Inputs and pixel preservation

  • Inputs are Pillow images or local image paths, converted to upright RGB using EXIF orientation. Coordinates refer to that upright image.
  • Boxes use original-image pixel coordinates (x0, y0, x1, y1) and half-open intervals. Invalid or out-of-image boxes are rejected.
  • Supply one character or a text line per target.
  • Crops align to 16-pixel patches. Pixels outside those footprints remain identical to the original RGB image.
  • Arbitrary image dimensions are supported.
  • Targets are processed in input order, up to 12 per pass. For overlapping aligned crops, the last target written wins. An empty edit list returns the original RGB image.
  • The renderer selects the first bundled font covering the entire target string, using PuHuiTi then Go Noto. Unsupported text produces a coverage error instead of missing-glyph squares.
  • Editing requires CUDA FlexAttention.

Glyph-present and glyph-absent predictions provide guidance on the open interval (0.1, 1.0). At the default guidance setting, four MeanFlow updates use seven model forwards. Initial execution also includes compilation overhead.

License

Model weights and documentation are released under the Apache License 2.0; see LICENSE. The inference code is at ATH-MaaS/PixText. Bundled fonts keep their own terms, described in each model package's fonts/ directory.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train ATH-MaaS/PixText

Paper for ATH-MaaS/PixText