> 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/obrabotka-izobrazhenii/iclight.md).

# ICLight

Пересветите любое изображение с управлением освещением на базе ИИ.

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

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

## Аренда на CLORE.AI

1. Перейдите на [маркетплейс CLORE.AI](https://clore.ai/marketplace)
2. Отфильтруйте по типу GPU, объёму VRAM и цене
3. Выберите **On-Demand** (фиксированная ставка) или **Spot** (цена ставки)
4. Настройте свой заказ:
   * Выберите Docker-образ
   * Установите порты (TCP для SSH, HTTP для веб-интерфейсов)
   * При необходимости добавьте переменные окружения
   * Введите команду запуска
5. Выберите способ оплаты: **CLORE**, **BTC**, или **USDT/USDC**
6. Создайте заказ и дождитесь развертывания

### Получите доступ к своему серверу

* Найдите данные для подключения в **Мои заказы**
* Веб-интерфейсы: используйте URL HTTP-порта
* SSH: `ssh -p <port> root@<proxy-address>`

## Что такое IC-Light?

IC-Light от lllyasviel позволяет:

* Пересвечивать изображения по текстовым описаниям
* Изменять направление и цвет освещения
* Добавлять или удалять тени
* Создавать эффекты студийного освещения
* Пересветка переднего/заднего плана

## Ресурсы

* **GitHub:** [lllyasviel/IC-Light](https://github.com/lllyasviel/IC-Light)
* **HuggingFace:** [lllyasviel/IC-Light](https://huggingface.co/lllyasviel/IC-Light)
* **Демо:** [HuggingFace Space](https://huggingface.co/spaces/lllyasviel/IC-Light)
* **Статья:** Основан на архитектуре ControlNet

## Рекомендуемое оборудование

| Компонент | Минимум       | Рекомендуется | Оптимально    |
| --------- | ------------- | ------------- | ------------- |
| GPU       | RTX 3060 12GB | RTX 4080 16GB | RTX 4090 24GB |
| VRAM      | 8GB           | 12GB          | 16GB          |
| CPU       | 4 ядра        | 8 ядер        | 16 ядер       |
| RAM       | 16GB          | 32GB          | 64GB          |
| Хранилище | 30GB SSD      | 50GB NVMe     | 100GB NVMe    |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

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

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

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

**Порты:**

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

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

```bash
cd /workspace && \
git clone https://github.com/lllyasviel/IC-Light.git && \
cd IC-Light && \
pip install -r requirements.txt && \
python gradio_demo.py
```

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

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

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

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

## Установка

```bash
git clone https://github.com/lllyasviel/IC-Light.git
cd IC-Light
pip install -r requirements.txt

# Модели скачиваются автоматически при первом запуске
```

## Что вы можете создать

### Фотосъёмка товаров

* Идеальное освещение для электронной коммерции
* Единообразные изображения каталога
* Результаты студийного качества без студии

### Улучшение портретов

* Исправление плохого освещения на фото
* Добавление драматических световых эффектов
* Создание профессиональных портретов

### Творческие проекты

* Трансформация настроения
* Преобразование дня в ночь
* Художественные световые эффекты

### Видеопроизводство

* Согласование освещения между сценами
* Создание материала, готового для VFX
* Исправление проблем с освещением на месте съёмки

### Маркетинговые материалы

* Создание hero-изображений
* Единообразные брендовые изображения
* Быстрая ретушь фотографий

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

### Пересветка переднего плана (режим FC)

Пересветите объект, сохранив фон неизменным:

```python
import torch
from PIL import Image
from diffusers import StableDiffusionPipeline
from ic_light import ICLightFC

# Загрузить модель
model = ICLightFC.from_pretrained("lllyasviel/IC-Light-FC")
model.to("cuda")

# Загрузить изображение
image = Image.open("portrait.jpg")

# Пересветить с текстовым запросом
result = model.relight(
    image=image,
    prompt="golden hour sunlight from the left",
    num_inference_steps=25
)

result.save("relit_portrait.jpg")
```

### С учётом фона (режим FBC)

Пересветите передний план так, чтобы он соответствовал новому фону:

```python
from ic_light import ICLightFBC
from PIL import Image

model = ICLightFBC.from_pretrained("lllyasviel/IC-Light-FBC")
model.to("cuda")

# Загрузить передний план и новый фон
foreground = Image.open("person.png")  # С прозрачным фоном
background = Image.open("sunset_scene.jpg")

# Пересветить в соответствии с фоном
result = model.relight(
    foreground=foreground,
    background=background,
    prompt="warm sunset lighting",
    num_inference_steps=25
)

result.save("composited.jpg")
```

## Запросы для освещения

### Освещение по направлению

```python
prompts = [
    "яркий свет слева",
    "мягкий свет сверху",
    "драматическая контровая подсветка сзади",
    "обводящий свет справа",
    "рассеянный фронтальный свет",
    "свет под низким углом снизу"
]
```

### Освещение по цвету

```python
prompts = [
    "тёплый золотистый солнечный свет",
    "холодные голубые сумерки",
    "неоново-розовый свет",
    "зелёный окружающий свет",
    "оранжевое сияние заката",
    "белое студийное освещение"
]
```

### Освещение по окружению

```python
prompts = [
    "дневной свет на улице, яркое солнце",
    "свет из окна в помещении, мягкие тени",
    "ночные городские огни, неоновые отражения",
    "свет свечей, тёплое мерцание",
    "пасмурный день, рассеянное освещение",
    "студийный софтбокс, профессионально"
]
```

## Пакетная обработка

```python
import os
from PIL import Image
from ic_light import ICLightFC

model = ICLightFC.from_pretrained("lllyasviel/IC-Light-FC")
model.to("cuda")

input_dir = "./images"
output_dir = "./relit"
os.makedirs(output_dir, exist_ok=True)

lighting_prompt = "профессиональное студийное освещение, мягкие тени"

for filename in os.listdir(input_dir):
    if not filename.endswith(('.jpg', '.png')):
        continue

    image = Image.open(os.path.join(input_dir, filename))

    result = model.relight(
        image=image,
        prompt=lighting_prompt,
        num_inference_steps=25
    )

    result.save(os.path.join(output_dir, f"relit_{filename}"))
    print(f"Обработано: {filename}")
```

## Несколько вариантов освещения

```python
from ic_light import ICLightFC
from PIL import Image
import os

model = ICLightFC.from_pretrained("lllyasviel/IC-Light-FC")
model.to("cuda")

image = Image.open("product.jpg")

lighting_variations = {
    "daylight": "яркий естественный дневной свет, чистый белый фон",
    "dramatic": "драматическое боковое освещение, тёмные тени",
    "warm": "тёплый золотой час, мягкое оранжевое сияние",
    "cool": "холодное голубое освещение, современная эстетика",
    "studio": "профессиональный студийный софтбокс, равномерное освещение"
}

os.makedirs("./variations", exist_ok=True)

for name, prompt in lighting_variations.items():
    result = model.relight(
        image=image,
        prompt=prompt,
        num_inference_steps=25
    )
    result.save(f"./variations/{name}.jpg")
    print(f"Сгенерировано: {name}")
```

## Интерфейс Gradio

```python
import gradio as gr
from PIL import Image
from ic_light import ICLightFC

model = ICLightFC.from_pretrained("lllyasviel/IC-Light-FC")
model.to("cuda")

def relight_image(image, prompt, steps, seed):
    generator = torch.Generator("cuda").manual_seed(seed) if seed > 0 else None

    result = model.relight(
        image=image,
        prompt=prompt,
        num_inference_steps=steps,
        generator=generator
    )

    return result

demo = gr.Interface(
    fn=relight_image,
    inputs=[
        gr.Image(type="pil", label="Входное изображение"),
        gr.Textbox(
            label="Запрос для освещения",
            value="профессиональное студийное освещение",
            placeholder="Опишите желаемое освещение..."
        ),
        gr.Slider(10, 50, value=25, step=5, label="Шаги"),
        gr.Number(value=-1, label="Seed (-1 для случайного)" )
    ],
    outputs=gr.Image(label="Пересвеченное изображение"),
    title="IC-Light - ИИ-пересветка изображений",
    description="Изменяйте освещение в любом изображении с помощью текстовых описаний. Работает на GPU-серверах CLORE.AI.",
    examples=[
        ["example.jpg", "golden hour sunlight from the left", 25, -1],
        ["example.jpg", "dramatic rim lighting, dark background", 25, -1],
        ["example.jpg", "soft window light, gentle shadows", 25, -1]
    ]
)

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

## Интеграция с ComfyUI

IC-Light доступен как узлы ComfyUI:

```bash
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-IC-Light.git
```

### Workflow ComfyUI

1. Загрузите своё изображение
2. Добавьте узел IC-Light Loader
3. Подключите к узлу IC-Light Apply
4. Установите запрос для освещения
5. Подключите к KSampler
6. Выведите в Save Image

## С удалением фона

```python
from ic_light import ICLightFBC
from rembg import remove
from PIL import Image

# Сначала удалите фон
original = Image.open("photo.jpg")
foreground = remove(original)

# Загрузить новый фон
background = Image.open("studio_bg.jpg")

# Пересветить в соответствии
model = ICLightFBC.from_pretrained("lllyasviel/IC-Light-FBC")
model.to("cuda")

result = model.relight(
    foreground=foreground,
    background=background,
    prompt="studio lighting matching background",
    num_inference_steps=25
)

result.save("composited.jpg")
```

## Производительность

| Режим              | Разрешение | GPU      | Скорость |
| ------------------ | ---------- | -------- | -------- |
| FC (передний план) | 512x512    | RTX 3090 | 3 с      |
| FC (передний план) | 512x512    | RTX 4090 | 2 с      |
| FBC (композиция)   | 512x512    | RTX 4090 | 3 с      |
| FC (передний план) | 1024x1024  | A100     | 4 с      |

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

| Модель       | Описание                                  | Сценарий использования        |
| ------------ | ----------------------------------------- | ----------------------------- |
| IC-Light-FC  | Согласованность переднего плана           | Пересветка одного изображения |
| IC-Light-FBC | Согласованность переднего и заднего плана | Композиция с фонами           |

## Распространённые проблемы и решения

### Освещение не меняется

**Проблема:** Вывод выглядит похожим на вход

**Решения:**

* Используйте более подробные запросы к освещению
* Увеличьте число шагов вывода до 30-40
* Попробуйте другие значения seed
* Используйте более сильный контраст в запросе (например, "драматический" вместо "мягкий")

```python

# Более подробный запрос
result = model.relight(
    image=image,
    prompt="чрезвычайно яркий драматический прожектор сверху слева, тёмные тени справа",
    num_inference_steps=35
)
```

### Артефакты на лице/деталях

**Проблема:** Лицо или детали выглядят искажёнными

**Решения:**

* Уменьшите силу/шкалу guidance
* Используйте больше шагов вывода
* Сделайте изменения освещения более сдержанными
* Выполните постобработку с восстановлением лица

### Проблемы с изменением цвета

**Проблема:** Нежелательные изменения цвета

**Решения:**

* Уточняйте цвет в запросе
* Добавьте в запрос "сохранить оригинальные цвета"
* Используйте нейтральные к цвету описания освещения
* Выполните коррекцию цвета на постобработке

### Изменения фона

**Проблема:** Фон меняется, хотя должен меняться только передний план

**Решения:**

* Используйте режим FC (согласованный передний план)
* Предобработайте с удалением фона
* Используйте маску, чтобы изолировать объект

### Несогласованные результаты

**Проблема:** Один и тот же промпт дает очень разные результаты

**Решения:**

* Установите фиксированный seed для воспроизводимости
* Увеличьте число шагов инференса для стабильности
* Используйте более простые и прямые промпты

```python

# Согласованные результаты с фиксированным seed
result = model.relight(
    image=image,
    prompt=prompt,
    num_inference_steps=30,
    generator=torch.Generator("cuda").manual_seed(42)
)
```

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

### Переосвещение выглядит неестественно

* Сопоставьте направление освещения с сценой
* Используйте подходящую интенсивность света
* Учитывайте тени на исходном изображении

### Затронут фон

* Правильно используйте маску переднего плана
* Сначала отделите объект от фона
* Настройте параметры затухания света

### Слишком темный/светлый результат

* Настройте значения интенсивности света
* Используйте HDR-вывод, если доступен
* Постобработайте с помощью кривых

### Модель не загружается

* Скачайте все необходимые контрольные точки
* Проверьте целостность файлов
* Проверьте совместимость с CUDA

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

Типичные тарифы маркетплейса CLORE.AI (по состоянию на 2024 год):

| GPU        | Почасовая ставка | Дневная ставка | 4-часовая сессия |
| ---------- | ---------------- | -------------- | ---------------- |
| RTX 3060   | \~$0.03          | \~$0.70        | \~$0.12          |
| RTX 3090   | \~$0.06          | \~$1.50        | \~$0.25          |
| RTX 4090   | \~$0.10          | \~$2.30        | \~$0.40          |
| A100 40 ГБ | \~$0.17          | \~$4.00        | \~$0.70          |
| A100 80 ГБ | \~$0.25          | \~$6.00        | \~$1.00          |

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

**Сэкономьте деньги:**

* Используйте **Spot** рынок для прерываемых задач — примерно треть серверов оценивает spot-цены ниже on-demand (медиана \~13% скидки), остальные совпадают с ними
* Платите **CLORE** токенами
* Сравните цены у разных провайдеров

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

* [TripoSR](/guides/guides_v2-ru/generaciya-3d/triposr.md) - Преобразование переосвещенных изображений в 3D
* Stable Diffusion - Генерация изображений для переосвещения
* ComfyUI - Расширенная интеграция рабочих процессов
* [Fooocus](/guides/guides_v2-ru/generaciya-izobrazhenii/fooocus-simple-sd.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/obrabotka-izobrazhenii/iclight.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.
