COLORS.chat network
colorschat.com · YouTube colors.chat · Order now terminal.glass · Deploy
Pixtral — private vision AI from Mistral with NoCloudGPT

Source: Ollama

Run Pixtral 12B Locally with Ollama

Mistral's multimodal vision model — analyze images, documents, and charts without sending visual data to the cloud.

12B Parameters 128K Context Vision + Text Multi-Image Variable Resolution Apache 2.0

Most enterprise AI use cases eventually hit a wall: the data that matters most — contracts with signatures, financial charts, engineering schematics, medical imaging reports, ID documents — exists as images or PDFs, not clean text. Cloud vision APIs can process these files, but doing so means transmitting sensitive visual content to external servers. Pixtral 12B, run locally with Ollama, eliminates that exposure entirely.

Released by Mistral AI in September 2024, Pixtral 12B is the first truly capable open-source multimodal model at this parameter count. It combines a 400M-parameter vision encoder with Mistral Nemo's 12B language backbone, supports variable image resolutions up to high-definition, and can process multiple images in a single context window. For organizations handling confidential visual content, the ability to run Pixtral on local hardware is not a nice-to-have — it is a compliance requirement.

Why Vision Privacy Matters More Than Text Privacy

When professionals think about AI data privacy, they typically focus on the text they type into chat interfaces. But visual data carries far greater risk of sensitive information exposure. Consider what passes through a typical enterprise vision workflow:

A law firm processing discovery materials uploads scanned exhibits — witness signatures, handwritten annotations, physical document metadata — to a cloud vision API. A hospital's radiology department runs AI-assisted report drafting on DICOM-exported images. A financial analyst feeds earnings presentation slides into a vision model to extract chart data before public release. An HR team processes uploaded ID documents for onboarding verification.

In each case, the visual content carries identification, privilege, or confidentiality implications that text summaries alone cannot capture. Cloud vision APIs are technically processing this content on external infrastructure, regardless of contractual protections. Pixtral 12B deployed locally processes every image on your hardware, with no network transmission of visual content.

🔒 What "Local Vision Processing" Actually Means

When you send an image to GPT-4o Vision or Gemini Pro Vision, the image bytes travel across the internet to OpenAI or Google's inference servers. The image is decoded, processed by the model, and the response is transmitted back. Even with data processing agreements in place, the image existed outside your infrastructure. With Pixtral running via Ollama, the image is read from your local filesystem or memory, processed entirely on your GPU, and the response is generated locally. The image never leaves your machine.

Technical Specifications

SpecificationValue
Language model backboneMistral Nemo 12B
Vision encoder400M parameters, custom architecture
Total parameters~12.4B
Context window128,000 tokens
Image resolutionVariable — up to 1024×1024 per patch
Multi-image supportYes — multiple images per context
Image formatsJPEG, PNG, WebP, GIF (static)
LicenseApache 2.0
LanguagesEnglish + 10 European and Asian languages
Ollama tagpixtral

Hardware Requirements

SetupHardwareVRAMSpeedUse Case
MinimumRTX 309024 GB~12 tok/sDevelopment, occasional use
RecommendedRTX 409024 GB~22 tok/sProduction single-user
Server gradeA10G / L424 GB~18 tok/sCloud-isolated deployment
High throughputA100 40GB40 GB~45 tok/sMulti-user, batch document processing
Maximum qualityA100 80GB80 GB~55 tok/sFull precision, research
⚠️ VRAM requirement: Pixtral 12B at Q4_K_M quantization requires approximately 9–10 GB VRAM for the language model alone. Image processing adds overhead proportional to image resolution. A minimum of 16 GB VRAM is recommended for comfortable production use; 24 GB is the practical standard.

Quickstart with Ollama

Pull and Run

# Pull Pixtral 12B
ollama pull pixtral

# Interactive session with image
ollama run pixtral "Describe what you see in this chart" --image ./q3_revenue.png

# CLI with local image path
ollama run pixtral "Extract all text visible in this document" \
  --image /path/to/scanned_contract.jpg

REST API with Image

import ollama
import base64

# Load and encode image locally
with open("financial_chart.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

response = ollama.chat(
    model="pixtral",
    messages=[
        {
            "role": "user",
            "content": "Analyze this financial chart. Extract: "
                       "1) The time period shown "
                       "2) Key data series and their values "
                       "3) The overall trend "
                       "4) Any anomalies or notable data points",
            "images": [image_data]
        }
    ]
)

print(response['message']['content'])

Multi-Image Analysis

import ollama
import base64

def encode_image(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode("utf-8")

# Compare multiple documents or images in one pass
response = ollama.chat(
    model="pixtral",
    messages=[
        {
            "role": "user",
            "content": """Compare these two contract pages and identify:
            1) Any differences in key terms
            2) Clauses present in one but not the other
            3) Any redline changes or annotations""",
            "images": [
                encode_image("contract_v1_page3.jpg"),
                encode_image("contract_v2_page3.jpg")
            ]
        }
    ]
)

print(response['message']['content'])
💡 Multiple images, single context: Pixtral can process several images simultaneously within its 128K context window. This enables document comparison, before/after analysis, and multi-page document workflows without multiple API round-trips.

Document Processing Pipeline

One of Pixtral's highest-value enterprise applications is processing scanned documents — contracts, invoices, forms, and reports that exist only as images. Unlike OCR-only solutions, Pixtral understands document structure, layout, and context, enabling extraction that goes beyond raw text.

Invoice and Receipt Processing

import ollama, json, base64

def process_invoice(image_path: str) -> dict:
    with open(image_path, "rb") as f:
        image_data = base64.b64encode(f.read()).decode("utf-8")

    response = ollama.chat(
        model="pixtral",
        messages=[
            {
                "role": "system",
                "content": "Extract structured data from documents. Return only valid JSON."
            },
            {
                "role": "user",
                "content": """Extract all invoice data from this image as JSON with fields:
                {
                  "vendor_name": string,
                  "invoice_number": string,
                  "invoice_date": "YYYY-MM-DD",
                  "due_date": "YYYY-MM-DD",
                  "line_items": [{"description": string, "qty": number, "unit_price": number, "total": number}],
                  "subtotal": number,
                  "tax": number,
                  "total_due": number,
                  "currency": string,
                  "payment_terms": string
                }""",
                "images": [image_data]
            }
        ],
        format="json"
    )

    return json.loads(response['message']['content'])

# Process locally — invoice image never leaves your server
invoice_data = process_invoice("invoices/acme_inv_2024_0847.jpg")
print(invoice_data)

Contract Clause Extraction

import ollama, base64

def extract_contract_clauses(scanned_pdf_images: list) -> str:
    """Process multi-page scanned contract."""
    encoded_pages = []
    for path in scanned_pdf_images:
        with open(path, "rb") as f:
            encoded_pages.append(base64.b64encode(f.read()).decode("utf-8"))

    response = ollama.chat(
        model="pixtral",
        messages=[
            {
                "role": "user",
                "content": """Review these contract pages and extract:
                1. Parties involved (names, roles)
                2. Effective date and term
                3. Key obligations of each party
                4. Payment terms and amounts
                5. Termination conditions
                6. Governing law and jurisdiction
                7. Any unusual or non-standard clauses
                
                Flag any clauses that appear to be handwritten additions 
                or differ from standard formatting.""",
                "images": encoded_pages
            }
        ]
    )

    return response['message']['content']

Use Cases by Sector

⚖️ Legal Document Review

Discovery processing involves scanned exhibits, handwritten notes, annotated documents, and physical correspondence that must be analyzed for relevance and privilege. Uploading these to cloud vision APIs risks exposing privileged attorney-client communications, witness information, and case strategy. Pixtral running on local infrastructure processes every scanned page, handwritten annotation, and signature block on your hardware. The 128K context window handles lengthy multi-page exhibits in a single pass. Extracted text and summaries remain on your servers.

🏦 Financial Document Intelligence

Banks, asset managers, and accounting firms process financial statements, audit reports, and regulatory filings that contain material non-public information. Processing pre-release earnings slides or M&A term sheets through external APIs could constitute a compliance violation. Pixtral deployed on bank infrastructure extracts financial data from scanned statements, reads chart values from investor presentations, and processes loan application documents — all without any financial data leaving the institution's controlled environment.

🏥 Healthcare and Clinical Documentation

Clinical workflows generate substantial image-based documentation: printed lab reports, imaging summaries, handwritten physician notes, insurance EOB forms. HIPAA requires that PHI processing occur within covered entity infrastructure or under valid BAA arrangements. Running Pixtral on hospital hardware provides an architectural guarantee that clinical images and documents containing PHI never transit external networks. This is categorically stronger than relying on cloud provider BAAs, which still involve external processing of PHI.

🏭 Manufacturing and Engineering

Engineering teams work with schematics, technical drawings, quality control images, and equipment inspection photos that may constitute trade secrets. Sending proprietary CAD exports or production line defect images to cloud vision APIs risks IP exposure. Pixtral running on factory or R&D infrastructure analyzes equipment inspection images, reads technical drawings, identifies defects in QC photos, and processes safety documentation without proprietary visual IP leaving the facility network.

🏛️ Government and Defense

Government agencies processing sensitive documents, infrastructure imagery, or classified materials face strict data handling requirements that cloud APIs cannot satisfy. Air-gapped Pixtral deployments on government hardware enable AI-assisted document processing, form extraction, and visual intelligence workflows that comply with FISMA, IL4/IL5, and similar frameworks. The Apache 2.0 license permits government use without vendor licensing restrictions.

Who Pixtral Is For

👤 Personal use

Pixtral is a vision model, so it expects a real GPU (16–24 GB) rather than a laptop CPU. For enthusiasts who have one, it is a private way to analyze your own documents, receipts, screenshots, and photos — extracting text and answering questions about images — without uploading anything to a cloud vision service. If you only occasionally need image analysis, a smaller model like moondream may be the lighter personal choice.

🏢 Business & team use

Document-heavy teams in legal, finance, healthcare administration, and operations are Pixtral's core audience. It reads scanned contracts, invoices, and forms, compares multiple document images in one pass, and keeps confidential visual content on infrastructure you control. The 12B model's Apache 2.0 license makes commercial rollout straightforward — a meaningful advantage over vision models with restrictive terms.

⚙️ Developer & technical use

Through Ollama's API, Pixtral backs private document-processing pipelines: structured JSON extraction from invoices, multi-page contract analysis, and screenshot understanding — all locally. Its multi-image support and 128K context let a single request reason across several pages or compare before/after images. Apache 2.0 on the 12B model means you can embed it in commercial products without license review friction.

🔬 Data science & research

Pixtral is well suited to turning visual data — charts, tables, figures — into structured data for analysis, and to building or labelling multimodal datasets privately at batch scale. As a general-purpose model it is strong on document and administrative imagery, but it is not a clinical-imaging specialist; validate outputs for any high-stakes scientific or diagnostic use.

Available Model Sizes

The Pixtral line spans the accessible 12B and the high-end Pixtral Large. NoCloudGPT will confirm current model availability, license terms, tags, and hardware fit before deployment begins. NoCloudGPT confirms GPU requirements and selects the right quantization before your pilot begins.

ModelDeployment tierBest for
Pixtral 12BProfessional AI — 16–24 GB GPUPrivate document & image analysis (Apache 2.0)Get quote →
Pixtral Large (124B)Enterprise AI — multi-GPUFrontier multimodal quality (Research License)Get quote →

Licensing Information

Pixtral licensing varies by model. Pixtral 12B is released under the permissive Apache 2.0 license — clear for commercial use. Pixtral Large, the 124B flagship, is released under the Mistral Research License (MRL), which permits research and non-commercial use but requires a separate commercial agreement with Mistral for production use. Confirm which model you are deploying before building on it.

ModelLicenseCommercial useModel card
Pixtral 12BApache 2.0Permittedmistralai/Pixtral-12B-2409 →
Pixtral Large (124B)Mistral Research LicenseCommercial license requiredmistralai/Pixtral-Large-Instruct-2411 →

Pixtral 12B is Apache 2.0; Pixtral Large is the non-commercial Mistral Research License. License information sourced from Hugging Face model cards and may change between releases. Always verify the current terms before commercial deployment. NoCloudGPT is not a legal advisor.

Batch Document Processing

import ollama, base64, json
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor
import time

def process_single_document(doc_path: Path) -> dict:
    """Process one document image through Pixtral locally."""
    with open(doc_path, "rb") as f:
        image_data = base64.b64encode(f.read()).decode("utf-8")

    response = ollama.chat(
        model="pixtral",
        messages=[{
            "role": "user",
            "content": "Classify this document type, extract key metadata, "
                       "and summarize main content in 2-3 sentences.",
            "images": [image_data]
        }]
    )

    return {
        "file": doc_path.name,
        "analysis": response['message']['content'],
        "processed_at": time.time()
    }

def batch_process_documents(folder: str, workers: int = 2) -> list:
    """
    Process folder of document images in parallel.
    workers=2 is conservative for single GPU — increase for multi-GPU setups.
    """
    doc_paths = list(Path(folder).glob("*.{jpg,jpeg,png,webp}"))
    results = []

    with ThreadPoolExecutor(max_workers=workers) as executor:
        futures = {executor.submit(process_single_document, p): p 
                   for p in doc_paths}
        for future in futures:
            try:
                results.append(future.result(timeout=120))
            except Exception as e:
                results.append({"file": str(futures[future]), "error": str(e)})

    return results

# Process entire folder of scanned documents — nothing leaves your server
results = batch_process_documents("/data/incoming_contracts/")
with open("processing_results.json", "w") as f:
    json.dump(results, f, indent=2)

Pixtral vs. Alternative Vision Models

ModelParamsVRAM (Q4)Multi-ImageContextLicense
Pixtral 12B12.4B~10 GB✅ Yes128KApache 2.0
LLaVA 1.6 13B13B~10 GB❌ No4KApache 2.0
Llama 3.2 Vision 11B11B~8 GB❌ No128KLlama 3.2
Llama 3.2 Vision 90B90B~55 GB❌ No128KLlama 3.2
Gemma 3 Vision 12B12B~10 GB✅ Yes128KGemma ToS
moondream21.8B~1.5 GB❌ No2KApache 2.0

Pixtral's key differentiator is multi-image support combined with a 128K context window under an Apache 2.0 license. Llama 3.2 Vision, while competitive on single-image tasks, processes only one image per request. Pixtral's ability to compare, cross-reference, and analyze multiple images in a single context window is essential for document comparison, multi-page processing, and before/after analysis workflows.

Optimizing for Document Workloads

# Modelfile optimized for document processing
FROM pixtral

PARAMETER temperature 0.1      # Low temperature for factual extraction
PARAMETER top_p 0.9
PARAMETER num_ctx 32768        # 32K is sufficient for most documents
PARAMETER repeat_penalty 1.05

SYSTEM """
You are a precise document analysis assistant. Your role is to:
- Extract information accurately and completely
- Preserve exact numbers, dates, names, and amounts as written
- Note any text that is unclear, handwritten, or potentially misread
- Flag document sections that appear incomplete, altered, or unusual
- Return structured data when requested as valid JSON

Never infer or guess information that is not clearly visible in the document.
If text is illegible, indicate [ILLEGIBLE] rather than guessing.
"""
# Build document-optimized model
ollama create doc-analyzer -f Modelfile.docanalyzer
ollama run doc-analyzer

Frequently Asked Questions

What image resolution does Pixtral support?

Pixtral uses a variable-resolution architecture that processes images as patches, supporting resolutions up to 1024×1024 per patch. For most document scanning use cases (300 DPI scans of letter-size pages), Pixtral handles the resolution effectively. Very high-resolution technical drawings may need downsampling to fit within VRAM constraints. Standard document scans at 150–300 DPI work well without modification.

Can Pixtral read handwriting?

Yes, with limitations. Pixtral performs reasonably well on clear, consistent handwriting — printed block letters, neat cursive — but struggles with highly stylized or ambiguous handwriting. For critical handwritten content extraction, validate Pixtral's output against the original. In production workflows, flag all handwriting-derived extractions for human review rather than treating them as ground truth.

How does Pixtral handle PDF documents?

Ollama processes images, not PDFs directly. For PDF workflows, convert each page to an image first using a library like pdf2image (Python) or pdftoppm (CLI). Then pass the page images to Pixtral. This conversion happens entirely locally, maintaining your privacy posture. For multi-page PDFs, you can pass multiple page images in a single Pixtral request up to the context window limit.

Is Pixtral suitable for medical imaging (X-rays, MRIs)?

Pixtral is a general-purpose vision model, not a medical imaging specialist. It can describe and extract text from radiology reports, clinical photos, and administrative medical documents effectively. For diagnostic interpretation of DICOM images (X-rays, MRIs, CT scans), purpose-built medical AI models with clinical validation are more appropriate. Pixtral's strongest healthcare use case is administrative document processing, not diagnostic imaging.

Process Visual Content Without Cloud Exposure

Documents, charts, forms, and images — analyzed on your hardware, never transmitted externally.

→ Deployment Guide  |  ← All Mistral Models  |  Mistral Large 123B →

Artwork and source references

Hero image

AI-generated abstract artwork created for NoCloudGPT. Original work, no third-party license required.

Developer reference

Pixtral is developed by Mistral AI. NoCloudGPT is an independent deployment service not affiliated with Mistral AI.

Model catalog reference

See the Ollama library page for Pixtral for current model tags.