Buckets:
| # Промптинг | |
| Промпты описывают, что должна сгенерировать модель. Хорошие промпты подробные, конкретные и структурированные, и они приводят к получению более качественных изображений и видео. | |
| В этом руководстве показано, как составлять эффективные промпты, и представлены приемы, которые делают их сильнее. | |
| ## Составление хороших промптов | |
| Каждый эффективный промпт требует трех ключевых элементов. | |
| 1. Тема — то, что вы хотите сгенерировать. Начните свой промпт с этого. | |
| 2. Стиль — это средство или эстетика. Как это должно выглядеть? | |
| 3. Контекст — детали о действиях, обстановке и настроении. | |
| Используйте эти элементы как основу для структурированного повествования, а не как список ключевых слов. Современные модели лучше понимают язык, чем сопоставление по ключевым словам. Начните с простого, а затем добавляйте детали. | |
| Контекст особенно важен для создания более качественных промптов. Попробуйте добавить освещение, художественные детали и настроение. | |
| милая кошка отдыхает на листе в бассейне в спокойный летний полдень, в стиле lofi, иллюстрация. | |
| Милый котик лежит на плавающем листе в сверкающем пруду в безмятежный летний полдень. Чёткие отражения рябью расходятся по воде, а солнечный свет создаёт мягкие, плавные блики. Иллюстрация детализирована и отполирована, с изящными линиями и гармоничными цветами, вызывая расслабляющее, спокойное и игривое lofi-настроение, вдохновлённое аниме и визуально приятное. | |
| Будьте конкретны и добавляйте контекст. Используйте фотографические термины, такие как тип объектива, фокусное расстояние, ракурсы съёмки и глубина резкости. | |
| > [!TIP] | |
| > Попробуйте [улучшатель промптов](https://huggingface.co/models?sort=downloads&search=prompt+enhancer), чтобы помочь улучшить структуру вашего промпта. | |
| ## Руководство и негативные примеры | |
| Большинство пайплайнов Diffusers по-прежнему управляют сэмплированием с помощью classifier-free guidance и необязательного `negative_prompt`. | |
| В пайплайнах семейства Stable Diffusion передавайте `guidance_scale` и `negative_prompt`. Чем выше значение `guidance_scale`, тем точнее изображение соответствует промпту. Слишком высокие значения могут привести к неестественному или перенасыщенному виду. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stable-diffusion-v1-5/stable-diffusion-v1-5", dtype=torch.float16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| image = pipeline( | |
| prompt="a cozy reading nook with afternoon light", | |
| negative_prompt="blurry, low quality, distorted", | |
| guidance_scale=7.5, | |
| ).images[0] | |
| ``` | |
| В более новых чекпоинтах, таких как Qwen-Image и Flux, классический CFG обычно представляет собой `true_cfg_scale` в сочетании с `negative_prompt`. Отрицательные промпты по-прежнему применяются, когда включён true CFG (`true_cfg_scale > 1` и задан `negative_prompt`). Аргумент `guidance_scale` означает дистиллированное или встроенное руководство, если трансформер это поддерживает, что не то же самое. Проверьте API пайплайна для загружаемой вами модели. | |
| Модульные Diffusers могут заменить алгоритм наведения на guider. См. [Guiders](./guiders). | |
| ## Взвешивание промптов | |
| Взвешивание промпта делает одни слова более сильными, а другие — более слабыми. Оно масштабирует оценки внимания, позволяя контролировать степень влияния каждой концепции. | |
| Diffusers решает эту задачу с помощью аргументов `prompt_embeds` и `pooled_prompt_embeds`, которые принимают масштабированные векторы текстовых эмбеддингов. Для генерации этих эмбеддингов используйте библиотеку [sd_embed](https://github.com/xhinker/sd_embed). Она также поддерживает более длинные промпты. Для взвешивания в семействах Stable Diffusion с более простым синтаксисом можно также использовать [Compel](https://github.com/damian0815/compel). | |
| > [!NOTE] | |
| > Библиотека sd_embed поддерживает только Stable Diffusion, Stable Diffusion XL, Stable Diffusion 3, Stable Cascade и Flux. Веса промптов не всегда помогают в моделях класса Flux, которые и так точно следуют инструкциям. | |
| ```shell | |
| uv pip install git+https://github.com/xhinker/sd_embed.git@main | |
| ``` | |
| Формат взвешенного текста с числовыми множителями или скобками. Чем больше скобок, тем сильнее взвешивание. | |
| | формат | множитель | | |
| |---|---| | |
| | `(cat)` | увеличение в 1,1 раза | | |
| | `((cat))` | увеличение в 1,21 раза | | |
| | `(cat:1.5)` | увеличение в 1,5 раза | | |
| | `(cat:0.5)` | установите вес в 0,5× | | |
| Создайте взвешенный промпт и передайте его в [get_weighted_text_embeddings_sdxl](https://github.com/xhinker/sd_embed/blob/4a47f71150a22942fa606fb741a1c971d95ba56f/src/sd_embed/embedding_funcs.py#L405) для генерации эмбеддингов. | |
| > [!TIP] | |
| > Вы также можете передать отрицательные промпты в `negative_prompt_embeds` и `negative_pooled_prompt_embeds`. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| from sd_embed.embedding_funcs import get_weighted_text_embeddings_sdxl | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "Lykon/dreamshaper-xl-1-0", dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| prompt = """ | |
| A (cute cat:1.4) lounges on a (floating leaf:1.2) in a (sparkling pool:1.1) during a peaceful summer afternoon. | |
| Gentle ripples reflect pastel skies, while (sunlight:1.1) casts soft highlights. The illustration is smooth and polished | |
| with elegant, sketchy lines and subtle gradients, evoking a ((whimsical, nostalgic, dreamy lofi atmosphere:2.0)), | |
| (anime-inspired:1.6), calming, comforting, and visually serene. | |
| """ | |
| prompt_embeds, _, pooled_prompt_embeds, *_ = get_weighted_text_embeddings_sdxl(pipeline, prompt=prompt) | |
| ``` | |
| Передайте эмбеддинги в `prompt_embeds` и `pooled_prompt_embeds`, чтобы сгенерировать изображение. | |
| ```py | |
| image = pipeline(prompt_embeds=prompt_embeds, pooled_prompt_embeds=pooled_prompt_embeds).images[0] | |
| ``` | |
Xet Storage Details
- Size:
- 8.6 kB
- Xet hash:
- b40dc296d37cacc5d97b88a27d0b90e02850e91591d4aba697969228651d5628
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.