---
id: wiki-2026-0508-chatgpt-emoticon-prompt-engineer
title: ChatGPT / Image AI Emoticon Prompt Engineering
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [AI 이모티콘 만들기, 캐릭터 생성 프롬프트, sticker generation, KakaoTalk emoticon, character grid prompt]
source_trust_level: A
confidence_score: 0.88
verification_status: applied
tags: [prompt-engineering, image-generation, chatgpt, dalle, emoticon, sticker, character-design, midjourney]
raw_sources: [Ryuri_IT_Tech_Room_Blog_Posts]
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: prompt
  framework: ChatGPT (DALL-E 3) / Midjourney / Flux
---

# AI Emoticon Prompt Engineering

## 📌 한 줄 통찰
> **"매 photo → 매 character sticker 의 prompt recipe"**. 매 facial feature 의 keep + 매 cute style + 매 white border + 매 multi-expression grid. 매 KakaoTalk / WhatsApp / Telegram 의 personal emoticon 의 시대 의 essential. 매 ChatGPT (DALL-E 3) + Midjourney + Flux 의 same principle.

## 📖 핵심

### 매 핵심 prompt 구조
1. **Source preservation**: 매 face geometry (eye / nose / mouth position) 의 retain.
2. **Style instruction**: 매 character style (cute, 3D, line draw, pastel).
3. **Background**: 매 white / transparent.
4. **Sticker treatment**: 매 white border.
5. **Multi-expression**: 매 grid layout.

### 매 step-by-step
1. **Initial generation**: 매 first character.
2. **Lock the look**: 매 favorite 의 select.
3. **Re-prompt with reference**: "이 캐릭터 의 다른 표정".
4. **Grid request**: 매 4×3 layout.
5. **Post-process**: 매 Canva / 미리캔버스 의 text + cutout.

### 매 typical expression set (12 emoticon)
- 매 웃음 (laugh)
- 매 미소 (smile)
- 매 우는 (cry)
- 매 졸린 (sleepy)
- 매 화난 (angry)
- 매 놀란 (surprised)
- 매 사랑 (love, heart eye)
- 매 좋아요 (thumbs up)
- 매 부끄러운 (shy / blush)
- 매 화이팅 (cheer)
- 매 OK / 알았어 (okay)
- 매 안녕 / wave

### 매 style option
- **Pixar-style 3D**: 매 rounded, soft.
- **2D cute**: 매 line + flat fill.
- **Pastel**: 매 soft color.
- **Minimal line**: 매 b/w outline.
- **Watercolor**: 매 painterly.
- **Manga**: 매 anime.
- **Crayon**: 매 child drawing.

### 매 trouble + solution
- **텍스트 깨짐**: 매 prompt 의 text 의 omit, 매 후작업 의 add.
- **일관성 결여**: 매 1 image 의 lock + 매 reference + step-by-step.
- **Face distortion**: 매 lower stylization, 매 add "preserve facial features".
- **Multiple character merge**: 매 explicit "same character" repetition.
- **Background bleed**: 매 explicit "pure white background, no shadows".

### 매 ChatGPT (DALL-E 3) vs Midjourney vs Flux

| 측면 | DALL-E 3 (ChatGPT) | Midjourney | Flux |
|---|---|---|---|
| Iteration | Conversational | Discord / Web | Web |
| Reference | Image input | --cref / --sref | IP-Adapter |
| Style consistency | Mid | High | High |
| Text in image | Strong | Weak | Strong |
| Photo → cartoon | OK | Excellent | Excellent |
| Cost | ChatGPT Plus | Subscription | Pay-per-gen |

→ 매 commercial use: 매 license 의 check.

### 매 commercial 의 considerations
- **License**: 매 platform 의 ToS.
- **DALL-E**: 매 commercial OK (OpenAI policy).
- **Midjourney**: 매 paid tier 만 commercial.
- **Flux**: 매 license 의 model 별.
- **KakaoTalk emoticon shop**: 매 specific guideline.

## 💻 패턴 (prompt template)

### Basic emoticon (DALL-E 3 / ChatGPT)
```
[Korean]
업로드한 사진을 기반으로 카카오톡 이모티콘 스타일의 이미지를 만들어줘.
조건:
- 얼굴의 눈, 코, 입 위치와 전체 윤곽은 원본과 최대한 동일하게 유지.
- 현실적인 캐릭터 스타일로 귀엽게 표현 (Pixar 3D 스타일).
- 배경은 순수한 흰색 (no shadow).
- 스티커처럼 4px 두께의 흰색 외곽선 추가.
- 표정: [happy / sad / sleepy / angry / etc.]

[English]
Create a sticker-style emoticon based on the uploaded photo:
- Preserve facial geometry (eye/nose/mouth position, face outline).
- Render in Pixar-style 3D, cute and rounded.
- Pure white background, no shadow.
- Add 4px white sticker outline.
- Expression: [emotion].
```

### Multi-expression grid
```
앞서 만든 캐릭터를 기반으로 총 12개의 다양한 표정을 만들어줘:
1. 웃음 (laughing)
2. 우는 (crying)
3. 졸림 (sleepy)
4. 놀람 (surprised)
5. 사랑 (heart eyes)
6. 화남 (angry)
7. 부끄러움 (shy, blushing)
8. 화이팅 (cheering, fist up)
9. 좋아요 (thumbs up)
10. 안녕 (waving hello)
11. OK (okay sign)
12. 따봉 (great)

전체 이미지는 4x3 그리드 형태로 한 장에 정리.
캐릭터 외형은 모든 컷에서 동일하게 유지.
배경 흰색.
```

### Reference-locked iteration
```
이 캐릭터 [reference image]의 외형, 머리 스타일, 옷차림을 그대로 유지하면서, 
배경만 [seaside sunset / 카페 안 / 숲]으로 바꿔서 한 장 그려줘.
표정은 [smiling at camera].
스티커 스타일 유지.
```

### Midjourney
```
/imagine /describe a happy cute baby character, kakao-style emoji, 
white background, white sticker border, pixar 3d render, 
preserving original face features --cref [URL] --cw 100 --ar 1:1 --stylize 100 --v 7
```

### Flux + IP-Adapter
```python
from diffusers import FluxPipeline
pipe = FluxPipeline.from_pretrained('black-forest-labs/FLUX.1-dev').to('cuda')
pipe.load_ip_adapter('XLabs-AI/flux-ip-adapter')

face = Image.open('baby.jpg')
result = pipe(
    prompt='cute kakao-style emoji, pixar 3d, white background, white sticker border, smiling',
    ip_adapter_image=face,
    ip_adapter_scale=0.7,
    guidance_scale=3.5,
    num_inference_steps=30,
).images[0]
```

### Post-process (Canva / Python)
```python
from PIL import Image, ImageDraw, ImageFont, ImageFilter

def add_sticker_border(image, border_px=8):
    """매 white border + 매 transparent background."""
    image = image.convert('RGBA')
    # 매 alpha mask 의 dilate
    alpha = image.split()[-1]
    expanded = alpha.filter(ImageFilter.MaxFilter(border_px * 2 + 1))
    
    bordered = Image.new('RGBA', image.size, (255, 255, 255, 0))
    bordered.paste((255, 255, 255, 255), mask=expanded)
    bordered.paste(image, (0, 0), mask=alpha)
    return bordered

def add_caption(image, text, font_path='nanum.ttf', size=48):
    img = image.copy()
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype(font_path, size)
    bbox = draw.textbbox((0, 0), text, font=font)
    x = (img.width - (bbox[2] - bbox[0])) // 2
    y = img.height - (bbox[3] - bbox[1]) - 20
    
    # 매 white outline + black text
    for dx in (-2, 0, 2):
        for dy in (-2, 0, 2):
            draw.text((x+dx, y+dy), text, font=font, fill='white')
    draw.text((x, y), text, font=font, fill='black')
    return img
```

### Grid splitter
```python
def split_grid(grid_image, rows, cols):
    """매 1 grid image → 매 N 개 individual sticker."""
    w, h = grid_image.size
    cell_w, cell_h = w // cols, h // rows
    cells = []
    for r in range(rows):
        for c in range(cols):
            box = (c*cell_w, r*cell_h, (c+1)*cell_w, (r+1)*cell_h)
            cells.append(grid_image.crop(box))
    return cells
```

## 🤔 결정 기준
| 상황 | Approach |
|---|---|
| Photo → emoticon | DALL-E 3 (conversational) |
| Multi-expression | Midjourney `--cref` + grid |
| Custom face | Flux + IP-Adapter / InstantID |
| Anime style | NovelAI / Animagine |
| Commercial | Check ToS first |
| Bulk | LoRA + script |

**기본값**: 매 ChatGPT (DALL-E 3) 의 entry. 매 advanced = Flux + IP-Adapter.

## 🔗 Graph
- 부모: [[Prompt_Engineering|Prompt-Engineering]] · [[AI 이미지 생성 (AI Image Generation)]]
- 변형: [[Brand Consistency Maintenance]] · [[Brand Consistency Maintenance|Character Consistency]] · [[Sticker-Generation]]
- 응용: [[DALL-E]] · [[Midjourney]] · [[Flux]] · [[InstantID]] · [[IP-Adapter]]
- Adjacent: [[CFG 스케일(Classifier-Free Guidance Scale)]] · [[AI 이미지 생성 및 편집 워크플로우 (AI Image Generation & Editing Workflow)]] · [[Authenticity]]

## 🤖 LLM 활용
**언제**: 매 personal emoticon. 매 brand mascot. 매 social media sticker. 매 marketing creative.
**언제 X**: 매 photorealistic portrait (다른 tool). 매 commercial 의 license check 의 X.

## ❌ 안티패턴
- **Text 의 in-image 의 expectation** (DALL-E 의 weak): 매 후작업 의 add.
- **Single-shot 의 12 expression**: 매 inconsistency.
- **No reference lock**: 매 character drift.
- **Commercial 의 license 무시**: 매 ToS violation.
- **Background 의 explicit X**: 매 noisy bg.
- **Generic style 의 "cute"**: 매 vague — 매 specific style 의 use.

## 🧪 검증 / 중복
- Verified (blog samples + Midjourney / DALL-E community).
- 신뢰도 B.
- Related: [[Brand Consistency Maintenance]] · [[Brand Consistency Maintenance|Character Consistency]] · [[AI 이미지 생성 (AI Image Generation)]] · [[Be-Detailed]] · [[Articulateness]].

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-02 | Initial draft |
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — TODO 의 fill — prompt template + tool comparison + post-process code |
