docs(10_Wiki): Topic_Business/General/Graphic/Programming을 Topics/ 하위로 이동
최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치. 콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서 전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한 업데이트0615/무제 3.canvas 뿐).
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
---
|
||||
id: wiki-2026-0508-상업용-제품-사진-및-브랜드-로고-디자인
|
||||
title: 상업용 제품 사진 및 브랜드 로고 디자인
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Commercial Product Photography, Brand Logo with AI, AI Branding]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [ai-image, branding, commercial, product-photography, flux, midjourney]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: python
|
||||
framework: diffusers
|
||||
---
|
||||
|
||||
# 상업용 제품 사진 및 브랜드 로고 디자인
|
||||
|
||||
## 매 한 줄
|
||||
> **"매 commercial 의 deliverable 매 consistency × controllability × license 의 3축"**. AI 의 product hero shot, lifestyle shot, packshot, logo 의 generate 의 매 reference image (IP-Adapter), pose/composition (ControlNet), brand LoRA 의 의해 production-grade 도달. 매 2026 의 FLUX.1 + LoRA + Krea/Magnific upscaler 의 standard pipeline.
|
||||
|
||||
## 매 핵심
|
||||
|
||||
### 매 deliverable 종류
|
||||
- **Packshot**: clean white/seamless bg, hero product 단독.
|
||||
- **Lifestyle**: 매 context (hand, table, scene) 의 product.
|
||||
- **Hero**: cinematic, dramatic light, brand storytelling.
|
||||
- **Logo**: vector-clean, scalable, monogram/wordmark.
|
||||
|
||||
### 매 control 축
|
||||
- **Reference image**: IP-Adapter 의 product 의 visual identity 보존.
|
||||
- **Composition**: ControlNet (depth/canny) 의 layout lock.
|
||||
- **Style**: brand LoRA 의 color palette / mood consistency.
|
||||
- **License**: commercial-cleared model + asset trail.
|
||||
|
||||
### 매 응용
|
||||
1. E-commerce 의 multi-angle packshot batch.
|
||||
2. Lookbook 의 lifestyle shot 의 mood-board iteration.
|
||||
3. Logo 의 monogram/lockup variation 탐색.
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
### Packshot — clean bg 의 product
|
||||
```python
|
||||
from diffusers import FluxPipeline
|
||||
import torch
|
||||
|
||||
pipe = FluxPipeline.from_pretrained(
|
||||
"black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16
|
||||
).to("cuda")
|
||||
|
||||
img = pipe(
|
||||
prompt=(
|
||||
"product photography of a minimalist ceramic coffee mug, "
|
||||
"matte white seamless background, soft shadow, studio lighting, "
|
||||
"centered composition, sharp focus, 50mm lens, commercial catalog style"
|
||||
),
|
||||
height=1024, width=1024, guidance_scale=3.5, num_inference_steps=28,
|
||||
).images[0]
|
||||
```
|
||||
|
||||
### IP-Adapter — product identity 보존
|
||||
```python
|
||||
from diffusers import StableDiffusionXLPipeline
|
||||
from transformers import CLIPVisionModelWithProjection
|
||||
import torch
|
||||
|
||||
pipe = StableDiffusionXLPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16).to("cuda")
|
||||
pipe.load_ip_adapter("h94/IP-Adapter", subfolder="sdxl_models", weight_name="ip-adapter-plus_sdxl_vit-h.safetensors")
|
||||
pipe.set_ip_adapter_scale(0.7)
|
||||
|
||||
product_ref = Image.open("client_product.png") # 매 actual product image
|
||||
|
||||
img = pipe(
|
||||
prompt="product on marble counter, morning light, lifestyle scene",
|
||||
ip_adapter_image=product_ref,
|
||||
num_inference_steps=30, guidance_scale=6.0,
|
||||
).images[0]
|
||||
```
|
||||
|
||||
### ControlNet — composition lock
|
||||
```python
|
||||
from diffusers import StableDiffusionXLControlNetPipeline, ControlNetModel
|
||||
from controlnet_aux import CannyDetector
|
||||
|
||||
canny = CannyDetector()
|
||||
ctrl_img = canny(Image.open("layout_sketch.png"), 100, 200)
|
||||
|
||||
cn = ControlNetModel.from_pretrained("diffusers/controlnet-canny-sdxl-1.0", torch_dtype=torch.float16)
|
||||
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
|
||||
"stabilityai/stable-diffusion-xl-base-1.0", controlnet=cn, torch_dtype=torch.float16
|
||||
).to("cuda")
|
||||
|
||||
img = pipe(
|
||||
prompt="luxury watch packshot, dark moody studio, rim light",
|
||||
image=ctrl_img, controlnet_conditioning_scale=0.7,
|
||||
).images[0]
|
||||
```
|
||||
|
||||
### Brand LoRA — style consistency
|
||||
```python
|
||||
# 매 12-30 brand asset 의 train 한 LoRA 의 load
|
||||
pipe.load_lora_weights("./loras/acme-brand-v3.safetensors", adapter_name="brand")
|
||||
pipe.set_adapters(["brand"], adapter_weights=[0.85])
|
||||
|
||||
img = pipe(prompt="<acme> hero shot, sneaker on rocky terrain, golden hour").images[0]
|
||||
```
|
||||
|
||||
### Logo — vector-style 의 raster
|
||||
```python
|
||||
# Step 1: SDXL 의 raster logo
|
||||
img = pipe(
|
||||
prompt=(
|
||||
"minimalist logo design, geometric monogram letter A, "
|
||||
"single color, flat vector style, high contrast, white background, "
|
||||
"centered, no gradient, no shadow"
|
||||
),
|
||||
negative_prompt="3d, photorealistic, gradient, texture, shadow, busy",
|
||||
guidance_scale=8.0,
|
||||
).images[0]
|
||||
|
||||
# Step 2: vectorize (vtracer / SVG)
|
||||
import subprocess
|
||||
img.save("logo.png")
|
||||
subprocess.run(["vtracer", "--input", "logo.png", "--output", "logo.svg",
|
||||
"--mode", "polygon", "--colormode", "binary"])
|
||||
```
|
||||
|
||||
### Magnific / Krea-style upscale (commercial finish)
|
||||
```python
|
||||
from diffusers import StableDiffusionXLImg2ImgPipeline
|
||||
|
||||
upsc = StableDiffusionXLImg2ImgPipeline.from_pretrained(
|
||||
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16
|
||||
).to("cuda")
|
||||
|
||||
# 매 1024 → 2048 의 detail enhance pass
|
||||
hi = img.resize((2048, 2048), Image.LANCZOS)
|
||||
final = upsc(prompt="ultra detailed product photo, sharp",
|
||||
image=hi, strength=0.25, num_inference_steps=20).images[0]
|
||||
```
|
||||
|
||||
### Multi-angle batch (e-comm)
|
||||
```python
|
||||
angles = [
|
||||
"front view, eye-level",
|
||||
"3/4 view, slight high angle",
|
||||
"top-down flat lay",
|
||||
"profile silhouette, side light",
|
||||
"macro detail, texture close-up",
|
||||
]
|
||||
for i, angle in enumerate(angles):
|
||||
img = pipe(
|
||||
prompt=f"product photography of [PRODUCT], {angle}, white seamless bg, studio light",
|
||||
ip_adapter_image=product_ref,
|
||||
generator=torch.Generator("cuda").manual_seed(42 + i),
|
||||
).images[0]
|
||||
img.save(f"packshot_{i:02d}.png")
|
||||
```
|
||||
|
||||
### Background swap (Bria RMBG / Replicate)
|
||||
```python
|
||||
from transformers import AutoModelForImageSegmentation
|
||||
rmbg = AutoModelForImageSegmentation.from_pretrained("briaai/RMBG-2.0", trust_remote_code=True)
|
||||
# 매 mask 의 추출 → composite 의 new bg
|
||||
mask = rmbg(img)
|
||||
composite = Image.composite(img, new_bg, mask)
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| 실제 product 의 identity 보존 | IP-Adapter scale 0.6-0.8 + brand LoRA |
|
||||
| Layout 정확 lock | ControlNet (canny/depth) scale 0.7 |
|
||||
| Logo design exploration | high CFG (8+) + negative "3d, gradient" |
|
||||
| Lifestyle scene | FLUX + lifestyle prompt + soft IP-Adapter (0.4) |
|
||||
| 4K 의 commercial finish | SDXL refiner img2img strength=0.25 |
|
||||
| 절대 license clean | FLUX.1 [pro] commercial / Adobe Firefly |
|
||||
|
||||
**기본값**: FLUX.1 base + IP-Adapter + brand LoRA + refiner upscale.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[상업용 브랜드 이미지 및 디자인 시스템 구축]] · [[AI 이미지 생성 및 편집 워크플로우 (AI Image Generation & Editing Workflow)]]
|
||||
- 변형: [[미드저니 및 스테이블 디퓨전의 부분 편집 기법]]
|
||||
- Adjacent: [[IP-Adapter]] · [[ControlNet]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: e-comm catalog batch, brand exploration, logo concept ideation, lookbook mood board.
|
||||
**언제 X**: 매 client 의 strict legal requirement (talent likeness, trademarked product) — license-cleared pipeline 의 의무.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **No reference image**: product identity drift — 매 useless to client.
|
||||
- **Brand LoRA 의 over-weight (>1.0)**: 매 over-fit, novelty 사라짐.
|
||||
- **Logo 의 photoreal prompt**: vector-incompatible — flat/single-color 의 specify.
|
||||
- **License 의 무시 (raw SDXL output 의 commercial use)**: 매 legal exposure.
|
||||
- **No upscale pass**: low-resolution 의 catalog quality 미달.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (FLUX.1 model card, IP-Adapter paper, ControlNet paper, Diffusers docs 2024-2026).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — packshot/lifestyle/logo + IP-Adapter/ControlNet/LoRA |
|
||||
Reference in New Issue
Block a user