Skip to content

Commit f30b7ac

Browse files
2 parents 443248c + f411047 commit f30b7ac

File tree

27 files changed

+827
-59
lines changed

27 files changed

+827
-59
lines changed

site/docs/getting-started/introduction.mdx

+55
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,58 @@ sidebar_label: Introduction
44
---
55

66
# Introduction to OpenVINO GenAI
7+
8+
## What is OpenVINO GenAI?
9+
10+
OpenVINO™ GenAI is a library of the most popular Generative AI model pipelines, optimized execution methods, and samples that run on top of highly performant [OpenVINO Runtime](https://docs.openvino.ai/).
11+
It provides simplified APIs for running generative models, hiding the complexity of the generation process and enabling developers to easily integrate state-of-the-art generative models into their applications with minimal code.
12+
13+
As a lightweight solution designed for efficient inference, OpenVINO GenAI includes all the core functionality needed for generative model execution (e.g. tokenization via `openvino-tokenizers`) with no external dependencies required.
14+
This library is friendly to PC and laptop execution, and optimized for resource consumption.
15+
16+
## Key Features and Benefits
17+
18+
- **📦 Pre-built Generative AI Pipelines:** Ready-to-use pipelines for text generation (LLMs), image generation (Diffuser-based), speech processing (Whisper), and visual language models (VLMs). See all [supported use cases](/docs/category/use-cases).
19+
- **👣 Minimal Footprint:** Smaller binary size and reduced memory footprint compared to other frameworks.
20+
- **🚀 Performance Optimization:** Hardware-specific optimizations for CPU, GPU, and NPU devices.
21+
- **👨‍💻 Programming Language Support:** Comprehensive APIs in both Python and C++.
22+
- **🗜️ Model Compression:** Support for 8-bit and 4-bit weight compression, including embedding layers.
23+
- **🎓 Advanced Inference Capabilities:** In-place KV-cache, dynamic quantization, speculative sampling, and more.
24+
- **🎨 Wide Model Compatibility:** Support for popular models including Llama, Mistral, Phi, Qwen, Stable Diffusion, Flux, Whisper, and others. Refer to the [Supported Models](/docs/supported-models) for more details.
25+
26+
## Workflow Overview
27+
28+
Using OpenVINO GenAI typically involves three main steps:
29+
30+
1. **Model Preparation:**
31+
- Convert model from other frameworks to the OpenVINO IR format (e.g. using `optimum-intel`), optionally applying weights compression.
32+
- Download pre-converted model in OpenVINO IR format (e.g. from [OpenVINO Toolkit](https://huggingface.co/OpenVINO) organization on Hugging Face).
33+
:::info
34+
35+
You can use models from [Hugging Face](https://huggingface.co/) and [ModelScope](https://modelscope.cn/home)
36+
37+
:::
38+
2. **Pipeline Setup:** Initialize the appropriate pipeline for your task (`LLMPipeline`, `Text2ImagePipeline`, `WhisperPipeline`, `VLMPipeline`, etc.) with the converted model.
39+
3. **Inference:** Run the model with your inputs using the pipeline's simple API.
40+
41+
![OpenVINO GenAI Workflow](/img/openvino-genai-workflow.svg)
42+
43+
## Comparison with Alternatives
44+
45+
Unlike base OpenVINO, which requires manual implementation of generation loops, tokenization, scheduling etc., OpenVINO GenAI provides these components in a ready-to-use package.
46+
47+
Compared to Hugging Face Optimum Intel, OpenVINO GenAI offers a smaller footprint, fewer dependencies, and better performance optimization options, particularly for C++ applications.
48+
49+
| Feature | OpenVINO GenAI | Base OpenVINO | Hugging Face Optimum Intel |
50+
|-|-|-|-|
51+
| Easy-to-use APIs ||||
52+
| Low footprint ||||
53+
| C++ support ||||
54+
| Pre-built pipelines ||||
55+
| Model variety | Medium | High | High |
56+
57+
## System Requirements
58+
59+
OpenVINO GenAI is built on top of OpenVINO Runtime and shares the same system requirements.
60+
61+
Refer to the [OpenVINO System Requirements](https://docs.openvino.ai/2025/about-openvino/release-notes-openvino/system-requirements.html) for more details.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"label": "Supported Models",
3+
"position": 4,
4+
"link": {
5+
"type": "doc",
6+
"id": "supported-models/index"
7+
}
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import Link from '@docusaurus/Link';
2+
import { Children } from 'react';
3+
4+
type BaseModelsTableProps = {
5+
headers: string[];
6+
rows: React.JSX.Element[];
7+
};
8+
9+
export function BaseModelsTable({ headers, rows }: BaseModelsTableProps): React.JSX.Element {
10+
return (
11+
<table>
12+
<thead>
13+
<tr>
14+
{headers.map((v) => (
15+
<th key={v}>{v}</th>
16+
))}
17+
</tr>
18+
</thead>
19+
<tbody style={{ verticalAlign: 'baseline' }}>{Children.map(rows, (row) => row)}</tbody>
20+
</table>
21+
);
22+
}
23+
24+
export const LinksCell = ({ links }: { links: string[] }) => (
25+
<td>
26+
<ul>
27+
{links.map((link) => (
28+
<li key={link}>
29+
<Link href={link}>{new URL(link).pathname.slice(1)}</Link>
30+
</li>
31+
))}
32+
</ul>
33+
</td>
34+
);
35+
36+
export const StatusCell = ({ value }: { value: boolean }) => (
37+
<td style={{ textAlign: 'center' }}>{value ? '✅' : '❌'}</td>
38+
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import React from 'react';
2+
import { BaseModelsTable, LinksCell, StatusCell } from '../base-models-table';
3+
import { IMAGE_GENERATION_MODELS } from './models';
4+
5+
export default function ImageGenerationModelsTable(): React.JSX.Element {
6+
const headers = [
7+
'Architecture',
8+
'Text to Image',
9+
'Image to Image',
10+
'LoRA Support',
11+
'Example HuggingFace Models',
12+
];
13+
14+
const rows = IMAGE_GENERATION_MODELS.map(
15+
({ architecture, textToImage, imageToImage, loraSupport, links }) => (
16+
<tr key={architecture}>
17+
<td>
18+
<code style={{ whiteSpace: 'pre' }}>{architecture}</code>
19+
</td>
20+
<StatusCell value={textToImage} />
21+
<StatusCell value={imageToImage} />
22+
<StatusCell value={loraSupport} />
23+
<LinksCell links={links} />
24+
</tr>
25+
)
26+
);
27+
28+
return <BaseModelsTable headers={headers} rows={rows} />;
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
type ImageGenerationModelType = {
2+
architecture: string;
3+
textToImage: boolean;
4+
imageToImage: boolean;
5+
loraSupport: boolean;
6+
links: string[];
7+
};
8+
9+
export const IMAGE_GENERATION_MODELS: ImageGenerationModelType[] = [
10+
{
11+
architecture: 'Latent Consistency Model',
12+
textToImage: true,
13+
imageToImage: true,
14+
loraSupport: true,
15+
links: ['https://huggingface.co/SimianLuo/LCM_Dreamshaper_v7'],
16+
},
17+
{
18+
architecture: 'Stable Diffusion',
19+
textToImage: true,
20+
imageToImage: true,
21+
loraSupport: true,
22+
links: [
23+
'https://huggingface.co/CompVis/stable-diffusion-v1-1',
24+
'https://huggingface.co/CompVis/stable-diffusion-v1-2',
25+
'https://huggingface.co/CompVis/stable-diffusion-v1-3',
26+
'https://huggingface.co/CompVis/stable-diffusion-v1-4',
27+
'https://huggingface.co/junnyu/stable-diffusion-v1-4-paddle',
28+
'https://huggingface.co/jcplus/stable-diffusion-v1-5',
29+
'https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5',
30+
'https://huggingface.co/botp/stable-diffusion-v1-5',
31+
'https://huggingface.co/dreamlike-art/dreamlike-anime-1.0',
32+
'https://huggingface.co/stabilityai/stable-diffusion-2',
33+
'https://huggingface.co/stabilityai/stable-diffusion-2-base',
34+
'https://huggingface.co/stabilityai/stable-diffusion-2-1',
35+
'https://huggingface.co/bguisard/stable-diffusion-nano-2-1',
36+
'https://huggingface.co/justinpinkney/pokemon-stable-diffusion',
37+
'https://huggingface.co/stablediffusionapi/architecture-tuned-model',
38+
'https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-EN-v0.1',
39+
'https://huggingface.co/ZeroCool94/stable-diffusion-v1-5',
40+
'https://huggingface.co/pcuenq/stable-diffusion-v1-4',
41+
'https://huggingface.co/rinna/japanese-stable-diffusion',
42+
'https://huggingface.co/benjamin-paine/stable-diffusion-v1-5',
43+
'https://huggingface.co/philschmid/stable-diffusion-v1-4-endpoints',
44+
'https://huggingface.co/naclbit/trinart_stable_diffusion_v2',
45+
'https://huggingface.co/Fictiverse/Stable_Diffusion_PaperCut_Model',
46+
],
47+
},
48+
{
49+
architecture: 'Stable Diffusion XL',
50+
textToImage: true,
51+
imageToImage: true,
52+
loraSupport: true,
53+
links: [
54+
'https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9',
55+
'https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0',
56+
'https://huggingface.co/stabilityai/sdxl-turbo',
57+
],
58+
},
59+
{
60+
architecture: 'Stable Diffusion 3',
61+
textToImage: true,
62+
imageToImage: false,
63+
loraSupport: false,
64+
links: [
65+
'https://huggingface.co/stabilityai/stable-diffusion-3-medium-diffusers',
66+
'https://huggingface.co/stabilityai/stable-diffusion-3.5-medium',
67+
'https://huggingface.co/stabilityai/stable-diffusion-3.5-large',
68+
'https://huggingface.co/stabilityai/stable-diffusion-3.5-large-turbo',
69+
],
70+
},
71+
{
72+
architecture: 'Flux',
73+
textToImage: true,
74+
imageToImage: false,
75+
loraSupport: false,
76+
links: [
77+
'https://huggingface.co/black-forest-labs/FLUX.1-schnell',
78+
'https://huggingface.co/Freepik/flux.1-lite-8B-alpha',
79+
'https://huggingface.co/black-forest-labs/FLUX.1-dev',
80+
'https://huggingface.co/shuttleai/shuttle-3-diffusion',
81+
'https://huggingface.co/shuttleai/shuttle-3.1-aesthetic',
82+
'https://huggingface.co/Shakker-Labs/AWPortrait-FL',
83+
],
84+
},
85+
];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import React from 'react';
2+
import { BaseModelsTable, LinksCell, StatusCell } from '../base-models-table';
3+
import { INPAINTING_MODELS } from './models';
4+
5+
export default function InpaintingModelsTable(): React.JSX.Element {
6+
const headers = ['Architecture', 'LoRA Support', 'Example HuggingFace Models'];
7+
8+
const rows = INPAINTING_MODELS.map(({ architecture, loraSupport, links }) => (
9+
<tr key={architecture}>
10+
<td>
11+
<code style={{ whiteSpace: 'pre' }}>{architecture}</code>
12+
</td>
13+
<StatusCell value={loraSupport} />
14+
<LinksCell links={links} />
15+
</tr>
16+
));
17+
18+
return <BaseModelsTable headers={headers} rows={rows} />;
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
type InpaintingModelType = {
2+
architecture: string;
3+
loraSupport: boolean;
4+
links: string[];
5+
};
6+
7+
export const INPAINTING_MODELS: InpaintingModelType[] = [
8+
{
9+
architecture: 'Stable Diffusion',
10+
loraSupport: true,
11+
links: [
12+
'https://huggingface.co/stabilityai/stable-diffusion-2-inpainting',
13+
'https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-inpainting',
14+
'https://huggingface.co/botp/stable-diffusion-v1-5-inpainting',
15+
'https://huggingface.co/parlance/dreamlike-diffusion-1.0-inpainting',
16+
],
17+
},
18+
{
19+
architecture: 'Stable Diffusion XL',
20+
loraSupport: true,
21+
links: ['https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1'],
22+
},
23+
];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import React from 'react';
2+
import { BaseModelsTable, LinksCell } from '../base-models-table';
3+
import { LLM_MODELS } from './models';
4+
5+
export default function LLMModelsTable(): React.JSX.Element {
6+
const headers = ['Architecture', 'Models', 'Example HuggingFace Models'];
7+
8+
const rows = LLM_MODELS.map(({ architecture, models }) => (
9+
<>
10+
<tr key={architecture}>
11+
<td rowSpan={models.length}>
12+
<code>{architecture}</code>
13+
</td>
14+
<td>{models[0].name}</td>
15+
<LinksCell links={models[0].links} />
16+
</tr>
17+
{models.slice(1).map(({ name, links }) => (
18+
<tr key={name}>
19+
<td>{name}</td>
20+
<LinksCell links={links} />
21+
</tr>
22+
))}
23+
</>
24+
));
25+
26+
return <BaseModelsTable headers={headers} rows={rows} />;
27+
}

0 commit comments

Comments
 (0)