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:
Antigravity Agent
2026-07-05 00:44:01 +09:00
parent e9cbf23ab5
commit 9a135bd19d
6127 changed files with 0 additions and 0 deletions
@@ -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 |