Buckets:

mishig's picture
|
download
raw
6.45 kB
# 프롬프팅
Prompts는 모델이 생성해야 할 내용을 설명합니다. 좋은 Prompts는 상세하고 구체적이며 구조화되어 있어 더 나은 이미지와 비디오를 생성합니다.
이 가이드는 효과적인 프롬프트 작성 방법을 보여주고, 프롬프트를 더 강력하게 만드는 기법을 소개합니다.
## 좋은 프롬프트 작성
효과적인 프롬프트에는 세 가지 핵심 요소가 필요합니다.
1. Subject - 생성하려는 대상. 프롬프트를 여기서 시작하세요.
2. 스타일 - 매체 또는 미학. 어떻게 보여야 하는가?
3. Context - 행동, 설정, 무드에 대한 세부 정보.
이 요소들을 키워드 목록이 아닌 구조화된 서술로 활용하세요. 최신 모델은 키워드 매칭보다 자연어 이해 능력이 더 뛰어납니다. 먼저 간단하게 시작하고, 점차 세부 사항을 추가해 나가세요.
더 나은 프롬프트를 만드는 데에는 컨텍스트가 특히 중요합니다. 조명, 예술적 디테일, 무드를 추가해 보세요.
평화로운 여름 오후, 풀장 속 잎사귀에 누워 있는 귀여운 고양이, 로파이 아트 스타일, 일러스트.
평화로운 여름 오후, 반짝이는 연못 위 떠 있는 잎사귀에 귀여운 고양이가 늘어져 있습니다. 맑은 물결이 물 표면을 따라 일렁이고, 햇살이 부드럽고 매끄러운 하이라이트를 드리웁니다. 이 일러스트는 세련된 선과 조화로운 색감으로 섬세하고 정교하게 표현되어 있으며, 애니메이션에서 영감을 받은 시각적으로 편안한 무드와 함께 이완되고 고요하며 환상적인 로파이(Lo-fi) 분위기를 자아냅니다.
구체적으로 작성하고 컨텍스트를 추가하세요. 렌즈 유형, 초점 거리, 카메라 앵글, 심도(Depth of Field)와 같은 사진 용어를 사용하세요.
> [!TIP]
> 프롬프트 구조를 개선하는 데 도움이 되는 [prompt enhancer](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와 같은 새로운 체크포인트에서는 일반적으로 `true_cfg_scale`과 `negative_prompt`를 함께 사용하여 클래식 CFG를 적용합니다. true CFG가 활성화된 경우(`true_cfg_scale > 1`이고 `negative_prompt`가 있는 경우)에도 negative는 여전히 적용됩니다. `guidance_scale` 인수는 transformer가 이를 지원하는 경우 distilled 또는 embedded guidance를 의미하며, 이는 true CFG와 동일하지 않습니다. 로드하는 모델의 pipeline API를 확인하세요.
Modular Diffusers는 guidance 알고리즘을 guider로 대체할 수 있습니다. [Guiders](./guiders)를 참조하세요.
## 프롬프트 가중치
Prompt weighting은 일부 단어의 강도를 높이고 다른 단어의 강도를 낮춥니다. attention score를 스케일링하여 각 개념이 미치는 영향의 정도를 제어할 수 있습니다.
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
```
수치 배율 또는 괄호를 사용하여 가중 텍스트를 포맷합니다. 괄호가 많을수록 가중치가 강해집니다.
| 형식 | multiplier |
|---|---|
| `(cat)` | 1.1배 증가 |
| `((cat))` | 1.21배 증가 |
| `(cat:1.5)` | 1.5배 증가 |
| `(cat:0.5)` | weight를 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`에 negative prompt를 전달할 수도 있습니다.
```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:
6.45 kB
·
Xet hash:
39757929f43a9daf7ed7997c75bc776787d60e65408b8872a56860dd5b2f5a90

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.