Skip to main content

omnichar-sdk

Read Omnichar Studio .char character files from Python.

A .char holds a character's reference images, its locked description, and often a trained LoRA. This package opens one and hands back those parts. It reads; it never writes.

from omnichar_sdk import Character

char = Character.open("Ada.char")

char.get_description()                       # the locked description
char.get_references(arch="flux2-klein")      # the compiled reference set, in prompt order
char.get_lora()                              # the trained adapter, with a portability verdict
char.get_prompt(style="ordinal")             # text that binds the character to its positions
char.save_reference_sheet("ada.png")         # all the references as one numbered PNG

Reference sheets

reference_sheet() lays the references out in a grid and numbers each cell. The numbers are the point: a position is what a prompt refers to, so a sheet without them cannot be checked against the prompt it belongs to. Pass the same first_position to both and they agree.

char.reference_sheet(arch="flux2-klein", first_position=1)  # a PIL image
char.reference_sheet_png()                                  # PNG bytes
char.save_reference_sheet("out/ada.png")                    # writes it, adds .png if missing

It takes the same arch, role, limit and origin filters as get_references, plus columns, cell, fit, labels and background. It needs the images extra.

Install

pip install omnichar-sdk              # reads everything; needs only the standard library
pip install 'omnichar-sdk[images]'    # adds Pillow, for decoding and resizing references

The base install has no dependencies on purpose. It is meant to drop into ComfyUI, A1111, SwarmUI or a batch job without competing with whatever that host has pinned, so it never converts images to tensors. That belongs to the host.

From a shell

omnichar-sdk inspect Ada.char --json
omnichar-sdk extract Ada.char -o out/
omnichar-sdk prompt Ada.char --style token

inspect --json prints the whole character record, so a tool in any language can read a .char through this command without a Python binding.

Notes

style picks the addressing a model was trained on. FLUX.2 reads ordinal prose, MiniMax H3 reads <Picture N>, Seedance reads @ImageN. description-only drops positions, which is what a LoRA needs. first_position sets the number the first reference gets, so a prompt and a sheet built at the same offset agree about which image is image one.

limit divides the slots between face, body and outfit rather than cutting the end of the list, so a character does not lose its wardrobe when a model takes fewer references than it has.

common_size picks the size a batch is built at and fit resizes onto it: pad letterboxes, cover crops, stretch distorts.

A character's LoRA records the strength it was judged at. An overfitted adapter is only usable turned down, so prefer the recorded value over 1.0.

Building a character

encode_character writes a new .char from (image, role) pairs and compiles a reference set for each architecture, so the result applies without a rebuild:

from omnichar_sdk import encode_character, write

doc = encode_character("Ada", "A woman with short dark hair.", [(face, "face"), (body, "body")])
write("Ada.char", doc)

It does not compute identity vectors. Those need face encoders this package does not ship, so Omnichar Studio's verify and continuity features stay unavailable until it re-encodes the file. Rendering is unaffected.

Licence

Apache-2.0. The rest of the repository, including the node pack, is GPL-3.0-or-later.

Metadata

Release files for omnichar-sdk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omnichar-sdk 0.1.0
File Size Uploaded
omnichar_sdk-0.1.0.tar.gz 27.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omnichar-sdk 0.1.0
File Interpreter ABI Platform
omnichar_sdk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 61.1 kB

Release files / omnichar_sdk-0.1.0.tar.gz

Download URL omnichar_sdk-0.1.0.tar.gz
Size 27.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c3b25eb95a14de6d2f64bb0ca259117f8015d26b5bfae5c0fb4e9c64adcf8c89
BLAKE2b-256 checksum
How to use checksums
8f33b2c3046845d808bfe8a4daddadc633423bc6264250a25b6bddea4f44115b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / omnichar_sdk-0.1.0-py3-none-any.whl

Download URL omnichar_sdk-0.1.0-py3-none-any.whl
Size 33.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7ba9169933d63784c6898aef4bc90cd3b42a8c51d6fa1a604487f82638c75c4
BLAKE2b-256 checksum
How to use checksums
f812cec6c83a3407118db69ebe3accee9be3921797589dc5104453fdd633c8a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page