from mixtrain import (
Audio,
Embedding,
File,
Image,
Markdown,
Tensor,
Video,
)Regular Python types work out of the box. Use Mixtrain types to express richer semantics, such as Image, Video, Audio, File, Markdown, Embedding, and Tensor. The types are used throughout the platform to provide better support for multimodal types, better performance, and better user experience.
Types fall into a few categories:
| Category | Description | Types |
|---|---|---|
| File references | Reference a file by URL and download it locally | File, Image, Video, Audio |
| Content types | Formatted inline text | Markdown |
| Array data | Vectors and N-dimensional arrays for ML features | Embedding, Tensor |
Downloadable file types (File, Image, Video, and Audio) support URLs from https://, gs://, and s3://.
Returning Multimodal Outputs
Return typed outputs from your MixModel:
from mixtrain import Image, MixModel, Video
class ImageGenerator(MixModel):
def run(self, inputs=None):
image_url = self._generate(inputs["prompt"])
return {
"image": Image(
url=image_url,
width=1024,
height=1024
)
}
class VideoGenerator(MixModel):
def run(self, inputs=None):
video_url = self._generate(inputs["prompt"])
return {
"video": Video(
url=video_url,
width=1920,
height=1080,
duration_seconds=5.0
)
}Reading Model Results
When you run a model, common media and text outputs are available through convenience properties:
from mixtrain import Model
model = Model("flux-pro")
result = model.run({"prompt": "A sunset"})
if result.image:
print(result.image.url)
print(f"{result.image.width}x{result.image.height}")
# For video models
model = Model("hunyuan-video")
result = model.run({"prompt": "A cat playing"})
if result.video:
print(result.video.url)
print(f"Duration: {result.video.duration_seconds}s")Use result.value to access the complete logical return value, including named
outputs such as Markdown content or embeddings.
Serialization
Mixtrain sends typed values as JSON-serializable dictionaries with a _type field, so the app can render each value correctly.
serialize_output()
from mixtrain import Image, serialize_output
serialize_output(Image("https://...", width=256, height=256))
# {"_type": "image", "url": "https://...", "width": 256, "height": 256}Nested lists and dictionaries are handled automatically.
deserialize_output()
from mixtrain import deserialize_output
deserialize_output({
"_type": "image",
"url": "https://..."
}) # Returns Image instanceextract_output_schema()
from mixtrain import extract_output_schema
class MyModel(MixModel):
def run(self, inputs) -> dict[str, Image]:
...
extract_output_schema(MyModel)
# {"type": "dict", "valueSchema": {"type": "image"}}