> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/generaciya-izobrazhenii/sdxl-turbo.md).

# SDXL Turbo и LCM

Генерируйте изображения за 1–4 шага с помощью SDXL Turbo и Latent Consistency Models на GPU CLORE.AI.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендованных через [маркетплейс CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

## Зачем SDXL Turbo / LCM?

* **Скорость в реальном времени** - Генерация изображений за 1–4 шага вместо 30–50
* **То же качество** - Сопоставимо с полным SDXL при в 10 раз меньшем числе шагов
* **Интерактивность** - Достаточно быстро для приложений в реальном времени
* **Низкий VRAM** - Эффективное использование памяти
* **Совместимо с LoRA** - Используйте с существующими LoRA для SDXL

## Варианты модели

| Модель          | Шаги | Скорость      | Качество | VRAM  |
| --------------- | ---- | ------------- | -------- | ----- |
| SDXL Turbo      | 1-4  | Самый быстрый | Хорошо   | 8 ГБ  |
| SDXL Lightning  | 2-8  | Очень быстро  | Отлично  | 8 ГБ  |
| LCM-SDXL        | 4-8  | Быстро        | Отлично  | 8 ГБ  |
| LCM-LoRA + SDXL | 4-8  | Быстро        | Отлично  | 10 ГБ |
| SD Turbo (1.5)  | 1-4  | Самый быстрый | Хорошо   | 4 ГБ  |

## Быстрое развертывание на CLORE.AI

**Docker-образ:**

```
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-devel
```

**Порты:**

```
22/tcp
7860/http
```

**Команда:**

```bash
pip install diffusers transformers accelerate gradio && \\
python -c "
import gradio as gr
import torch
from diffusers import AutoPipelineForText2Image

pipe = AutoPipelineForText2Image.from_pretrained(
    'stabilityai/sdxl-turbo',
    torch_dtype=torch.float16,
    variant='fp16'
).to('cuda')

def generate(prompt, steps, seed):
    generator = torch.Generator('cuda').manual_seed(seed) if seed > 0 else None
    image = pipe(prompt, num_inference_steps=steps, guidance_scale=0.0, generator=generator).images[0]
    return image

gr.Interface(
    fn=generate,
    inputs=[
        gr.Textbox(label='Промпт'),
        gr.Slider(1, 4, value=1, step=1, label='Шаги'),
        gr.Number(value=-1, label='Сид')
    ],
    outputs=gr.Image(),
    title='SDXL Turbo - Генерация в реальном времени'
).launch(server_name='0.0.0.0', server_port=7860)
"
```

## Доступ к вашему сервису

После развертывания найдите свой `http_pub` URL в **Мои заказы**:

1. Перейдите на **Мои заказы** страницу
2. Нажмите на свой заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

## Требования к оборудованию

| Модель         | Минимальная GPU | Рекомендуется |
| -------------- | --------------- | ------------- |
| SD Turbo       | RTX 3060 8GB    | RTX 3070      |
| SDXL Turbo     | RTX 3070 8GB    | RTX 3080      |
| SDXL Lightning | RTX 3070 8GB    | RTX 3090      |
| LCM-SDXL       | RTX 3080 10GB   | RTX 4090      |

## Установка

```bash
pip install diffusers transformers accelerate torch
```

## SDXL Turbo

### Базовое использование

```python
import torch
from diffusers import AutoPipelineForText2Image

pipe = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/sdxl-turbo",
    torch_dtype=torch.float16,
    variant="fp16"
)
pipe.to("cuda")

# Сгенерируйте за 1 шаг!
image = pipe(
    prompt="Кинематографичный кадр детёныша енота в сложной итальянской рясе священника",
    num_inference_steps=1,
    guidance_scale=0.0  # Turbo не использует CFG
).images[0]

image.save("raccoon.png")
```

### Лучшие настройки

```python
# 1 шаг — самый быстрый, хорошее качество
image = pipe(prompt, num_inference_steps=1, guidance_scale=0.0).images[0]

# 2 шага — больше деталей
image = pipe(prompt, num_inference_steps=2, guidance_scale=0.0).images[0]

# 4 шага — наилучшее качество для Turbo
image = pipe(prompt, num_inference_steps=4, guidance_scale=0.0).images[0]
```

## SDXL Lightning

### Генерация за 2 шага

```python
import torch
from diffusers import StableDiffusionXLPipeline, EulerDiscreteScheduler
from huggingface_hub import hf_hub_download

base = "stabilityai/stable-diffusion-xl-base-1.0"
repo = "ByteDance/SDXL-Lightning"
ckpt = "sdxl_lightning_2step_unet.safetensors"

# Загрузите базовую модель
pipe = StableDiffusionXLPipeline.from_pretrained(
    base,
    torch_dtype=torch.float16,
    variant="fp16"
).to("cuda")

# Загрузите lightning-unet
pipe.unet.load_state_dict(
    torch.load(hf_hub_download(repo, ckpt), map_location="cuda")
)

# Настройте планировщик
pipe.scheduler = EulerDiscreteScheduler.from_config(
    pipe.scheduler.config,
    timestep_spacing="trailing"
)

# Генерация за 2 шага
image = pipe(
    "Девочка, улыбающаяся в саду",
    num_inference_steps=2,
    guidance_scale=0.0
).images[0]

image.save("lightning.png")
```

### 4 шага (более высокое качество)

```python
ckpt = "sdxl_lightning_4step_unet.safetensors"
# ... та же настройка ...

image = pipe(
    prompt,
    num_inference_steps=4,
    guidance_scale=0.0
).images[0]
```

## LCM-LoRA

Используйте с любой моделью SDXL для быстрой генерации:

```python
import torch
from diffusers import DiffusionPipeline, LCMScheduler

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    torch_dtype=torch.float16,
    variant="fp16"
)
pipe.to("cuda")

# Загрузите LCM-LoRA
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl")

# Установите планировщик LCM
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)

# Генерация за 4 шага
image = pipe(
    "Астронавт в джунглях, холодная цветовая палитра, приглушенные цвета, детально, 8k",
    num_inference_steps=4,
    guidance_scale=1.0  # LCM использует низкий CFG
).images[0]

image.save("lcm_lora.png")
```

### С пользовательскими LoRA

```python
# Загрузите базовую модель + LCM-LoRA + стилевую LoRA
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl", adapter_name="lcm")
pipe.load_lora_weights("your-style-lora", adapter_name="style")

# Объедините адаптеры
pipe.set_adapters(["lcm", "style"], adapter_weights=[1.0, 0.8])

image = pipe(prompt, num_inference_steps=4, guidance_scale=1.5).images[0]
```

## SD Turbo (SD 1.5)

Для меньших требований к VRAM:

```python
import torch
from diffusers import AutoPipelineForText2Image

pipe = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/sd-turbo",
    torch_dtype=torch.float16,
    variant="fp16"
)
pipe.to("cuda")

image = pipe(
    "Фото кошки",
    num_inference_steps=1,
    guidance_scale=0.0
).images[0]
```

## Изображение в изображение

### SDXL Turbo Img2Img

```python
from diffusers import AutoPipelineForImage2Image
from diffusers.utils import load_image

pipe = AutoPipelineForImage2Image.from_pretrained(
    "stabilityai/sdxl-turbo",
    torch_dtype=torch.float16,
    variant="fp16"
)
pipe.to("cuda")

init_image = load_image("input.jpg").resize((512, 512))

image = pipe(
    prompt="кот-волшебник, Гэндальф, Властелин колец, детально, фэнтези",
    image=init_image,
    num_inference_steps=2,
    strength=0.5,
    guidance_scale=0.0
).images[0]
```

## Пакетная генерация

```python
import torch
from diffusers import AutoPipelineForText2Image

pipe = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/sdxl-turbo",
    torch_dtype=torch.float16
).to("cuda")

prompts = [
    "Закат над горами",
    "Футуристический город ночью",
    "Милый робот в саду",
    "Древний храм в тумане"
]

# Пакетная генерация
images = pipe(
    prompts,
    num_inference_steps=1,
    guidance_scale=0.0
).images

for i, img in enumerate(images):
    img.save(f"batch_{i}.png")
```

## Потоковая генерация в реальном времени

```python
import gradio as gr
import torch
from diffusers import AutoPipelineForText2Image

pipe = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/sdxl-turbo",
    torch_dtype=torch.float16
).to("cuda")

def generate_realtime(prompt):
    if not prompt:
        return None
    image = pipe(
        prompt,
        num_inference_steps=1,
        guidance_scale=0.0,
        width=512,
        height=512
    ).images[0]
    return image

demo = gr.Interface(
    fn=generate_realtime,
    inputs=gr.Textbox(label="Промпт"),
    outputs=gr.Image(label="Сгенерировано"),
    live=True,  # Обновляется по мере ввода
    title="SDXL Turbo в реальном времени"
)

demo.launch(server_name="0.0.0.0", server_port=7860)
```

## Сравнение производительности

| Модель         | Шаги | Разрешение | RTX 3090 | RTX 4090 | A100  |
| -------------- | ---- | ---------- | -------- | -------- | ----- |
| SDXL (base)    | 30   | 1024x1024  | 8s       | 5s       | 4 с   |
| SDXL Turbo     | 1    | 512x512    | 0,3 с    | 0.2с     | 0.15с |
| SDXL Turbo     | 4    | 512x512    | 0,8 с    | 0,5 с    | 0.4с  |
| SDXL Lightning | 2    | 1024x1024  | 0,8 с    | 0,5 с    | 0.4с  |
| SDXL Lightning | 4    | 1024x1024  | 1,2 с    | 0,8 с    | 0.6с  |
| LCM-SDXL       | 4    | 1024x1024  | 1.5с     | 1.0с     | 0.7с  |

## Сравнение качества

| Аспект              | SDXL 30 шагов | Turbo 4 шага | Lightning 4 шага |
| ------------------- | ------------- | ------------ | ---------------- |
| Подробности         | Отлично       | Хорошо       | Отлично          |
| Рендеринг текста    | Хорошо        | Плохо        | Плохо            |
| Лица                | Отлично       | Хорошо       | Хорошо           |
| Согласованность     | Отлично       | Хорошо       | Отлично          |
| Разнообразие стилей | Отлично       | Хорошо       | Отлично          |

## Когда что использовать

| Сценарий использования          | Рекомендуется  | Шаги |
| ------------------------------- | -------------- | ---- |
| Предпросмотр в реальном времени | SDXL Turbo     | 1    |
| Интерактивные приложения        | SDXL Turbo     | 1-2  |
| Быстрые итерации                | SDXL Lightning | 2-4  |
| С пользовательскими LoRA        | LCM-LoRA       | 4-8  |
| Максимальное качество           | SDXL Lightning | 8    |
| Низкий VRAM                     | SD Turbo       | 1-2  |

## Оценка стоимости

Типичные расценки маркетплейса CLORE.AI:

| GPU           | Почасовая ставка | Изображений/час (1 шаг) |
| ------------- | ---------------- | ----------------------- |
| RTX 3060 12GB | \~$0.03          | \~3,000                 |
| RTX 3090 24GB | \~$0.06          | \~8,000                 |
| RTX 4090 24GB | \~$0.10          | \~12,000                |
| A100 40 ГБ    | \~$0.17          | \~15,000                |

*Цены варьируются. Проверьте* [*маркетплейс CLORE.AI*](https://clore.ai/marketplace) *актуальные тарифы.*

## Устранение неполадок

### Размытые результаты

* SDXL Turbo изначально выводит 512×512
* Используйте SDXL Lightning для 1024×1024
* Добавьте постобработку с увеличением масштаба

### Ошибка guidance\_scale

```python
# SDXL Turbo: всегда используйте 0.0
image = pipe(prompt, guidance_scale=0.0).images[0]

# LCM: используйте 1.0–2.0
image = pipe(prompt, guidance_scale=1.5).images[0]

# Lightning: используйте 0.0
image = pipe(prompt, guidance_scale=0.0).images[0]
```

### LoRA не работает

```python
# Для LCM-LoRA обязательно используйте LCMScheduler
from diffusers import LCMScheduler

pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl")
```

### Недостаточно памяти

```python
# Включите оптимизации памяти
pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()

# Или используйте модель меньшего размера
# SD Turbo вместо SDXL Turbo
```

## Дальнейшие шаги

* [FLUX.1](/guides/guides_v2-ru/generaciya-izobrazhenii/flux.md) - Генерация высочайшего качества
* [Веб-интерфейс Stable Diffusion](/guides/guides_v2-ru/generaciya-izobrazhenii/stable-diffusion-webui.md) - Полный интерфейс
* [ComfyUI](/guides/guides_v2-ru/generaciya-izobrazhenii/comfyui.md) - Рабочие процессы на основе узлов
* [Real-ESRGAN](/guides/guides_v2-ru/obrabotka-izobrazhenii/real-esrgan-upscaling.md) - Улучшение результатов


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/generaciya-izobrazhenii/sdxl-turbo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
