feat: wikify and distribute 109 raw files to Topics folders
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
# 자동 생성 — Connect AI 1인 기업 모드
|
||||
# 시크릿·API 키 보호
|
||||
_agents/*/config.md
|
||||
|
||||
# 외부 API 응답 캐시 (재현 가능)
|
||||
_cache/
|
||||
|
||||
# 대용량 임시 산출물
|
||||
_tmp/
|
||||
*.log
|
||||
@@ -0,0 +1,32 @@
|
||||
# 📜 2026-04-30 회사 대화록
|
||||
|
||||
_모든 명령·분배·산출물·대화가 시간순으로 누적됩니다. 두뇌가 자동 인덱싱·동기화합니다._
|
||||
|
||||
## [16:07:45] 👤 **사용자**
|
||||
|
||||
[모닝 브리핑] 오늘 날짜는 2026-04-30입니다. 회사 목표(goals.md)와 지금까지의 의사결정 로그를 바탕으로 오늘 우리 회사가 우선순위로 처리해야 할 작업 3가지를 결정하고, 각 작업을 적절한 에이전트에게 분배하세요.
|
||||
|
||||
## [16:28:10] 🧭 **CEO** · _작업 분배_
|
||||
|
||||
회사 목표와 로그가 초기화 상태이므로, 시장 분석을 통한 닉슈 선정 → 수익화 전략 및 KPI 도출 → 일일/주간 실행 계획 수립 순으로 3가지 우선 작업을 정의합니다.
|
||||
|
||||
**할당:**
|
||||
- 🔍 **Researcher**: AI/기술/콘텐츠 관련 상위 3개 시장 트렌드와 주요 경쟁 채널의 성장 패턴을 분석한 후, 우리 회사가 1개월 내 진입 가능한 최적의 1개 닉슈와 핵심 타깃 키워드 5개를 정리해 보고하세요.
|
||||
- 💰 **Business**: researcher의 분석 결과를 기반으로 초기 수익화 모델(광고/스폰서/디지털 제품 중 1개 선택)을 제안하고, 월별 조회수·구독자·변환율 목표를 포함한 KPI 프레임워크와 가격/수익 구조를 1페이지 분량으로 작성하세요.
|
||||
- 📱 **Secretary**: 리서치와 비즈니스 전략 결과를 종합해 오늘 하루의 핵심 작업 3가지를 최종 확정하고, 마감 시간·담당 에이전트·진행 상태를 명시한 데일리 브리핑과 1주일 액션 플랜을 텔레그램 보고 형식으로 출력하세요.
|
||||
|
||||
## [16:33:10] 🔍 **Researcher** · _AI/기술/콘텐츠 관련 상위 3개 시장 트렌드와 주요 경쟁 채널의 성장 패턴을 분석한 후, 우리 회사가 1개_
|
||||
|
||||
⚠️ Researcher 에이전트 호출 실패: aborted
|
||||
|
||||
## [16:37:31] 👤 **사용자**
|
||||
|
||||
[자율 사이클 — 2026-04-30] 사용자가 자리를 비웠습니다. 회사 목표·각 에이전트의 개인 목표(_agents/{id}/goal.md)·최근 의사결정·메모리를 검토해서 지금 가장 가치 있는 단일 작업 1개를 결정하고, 적절한 1~2명 에이전트에게 분배해서 실행하세요. 같은 산출물을 반복하지 마세요 — 메모리에 비슷한 항목이 24시간 내에 있으면 다른 각도로 진전시키세요.
|
||||
|
||||
## [16:38:10] 💰 **Business** · _researcher의 분석 결과를 기반으로 초기 수익화 모델(광고/스폰서/디지털 제품 중 1개 선택)을 제안_
|
||||
|
||||
⚠️ Business 에이전트 호출 실패: aborted
|
||||
|
||||
## [16:43:10] 📱 **Secretary** · _리서치와 비즈니스 전략 결과를 종합해 오늘 하루의 핵심 작업 3가지를 최종 확정하고, 마감 시간·담당 에이전_
|
||||
|
||||
⚠️ Secretary 에이전트 호출 실패: aborted
|
||||
@@ -0,0 +1,28 @@
|
||||
# [[2026년 인공지능 시각 언어 생성 패러다임 전환 및 연속적 창작 워크플로우]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
2026년의 인공지능 시각 언어 생성 기술은 단발성 이미지 추출에서 벗어나, 인간과 AI 에이전트가 긴밀하게 협업하는 '연속적 창작 워크플로우'의 패러다임으로 진화하였다 [1, 2]. 미드저니 V7의 드래프트 모드(Draft Mode)나 옴니 참조(Omni Reference)와 같은 기술의 도입으로 아이디어의 고속 대량 생산, 시각적 정체성의 일관성 유지, 정교한 사후 편집이 맞물린 체계적 작업이 가능해졌다 [3-5]. 이에 따라 이미지 프롬프트 작성법 역시 단순한 단어의 나열을 넘어, 카메라 물리 법칙이나 조명 과학 등의 시각적 전문 지식을 반영하고 각 AI 모델의 고유한 통제 언어를 다루는 고도화된 프롬프트 엔지니어링으로 격상되었다 [2, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 엔지니어링의 구조화 및 전문화**
|
||||
성공적인 시각 언어 생성 프롬프트는 인공지능의 신경망 구조에 부합하도록 주체(Subject), 매체(Medium), 환경(Environment), 조명(Lighting), 기술적 매개변수(Parameters) 등 5가지 핵심 층위로 구성된다 [7, 8]. 특히 2026년에는 '85mm 렌즈', '얕은 피사계 심도' 같은 렌즈 물리학이나, '볼륨메트릭 라이팅(Volumetric Lighting)', '치아로스쿠로(Chiaroscuro)' 같은 조명 과학 기반의 정밀 키워드가 이미지의 깊이와 서사를 결정짓는 핵심 수단으로 활용된다 [6, 9].
|
||||
|
||||
* **연속적 창작 워크플로우와 드래프트 모드(Draft Mode)의 정착**
|
||||
이미지 생성의 개념은 한 번에 완벽한 결과물을 얻는 것에서, 여러 시안을 탐색하고 정교화하는 반복적인 디자인 리뷰 루프(Design Review Loop)로 변화했다 [3, 10]. 미드저니 V7에 도입된 드래프트 모드는 기존 대비 약 10배 빠른 속도와 절반의 GPU 비용으로 아이디어를 시각화하며, 사용자가 유망한 구도를 선택해 고품질로 승격시키는 프로세스를 가능하게 했다 [1, 3, 4]. 또한, 생성 이후에도 인페인팅(Vary Region)이나 줌 아웃(Zoom Out)을 활용해 기존 맥락을 유지하면서 이미지를 부분 수정하거나 공간을 논리적으로 확장하는 사후 편집이 필수적인 단계로 자리 잡았다 [11-13].
|
||||
|
||||
* **모델별 맞춤형 프롬프트 제어와 참조 기능**
|
||||
각 AI 플랫폼의 특성 및 구조적 '방언'에 맞춘 프롬프트 접근이 요구된다 [14].
|
||||
* **미드저니(Midjourney):** 미학적 결과물 도출에 특화되어 있으며, 2026년 V7 모델의 핵심인 `--sref`(스타일 참조)와 `--oref`(옴니 참조) 매개변수를 통해 특정 캐릭터나 사물의 형태, 브랜드의 미학적 정체성을 여러 프롬프트에 걸쳐 일관되게 재현할 수 있다 [4, 5, 15, 16].
|
||||
* **스테이블 디퓨전(Stable Diffusion):** `(keyword:factor)` 형식의 가중치 부여 문법과 통제된 부정 프롬프트(Negative Prompt)를 통해, 해부학적 왜곡이나 불필요한 시각적 노이즈를 픽셀 단위로 차단하는 정밀한 제어가 가능하다 [17-19].
|
||||
* **DALL-E 3:** 대화형 GPT-4의 상호작용을 통해 복잡한 다중 객체의 배치나 오타 없는 정확한 텍스트 렌더링에서 우수한 성능을 보여주며, 자연어에 강하게 의존한다 [20, 21].
|
||||
|
||||
* **에이전틱 크리에이티브(Agentic Creative) 패러다임의 도래**
|
||||
AI가 인간의 능력을 보조하는 것을 넘어 주도적으로 협력하는 2026년 '에이전틱 AI(Agentic AI)' 트렌드와 결합하여, 창작 환경에도 거대한 변화가 일어났다 [2, 22, 23]. 인간 창작자가 추상적인 비전을 제시하면, AI 에이전트가 이를 모델별 최적의 기술적 언어로 번역하고 대량의 시안을 자율적으로 생성하는 '에이전틱 크리에이티브' 시대가 열리며 소프트웨어적 상호작용 방식이 근본적으로 재정의되고 있다 [2, 24].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** `[[프롬프트 계층 구조(Prompt Hierarchical Structure)]]`, `[[매개변수 제어(Parameter Control)]]`, `[[부정 프롬프트(Negative Prompt)]]`, `[[에이전틱 AI(Agentic AI)]]`
|
||||
- **Projects/Contexts:** `[[미드저니 V7 드래프트 모드(Midjourney V7 Draft Mode)]]`, `[[옴니 참조(Omni Reference, --oref)]]`, `[[에이전틱 크리에이티브(Agentic Creative)]]`
|
||||
- **Contradictions/Notes:** 모델 아키텍처에 따라 '부정 지시어'를 처리하는 메커니즘에 뚜렷한 모순과 차이가 존재한다. 스테이블 디퓨전은 이미지의 해부학적 오류(예: extra fingers)나 저화질 요소를 제거하기 위해 명시적인 부정 프롬프트 작성이 필수적이지만 [17, 19, 25], DALL-E 3 모델은 "사용하지 말 것(no, without)"과 같은 부정 지시어를 오히려 해당 피사체를 그려내라는 의미로 오인하는 한계가 있어 모든 프롬프트를 긍정형으로 작성해야 한다 [21, 26]. 또한 미드저니 V7 모델은 시각적이고 미학적인 아이디어 탐색 워크플로우에는 최적화되어 있으나, 정확한 타이포그래피나 엄격한 레이아웃을 그대로 복제해야 하는 작업에는 적합하지 않다는 제한점이 관찰된다 [27, 28].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,25 @@
|
||||
# [[AI 이미지 생성 워크플로우 (AI Image Generation Workflow)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
AI 이미지 생성 워크플로우는 창작자가 텍스트 프롬프트를 입력하여 초기 이미지를 생성한 후, 반복적인 수정과 세부 조정을 통해 최종 결과물을 완성하는 일련의 과정이다 [1-3]. 이 과정은 명확한 피사체(Subject), 스타일, 조명 등의 뼈대를 잡는 단순한 프롬프트로 시작하여, 결과물을 평가한 뒤 점진적으로 부정 프롬프트(Negative Prompt)와 세부 매개변수를 추가하며 발전시킨다 [4-6]. 최근에는 단일 이미지 생성을 넘어 시안(Draft)을 빠르게 대량 생산하고 최적의 구도를 선택하거나, 일관된 스타일 참조 기능을 활용하는 등 전문가 수준의 파이프라인으로 진화하고 있다 [7, 8].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
* **반복적 프롬프트 정교화 (Iterative Prompting):**
|
||||
AI 이미지 생성은 단 한 번의 완벽한 프롬프트로 끝나는 것이 아니라, 넓고 모호한 지시에서 시작해 구체적이고 좁은 지시로 나아가는 고도의 반복적 과정이다 [1-3]. 단순하고 명확한 아이디어로 시작해 생성된 이미지를 바탕으로 예술적 요소, 조명, 환경 등의 세부 사항을 덧붙이는 방식이 권장된다 [4, 9]. 일반적으로 첫 프롬프트로 80%의 틀을 완성하고, 3~5번의 변형과 후속 프롬프트를 통해 세부 사항을 다듬어 나간다 [10].
|
||||
* **모델별 맞춤형 워크플로우 전략:**
|
||||
* **Midjourney:** V7 모델의 '드래프트 모드(Draft Mode)'를 활용해 저렴하고 빠른 속도로 여러 시안을 생성한 뒤, 가장 나은 구도를 고화질(HD)로 승격시키는 파이프라인이 비용과 시간 측면에서 효과적이다 [7, 11]. 이후 `--sref`(스타일 참조)나 `--oref`(옴니 참조) 파라미터를 사용하여 일관된 시각적 방향성을 재사용하며 편집을 진행한다 [8, 12, 13].
|
||||
* **DALL-E 3:** 사용자의 짧은 프롬프트를 ChatGPT의 언어 모델이 자동으로 상세하게 확장(Augment)해 주는 특징이 있다 [14-16]. 텍스트 렌더링 능력이 뛰어나 로고나 포스터 제작에 적합하지만, 사용자의 의도를 그대로 반영하려면 "프롬프트를 변경하지 말고 그대로 사용할 것"이라는 명시적인 지시가 필요할 수 있다 [16-18].
|
||||
* **Stable Diffusion:** 프롬프트 가중치(Prompt Weights)와 부정 프롬프트(Negative Prompt)를 핵심 통제 수단으로 사용한다 [19-21]. 결과물의 결함을 진단한 뒤, 5-10개의 구체적인 단어를 부정 프롬프트에 명시하여 원치 않는 요소를 제거해 나가는 방식이 필수적이다 [6, 22-24].
|
||||
* **사후 편집 및 이미지 확장:**
|
||||
원하는 결과물의 분위기에 근접했을 경우, 프롬프트 전체를 갈아엎기보다는 사후 편집 도구를 사용하는 것이 효율적이다 [1, 25]. 인페인팅(Inpainting, 미드저니의 Vary Region 등) 기능을 사용하면 원본 이미지의 맥락을 유지한 채 특정 부분(예: 인물의 모자 등)만 선택해 수정하거나 새로운 요소를 추가할 수 있다 [26-30]. 또한 아웃페인팅(Zoom Out, Pan)을 통해 원본 이미지의 바깥쪽 공간을 확장하여 캔버스를 넓히고 구도를 재설정할 수 있다 [30-32].
|
||||
* **프롬프트의 계층적 구성 요소:**
|
||||
성공적인 워크플로우를 위한 프롬프트는 논리적인 계층 구조를 가진다. 일반적으로 주체(Subject), 맥락/환경(Context/Environment), 스타일/매체(Style/Medium), 기술적 세부사항(Technical Details: 구도 및 조명)의 순서나 결합으로 구성하여 AI가 우선순위를 쉽게 파악할 수 있도록 돕는다 [5, 33, 34].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 엔지니어링 (Prompt Engineering)]], [[부정 프롬프트 (Negative Prompt)]], [[인페인팅 및 아웃페인팅 (Inpainting and Outpainting)]], [[프롬프트 가중치 (Prompt Weights)]]
|
||||
- **Projects/Contexts:** [[미드저니 V7 드래프트 모드 (Midjourney V7 Draft Mode)]], [[DALL-E 3와 ChatGPT 통합 워크플로우]]
|
||||
- **Contradictions/Notes:** 부정 프롬프트 사용과 관련하여, Stable Diffusion에서는 원치 않는 요소를 배제하고 이미지 품질을 높이기 위한 필수적이고 강력한 도구로 활용되지만 [21, 24, 35], DALL-E 3 모델은 "No", "Without"과 같은 부정 지시어를 잘 처리하지 못하고 오히려 해당 요소를 생성해버리는 경향이 있어 긍정형 문장 위주로 프롬프트를 구성해야 한다는 기술적 차이점이 있다 [16, 36, 37].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,28 @@
|
||||
# [[AI 이미지 품질 최적화 및 디버깅 (Image Quality Optimization & Debugging)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
AI 이미지 생성에서 품질 최적화 및 디버깅은 프롬프트 매개변수, 가중치 조절, 그리고 후보정 편집 기능을 활용하여 시각적 결과물의 완성도를 높이고 예기치 않은 오류를 수정하는 과정입니다. 고해상도 관련 키워드나 네거티브 프롬프트를 전략적으로 사용하여 원치 않는 시각적 결함을 사전에 차단합니다. 또한, 단 번에 완벽한 결과를 기대하기보다는 인페인팅(Inpainting)이나 드래프트 모드(Draft Mode) 등을 통해 문제 영역을 식별하고 점진적으로 개선해 나가는 반복적인 작업이 필수적입니다.
|
||||
|
||||
## 📖 Core Content
|
||||
- **고품질 키워드 및 파라미터 활용 (Quality Keywords & Parameters)**
|
||||
이미지의 완성도를 높이려면 프롬프트에 "8k", "4k", "high resolution", "ultra detailed", "sharp focus"와 같은 해상도 및 디테일 관련 품질 수식어를 추가하는 것이 좋습니다 [1]. Midjourney의 경우 `--q` (quality) 파라미터를 사용하여 디테일과 렌더링 시간을 조정할 수 있으며, 이 값이 클수록 더 많은 디테일이 부여됩니다 [1-3]. 초기 생성 후에는 업스케일(Upscale) 기능을 통해 이미지의 크기를 키우면서 미세한 디테일을 추가로 개선할 수 있습니다 [4].
|
||||
|
||||
- **네거티브 프롬프트를 통한 결함 디버깅 (Debugging via Negative Prompts)**
|
||||
기형적인 손, 흐릿한 초점, 불필요한 텍스트나 워터마크 등 이미지의 구조적 결함이 나타날 때 네거티브 프롬프트는 핵심적인 디버깅 도구가 됩니다 [5, 6]. 단순히 "bad"와 같은 모호한 단어를 쓰기보다는 "extra fingers", "misaligned eyes"와 같이 화면에 나타난 구체적인 결함 요소를 파악하여 차단하는 것이 훨씬 효과적입니다 [7-9]. 지속적인 결함이 나타나면 `(blurry:1.3)`과 같이 적절한 가중치를 부여해 해당 요소가 생성되는 것을 적극적으로 억제할 수 있습니다 [8].
|
||||
|
||||
- **반복적 정교화와 영역별 수정 (Iterative Refinement & Inpainting)**
|
||||
첫 시도에 오류가 발생하면 전체 프롬프트를 폐기하기보다 특정 부분을 점진적으로 수정하는 접근이 필요합니다 [10, 11]. Midjourney의 'Vary (Region)' 기능이나 Stable Diffusion의 인페인팅을 활용하면, 전체 이미지의 맥락과 분위기를 유지한 상태에서 잘못 생성된 모자나 원치 않는 요소 등 특정 영역만 자유롭게 지우고 다시 생성할 수 있습니다 [12-15].
|
||||
|
||||
- **구문 및 가중치 오류 점검 (Syntax & Weight Troubleshooting)**
|
||||
프롬프트를 실행했을 때 결과물이 완전히 망가지거나 백지로 나온다면 프롬프트 구문의 오류를 의도적으로 디버깅해야 합니다. 주로 철자 오류, 지원되지 않는 특수문자, 상충되는 묘사, 혹은 너무 높은 가중치(예: `(apple:2.5)`)가 원인이 될 수 있습니다 [16]. Stable Diffusion 등에서 너무 강한 가중치를 주거나 개념이 충돌하면 푸른색 아티팩트나 형형색색의 노이즈 사각형이 반환될 수 있으므로, 이때는 가중치를 0.5~0.7 수준으로 낮춰야 합니다 [17-19].
|
||||
|
||||
- **모델별 특이 현상 대처 (Model-Specific Quirks)**
|
||||
DALL-E 3의 경우 창의적 한계를 넘는 지나치게 복잡한 지시를 내리면 모델이 이를 해결하지 못하고 이미지 내부에 무의미한 텍스트를 삽입해버리는 버그가 있습니다 [20, 21]. 이때는 프롬프트를 수정하거나 "For unlettered viewers only"라는 문구를 넣어 텍스트 삽입을 억제할 수 있습니다 [20, 21]. 또한 DALL-E 3에서 극사실주의 이미지를 얻기 위해 "photorealistic"이라는 단어를 사용하면 역설적으로 회화풍의 브러시 효과가 나타날 수 있으므로, "photo style"이라는 용어를 사용하는 것이 바람직합니다 [22, 23]. Midjourney V7 환경에서는 저비용, 고속으로 이미지를 테스트해볼 수 있는 `--draft` 모드를 활용해 구도와 프롬프트를 빠르게 최적화할 수 있습니다 [24-26].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[네거티브 프롬프트 (Negative Prompt)]], [[반복적 정교화 (Iterative Refinement)]], [[인페인팅 (Inpainting)]], [[가중치 제어 (Prompt Weighting)]]
|
||||
- **Projects/Contexts:** [[Midjourney Vary Region 기능]], [[Stable Diffusion Syntax Troubleshooting]], [[DALL-E 3 Text Insertion Bug]]
|
||||
- **Contradictions/Notes:** 네거티브 프롬프트를 사용할 때 포괄적이고 긴 실패 목록을 복사해 붙여넣는 것보다, 출력물을 확인한 뒤 눈에 띄는 구체적인 결함(예: "text, signature, watermark")만 적은 수로 타겟팅하는 것이 이미지의 구조적 붕괴나 스타일 손실을 막는 데 훨씬 효과적입니다 [5, 27, 28].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[API-backed Image Generation Workflow]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
API 기반 이미지 생성 워크플로우는 수동적인 이미지 창작을 프로그래밍 방식으로 제어 가능한 자동화 파이프라인으로 전환하는 프로세스를 의미합니다 [1, 2]. 이는 애플리케이션 내에서 생성 작업을 예약하고, 비동기 상태를 관리하며, 비용 효율적인 초안 모드(Draft Mode)를 거쳐 최종 이미지를 확정하는 일련의 과정을 포함합니다 [2-5]. 개발자와 기업은 이러한 API를 통해 고도의 프롬프트 엔지니어링 및 이미지/비디오 생성 기능을 외부 도구나 자체 서비스에 직접 통합할 수 있습니다 [6, 7].
|
||||
|
||||
## 📖 Core Content
|
||||
- **프로그래밍 방식의 작업 제어 및 아키텍처 설계:** API 경로를 통해 이미지 생성 모델(예: Midjourney V7, Veo 3.1)을 호출하면, 프로그래밍 방식으로 작업을 생성하고 결과를 파이프라인의 다음 단계로 전달할 수 있습니다 [2, 7, 8]. 이는 단순히 하나의 단일 모델로 모든 작업을 처리하는 대신, 컨셉 도출, 정확한 편집, 텍스트가 많은 디자인 등 각 작업의 특성에 맞춰 여러 이미지 생성 모델(라우트)을 유연하게 비교하고 활용하는 건강한 아키텍처 구축을 가능하게 합니다 [8, 9].
|
||||
- **비동기 상태 관리 (Async State Machine):** 프로덕션 환경의 API 통합에서는 비동기적 생성 과정의 상태 관리가 매우 중요합니다 [2, 5]. 시스템은 단순히 작업을 '완료'나 '오류'로만 분류해서는 안 되며, 생성 실행 중, 기술적 실패, 콘텐츠 필터링 차단, 사용자 검토 대기, 고품질 향상(enhancement) 선택됨, 최종 에셋 준비 완료 등 세분화된 상태를 구별하여 설계해야 합니다 [2, 5].
|
||||
- **디버깅과 자동화를 위한 데이터 모델링:** API 기반 시스템에서는 단순히 최종 결과물의 URL만 저장하는 것이 아니라, 사용된 프롬프트, 참조(References) 이미지, 선택된 시안 후보, 생성 경로 등의 전체 데이터를 저장하는 것이 권장됩니다 [10, 11]. 이를 통해 특정 결과물의 생성 원인을 디버깅할 수 있고, 사용자가 어떤 스타일을 선택하는지 또는 어떤 프롬프트 패턴이 지속적으로 실패하는지 학습하여 향후 자동화를 용이하게 만들 수 있습니다 [10, 11].
|
||||
- **초안 모드(Draft Mode)를 활용한 비용 및 워크플로우 최적화:** 모든 프롬프트가 즉시 완성된 에셋을 도출해야 한다는 가정은 API 환경에서 비용을 높이고 비효율을 초래합니다 [4, 12]. 대신 처리 비용이 저렴한 초안 모드로 여러 구성의 시안을 생성한 뒤, 사용자가 유망한 방향을 선택하면 이를 고품질 결과물로 승격시키는(promote) 루프를 설계하는 것이 매우 중요합니다 [3, 4].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[비동기적 생성 상태 관리 (Async Generation State)]], [[프롬프트 데이터 모델링 (Prompt Data Modeling)]], [[초안 모드 (Draft Mode)]]
|
||||
- **Projects/Contexts:** [[Midjourney V7 API Workflow]], [[Vertex AI Veo 3.1 API Integration]]
|
||||
- **Contradictions/Notes:** API 환경에서 프롬프트에 스타일 참조나 옴니 참조 기능을 적용하더라도 이미지 생성이 완벽하게 결정론적(deterministic)으로 이루어지는 것은 아니므로 프로덕션 팀은 이를 인지하고 워크플로우를 설계해야 합니다 [5]. 또한, 모델의 구성이 훌륭하다고 해서 텍스트 타이포그래피까지 정확하게 생성되는 것은 아니므로 정확한 텍스트가 필요한 경우 별도의 디자인 단계를 계획해야 합니다 [5].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[Agentic Creative Era]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
'에이전틱 크리에이티브(Agentic Creative)' 시대는 인간 창작자가 프롬프트의 모든 세부 문장을 직접 작성하는 대신, 대략적인 비전만 제시하면 AI 에이전트가 이를 최적의 기술적 언어로 자동 번역하여 결과물을 도출해 내는 새로운 창작 패러다임을 의미합니다 [1]. 이 시대에는 인공지능 이미지 생성이 단편적인 이미지 출력에서 벗어나 대량의 시안을 연속적으로 다루는 창작 워크플로우로 전환됩니다 [1, 2]. 결과적으로 창작자의 핵심 역할은 단순한 키워드 나열에서 벗어나, 자신만의 고유한 스타일 코드를 구축하고 AI 에이전트와의 협업 루틴을 정교화하는 방향으로 진화하게 됩니다 [1].
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 생성 패러다임의 진화**: 기존의 프롬프트 작성 방식에서는 사용자가 조명, 카메라 렌즈, 구도 등 기술적·전문적 키워드를 모두 직접 통제하고 입력해야 했습니다 [1, 3, 4]. 하지만 에이전틱 크리에이티브 시대에는 AI 에이전트가 창작자의 추상적이거나 대략적인 지시를 스스로 해석하고, 이를 가장 최적화된 프롬프트와 기술적 언어로 번역하는 역할을 수행하게 됩니다 [1].
|
||||
* **단일 생성에서 연속적 워크플로우로의 전환**: 2026년을 기점으로 이미지 생성 기술은 한 장의 이미지를 만들어내는 단발성 행위를 넘어섰습니다 [2]. 창작자는 AI 에이전트를 통해 수천 개의 아이디어를 즉각적으로 대량의 시안(Draft)으로 시각화할 수 있으며, 이 중에서 최적의 결과물을 선택해 고도화하는 효율적인 작업 방식으로 발전하였습니다 [1, 2].
|
||||
* **개인화(Personalization) 및 고유 스타일 구축**: 인간이 프롬프트를 일일이 작성하는 수고를 덜게 되면서, 오히려 창작자 개인의 독창적인 취향과 미학적 코드를 AI에 학습시키는 것이 중요해졌습니다 [1, 2]. 창작자는 자신만의 스타일 라이브러리(Style Library)를 구축하거나 세계 창작자들의 미적 코드를 활용하여, AI 에이전트가 일관성 있고 고유한 결과물을 낼 수 있도록 지휘해야 합니다 [1, 2].
|
||||
* **AI 에이전트와의 협업 파트너십**: 결국 창작자는 단순한 도구의 사용자를 넘어, 최적의 결과물을 함께 만들어가는 디지털 동료로서 AI 에이전트와의 협업 루틴을 발전시켜야 합니다 [1, 5]. 기술적인 번역과 대량 생산은 AI가 담당하더라도, 최종적으로 자신만의 서사와 스타일 코드를 결정하고 방향성을 제시하는 것은 여전히 인간 창작자의 고유한 영역으로 남습니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 엔지니어링]], [[개인화 및 스타일 참조]]
|
||||
- **Projects/Contexts:** [[미드저니 V7/V8 연속적 창작 워크플로우]]
|
||||
- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,25 @@
|
||||
# [[Brand Consistency Maintenance]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
브랜드 일관성 유지(Brand Consistency Maintenance)는 AI 이미지 생성 시 여러 결과물에 걸쳐 동일한 시각적 정체성, 미학, 캐릭터 및 환경 설정을 유지하는 기법을 의미합니다. 텍스트 프롬프트 내에서 핵심 스타일과 묘사를 통일하거나, 모델이 제공하는 특수 참조 매개변수를 활용하여 시각적 연속성을 보장합니다. 이는 마케팅 캠페인, 제품 라인 시각화, 브랜드 스토리텔링 등에서 신뢰도 높고 통일된 브랜드 이미지를 구축하는 데 필수적입니다.
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 언어의 일관성 유지:**
|
||||
여러 세대(generation)에 걸쳐 시각적 정체성(동일한 캐릭터, 설정, 스타일)을 공유해야 하는 경우, 프롬프트 작성 시 핵심 스타일과 조명 묘사를 프롬프트마다 정확히 똑같이 반복해야 합니다. 사용하는 언어가 일관될수록 출력물의 일관성도 높아집니다 [1].
|
||||
* **브랜드 미학을 위한 키워드 최적화:**
|
||||
구도(composition), 타이포그래피, 색채 이론(color theory) 및 브랜드 미학과 같은 구체적인 디자인 요소를 프롬프트에 직접 명시하면, 훨씬 정교하고 브랜드 정체성에 부합하는(on-brand) 결과를 얻을 수 있습니다 [2].
|
||||
* **참조 매개변수를 활용한 일관성 확보 (미드저니 기준):**
|
||||
미드저니(Midjourney)와 같은 최신 AI 모델들은 일관성을 강제하기 위한 고도의 참조 매개변수를 제공합니다.
|
||||
* **스타일 참조(`--sref`):** 하나의 이미지 스타일이나 무드보드를 여러 생성물에 복제하여 적용합니다. 일관된 브랜드 미학이나 제품 라인 디자인을 유지하는 데 매우 효과적이며, 짧은 텍스트 프롬프트 및 `--ar`(종횡비) 매개변수와 결합하면 깔끔하고 응집력 있는 이미지 세트를 얻을 수 있습니다 [3, 4].
|
||||
* **캐릭터 참조(`--cref`):** 캐릭터의 외형이나 정체성을 잃지 않고 다양한 장면이나 동작으로 묘사할 수 있도록 시각적 일관성을 유지합니다 [3, 4].
|
||||
* **옴니 참조(`--oref`, V7 도입):** 특정 맞춤형 사물(예: 브랜드의 특정 자동차나 주얼리)의 형태적 정체성까지 기억하여, 여러 장면이나 배경에 동일하게 피사체를 재현해냅니다 [3, 4].
|
||||
* **브랜드 안전(Brand-safe) 워크플로우 구성:**
|
||||
일관된 캠페인을 구축할 때는 3~5개의 브랜드에 안전한 참조 이미지를 먼저 수집하고, 단일한 메인 스타일 참조를 사용하여 초기 초안(Drafts)을 생성하는 것이 좋습니다 [5]. 특히 제품의 형태가 명확해야 할 때는 `--stylize` 값을 낮게 설정하고, 과도한 참조 신호가 얽히지 않도록 제어 요소를 전략적으로 제한해야 합니다 [5].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Style Reference]], [[Character Reference]], [[Prompt Structure]]
|
||||
- **Projects/Contexts:** [[마케팅 캠페인 및 제품 라인 시각화]], [[브랜드 에스테틱 구축 워크플로우]]
|
||||
- **Contradictions/Notes:** 소스에 따르면, 시각적 일관성을 높이겠다고 모든 제어 기능과 참조 매개변수를 한 번에 과도하게 섞어 쓰면 오히려 시스템의 예측 가능성이 떨어질 수 있습니다. 좁은 참조 세트로 시작하여 오류가 명확할 때만 제어 요소를 추가하는 것이 권장됩니다 [5].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,25 @@
|
||||
# [[Character Consistency]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
캐릭터 일관성(Character Consistency)은 AI 이미지 및 비디오 생성 시 동일한 인물이나 객체의 외형적 정체성을 여러 생성 결과물에 걸쳐 동일하게 유지하는 기법을 의미합니다[1, 2]. 주로 스토리텔링, 만화 제작, 브랜드 마케팅 등에서 일관된 시각적 서사를 구축할 때 필수적으로 요구됩니다[3-5]. 모델에 따라 특화된 피사체 참조 파라미터(예: `--cref`, `--oref`)를 활용하거나, 프롬프트의 스타일 묘사 및 시드(seed) 번호를 통일하는 방식으로 구현할 수 있습니다[6, 7].
|
||||
|
||||
## 📖 Core Content
|
||||
* **미드저니(Midjourney)의 피사체 참조 기능(cref 및 oref)**
|
||||
미드저니 V6에서는 동일한 피사체의 시각적 정체성을 유지하기 위해 `--cref`(Character Reference) 파라미터가 도입되었습니다[1, 8]. 사용자는 이미지 URL과 함께 캐릭터 참조 강도를 조절하는 `--cw`(Character Weight) 값을 0에서 100 사이로 설정할 수 있습니다[2]. `--cw 0`으로 설정하면 캐릭터의 얼굴에 집중하고, `--cw 100`으로 설정하면 얼굴뿐만 아니라 의상과 머리 모양까지 포함하여 복제합니다[2]. 2026년에 기본 모델이 된 V7에서는 이를 더욱 확장한 `--oref`(Omni Reference) 기능이 도입되었습니다[9, 10]. 옴니 참조는 캐릭터뿐만 아니라 특정 커스텀 자동차나 보석 같은 객체의 형태적 정체성까지 넓은 범위에서 동일하게 유지할 수 있게 해줍니다[9, 11].
|
||||
|
||||
* **프롬프트와 시드(Seed)를 활용한 환경 및 캐릭터 일관성 제어**
|
||||
특정 모델의 참조 기능 외에도, 프롬프트를 작성할 때 핵심적인 스타일과 조명 묘사 등의 언어를 여러 생성에 걸쳐 정확하게 똑같이 반복하면 출력물의 시각적 일관성을 높일 수 있습니다[7]. 또한 동일한 `--seed` 파라미터를 유지 적용하면 샷마다 일관된 프레이밍과 구도를 유지할 수 있으며, 연작 스토리보드나 에피소드 기반의 이미지 생성에서 피사체 및 아키텍처의 연속성을 확보하는 데 매우 유용합니다[6, 12, 13].
|
||||
|
||||
* **DALL-E 3의 캐릭터 일관성 한계와 우회 기법**
|
||||
미드저니와 달리 DALL-E 3는 생성한 캐릭터나 장면을 기억하여 그대로 재사용하는 기능이 없어 스토리텔링을 위한 일관된 다중 이미지 생성이 매우 어렵습니다[14]. 이를 극복하기 위해 사용자들은 하나의 큰 캔버스(장면) 안에 캐릭터를 여러 상황으로 분할하여 묘사하는 우회 기법을 사용합니다[14]. 예를 들어, 프롬프트 내에서 "왼쪽 위 코너", "오른쪽 위 코너"와 같이 위치를 지정하거나 "몽타주(montage)"라는 키워드를 사용하여 한 장의 이미지 안에 동일한 캐릭터의 다양한 모습을 담아낼 수 있습니다[14].
|
||||
|
||||
* **비디오 생성 모델에서의 캐릭터 일관성 유지**
|
||||
구글의 Veo 3.1 비디오 생성 모델의 경우, "Ingredients to video" 기능을 통해 샷 간의 일관성을 유지합니다[5, 15]. Gemini 2.5 Flash Image 등을 활용하여 캐릭터와 배경에 대한 참조 이미지를 생성한 뒤 이를 제공하면, 여러 샷에 걸쳐 일관된 미학과 캐릭터가 유지되는 대화 장면 등의 비디오를 구성할 수 있습니다[5, 15].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Parameters]], [[Seed]], [[Omni Reference]], [[Style Reference]]
|
||||
- **Projects/Contexts:** [[Storytelling and Comic Book Generation]], [[Brand Identity and Marketing Campaigns]]
|
||||
- **Contradictions/Notes:** 미드저니(V6/V7)나 Veo 3.1과 같은 모델들은 `--cref`, `--oref` 또는 "Ingredients to video" 기능을 통해 시스템적으로 연속적인 캐릭터 및 객체 생성을 강력하게 지원합니다[1, 9, 15]. 반면, DALL-E 3는 이러한 재사용 기능이 지원되지 않아 다수의 개별 이미지로 스토리를 구성하기보다는 단일 이미지 내에 몽타주 기법을 써야 하는 등 플랫폼 간 기능적 한계와 접근 방식에 명확한 차이가 존재합니다[14].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,21 @@
|
||||
# [[Character Reference]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Character Reference(캐릭터 참조)는 미드저니(Midjourney) V6 모델에서 도입된 기능으로, 여러 이미지 생성 결과물에서 동일한 캐릭터의 외형을 일관되게 유지하기 위해 사용되는 프롬프트 파라미터이다 [1, 2]. 사용자는 기준이 되는 이미지의 URL을 제공하여 AI가 캐릭터의 얼굴, 머리스타일, 의상 등의 정체성을 기억하고 새 장면에 반영하도록 지시할 수 있다 [2, 3]. 이야기나 코믹 북 제작처럼 매 프레임마다 동일한 인물이 일관된 모습으로 등장해야 하는 시각적 서사 및 브랜드 구축에 필수적인 역할을 수행한다 [3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **기본 문법 및 사용법**: 프롬프트 작성 시 `--cref` 명령어 뒤에 참조하고자 하는 캐릭터의 이미지 URL을 입력하여 사용한다 [2, 5, 6]. 이를 통해 동일한 캐릭터를 다양한 상황과 액션에 맞춰 생성할 수 있다 [2, 5].
|
||||
* *프롬프트 예시*: `adventurer woman reading a map in forest clearing --cref https://example.com/char.jpg --cw 60` [5].
|
||||
* **캐릭터 가중치 조절(--cw)**: 캐릭터 참조의 강도는 `--cw` (Character Weight) 파라미터를 통해 0에서 100 사이의 수치로 세밀하게 제어할 수 있다 [2, 3, 5, 6]. 가중치를 높이면 원본과의 유사성이 커지고, 낮추면 더 많은 변형이 허용된다 [2].
|
||||
* **가중치 수치별 효과**:
|
||||
* `--cw 100`: 캐릭터의 얼굴뿐만 아니라 의상과 머리스타일을 포함한 전체적인 외형적 특징을 모두 엄격하게 유지한다 [6].
|
||||
* `--cw 0`: 캐릭터의 '얼굴'에만 초점을 맞추어 참조하므로, 동일한 인물에게 새로운 의상을 입히거나 완전히 다른 환경에 배치할 때 유용하다 [3, 6].
|
||||
* **핵심 활용 목적**: 주로 연속적인 스토리가 있는 코믹스 작업이나 프레임 간 일관성이 요구되는 프로젝트, 또는 브랜드 특유의 미학적 정체성을 유지해야 하는 캠페인에서 캐릭터를 복제하고 유지하기 위해 활용된다 [3-5].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney Parameters]], [[Style Reference]], [[Omni Reference]]
|
||||
- **Projects/Contexts:** [[일관성 있는 캐릭터 스토리 및 코믹스 제작]], [[브랜드 이미지 및 서사 구축]]
|
||||
- **Contradictions/Notes**: 미드저니 V6는 주로 인물의 시각적 정체성을 유지하기 위해 캐릭터 참조(--cref)를 도입했으나, V7에서는 이 개념을 확장하여 특정 사물(예: 맞춤형 자동차, 보석 등)이나 형태 전반을 유지할 수 있는 옴니 참조(--oref) 기능으로 발전시켰다 [1, 4, 7].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,23 @@
|
||||
# [[ChatGPT 통합 기반 텍스트 투 이미지(Text-to-Image) 생성]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
ChatGPT 통합 기반 텍스트 투 이미지 생성은 사용자의 단순한 자연어 지시를 GPT 언어 모델이 풍부하고 상세한 시각적 묘사로 자동 확장하여 DALL-E 3와 같은 이미지 생성 모델에 전달하는 시스템입니다 [1-3]. 이 통합 환경은 대화형으로 프롬프트를 쉽게 다듬을 수 있어 사용 편의성을 극대화하지만, 때로는 언어 모델의 과도한 텍스트 장식이나 시각적 피드백의 부재로 인해 의도치 않은 결과물을 낼 수 있어 통제 전략이 필요합니다 [4-7].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
* **프롬프트 자동 확장(Auto-Expansion) 메커니즘**
|
||||
ChatGPT Plus 사용자 등에게 통합 제공되는 DALL-E 3의 핵심 차별점은 사용자가 짧고 단순한 프롬프트(예: "미래형 AI 로봇 생성")를 입력하더라도, 이를 GPT의 언어 모델이 분석하여 시각적 세부 묘사, 질감, 구도 등이 포함된 고도로 구체적인 프롬프트로 자동 증강(Augment)한다는 점입니다 [1-3]. 이를 통해 프롬프트 작성에 익숙하지 않은 사용자도 AI가 부담을 덜어주어(heavy lifting) 손쉽게 고품질 이미지를 생성할 수 있습니다 [8, 9].
|
||||
* **상호작용을 통한 반복 개선(Iterative Refinement)**
|
||||
사용자는 ChatGPT와의 매끄러운 자연어 대화를 통해 생성된 이미지를 지속적으로 수정하고 발전시킬 수 있습니다 [4, 5, 10]. 또한, 특정 예술가의 화풍을 모방하고 싶지만 저작권이나 표절 문제가 우려될 때, ChatGPT에게 해당 작가의 스타일(예: "강렬한 색상", "평면적 구도")을 언어적으로 묘사하게 한 뒤 이를 프롬프트에 우회적으로 삽입하는 전략도 활용 가능합니다 [11, 12].
|
||||
* **GPT 개입에 따른 구조적 한계와 오류**
|
||||
이러한 통합 방식에는 기술적인 한계도 존재합니다. 이미지 생성기(DALL-E)는 짧고 정확하며 그래픽 지향적인 언어를 선호하지만, GPT 모델은 입력된 텍스트를 불필요하게 화려하게 장식(embellish)하거나 길게 확장하려는 경향이 있어 두 모델 간의 충돌이 발생합니다 [7, 13-15]. 또한, ChatGPT는 결과 이미지를 직접 시각적으로 분석할 수 없으므로(False Visual Feedback), 텍스트를 넣지 말라는 부정 지시어(Negative Prompt)가 작동하지 않았음에도 문제가 해결되었다고 잘못 답변하는 등 한계를 보입니다 [6, 14].
|
||||
* **제어력 극대화를 위한 대응 프롬프트**
|
||||
언어 모델이 프롬프트를 자의적으로 수정하여 발생하는 오류나 모순(예: "이미지를 생성하라"는 명령 자체를 화폭 안의 붓이나 카메라로 묘사해 버리는 현상)을 방지하려면 사용자의 적극적인 통제가 필요합니다 [6, 14, 16]. 최적의 결과를 얻거나 모델의 순수한 창의성을 테스트하려면, "입력한 프롬프트를 변경하지 말고 그대로 사용할 것(use the prompt unchanged as entered)"이라는 명시적인 지시를 추가하여 GPT의 자동 확장 기능을 차단해야 합니다 [3, 7, 15].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[DALL-E 3]], [[Prompt Expansion (프롬프트 확장)]], [[Negative Prompts (부정 프롬프트)]]
|
||||
- **Projects/Contexts:** [[ChatGPT Plus 통합 환경]]
|
||||
- **Contradictions/Notes:** 소스 [1], [9], [3] 등은 ChatGPT의 자동 프롬프트 확장(Expansion) 기능을 초보자의 편의를 돕고 완성도를 높이는 강력한 장점으로 평가하지만, 소스 [7], [13], [14], [15] 등에서는 GPT의 화려하고 긴 수식어 첨가가 오히려 DALL-E 모델의 본래 작동 방식(간결하고 정밀한 지시 선호)을 방해하여 결과물의 정확도를 떨어뜨리므로 이 기능을 명시적으로 차단해야 한다고 상반된 입장을 주장합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,27 @@
|
||||
# [[Commercial AI Art Production]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
상업적 AI 아트 제작(Commercial AI Art Production)은 생성형 AI 모델(Midjourney, DALL-E 3, Stable Diffusion, Adobe Firefly 등)을 활용하여 광고, 제품 목업, 소셜 미디어 포스트, 로고 및 브랜드 에셋과 같은 상업용 시각 자료를 생성하는 과정이다 [1-3]. 효율적인 상업용 아트 제작을 위해서는 명확한 피사체, 조명, 스타일이 포함된 프롬프트 엔지니어링이 필수적이며 [4, 5], 반복적인 수정과 일관성 유지를 통해 전문적인 품질을 확보해야 한다 [6, 7]. 최근에는 드래프트 모드(Draft Mode) 등 작업 비용과 속도를 최적화하는 파이프라인을 구축하여 상업적 콘텐츠 공급망에 AI를 통합하는 추세이다 [8, 9].
|
||||
|
||||
## 📖 Core Content
|
||||
* **상업적 목적을 위한 프롬프트 구조화**
|
||||
상업용 프롬프트는 피사체(제품이나 인물), 환경, 조명, 스타일을 구체적이고 명확하게 지정해야 한다 [4, 10]. 예를 들어 제품 샷의 경우 "전문적인 제품 사진(professional product photography)", "스튜디오 조명(studio lighting)", "매끄러운 배경(seamless white)"과 같은 명확한 사진 및 조명 용어를 포함하여 상업적 느낌을 강조하는 것이 매우 중요하다 [1, 11-13]. 복잡하고 시적인 묘사보다는 간결하고 명료한 지시가 효과적이다 [14, 15].
|
||||
|
||||
* **플랫폼별 상업적 활용 전략**
|
||||
* **Midjourney:** 고품질의 미학적 제품 목업, 캠페인 무드보드, 라이프스타일 샷 제작에 탁월하다 [11, 16]. `--sref`(스타일 참조)와 `--cref`(캐릭터 참조) 파라미터를 사용해 브랜드나 모델의 시각적 일관성을 유지할 수 있다 [17-19]. 특히 V7에서는 `--draft`(드래프트 모드)를 통해 저비용으로 여러 시안을 빠르게 테스트하고, 사용자가 선택한 시안을 고품질로 변환하는 효율적인 상업용 파이프라인 구축이 가능하다 [8, 9, 20].
|
||||
* **DALL-E 3:** 텍스트 렌더링 능력이 뛰어나고 지시 사항을 정확하게 따르기 때문에 로고 디자인, 인포그래픽, 소셜 미디어 그래픽 등 텍스트 삽입이 필요하거나 구성의 제어가 중요한 상업 콘텐츠 제작에 적합하다 [2, 21, 22].
|
||||
* **Stable Diffusion:** 클라이언트 작업이나 프로덕션 파이프라인에서 일관되고 사용 가능한 대량의 이미지가 필요할 때 유리하다 [7]. 네거티브 프롬프트(Negative Prompt)를 통해 워터마크, 텍스트, 해부학적 오류 등 상업적 결함을 사전에 효과적으로 통제해야 한다 [7, 23].
|
||||
|
||||
* **타이포그래피 및 로고 처리 팁**
|
||||
일부 모델을 제외한 대부분의 인공지능은 텍스트나 브랜드 로고를 길고 정확하게 구현하는 데 여전히 한계가 있다 [24]. 따라서 Midjourney 등에서는 프롬프트에 `--no text`나 `--no logo` 파라미터를 추가하여 가짜 텍스트나 의미 없는 문자가 생성되는 것을 방지하고, 이후 전문적인 디자인 툴에서 실제 타이포그래피나 로고를 합성하는 방식이 권장된다 [11, 24-26].
|
||||
|
||||
* **안전성 및 저작권 준수**
|
||||
상업적 창작물은 SFW(안전한 콘텐츠)를 유지해야 하며, 타인의 지식재산권(IP)을 존중하여 생성해야 한다 [26, 27].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Structure]], [[Negative Prompts]], [[Style Reference]], [[Character Reference]], [[Parameters]]
|
||||
- **Projects/Contexts:** [[E-commerce Product Mockups]], [[Social Media Graphic Design]], [[Brand Identity and Logo Design]]
|
||||
- **Contradictions/Notes:** 소스에 따르면 DALL-E 3는 이미지 내 텍스트 렌더링에 탁월하여 로고나 인포그래픽의 텍스트 표기 작업에 유리하지만 [2, 22], Midjourney 등은 텍스트 생성에 무작위 기호가 나오는 경우가 잦아 `--no text` 파라미터를 사용한 뒤 외부 디자인 툴을 이용해 텍스트를 따로 추가하는 것이 권장된다는 점에서 플랫폼 간 텍스트 처리 방식에 차이가 존재한다 [24, 26, 28].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,19 @@
|
||||
# [[ControlNet]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
컨트롤넷(ControlNet)은 스테이블 디퓨전(Stable Diffusion)과 같은 인공지능 이미지 생성 모델에서 사용되는 고급 제어 기술입니다 [1]. 단순한 텍스트 프롬프트 입력 방식을 넘어서, 이미지의 뼈대(Pose)나 윤곽선(Canny Edge)과 같은 구조적 정보를 모델에 강제로 주입하는 역할을 합니다 [1]. 이를 통해 사용자는 텍스트만으로는 한계가 있는 인체의 자세나 사물의 배치를 픽셀 단위로 정밀하게 통제할 수 있습니다 [1].
|
||||
|
||||
## 📖 Core 소스에 관련 정보가 부족합니다.
|
||||
(제공된 소스 중 컨트롤넷의 상세 가이드를 다룬 문서가 보안 인증 문제로 수집되지 않아 구체적인 정보가 제한적입니다 [2]. 확인 가능한 핵심 정보는 아래와 같습니다.)
|
||||
|
||||
* **정밀한 픽셀 단위 통제**: 컨트롤넷은 텍스트 프롬프트의 한계를 극복하고 시각적 요소(인체의 자세, 사물 배치 등)를 픽셀 단위로 완벽하게 통제할 수 있도록 지원하는 고급 기술입니다 [1].
|
||||
* **구조적 정보 주입**: 모델이 생성 방향을 잡을 수 있도록 포즈(Pose) 데이터나 캐니 엣지(Canny Edge) 기반의 윤곽선 가이드를 강제로 주입하여 원하는 구도와 형태를 유지시킵니다 [1].
|
||||
* **다양한 응용 모델 지원**: 인페인팅(Inpainting), 뎁스(Depth) 제어 등 특정 작업에 특화된 다양한 컨트롤넷 기반 모델(예: BRIA-2.3-ControlNet-Inpainting, Stable-Diffusion-3.5-Large-Controlnet-Depth 등)이 존재하여 창작자의 필요에 맞게 활용됩니다 [3, 4].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Stable Diffusion]], [[프롬프트 가중치 조절(Prompt Weighting)]], [[인페인팅(Inpainting)]]
|
||||
- **Projects/Contexts:** [[스테이블 디퓨전(Stable Diffusion) 기반의 픽셀 단위 구도 및 자세 제어 워크플로우]]
|
||||
- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. 주요 출처인 "ControlNet: A Complete Guide" 문서의 내용이 보안 시스템에 의해 차단되어 상세한 매커니즘이나 사용법에 대한 구체적인 서술이 불가능합니다 [2].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,19 @@
|
||||
# [[DALL-E 3 Natural Language]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
DALL-E 3의 자연어 처리는 복잡한 매개변수나 키워드 나열 대신 완전하고 서술적인 문장을 사용하여 이미지를 생성하는 핵심 메커니즘입니다 [1, 2]. ChatGPT와의 긴밀한 통합을 통해 사용자의 단순한 프롬프트를 상세하고 맥락이 풍부한 문장으로 자동 확장(Augment)해 주는 것이 특징입니다 [3, 4]. 그러나 모델 자체는 시적이고 화려한 수식어보다는 명확하고 정밀하며 간결한 시각 중심적 언어에 가장 최적으로 반응합니다 [5-7].
|
||||
|
||||
## 📖 Core Content
|
||||
* **자연어 및 완전한 문장 활용:** DALL-E 3는 복잡한 구문이나 기술적인 매개변수를 피하고, 대화하듯 자연스러운 언어와 완전한 문장을 사용할 때 가장 좋은 결과를 도출합니다 [1, 2, 8].
|
||||
* **ChatGPT 통합과 프롬프트 자동 확장:** DALL-E 3는 ChatGPT의 언어 모델을 활용하여 사용자의 초기 아이디어를 구조화되고 세밀한 프롬프트로 대신 작성해 줍니다 [3, 4, 9].
|
||||
* **합성 캡션(Synthetic Captions) 훈련:** 모델 훈련 시 이미지의 맥락, 배경 요소, 객체 간의 관계를 매우 상세히 설명하는 합성 캡션을 사용했습니다 [10]. 이로 인해 DALL-E 3는 이전 모델들에 비해 복잡한 자연어 지시사항을 무시하지 않고 훨씬 정확하게 따를 수 있습니다 [11].
|
||||
* **명확성과 간결성의 중요성:** DALL-E 3는 약 256개의 토큰을 효과적으로 처리할 수 있으며, 실제로는 짧고 명확하며 정밀한 지시어에 가장 잘 반응합니다 [6, 7]. 불필요하게 시적이거나 장황한 언어는 결과에 큰 영향을 미치지 못하거나 무시됩니다 [6, 7].
|
||||
* **정밀한 텍스트 렌더링:** 자연어를 사용해 이미지 내에 삽입될 특정 텍스트(예: 표지판, 로고 등)를 정확하게 렌더링하도록 지시할 수 있습니다 [1, 2, 8, 12].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[ChatGPT Integration]], [[Prompt Augmentation]], [[Synthetic Captions]], [[Text Rendering]]
|
||||
- **Projects/Contexts:** [[DALL-E 3 Prompt Optimization]], [[AI Image Generator Comparison]]
|
||||
- **Contradictions/Notes:** 소스 1과 3은 ChatGPT의 언어 모델이 프롬프트를 디테일하게 확장하고 윤색(embellish)해 주는 것을 큰 장점으로 설명하지만 [3, 9], 소스 10과 11은 DALL-E 모델 자체가 짧고 간결한 언어에 더 잘 반응하기 때문에 ChatGPT의 지나친 윤색이 오히려 정확한 제어에 방해가 될 수 있다고 지적합니다. 이로 인해 전문가들은 종종 ChatGPT에게 '프롬프트를 수정하지 말고 그대로 사용할 것'을 명시적으로 지시해야 한다고 조언합니다 [5-7].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[DALL-E 3 Negation Handling]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
DALL-E 3는 "not", "no", "don't", "without"과 같은 부정어(Negation)를 제대로 이해하고 처리하지 못하는 구조적 한계를 지닌다 [1, 2]. 이미지에서 제외하고 싶은 요소를 부정어로 지시하면 오히려 해당 단어가 인식되어 원치 않는 요소가 이미지에 포함되는 역효과가 발생한다 [3, 4]. 따라서 DALL-E 3에서 프롬프트를 작성할 때에는 피해야 할 것을 명시하기보다, 화면에 나타나길 원하는 긍정적인 속성만을 구체적으로 묘사하는 접근 방식이 필수적이다 [1, 2].
|
||||
|
||||
## 📖 Core Content
|
||||
* **부정어 처리의 한계 메커니즘**: DALL-E 3는 프롬프트에 입력된 단어들을 대부분 텍스트 그대로 이미지로 구현하려 시도한다 [1]. 그 결과, 부정어("not", "no", "don't", "without")가 동반되더라도 그 뒤에 명시된 대상 객체를 논리적으로 배제하지 못하고 생성 결과물에 포함시켜 버린다 [1, 2].
|
||||
* **역효과(Backfire)의 발생**: 원치 않는 요소를 언급하는 것 자체가 모델에게 해당 요소를 생성하라는 단서로 작용한다. 예를 들어 "텍스트를 추가하지 말 것(don't add any text)"이라고 지시하면, 오히려 이미지에 의미 없는 텍스트가 더 많이 삽입되는 현상이 발생한다 [3]. 마찬가지로 "물고기가 없는 문어 사진"을 요청하면 AI가 이를 오인하여 결과물에 물고기를 포함시킬 가능성이 높다 [4].
|
||||
* **프롬프트 우회 전략 (긍정적 묘사 활용)**: DALL-E 3의 부정어 처리 한계를 극복하기 위해서는 원하지 않는 것을 제거하려 애쓰는 대신, 사용자가 원하는 긍정적인 속성(positive properties)만을 직접적이고 명확한 언어로 묘사해야 한다 [1, 2].
|
||||
* **ChatGPT 시스템의 한계**: DALL-E 3 프롬프트를 보조하는 ChatGPT는 생성된 결과 이미지를 시각적으로 직접 확인하거나 분석할 수 없다(False Visual Feedback) [5]. 따라서 사용자가 "텍스트를 제외해 달라"고 요청할 경우, ChatGPT는 조건이 충족된 것처럼 응답할 수 있으나 실제 생성된 이미지에는 부정어 처리 실패로 인해 텍스트가 여전히 남아있을 확률이 높다 [5].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Negative Prompt]], [[Positive Prompting]], [[Prompt Structure]]
|
||||
- **Projects/Contexts:** [[DALL-E 3 Prompt Engineering]], [[ChatGPT Integration]]
|
||||
- **Contradictions/Notes:** Stable Diffusion과 같은 모델은 별도의 네거티브 프롬프트(Negative Prompt) 기능을 명시적으로 제공하여 원하지 않는 시각적 요소(예: 손가락 변형, 워터마크 등)를 생성 단계에서 효과적으로 차단할 수 있는 반면 [6-8], DALL-E 3는 별도의 매개변수 없이 자연어 기반 긍정적 묘사에만 전적으로 의존해야 한다는 기능적 차이가 존재한다 [1, 4].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,17 @@
|
||||
# [[DALL-E 3 Synthetic Captioning]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
DALL-E 3의 합성 캡션(Synthetic Captioning)은 생성형 모델의 프롬프트 정확도를 크게 향상시키기 위해 이미지 훈련 과정에서 사용되는 고도로 세밀한 텍스트 설명입니다 [1]. 이 기술은 이미지의 주요 피사체뿐만 아니라 배경, 객체 간의 관계 및 맥락까지 구체적으로 묘사합니다 [1, 2]. 결과적으로 사용자가 복잡하고 섬세한 프롬프트를 입력하더라도 의도에 정확하게 부합하는 시각적 결과물을 생성할 수 있게 해줍니다 [2, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
- **합성 캡션의 도입 및 작동 원리:** 기존 이미지 생성 모델의 가장 큰 한계 중 하나는 사용자의 프롬프트를 완벽하게 반영하지 못한다는 점이었습니다 [1]. DALL-E 3는 훈련 과정에서 '합성 캡션'을 사용하여 이 문제를 극복했습니다 [1]. 이 캡션은 배경 요소와 객체의 상호작용까지 포함하는 매우 서술적인 데이터로 구성되어 있어, 모델이 복잡한 지시의 뉘앙스를 완벽히 시각화하도록 돕습니다 [1, 2].
|
||||
- **프롬프트 정확도(Prompt Following)의 획기적 개선:** 고도화된 합성 캡션 훈련을 통해 DALL-E 3는 DALL-E 2나 Stable Diffusion XL과 같은 이전 모델들에 비해 지시 사항을 훨씬 더 밀접하게 따릅니다 [4]. 이전 모델은 텍스트의 세부 사항이나 배경의 배치를 생략하기 쉬웠지만, DALL-E 3는 목재의 질감이나 조명 등 맥락적 세부 사항까지 풍부하게 구현해냅니다 [5]. 프롬프트 준수 정확도 평가에서도 이전 모델을 크게 능가하는 성과를 달성했습니다 [6].
|
||||
- **프롬프트 작성 방식(Prompting) 패러다임의 변화:** DALL-E 3는 복잡한 매개변수나 구문 대신 대화형의 자연어(Natural Language) 문장으로 프롬프트를 작성하는 것에 최적화되어 있습니다 [7]. 특히 ChatGPT와의 강력한 통합을 통해, 사용자가 단순한 아이디어를 입력하면 언어 모델이 이를 세부적인 질감과 형태가 포함된 매우 상세한 프롬프트로 자동 증강(Augment)하여 생성 결과를 최적화합니다 [8, 9].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 정확도(Prompt Following)]], [[자연어 프롬프팅(Natural Language Prompting)]]
|
||||
- **Projects/Contexts:** [[ChatGPT 통합 프롬프트 증강(ChatGPT Prompt Augmentation)]]
|
||||
- **Contradictions/Notes:** DALL-E 3의 합성 캡션은 상세한 묘사를 처리하는 데 강력하지만, ChatGPT가 때로는 사용자의 짧고 명확한 프롬프트를 불필요하게 장황하고 시적으로 임의 확장(embellish)시키는 부작용이 있어, 정밀한 그래픽 제어가 필요할 경우에는 프롬프트를 절대 변경하지 말라는 명시적 지시("use the prompt unchanged as entered")를 더해야 할 수 있습니다 [10-12].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[DALL-E 3와 GPT-4의 상호작용적 생성]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
DALL-E 3는 ChatGPT(GPT-4)와 기본적으로 통합되어 있어, 사용자가 입력한 단순하고 짧은 자연어 프롬프트를 언어 모델이 훨씬 더 상세하고 시각적으로 풍부한 묘사로 자동 확장(Augmentation/Expansion)하여 이미지를 생성하는 것이 특징입니다 [1-3]. 이러한 상호작용은 사용자의 프롬프트 작성 부담을 크게 줄여주지만, 때로는 GPT 모델의 과도한 윤색으로 인해 정밀한 시각적 제어가 방해받을 수도 있습니다 [3-5].
|
||||
|
||||
## 📖 Core Content
|
||||
* **자연어 의도의 자동 확장(Expansion):** DALL-E 3의 핵심적인 차별점은 ChatGPT 언어 모델과의 매끄러운 통합에 있습니다 [1, 6, 7]. 사용자가 "미래형 AI 로봇의 이미지를 만들어줘"와 같이 간단한 프롬프트를 입력하면, GPT 모델이 이를 인식하고 표면 질감, 조명, 구도, 주변 환경 등을 세밀하게 묘사하는 길고 구체적인 프롬프트로 자동 변환하여 최종 이미지 생성에 사용합니다 [1-3].
|
||||
* **대화형 반복 수정의 이점:** 이 상호작용 덕분에 프롬프트 작성에 수반되는 무거운 작업(heavy lifting)을 AI가 대신 수행하며, 사용자는 대화형 인터페이스를 통해 자연어로 직관적이고 반복적인 수정(Iterative refinement)을 진행할 수 있습니다 [7-9].
|
||||
* **상호작용적 생성의 한계와 충돌:** DALL-E 3와 GPT-4의 결합이 항상 완벽한 시너지를 내는 것은 아닙니다. DALL-E 자체는 명확하고 간결하며 기하학적인 그래픽 묘사에 더 잘 작동하는 반면, GPT는 프롬프트를 무의미한 수식어로 문학적이고 장황하게 포장하려는 경향이 있어 두 모델 간의 충돌이 발생합니다 [4, 5]. 또한, GPT는 생성된 이미지를 직접 볼 수 없는 시각적 피드백의 부재로 인해 "텍스트를 넣지 말 것" 등의 부정 지시(Negation)나 조건문을 DALL-E에 잘못 전달하거나 무시하게 만드는 한계를 보입니다 [5, 10].
|
||||
* **제어력 극대화를 위한 프롬프트 전략:** GPT의 자동 확장으로 인해 원래 의도가 왜곡되거나 원치 않는 요소가 추가되는 것을 막기 위해, 전문가들은 프롬프트 작성 시 "프롬프트를 변경하거나 확장하지 말고 입력한 그대로 사용할 것(Use the prompt unchanged as entered)"이라는 명시적인 지시를 추가하여 GPT의 개입을 차단하는 방법을 권장하고 있습니다 [3, 4, 11].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 자동 확장(Prompt Expansion)]], [[자연어 처리(NLP)]], [[부정 프롬프트(Negative Prompt)]]
|
||||
- **Projects/Contexts:** [[ChatGPT 통합 환경에서의 이미지 생성]]
|
||||
- **Contradictions/Notes:** 소스 [1], [9]는 DALL-E 3와 GPT의 통합이 언어 모델을 통한 프롬프트 자동 개선을 제공하여 사용성을 극대화한다고 긍정적으로 평가하지만, 소스 [4], [5], [3]은 GPT의 과도한 윤색이 오히려 DALL-E의 정밀한 그래픽 제어를 방해하고 의도를 왜곡할 수 있어 주의와 통제가 필요하다고 상반된 관점의 한계를 지적합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[DALL-E 3의 자연어 기반 최적화]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
DALL-E 3의 자연어 기반 최적화는 ChatGPT(GPT-4)와의 기본 통합을 통해 사용자의 짧고 단순한 프롬프트를 상세하고 풍부한 시각적 묘사로 자동 확장(Auto-Expansion)하는 메커니즘을 의미합니다 [1-3]. 기술적인 매개변수나 단순 키워드의 나열보다는 자연스러운 완전한 문장(Natural language)을 사용할 때 가장 효과적으로 작동합니다 [4, 5]. 특히 훈련 과정에서 세밀한 '합성 캡션(Synthetic Captions)'을 사용하여 복잡한 지시사항에 대한 언어적 이해도와 시각적 구현의 정확성을 크게 높였습니다 [6, 7].
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 자동 확장(Prompt Expansion):** DALL-E 3는 ChatGPT 모델의 언어 능력을 활용하여 프롬프트 작성의 무거운 작업(heavy lifting)을 대신 수행합니다 [8, 9]. 사용자가 "미래의 AI 로봇"과 같이 단순한 텍스트만 입력하더라도, GPT 모델이 이를 인식하여 로봇의 형태, 질감, 기술적 특징, 배경, 조명 등 구체적인 세부 사항이 포함된 정교한 문단으로 프롬프트를 증강시킵니다 [2, 3].
|
||||
* **자연어 문장 선호:** 타 모델(스테이블 디퓨전 등)들이 쉼표로 구분된 태그나 복잡한 기술적 매개변수를 요구하는 것과 달리, DALL-E 3는 자연스러운 완전한 문장 형태로 묘사할 때 훨씬 더 나은 결과를 생성합니다 [4, 5].
|
||||
* **합성 캡션(Synthetic Captions)을 통한 정확도 향상:** DALL-E 3는 이미지의 주요 피사체뿐만 아니라 배경 요소 및 객체 간의 관계와 같은 맥락을 깊이 있게 서술하는 합성 캡션 데이터로 훈련되었습니다 [6, 7]. 이를 통해 이전 모델들(DALL-E 2 등)이 세부 사항을 누락하던 한계를 극복하고, 복잡하고 까다로운 텍스트 지시사항을 정확하게 따라 시각화할 수 있습니다 [10, 11].
|
||||
* **제어의 한계 극복 및 부정 지시어 회피:** 자동 확장 기능은 편리하지만, 때로는 GPT 특유의 장황하게 수식된(embellished) 문장 확장이 간결하고 정밀한 묘사를 요구하는 DALL-E의 특성과 충돌하거나 사용자의 창의적 제어를 제한할 수 있습니다 [3, 12, 13]. 이를 방지하려면 "프롬프트를 변경하지 말고 그대로 사용할 것(Use the prompt unchanged as entered)"이라는 명시적인 제어 지시를 추가해야 합니다 [3, 13, 14]. 또한 DALL-E 3는 "no", "without" 등 금지나 부정을 뜻하는 단어를 잘 이해하지 못하고 오히려 해당 요소를 생성해버릴 수 있으므로, 원치 않는 것을 배제하기보다는 원하는 특성을 긍정형 문장으로 명확히 묘사하여 최적화해야 합니다 [3, 15, 16].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 자동 확장(Prompt Expansion)]], [[합성 캡션(Synthetic Captions)]], [[부정 프롬프트(Negative Prompt)]]
|
||||
- **Projects/Contexts:** [[ChatGPT 내장 이미지 생성 워크플로우]], [[정확한 텍스트 렌더링 및 복합 객체 배치]]
|
||||
- **Contradictions/Notes:** 소스에 따르면, GPT를 통한 프롬프트 자동 확장은 사용자의 입력을 풍성하게 만들어주는 장점이 있지만, 동시에 과도하게 장황한 문장(rambling)을 생성하여 오히려 DALL-E가 요구하는 정확하고 간결한 시각적 묘사를 방해하는 모순적인 상황을 초래하기도 합니다. 정밀한 제어가 필요한 경우 사용자는 GPT가 프롬프트를 자의적으로 수정하지 못하도록 강제해야 합니다 [12, 13].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,27 @@
|
||||
# [[Image Inpainting (Vary Region)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney의 'Vary Region(인페인팅)' 기능은 생성된 이미지의 전체적인 맥락과 구도를 유지하면서 특정 영역만 선택하여 수정하거나 새로운 요소를 추가할 수 있게 해주는 강력한 사후 편집 도구이다 [1, 2]. 주로 이미지를 업스케일링한 후 사용하며, 작은 실수를 수정하거나 원하는 디테일을 정밀하게 변경할 때 유용하다 [2, 3]. 리믹스(Remix) 모드와 결합하여 선택된 영역에 대해 새로운 텍스트 프롬프트를 지정함으로써 이미지의 완성도와 통제력을 극대화할 수 있다 [4, 5].
|
||||
|
||||
## 📖 Core Content
|
||||
* **작동 방식 및 기본 설정**
|
||||
* 업스케일링(Upscale)된 이미지에서 'Vary (Region)' 버튼을 클릭하여 편집기를 연다 [6, 7].
|
||||
* 편집기 내의 사각형(Rectangle)이나 올가미(Freehand) 도구를 사용하여 수정하고 싶은 영역을 지정한다 [6, 7]. 웹 편집기(Editor) 인터페이스에서는 이를 '지우기(Erase)' 도구라고 부르기도 한다 [4, 8].
|
||||
* 디스코드 설정에서 '리믹스(Remix) 모드'가 활성화되어 있어야 선택 영역에 대한 새로운 프롬프트를 편집할 수 있다 [4]. 프롬프트를 수정한 뒤 제출하면 원본 이미지의 시각적 정보와 새로운 프롬프트의 지시를 결합하여 해당 부분만 재현해 낸다 [5, 6, 9].
|
||||
* **선택 영역 크기와 여백의 중요성**
|
||||
* 선택 영역의 크기는 AI가 결과물을 도출하는 데 결정적인 영향을 미친다. 영역을 넓게 잡을수록 AI가 새로운 창의적 디테일을 생성할 수 있는 문맥(Context)과 공간이 늘어나지만, 기존에 유지하고 싶었던 원본 이미지의 부분까지 섞이거나 대체될 위험이 있다 [7, 10].
|
||||
* 반대로 선택 영역이 너무 작으면 AI가 주변 이미지와의 연결성을 파악하기 어려워져 미세하고 미묘한 변화만 발생할 수 있다 [5, 7]. 따라서 대상 주변의 여백을 충분히 포함하여 넉넉하게 선택하는 것이 핵심적인 기술적 노하우이다 [5].
|
||||
* **Vary Region에 최적화된 프롬프트 작성 팁**
|
||||
* 전체 장면을 서술하는 대신, **변경하고자 하는 세부 사항에만 집중하여 짧고 직관적인 프롬프트**를 작성하는 것이 가장 효과적이다 [10]. 예를 들어, "초원 오솔길을 아름다운 시냇물로 바꿔주세요"라고 길게 설명하는 것보다 "초원 시냇물(meadow stream)"이라고 간결하게 지시하는 것이 더 나은 결과를 낳는다 [10].
|
||||
* 이미지 내 여러 부분을 수정하고 싶을 때는 한 번에 모두 바꾸려 하지 말고, 각 영역에 맞는 구체적인 프롬프트를 사용할 수 있도록 **한 번에 한 구역씩 단계별로 작업**하는 것이 권장된다 [10].
|
||||
* **활용 사례 및 파라미터 호환성**
|
||||
* 이 도구는 인물의 모자를 왕관으로 바꾸기, 제품 패키지 라인업의 색상 변형 테스트, 인물 사진의 립스틱 색상이나 눈 화장 미세 조정, 불필요한 아티팩트 제거 등 매우 다양한 작업에 활용된다 [3, 5, 11-13].
|
||||
* 프롬프트 수정 시 `chaos`, `image weight`, `no`, `stylize`, `style`, `version`, `video`, `weird` 등 Midjourney의 다양한 제어 파라미터(Parameter)를 함께 사용하여 출력물을 세밀하게 통제할 수 있다 [14].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Remix Mode]], [[Image Upscaling]], [[Midjourney Parameters]]
|
||||
- **Projects/Contexts:** [[미드저니(Midjourney)를 활용한 이미지 수정 및 사후 편집 워크플로우]]
|
||||
- **Contradictions/Notes:** 선택 영역의 크기 조절에 있어 딜레마가 존재한다. 영역을 넓게 선택하면 AI가 창의력을 발휘할 공간을 얻지만 유지해야 할 원본이 훼손될 위험이 있고, 너무 좁게 선택하면 AI가 주변 맥락을 잃고 변화를 거의 만들어내지 못할 수 있으므로 상황에 맞는 '적절한 여백'을 찾는 것이 중요하다 [5, 7, 10].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,29 @@
|
||||
# [[Image Parameters]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
이미지 매개변수(Image Parameters)는 AI 이미지 생성 모델에서 결과물을 정밀하게 제어하기 위해 텍스트 프롬프트에 추가하는 특수한 명령어 또는 수치적 변수이다 [1-3]. 이는 이미지의 종횡비, 예술적 스타일의 적용 강도, 무작위성(Chaos), 그리고 특정 단어나 개념의 가중치 등을 세밀하게 조정하는 역할을 수행한다 [1, 4, 5]. 생성형 AI 사용자는 이러한 매개변수를 활용하여 단순한 묘사를 넘어 모델의 렌더링 과정 전반을 자신만의 의도대로 통제할 수 있다 [2, 3, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
**Midjourney의 매개변수 문법과 구조**
|
||||
* Midjourney에서 매개변수는 항상 텍스트 프롬프트의 맨 마지막에 위치해야 하며, 이중 하이픈(`--`)으로 시작한다 [2, 3].
|
||||
* 프롬프트 텍스트와 하이픈 사이에는 공백을 두어야 하지만, 하이픈 사이에는 공백이 없어야 하며 쉼표나 마침표 같은 문장 부호를 포함해서는 안 된다 [7].
|
||||
|
||||
**Midjourney 주요 매개변수 (V6 & V7 기준)**
|
||||
* **비율 및 버전 제어**: `--ar` (Aspect Ratio)는 이미지의 종횡비를 설정하며, 기본값인 1:1 외에도 16:9, 3:2 등으로 변경할 수 있다 [1, 3, 5, 8]. `--v` (Version)는 생성에 사용할 모델 버전을 지정하며, 현재는 `--v 7`이 기본값이다 [3, 9-11].
|
||||
* **스타일 및 렌더링 제어**: `--stylize` (또는 `--s`)는 0에서 1000 사이의 값으로 Midjourney 특유의 예술적 스타일 강도를 조절하며, 값이 낮을수록 텍스트 지시에 더 충실하고 높을수록 예술성이 강해진다 [1, 3, 12]. `--quality` (또는 `--q`)는 렌더링 시간과 디테일을 제어한다 [3, 10, 13]. `--style raw`를 사용하면 자동화된 미적 보정을 줄여 더 사실적이고 사진 같은 결과물을 얻을 수 있다 [3, 10, 14].
|
||||
* **다양성 및 속도 제어**: `--chaos` (또는 `--c`)는 0에서 100 사이의 값으로 초기 이미지 그리드의 무작위성과 다양성을 증가시킨다 [3, 10, 15]. `--draft`는 V7에서 지원되는 기능으로, GPU 사용량을 줄여 훨씬 빠른 속도로 초기 시안을 생성할 때 쓰인다 [8-10].
|
||||
* **참조 및 일관성 제어**: 특정 이미지나 스타일을 참조할 때 다양한 매개변수가 쓰인다. `--iw`는 텍스트 대비 이미지 프롬프트의 가중치를 설정한다 [3, 10, 15]. `--cref`는 캐릭터의 일관성을 유지하고, `--sref`는 색감이나 무드보드 등의 스타일을 복제한다 [3, 10, 12, 16, 17]. V7에 도입된 `--oref` (Omni Reference)는 캐릭터뿐만 아니라 사물의 형태적 일관성까지 유지할 수 있다 [9, 10, 18].
|
||||
* **제외 기능**: `--no`는 부정 프롬프트 매개변수로, 이미지에서 제외하고 싶은 요소를 명시할 때 사용된다 [10, 15, 19].
|
||||
|
||||
**Stable Diffusion의 가중치 및 제어 매개변수**
|
||||
* **프롬프트 가중치 (Prompt Weighting)**: 특정 단어나 구문의 중요도를 높이거나 줄이는 데 사용된다. 기본 가중치는 1이며, 괄호 `()`와 함께 `+` 기호나 1.1~2 사이의 숫자를 결합해 강조하거나(예: `(dog:1.1)` 또는 `(dog)+`), `-` 기호나 0~0.9 사이의 숫자로 비중을 줄일 수 있다 [4, 20, 21].
|
||||
* **제어 스케일**: CFG Scale(Classifier-Free Guidance Scale) 변수는 모델이 사용자의 긍정 및 부정 프롬프트 조건을 얼마나 강력하게 따를지 그 지침의 강도를 결정한다 [22, 23]. 또한, Sampling steps 매개변수를 조정하여 이미지 생성 과정의 변동성과 디테일 형성을 제어할 수 있다 [23].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Weighting]], [[Negative Prompts]], [[Style Reference]], [[Aspect Ratio]], [[Model Versions]]
|
||||
- **Projects/Contexts:** [[Midjourney V7]], [[Stable Diffusion]]
|
||||
- **Contradictions/Notes:** 플랫폼마다 매개변수를 적용하는 문법과 방식에 근본적인 차이가 존재한다. Midjourney는 프롬프트의 가장 끝에 이중 하이픈(`--`)을 붙여 전역적인 이미지 속성을 제어하는 반면, Stable Diffusion은 텍스트 내부에서 괄호 `()`나 대괄호 `[]` 등을 이용해 개별 토큰(단어)에 직접 가중치를 부여하거나 제외하는 방식을 취한다 [3, 7, 20].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,26 @@
|
||||
# [[Inpainting & Outpainting]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Inpainting(인페인팅)은 이미지의 전체를 변경하지 않고 특정 영역만을 선택해 수정하거나 새로운 요소를 추가하는 기법입니다 [1, 2]. 반면 Outpainting(아웃페인팅)은 원본 이미지의 경계를 넘어 캔버스를 확장하여 새로운 배경이나 맥락을 자연스럽게 추가하는 기능입니다 [3, 4]. 이 두 기법은 초기 생성된 AI 이미지를 바탕으로 프롬프트를 조정하며 결과물을 점진적으로 정교화하는 사후 편집 과정에서 필수적으로 활용됩니다 [2, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
* **인페인팅 (Inpainting / Vary Region)**
|
||||
* **개념 및 활용 목적**: 이미지의 나머지 부분은 그대로 유지한 채 작은 실수를 수정하거나, 새로운 요소를 추가하거나, 배경을 교체하는 등 세부적인 변형을 가할 때 사용됩니다 [1, 4]. DALL-E, Adobe Firefly, Midjourney 등 주요 AI 생성 도구에서 지원합니다 [1, 4, 5].
|
||||
* **프롬프트 작성 방식 (미드저니 기준)**: 미드저니의 'Vary (Region)' 기능을 리믹스(Remix) 모드와 함께 사용하면, 선택한 특정 영역에 대해서만 새로운 프롬프트를 입력하여 정교한 합성을 진행할 수 있습니다 [2, 6]. 이 때 모델이 기존 이미지의 맥락을 고려하므로, "초원 오솔길을 아름다운 시냇물로 바꿔주세요"와 같이 서술형으로 길게 쓰는 것보다 "초원의 시냇물(meadow stream)"처럼 짧고 직접적인 프롬프트를 사용하는 것이 가장 효과적입니다 [7].
|
||||
* **기술적 노하우**:
|
||||
* **선택 영역의 크기**: 선택 영역이 너무 작으면 AI가 주변 환경과의 연결성을 파악하기 어려워 결과물이 어색해질 수 있으므로, 수정할 대상 주변의 여백을 충분히 포함하여 선택하는 것이 중요합니다 [2, 8]. 그러나 너무 넓은 영역을 선택하면 원본에서 유지하고 싶었던 부분까지 새로운 요소로 대체되거나 섞일 위험이 있습니다 [7].
|
||||
* **단계적 접근**: 여러 부분을 수정하고 싶다면 한 번에 모두 선택하지 말고, 한 영역씩 집중해서 짧은 프롬프트를 적용하는 작은 단계로 작업하는 것이 권장됩니다 [7].
|
||||
|
||||
* **아웃페인팅 (Outpainting / Zoom Out, Pan)**
|
||||
* **개념 및 활용 목적**: 생성된 이미지가 너무 근접 촬영되었거나 구도가 답답하게 느껴질 때, 원본 이미지의 경계를 넘어 시야를 넓히고 캔버스를 확장하는 기능입니다 [2, 4].
|
||||
* **플랫폼별 제어 방식**: 미드저니의 'Zoom Out' 기능은 이미지의 네 방향 모두로 요소와 맥락을 추가하며, 'Pan' 기능은 특정 방향으로만 캔버스를 넓히고 종횡비를 변경할 수 있도록 지원합니다 [3].
|
||||
* **결과물의 특징**: AI는 기존 이미지의 화풍(Style)과 조명(Lighting) 상태를 일관되게 유지하면서 캔버스 밖의 풍경을 논리적으로 확장합니다 [2]. 2026년의 최신 도구들은 단순히 여백의 배경을 채우는 수준을 넘어, 확장된 공간에 원래 보이지 않던 건물의 전체 모습이나 거리의 행인들과 같은 새로운 서사적 요소를 자연스럽게 배치하는 능력을 보여줍니다 [2].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 엔지니어링(Prompt Engineering)]], [[Midjourney 매개변수(Parameters)]], [[반복적 정교화(Iterative Refinement)]]
|
||||
- **Projects/Contexts:** [[AI 이미지 사후 편집(Post-processing)]], [[이미지 정교화 워크플로우(Image Refinement Workflow)]]
|
||||
- **Contradictions/Notes:** 소스 간 모순점은 발견되지 않았습니다. 다만 플랫폼에 따라 동일한 기능을 지칭하는 용어(예: Midjourney는 'Vary Region', 'Pan', 'Zoom Out'으로 부르고, Adobe Firefly 등은 범용적으로 'Inpainting', 'Outpainting'으로 지칭함)에 차이가 있으나, 결과적으로 초기 생성 이미지를 정교화하고 확장하는 동일한 목적의 워크플로우임을 공통으로 설명하고 있습니다 [2-4].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,26 @@
|
||||
# [[Iterative Prompting]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Iterative Prompting(반복적 프롬프팅)은 완벽한 프롬프트를 한 번에 작성하는 대신, 단순하고 명확한 프롬프트로 시작하여 생성된 결과를 바탕으로 점진적으로 세부 사항을 수정해 나가는 기법이다 [1, 2]. 이는 단순한 지시어의 입력이 아니라 AI 모델과의 대화나 스케치 밑그림을 그리는 것과 같은 반복적인 협업 과정으로 간주된다 [1, 3, 4]. 창작자는 이 과정을 통해 조명, 구도, 스타일 등의 요소를 하나씩 변경하며 자신이 의도한 최종 시각적 결과물에 도달하게 된다 [1, 5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
* **반복적 창작의 원리**
|
||||
AI를 통한 이미지 생성은 단발성 행위가 아니라, 매우 짧은 시간으로 압축된 전통적인 미술 창작과 유사한 반복적 과정이다 [4, 7]. 일반적으로 첫 번째 프롬프트가 사용자의 의도를 약 80% 정도 달성하게 해주며, 이후의 반복을 통해 나머지 세부 사항을 다듬어 나가게 된다 [2]. 원하는 최종 결과물을 얻기 위해 보통 3~5번의 변형(variation) 이미지를 생성하는 것이 정상적이고 필수적인 과정으로 권장된다 [2, 5].
|
||||
|
||||
* **단계별 실행 워크플로우**
|
||||
1. **단순한 시작**: 명확하지만 단순한 2~3문장의 기본 프롬프트나 다소 열려 있는 지시로 시작하여, AI의 초기 해석과 창의적 방향성을 확인한다 [1, 2, 8].
|
||||
2. **결과 평가 및 결함 식별**: 생성된 결과물을 주의 깊게 검토하여 개선이 필요한 영역이나 반복적으로 나타나는 결함(defect)을 파악한다 [9-11].
|
||||
3. **단계적 요소 수정**: 한 번에 조명, 구도, 스타일, 카메라 각도 등 단일 요소를 변경해가며 프롬프트를 수정하고 다시 생성하여, 해당 변화가 결과에 미치는 영향을 파악한다 [1, 5, 6].
|
||||
4. **정교화 및 최적화**: 원치 않는 시각적 요소가 발생할 경우 이를 제거하기 위한 타겟화된 네거티브 프롬프트를 작성하거나, 더 상세한 지시를 추가하여 모델의 이해도를 높이고 불필요한 부분을 쳐낸다 [10-12].
|
||||
|
||||
* **플랫폼별 반복 활용 특징**
|
||||
* **DALL-E 3**: ChatGPT의 언어 모델과 원활하게 통합되어 있어, 챗봇과의 대화형 상호작용을 통해 프롬프트를 반복적으로 개선(iterative refinement)하기에 매우 적합하다 [13].
|
||||
* **전문 도구 (Midjourney, Stable Diffusion 등)**: 초기 생성 결과물을 베이스 이미지(Base Image)로 삼고, 이를 영역 변주(Vary Region)와 같은 인페인팅 도구나 시야 확장(Zoom Out) 등의 아웃페인팅 도구와 결합하여 점진적으로 수정해 나가는 전략이 프롬프트 엔지니어의 핵심 역량으로 꼽힌다 [4, 12].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** `[[Negative Prompts]]`, `[[Inpainting]]`, `[[Prompt Structure]]`
|
||||
- **Projects/Contexts:** `[[AI Image Generation Workflow]]`
|
||||
- **Contradictions/Notes:** 소스들은 공통적으로 처음부터 완벽하고 기술적인 긴 프롬프트를 작성하려는 시도를 피하고, 대신 단순하게 시작하여 의도적인 반복(iterate deliberately) 과정을 통해 다음 프롬프트를 작성하는 법을 배우라고 강조한다 [1, 14].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,28 @@
|
||||
# [[Lighting and Composition]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
조명(Lighting)과 구도(Composition)는 AI 이미지 생성 시 시각적 결과물의 분위기, 깊이, 그리고 초점을 결정하는 핵심 프롬프트 요소입니다 [1, 2]. 프롬프트에 조명을 구체적으로 명시하지 않을 경우, AI는 피사체를 균일하게 비추는 밋밋하고 평범한 기본 조명을 임의로 적용하여 이미지의 입체감과 감정을 저하시킵니다 [3, 4]. 이 두 요소를 렌즈의 특성, 카메라의 각도, 광원의 방향 등과 함께 명확히 지정함으로써 사용자는 밋밋한 결과물을 피하고 훨씬 사실적이고 서사적인 이미지를 연출할 수 있습니다 [5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
* **조명(Lighting)의 역할과 세부 키워드**
|
||||
조명은 이미지의 감정적 톤을 설정하고 질감을 부각하는 역할을 합니다. 조명을 명확히 설정하지 않으면 이미지가 실제처럼 느껴지지 않고 생동감이 떨어집니다 [4].
|
||||
* **자연광(Natural Light):** '골든 아워(Golden hour)', '블루 아워(Blue hour)' 등의 키워드는 따뜻하거나 서늘한 시간대별 분위기와 향수를 자아냅니다 [7-9].
|
||||
* **인공조명 및 방향성 광원:** '소프트 박스(Softbox)', '네온(Neon)', '스튜디오 조명(Studio lighting)' 등은 통제되고 깨끗한 광원을 제공하며, '측면광(Side light)'이나 '백라이팅(Backlighting)'은 피사체의 실루엣과 깊이감을 강조합니다 [7, 9, 10].
|
||||
* **특수 조명 효과:** 극적인 명암 대비를 연출하는 '키아로스쿠로(Chiaroscuro)', 안개나 먼지를 통과하는 빛의 줄기를 표현하는 '볼륨메트릭 라이팅(Volumetric lighting)', 피사체의 외곽선을 빛으로 분리하는 '림 라이팅(Rim lighting)' 등이 전문가급 연출에 주로 사용됩니다 [5, 8, 9].
|
||||
|
||||
* **구도(Composition) 및 카메라 렌즈 설정**
|
||||
카메라의 시점과 프레이밍은 장면의 규모감, 피사체와의 친밀감, 그리고 서사적 긴장감을 결정합니다 [1, 11].
|
||||
* **프레이밍(Framing):** 피사체의 감정을 포착하는 '클로즈업(Close-up)', 피사체의 절반 정도를 보여주는 '미디엄 샷(Medium shot)', 주변 환경까지 묘사하는 '와이드 샷(Wide shot)'이나 '풀 샷(Full shot)'을 사용하여 원하는 시각적 초점을 맞출 수 있습니다 [6, 11-13].
|
||||
* **카메라 앵글(Camera Angles):** 위에서 아래로 내려다보는 '버즈 아이 뷰(Bird's eye view)', 인물을 크고 웅장하게 보이게 하는 '로우 앵글(Low angle)', 긴장감이나 불안감을 유발하는 '더치 앵글(Dutch angle)' 등이 있습니다 [12, 14].
|
||||
* **렌즈 및 초점(Lens & Focus):** '85mm 렌즈', 'F/1.8' 등 구체적인 사진학적 수치나 '얕은 피사계 심도(Shallow depth of field)'를 입력하면 배경을 부드럽게 흐리는 보케(Bokeh) 효과를 생성하여 사실성이 극대화된 인물 사진을 얻을 수 있습니다 [5, 6, 15].
|
||||
|
||||
* **프롬프트 작성 실무 팁**
|
||||
성공적인 조명 및 구도 지시를 위해서는 먼저 피사체를 명확히 묘사한 뒤 조명과 구도 키워드를 추가하는 구조적 접근이 좋습니다 [16, 17]. 또한, 단순히 "시네마틱한(cinematic)"과 같이 입력하기보다는 빛이 어느 방향에서 피사체를 비추는지 광원의 위치와 강도를 함께 구체적으로 서술해야 모델이 밋밋한 기본 조명으로 돌아가는 것을 막을 수 있습니다 [18].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 엔지니어링]], [[사진학적 프롬프트 (Photographic Prompts)]]
|
||||
- **Projects/Contexts:** [[AI 이미지 생성 워크플로우 (AI Image Generation Workflow)]]
|
||||
- **Contradictions/Notes:** 모호한 단어(예: "시네마틱", "드라마틱")는 분위기를 설정하는 데는 유용하지만, 정확한 빛의 방향이나 출처를 지정하지 않으면 AI가 빛의 형태를 잡기에 정보가 부족해 밋밋한 결과가 나올 수 있습니다 [18]. 더불어, 프롬프트에 부드러운 빛과 극적인 그림자처럼 서로 상충하는 조명 스타일을 동시에 섞어 쓰면 효과가 상쇄되어 오히려 혼란스러운 결과가 도출될 수 있으므로 한 가지 명확한 조명 아이디어에 집중하는 것이 더 낫습니다 [17].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,38 @@
|
||||
# [[Midjourney Parameter]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney의 파라미터(Parameter)는 텍스트 프롬프트의 가장 마지막에 추가되어 생성될 이미지의 종횡비, 예술적 스타일 강도, 모델 버전, 시각적 일관성 등을 세밀하게 제어하는 특수 명령어입니다 [1, 2]. 기본 텍스트 묘사만으로는 달성하기 어려운 이미지의 기술적, 미학적 특성을 사용자의 의도에 맞게 맞춤 설정하고 다양성을 부여하는 핵심적인 역할을 수행합니다 [2, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
**1. 파라미터 작성 규칙 및 구문 구조**
|
||||
* **위치 및 기호**: 파라미터는 항상 프롬프트 텍스트 설명이 모두 끝난 맨 마지막에 위치해야 하며, 이중 하이픈(`--` 또는 `—`)으로 시작합니다 [1, 4, 5].
|
||||
* **띄어쓰기 및 기호 제한**: 프롬프트 텍스트와 파라미터 사이에는 반드시 공백이 있어야 하며, 파라미터 내부에는 쉼표, 마침표 등의 문장 부호를 사용해서는 안 됩니다 (예: 올바른 표기 `--ar 16:9`, 잘못된 표기 `--ar 16:9,`) [4].
|
||||
|
||||
**2. 이미지 구성 및 품질 제어 파라미터**
|
||||
* **종횡비 (`--ar` 또는 `--aspect`)**: 이미지의 가로세로 비율을 결정하며, `--ar 16:9` (시네마틱/풍경), `--ar 9:16` (모바일 세로), `--ar 1:1` (기본 정사각형) 등으로 설정할 수 있습니다 [1, 5-9].
|
||||
* **모델 버전 (`--v` 또는 `--version`)**: 사용할 Midjourney 모델 버전을 지정하며, 최신 버전인 `--v 7`을 사용하면 텍스트 렌더링과 디테일 일관성이 향상된 결과를 얻을 수 있습니다 [5, 8-11].
|
||||
* **스타일화 (`--stylize` 또는 `--s`)**: 모델 고유의 예술적 기교와 미학적 개입 강도를 0에서 1000 사이로 조절합니다 [5, 8, 11, 12]. 값이 낮을수록 사용자의 텍스트 지시에 더 문자 그대로 충실해지며, 값이 높을수록 미드저니 특유의 예술적인 해석이 강하게 반영됩니다 [5, 13-15].
|
||||
* **다양성 (`--chaos` 또는 `--c`)**: 0에서 100 사이의 값을 지정하여, 초기 생성되는 4장의 이미지 그리드 내에서 결과물 간의 시각적 차이와 예측 불가능성을 높입니다 [5, 11, 14, 16].
|
||||
* **부정 프롬프트 (`--no`)**: 이미지에서 원치 않는 요소(예: `--no text`, `--no trees`)를 명시적으로 제외하도록 모델에 지시하여 원치 않는 생성을 차단합니다 [11, 16-18].
|
||||
* **품질 (`--quality` 또는 `--q`)**: 렌더링에 소요되는 GPU 시간과 디테일 수준을 제어하며(예: 0.25, 0.5, 1), 값이 높을수록 더 세밀한 결과물을 산출합니다 [5, 11, 14, 19, 20].
|
||||
* **시드 (`--seed`)**: 여러 이미지 생성에 걸쳐 구도나 노이즈 패턴을 일관되게 재현하고 싶을 때 동일한 시드 번호(0~4294967295)를 고정하여 사용합니다 [5, 6, 11, 20, 21].
|
||||
|
||||
**3. 이미지 참조 및 일관성 파라미터 (V6 & V7 기능)**
|
||||
* **스타일 참조 (`--sref`) 및 가중치 (`--sw`)**: 이미지 URL을 제공하여 해당 이미지의 전반적인 분위기, 색상 팔레트, 미학적 스타일을 새로운 생성물에 복제하여 적용합니다 [5, 10, 11, 15, 22]. `--sw`를 통해 그 영향력의 강도(0-1000)를 제어합니다 [5, 11].
|
||||
* **캐릭터 참조 (`--cref`) 및 가중치 (`--cw`)**: 특정 인물이나 캐릭터의 얼굴, 머리 모양, 의상 등의 시각적 정체성을 여러 컷에서 일관되게 유지하도록 돕습니다 [5, 11, 12, 15, 23, 24]. 가중치가 0이면 얼굴에만 집중하고, 100이면 의상과 머리까지 일치시킵니다 [5].
|
||||
* **옴니 참조 (`--oref`) 및 가중치 (`--ow`)**: V7에서 새롭게 도입된 파라미터로, 스타일과 캐릭터를 넘어 사물의 고유한 형태나 피사체의 정체성 전체를 기억하고 다른 환경에서도 동일하게 재현합니다 [10, 11, 15, 25-27].
|
||||
* **이미지 가중치 (`--iw`)**: 텍스트 프롬프트와 참조 이미지 프롬프트가 함께 사용될 때, 참조 이미지의 상대적 영향력 크기를 조절합니다 [5, 11, 16, 28].
|
||||
|
||||
**4. 기타 고급 제어 기능**
|
||||
* **드래프트 모드 (`--draft`)**: V7에서 사용할 수 있으며, GPU 비용을 절반으로 줄이면서 약 10배 빠른 속도로 저화질 개념 스케치를 대량 생성하는 데 사용됩니다 [7, 9-11, 29, 30].
|
||||
* **스타일 로우 (`--style raw`)**: 미드저니의 기본적이고 과장된 미학적 필터를 줄여, 보다 사실적이고 사진과 같은 결과물을 원할 때 사용합니다 [5, 11, 14, 19, 31].
|
||||
* **기타 제어**: 기괴하거나 독특한 요소를 도입하는 기괴함(`--weird`), 진행 중인 렌더링을 일찍 멈추는 정지(`--stop`), 동일한 프롬프트로 여러 번의 작업을 한 번에 큐에 넣는 반복(`--repeat`), 패턴 생성을 위한 타일(`--tile`), 과정 영상을 저장하는 비디오(`--video`) 등이 존재합니다 [5, 11, 20].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Structure]], [[Negative Prompt]], [[Style Reference]], [[Character Reference]]
|
||||
- **Projects/Contexts:** [[AI Image Generation Workflow]]
|
||||
- **Contradictions/Notes:** 파라미터를 활용한 고도의 제어력과 V7의 발전된 프롬프트 준수 능력에도 불구하고, 미드저니는 여전히 예술성을 우선시하는 생성 모델입니다 [32]. 따라서 파라미터만으로는 픽셀 단위의 결정론적(deterministic) 레이아웃 재현이나 100% 완벽한 타이포그래피 제어에는 한계가 있으므로, 정확한 배치가 필요한 경우 다른 외부 편집 단계와 병행하는 것이 권장됩니다 [32, 33].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,37 @@
|
||||
# [[Midjourney Parameters]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
미드저니 파라미터(Midjourney Parameters)는 프롬프트 텍스트를 통해 제어하기 어려운 종횡비, 예술적 스타일, 무작위성 등의 설정을 사용자 정의할 수 있도록 돕는 특별한 명령어입니다 [1, 2]. 사용자는 프롬프트의 가장 마지막에 파라미터를 추가하여 이미지의 크기를 변경하거나 특정 요소를 제외하는 등 결과물에 대한 기술적, 미학적 통제력을 높일 수 있습니다 [3, 4]. 이들은 이미지 생성 과정에서 프롬프트 작성의 정교함을 더해주는 필수적인 도구입니다 [5].
|
||||
|
||||
## 📖 Core Content
|
||||
* **기본 문법 및 규칙**:
|
||||
파라미터는 항상 텍스트 프롬프트의 설명이 끝난 가장 마지막에 띄어쓰기를 한 후 두 개의 하이픈(`--`)으로 시작하여 작성합니다 [6-8]. 파라미터 내부에는 쉼표나 마침표 등의 구두점을 포함해서는 안 됩니다 [7].
|
||||
|
||||
* **비율 및 품질, 무작위성 제어**:
|
||||
* `--ar` (Aspect Ratio): 생성될 이미지의 가로세로 종횡비를 결정합니다 (예: `--ar 16:9`, `--ar 1:1`) [8-10]. 최신 모델인 V7 및 V8.1 Alpha 버전에서는 최대 14:1의 파노라마 비율까지 지원합니다 [11, 12].
|
||||
* `--q` (Quality): 이미지의 디테일 수준과 렌더링에 소요되는 GPU 시간을 제어합니다 (기본값 1, 0.25~2 지원) [8, 13, 14]. V8.1 Alpha 모델의 경우 `--q 4`까지 지원합니다 [11].
|
||||
* `--chaos` (`--c`): 0부터 100 사이의 값으로 설정하며, 초기 4장의 결과물 그리드 간의 무작위성과 다양성을 높여줍니다 [8, 14, 15].
|
||||
|
||||
* **스타일 및 미학적 강도 제어**:
|
||||
* `--stylize` (`--s`): 0에서 1000 사이의 값으로 미드저니 고유의 예술적 개입 강도를 조절합니다 [8, 16]. 값이 높을수록 예술적이고 아름다운 결과물이 나오지만, 값이 낮을수록 사용자가 입력한 프롬프트 내용에 더 충실한 이미지가 생성됩니다 [12, 16, 17].
|
||||
* `--style raw`: 미드저니의 기본 미화(beautification) 미학을 줄여, 보다 사진에 가깝고 덜 가공된 사실적인 결과물을 생성합니다 [8, 18, 19].
|
||||
* `--weird` (`--w`): 0에서 3000 사이의 값으로 관습에서 벗어난 기이하고 독특한 시각적 요소를 추가합니다 [8, 14].
|
||||
|
||||
* **참조(Reference) 및 일관성 기능**:
|
||||
* `--sref` (Style Reference) 및 `--sw`: 제공된 이미지 URL을 참고하여 특정 이미지의 예술적 스타일이나 색감을 복제합니다 [8, 12, 20]. `--sw`는 0~1000 사이의 값으로 스타일 참조의 강도를 설정합니다 [8].
|
||||
* `--cref` (Character Reference) 및 `--cw`: 캐릭터의 얼굴이나 특징 등 시각적 정체성을 여러 이미지에 걸쳐 일관되게 유지합니다 [8, 17, 21]. `--cw 0`은 얼굴에만 초점을 맞추며, `--cw 100`은 의상과 머리 스타일까지 포함합니다 [8].
|
||||
* `--oref` (Omni Reference) 및 `--ow`: V7 모델에 새롭게 도입된 기능으로, 캐릭터뿐만 아니라 사물의 형태적 정체성까지 다른 환경에서 동일하게 재현할 수 있도록 폭넓게 지원합니다 [12, 14, 22, 23].
|
||||
* `--seed`: 동일한 노이즈 패턴을 재현하여 구성의 일관성을 테스트하거나 비슷한 이미지를 반복 생성할 때 사용합니다 [8, 13, 24].
|
||||
|
||||
* **기타 주요 파라미터**:
|
||||
* `--no`: 이미지에서 원하지 않는 요소(예: 텍스트, 건물 등)를 명시적으로 제외하는 부정 프롬프트(Negative Prompt) 기능을 수행합니다 [14, 15, 25].
|
||||
* `--draft`: V7 모델에서 도입되었으며, 약 10배 빠른 속도와 절반의 GPU 비용으로 아이디어를 탐색할 수 있는 테스트용 시안(Draft)을 생성합니다 [5, 10, 26, 27].
|
||||
* `--v` (Version): 이미지 생성에 사용할 미드저니의 특정 모델 버전(예: `--v 7`, `--v 6.0`)을 지정합니다 [8, 14].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** `[[프롬프트 구조(Prompt Structure)]]`, `[[부정 프롬프트(Negative Prompts)]]`, `[[시각적 일관성(Visual Consistency)]]`
|
||||
- **Projects/Contexts:** `[[AI 이미지 생성(AI Image Generation)]]`, `[[미드저니(Midjourney)]]`
|
||||
- **Contradictions/Notes:** 미드저니 버전이 V6에서 V7로 발전함에 따라, 인물 캐릭터의 일관성 유지에 국한되었던 `--cref` 기능의 한계를 보완하기 위해 사물과 객체 전반의 일관성까지 포괄하는 `--oref` (옴니 참조) 파라미터가 도입되어 기능이 대체 및 확장되었습니다 [12, 14, 23]. 또한, 모델이 프롬프트를 해석할 때 지나치게 긴 묘사보다는 파라미터와 간결한 단어를 조합하는 것이 의도한 결과를 얻는 데 훨씬 효과적입니다 [28, 29].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,25 @@
|
||||
# [[Midjourney V6 및 V7 기반의 이미지 생성 워크플로우]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney V6 및 V7 기반의 이미지 생성 워크플로우는 **텍스트 프롬프트, 매개변수(Parameter), 그리고 참조(Reference) 기능을 복합적으로 활용하여 이미지를 설계하고 수정하는 과정**이다 [1, 2]. 특히 V7에서는 '드래프트 모드(Draft Mode)'가 도입되어 낮은 비용으로 빠르게 다수의 시안을 탐색하고 최적의 결과물만 고품질로 승격시키는 효율적인 파이프라인이 구축되었다 [3, 4]. 사용자는 캐릭터 참조, 스타일 참조, 옴니 참조 등의 도구와 'Vary (Region)' 같은 인페인팅 기능을 통해 브랜드나 캠페인 전반에서 높은 시각적 일관성을 유지하며 결과물을 정교하게 제어할 수 있다 [5-8].
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 기본 구조 및 파라미터 최적화:**
|
||||
효과적인 Midjourney 프롬프트는 `/imagine` 명령어 뒤에 **주체(Subject), 매체(Medium), 환경(Environment), 조명(Lighting), 분위기(Mood) 순으로 구조화**하여 AI의 혼란을 방지하는 것이 좋다 [1]. 프롬프트의 끝에는 매개변수를 추가하여 결과물을 세밀하게 조정하는데, 주로 종횡비를 맞추는 `--ar`, 예술적 스타일 강도를 조절하는 `--stylize` (또는 `--s`), 사용할 모델 버전을 설정하는 `--v` 등이 필수적으로 활용된다 [2, 9, 10].
|
||||
|
||||
* **참조(Reference) 기능을 활용한 시각적 일관성 제어:**
|
||||
V6 모델에서 도입된 **캐릭터 참조(`--cref`)** 기능은 기준 이미지의 얼굴, 헤어, 의상 비중을 `--cw`로 조절하며 동일한 인물의 정체성을 여러 장면에 걸쳐 일관되게 유지하도록 지원한다 [10-12]. 특정 색상 팔레트나 미학적 테마를 적용할 때는 **스타일 참조(`--sref`)**가 활용되며, V7부터는 특정 사물이나 피사체의 형태적 정체성 전체를 기억하여 일관되게 렌더링하는 **옴니 참조(`--oref`)** 기능이 추가되어 작업의 반복성과 브랜드 재현성이 크게 향상되었다 [5, 13-16].
|
||||
|
||||
* **V7의 드래프트 모드(Draft Mode)를 통한 반복 설계 루프:**
|
||||
V7 모델 워크플로우의 가장 큰 혁신은 `--draft` 파라미터를 활용한 시안 생성에 있다 [3]. 이 모드는 표준 이미지 생성보다 **약 10배 빠르고 GPU 비용이 절반 수준으로 저렴**하다 [3]. 따라서 실무에서는 낮은 비용으로 여러 방향성과 구도를 대량으로 탐색한 뒤, 가장 유망한 후보를 선정하여 고화질로 변환(Promote)하고 참조 기능을 결합하는 식의 '비용 효율적인 디자인 검토 루프(Design review loop)'를 거치는 것이 권장된다 [1, 3, 4].
|
||||
|
||||
* **사후 수정 및 캔버스 확장 (Inpainting & Outpainting):**
|
||||
이미지 생성 후에는 **'Vary (Region)' 버튼을 사용하여 원본 이미지의 나머지 부분을 보존한 채 선택된 특정 영역만 수정하거나 새로운 요소를 추가**할 수 있다 [8, 17-19]. 이때 리믹스(Remix) 모드를 활성화하면 수정할 영역에 맞춰 프롬프트를 다시 입력함으로써 더욱 정교한 합성을 수행할 수 있다 [20-23]. 또한, **팬(Pan)이나 줌 아웃(Zoom Out) 기능**을 통해 캔버스 밖으로 시야를 넓히고 누락된 주변 배경을 매끄럽게 연장하는 과정도 이미지 고도화 워크플로우의 핵심 단계이다 [20, 24].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 엔지니어링]], [[매개변수(Parameters)]], [[스타일 참조(Style Reference)]], [[인페인팅(Inpainting)]]
|
||||
- **Projects/Contexts:** [[상업적 시각 디자인 파이프라인]], [[API 기반 이미지 생성 워크플로우]]
|
||||
- **Contradictions/Notes:** 소스에 따르면 Midjourney V7은 스타일 탐색과 일관성 유지에서 뛰어난 도구이지만, 여전히 완벽한 타이포그래피(문자 렌더링) 구현이나 픽셀 단위의 결정론적(deterministic) 이미지 편집을 보장하지는 못하므로, 정확한 텍스트 추가나 고정된 레이아웃 복제 시에는 별도의 디자인 보정 단계가 필요하다고 지적된다 [25-27].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[Midjourney V7 Draft Mode]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney V7의 Draft Mode(초안 모드)는 `--draft` 매개변수를 사용하여 표준 생성보다 약 10배 빠른 속도와 절반의 GPU 비용으로 시안 이미지를 생성하는 기능입니다 [1, 2]. 사용자는 이 모드를 통해 월간 'Fast' 사용 시간을 낭비하지 않고 프롬프트 아이디어를 빠르게 테스트할 수 있습니다 [3]. 약간 낮은 화질의 초기 콘셉트 중 유망한 구도를 선별한 뒤 고해상도 매개변수로 정교하게 다듬을 수 있어, 효율적이고 반복적인 프롬프트 작성 워크플로우에 필수적입니다 [1, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
- **작동 원리 및 효율성**: Midjourney V7 모델에서 프롬프트 끝에 `--draft` 파라미터를 추가하여 활성화합니다 [2, 4]. 일반적인 고화질 렌더링과 비교해 이미지 품질은 약간 낮게 생성되지만, 속도가 약 10배 빠르고 GPU 사용량은 대략 절반 수준으로 줄어들어 초기 탐색이나 빠른 변형(variations)을 만드는 데 이상적입니다 [1-3].
|
||||
- **프롬프트 테스트 및 아이데이션(Ideation)**: Draft Mode는 한 번의 프롬프트로 완성본을 얻으려는 접근 방식 대신, 다양한 프롬프트와 종횡비(aspect ratios)를 저비용으로 실험하는 단계에 유용하게 쓰입니다 [1]. 이를 통해 사용자는 여러 시안을 광범위하게 생성하고 가장 유망한 구도나 방향을 선별(shortlist)할 수 있습니다 [1].
|
||||
- **단계적 최적화 워크플로우**: Draft Mode로 거친 콘셉트(rough concepts)의 시안을 생성한 후, 선택된 방향성을 전체 해상도의 매개변수를 사용해 고품질 최종 결과물로 승격(promote)시키는 방식으로 프롬프트를 발전시킵니다 [1, 2, 4]. 후속 작업 시 기존 시안에서 얻은 시드(seeds)나 스타일 참조(style directions)를 그대로 재사용하여 이미지를 다듬을(fine-tuning) 수 있습니다 [1].
|
||||
- **실무적 활용 가치**: 창작자와 제품 팀에게 이 기능은 단순한 편의 기능을 넘어 비용 통제(cost-control primitive)의 핵심 수단이 됩니다 [1]. 최종 고품질 렌더링에 앞서 프롬프트를 완벽하게 수정할 기회를 제공하므로, 불필요한 GPU 시간의 낭비를 막고 시각적 탐색 속도를 극대화할 수 있습니다 [1, 3].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney Parameters]], [[Prompt Iteration]]
|
||||
- **Projects/Contexts:** [[AI Image Generation Workflow]]
|
||||
- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[Midjourney V7 및 V6 워크플로우]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney V7 및 V6 워크플로우는 텍스트 프롬프트를 시각적 결과물로 변환하는 과정에서 아이디어 탐색부터 반복적인 수정, 최종 편집까지 아우르는 단계적 작업 방식을 의미합니다 [1, 2]. V6는 긴 입력에 대한 프롬프트 정확도를 높이고 캐릭터 참조(`--cref`)를 통해 일관성을 부여했으며, 2025년에 기본 모델로 지정된 V7은 초안 모드(Draft Mode)와 옴니 참조(`--oref`)를 도입해 작업 속도와 객체 일관성을 크게 혁신했습니다 [3, 4]. 이러한 워크플로우는 빠르고 저렴하게 여러 초안을 생성한 후 우수한 결과물을 선택해 고품질로 변환하고, 부분 편집이나 참조 기능을 이용해 시각적 정체성을 유지하는 체계적인 파이프라인으로 발전했습니다 [1, 5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
- **V6 및 V7의 진화와 핵심 기능**: 2023년 말 출시된 V6 모델은 프롬프트의 정확도를 높이고 캐릭터 참조 기능(`--cref`)을 도입하여 동일한 인물의 일관된 묘사를 가능하게 했습니다 [4, 7]. 이어 2025년에 출시된 V7 모델은 옴니 참조(`--oref`)를 추가하여 특정 객체나 사물의 세부적인 형태까지 유지할 수 있게 했으며, 스타일 참조(`--sref`) 기능을 고도화하여 브랜드나 캠페인 전반에 걸쳐 미학적 일관성을 유지할 수 있도록 지원합니다 [3, 4, 6, 8].
|
||||
- **초안 모드(Draft Mode)를 활용한 파이프라인**: V7 워크플로우의 운영상 가장 핵심적인 변화는 초안 모드(`--draft`)의 도입입니다 [5, 9]. 일반 생성보다 약 10배 빠르고 GPU 비용은 절반 수준인 초안 모드를 활용하여 여러 프롬프트와 종횡비로 값싸게 아이디어를 먼저 탐색합니다 [5, 9]. 이후 가장 유망한 구도를 선택하여 고품질로 승격시키고, 동일한 시드(Seed)나 참조 기능을 통해 후속 작업을 진행하는 형태의 효율적인 검토 루프(Review loop)가 권장됩니다 [1, 10].
|
||||
- **점진적 수정 및 부분 편집(Vary Region)**: 생성된 이미지는 'Vary Region' 기능을 통해 반복적으로 정교화됩니다 [11, 12]. 리믹스(Remix) 모드를 활성화한 상태에서 이미지의 특정 영역만 선택해 수정된 프롬프트를 적용하면, 이미지의 나머지 부분은 그대로 유지한 채 모자를 왕관으로 바꾸거나 불필요한 객체를 제거하는 등의 세밀한 편집(Inpainting)이 가능합니다 [11-13]. 구도를 넓혀야 할 때는 Pan과 Zoom 기능을 결합하여 장면을 확장할 수 있습니다 [11, 14].
|
||||
- **플랫폼 및 인터페이스의 확장**: 2026년 기준으로 워크플로우의 중심은 기존 Discord 봇에서 시각적인 슬라이더와 스마트 폴더, 검색 필터를 제공하는 브라우저 기반 Web UI로 이동했습니다 [15-17]. 또한, 생성된 고품질 정지 이미지를 'Animate' 기능을 사용해 21초 분량의 비디오 클립으로 즉각 변환하는 비디오 제작 워크플로우로도 확장되어 소셜 미디어나 프로모션 영상 제작에 활발히 활용됩니다 [15, 18].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 파라미터]], [[부분 편집(Vary Region)]], [[참조 제어(Reference Controls)]]
|
||||
- **Projects/Contexts:** [[시각적 아이디어 구상 및 콘텐츠 프로덕션 파이프라인]]
|
||||
- **Contradictions/Notes:** Midjourney V7은 강력한 시각적 미학과 반복 가능한 스타일 참조를 제공하여 크리에이티브 탐색에 최적화되어 있지만, 정확한 타이포그래피 출력, 엄격한 레이아웃의 복제, 또는 완벽하게 결정론적인(deterministic) 이미지 편집을 보장하지는 않으므로 이러한 작업에는 부적합할 수 있습니다 [19, 20].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,29 @@
|
||||
# [[Midjourney V7의 Draft Mode 워크플로우]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney V7의 Draft Mode는 표준 이미지 생성보다 약 10배 빠르고 GPU 비용을 절반 수준으로 줄여주는 핵심 기능이다 [1, 2]. 이 워크플로우는 이미지 생성을 단일 완성품 제작이 아닌, 초기 탐색과 최종 렌더링으로 나누는 단계적(staged) 프로세스로 전환시킨다 [3-5]. 사용자는 저비용으로 여러 프롬프트와 비율을 테스트하여 유망한 시안을 선별한 뒤, 이를 고품질 이미지로 승격시키고 시드(seed)나 참조(reference) 매개변수를 재사용하여 프롬프트를 고도화할 수 있다 [1, 3, 6].
|
||||
|
||||
## 📖 Core 기Content
|
||||
* **Draft Mode의 주요 특징 및 목적**
|
||||
* V7의 Draft Mode(`--draft` 매개변수 사용)는 초기 아이디어 탐색 및 빠른 변형 생성에 이상적인 기능이다 [2, 6].
|
||||
* 기존 생성 방식 대비 속도가 약 10배 빠르며 GPU 비용은 절반가량만 소모하므로, 제품 팀이나 빌더들에게 비용 통제의 기본 수단(cost-control primitive)으로 작용한다 [1].
|
||||
* 약간 낮은 품질의 버전을 빠르게 생성하여, 전체 해상도의 품질로 렌더링을 확정하기 전에 프롬프트를 완벽하게 다듬을 수 있도록 돕는다 [6, 7].
|
||||
|
||||
* **권장되는 단계적 워크플로우(Staged Process)**
|
||||
모든 프롬프트가 한 번에 완성된 에셋을 도출해야 한다는 가정에서 벗어나, 디자인 검토 루프(design review loop)와 유사하게 진행하는 것이 권장된다 [3, 4].
|
||||
1. **초기 생성:** 사용자가 의도와 제약 조건을 제공하면, 시스템은 다양한 프롬프트와 종횡비를 적용하여 저렴한 Draft 결과물 후보군을 여러 개 생성한다 [1, 4].
|
||||
2. **검토 및 선별:** 사용자 또는 리뷰어가 유망한 구도나 방향성 1~2개를 선별(shortlist)한다 [3, 4]. 이 단계에서 브랜드에 맞지 않거나 안전하지 않은 결과물을 고품질화 이전에 미리 걸러낼 수 있다 [5].
|
||||
3. **고품질 승격:** 선택된 후보 이미지들만 고품질 출력물로 승격(promote)시킨다 [3, 4].
|
||||
4. **참조 재사용:** 선정된 방향성은 재사용 가능한 참조로 저장되며, 후속 편집 라운드에서 저장된 시드(seed), 참조(reference) 및 스타일 방향(style direction)을 재사용하여 프롬프트를 더욱 정교하게 이어간다 [3, 5].
|
||||
|
||||
* **워크플로우의 가치 및 데이터 활용**
|
||||
* 이러한 접근은 비용을 낮출 뿐만 아니라 사용자 경험을 보다 진정성 있게 만든다 [5].
|
||||
* 시스템 관점에서는 사용자가 어떤 Draft를 선택하고 어떤 스타일이 전환되며 어떤 프롬프트 패턴이 지속적으로 실패하는지 학습할 수 있어, 향후 프롬프트 자동화 및 데이터 모델링을 더 쉽게 만든다 [5, 8].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 반복 및 세분화(Iterative Prompting)]], [[Midjourney 매개변수(Parameters)]], [[스타일 및 캐릭터 참조(Style and Character Reference)]]
|
||||
- **Projects/Contexts:** [[비용 효율적인 대규모 이미지 생성 API 파이프라인 구축]], [[시각적 아이디에이션 및 디자인 검토 루프]]
|
||||
- **Contradictions/Notes:** Midjourney V7은 이러한 워크플로우를 통해 시각적 범위와 스타일 반복 작업에 탁월하지만, 텍스트가 많은 디자인의 정확한 재현이나 엄격한 레이아웃 복제 등 완전히 예측 가능한 제어가 필요한 경우에는 적합하지 않으므로 목적에 따라 다른 모델을 고려해야 한다 [9-12].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,26 @@
|
||||
# [[Midjourney 브랜드 캠페인 및 무드보드 제작]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney는 강력한 스타일 참조 및 매개변수 기능을 통해 일관된 브랜드 정체성과 시각적 미학이 요구되는 캠페인 및 무드보드 제작에 효과적으로 활용됩니다 [1]. 2026년에 업데이트된 V7 모델은 스타일 참조(`--sref`)와 옴니 참조(`--oref`), 그리고 드래프트 모드(`--draft`)를 지원하여, 마케팅 팀이 여러 에셋에 걸쳐 통일된 분위기의 결과물을 빠르고 효율적으로 반복 생성할 수 있도록 돕습니다 [2-5]. 이를 통해 브랜드는 독창적이고 일관성 있는 시각적 스토리텔링을 구축할 수 있습니다 [6].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
* **브랜드 일관성 유지를 위한 스타일 및 옴니 참조**
|
||||
Midjourney V7은 캠페인 및 제품 무드보드를 위한 강력하고 반복 가능한 스타일 참조 워크플로우를 제공합니다 [1]. 스타일 참조(`--sref`) 매개변수에 특정 이미지의 URL이나 스타일 코드를 입력하면, 해당 이미지의 색상, 질감, 분위기를 새로운 프롬프트에 그대로 적용할 수 있어 브랜드의 시각적 테마나 소셜 미디어 피드의 톤을 일관되게 맞추는 데 유용합니다 [4, 6]. 또한, 옴니 참조(`--oref`) 매개변수를 활용하면 얼굴뿐만 아니라 맞춤형 자동차나 특정 보석 등 특정 사물의 형태적 정체성까지 정확하게 기억하여 여러 이미지에 걸쳐 연속성을 유지할 수 있습니다 [7-9].
|
||||
|
||||
* **다중 스타일 결합을 통한 시그니처 스타일 구축**
|
||||
단일 프롬프트에서 이미지 URL들을 띄어쓰기로 구분하여 두 개 이상의 이미지를 스타일 참조로 동시에 적용할 수 있습니다 [4]. 2~3개의 다른 스타일 코드를 혼합하면 타 브랜드와 차별화되는 고유한 '시그니처 스타일(Signature Style)'을 개발할 수 있습니다 [6]. 2026년 도입된 스타일 탐색기(Style Explorer)를 활용하면 독특한 미적 코드를 라이브러리 형태로 공유하고 자신의 프롬프트에 즉각적으로 적용할 수도 있습니다 [10].
|
||||
|
||||
* **캠페인 및 무드보드 실무 워크플로우**
|
||||
랜딩 페이지나 제품 출시, 마케팅 캠페인을 위한 에셋을 제작할 때, 3~5장의 브랜드 안정성(brand-safe)이 확보된 참조 이미지를 수집하여 기본 스타일 참조로 활용하는 것이 좋습니다 [8]. 제품의 선명도와 명확성이 필요할 때는 `--stylize` 값을 낮게 설정하고, 캠페인의 분위기(mood)를 강조하고 싶을 때는 `--stylize` 값을 높게 설정하여 결과를 조정할 수 있습니다 [8]. 사물이나 주체의 연속성이 필수적일 때만 옴니 참조(`--oref`)를 적용하는 것이 권장됩니다 [8].
|
||||
|
||||
* **드래프트 모드(--draft)를 활용한 신속한 아이디에이션**
|
||||
V7의 드래프트 모드를 사용하면 저비용으로 빠르게 여러 프롬프트와 종횡비(`--ar`)를 적용하여 시안(Draft)을 대량 생산할 수 있습니다 [2]. 마케팅 팀이나 디자이너는 이렇게 생성된 다양한 후보군 중 가장 유망한 구도나 방향성을 선택하여 무드보드를 구상한 뒤, 이를 고화질 및 고품질의 최종 캠페인 에셋으로 승격(promotes)시키는 방식으로 시각적 아이디에이션 과정을 최적화할 수 있습니다 [2, 11].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[스타일 참조(--sref)]], [[옴니 참조(--oref)]], [[드래프트 모드(--draft)]], [[미드저니 매개변수(Midjourney Parameters)]]
|
||||
- **Projects/Contexts:** [[브랜드 마케팅 및 소셜 미디어 피드 에셋 생성]], [[시각적 반복성 및 미학적 일관성 제어]]
|
||||
- **Contradictions/Notes:** 소스 [12]에 따르면, 이러한 참조 기능들이 이미지의 안내(guidance)를 크게 향상시키지만 시스템을 완전히 결정론적(deterministic)으로 만들지는 못합니다. 따라서 정확한 타이포그래피나 고정된 레이아웃 복제가 필요한 캠페인 에셋의 경우 Midjourney가 완벽한 해결책이 될 수 없으며 별도의 디자인이나 편집 단계가 필요합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[Moodboard Creation]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
무드보드(Moodboard) 생성은 프로젝트의 미적 감각, 스타일, 분위기를 설정하기 위해 시각적 참조(Reference) 라이브러리를 구축하거나 AI를 통해 생성하는 과정입니다 [1-3]. 패션, 브랜딩, 인테리어 디자인 등 다양한 창작 과정의 출발점으로 활용되며, Midjourney나 Adobe Firefly와 같은 AI 이미지 생성 도구에서 일관성 있는 시각적 방향성을 유지하는 데 핵심적인 역할을 합니다 [2, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **창작 과정의 출발점 및 영감 제공:** 무드보드는 패션, 브랜딩, 인테리어 디자인 등 다양한 창작 프로젝트에서 완벽한 분위기(vibe)를 찾고 아이디어를 촉발하는 시작점 역할을 합니다 [1, 2]. Adobe Firefly와 같은 플랫폼은 무드보드 생성(Generate Mood Board) 기능을 직접 제공하여 사용자가 프로젝트의 레이아웃과 스타일을 구상할 수 있도록 돕습니다 [2, 5].
|
||||
* **Midjourney의 스타일 참조(Style Reference) 워크플로우 활용:** Midjourney V7 및 V8.1 Alpha 모델에서는 무드보드와 개인화(Personalization) 프로필 기능이 크게 강화되었습니다 [3, 6]. 사용자는 `--sref` 파라미터와 함께 하나 이상의 무드보드 이미지 URL을 프롬프트에 입력하여(예: `--sref 이미지주소/moodboard1.jpg 이미지주소/moodboard2.jpg`), 무드보드의 스타일, 분위기, 색상 팔레트를 새로운 프롬프트 생성 결과물에 동일하게 적용할 수 있습니다 [7, 8].
|
||||
* **반복 가능하고 일관된 시각적 방향성 제어:** 무드보드는 단순히 우연에 기대어 좋은 이미지가 나오기를 바라는 것을 넘어, 시각적 방향성을 체계적으로 재사용할 수 있게 해줍니다 [3, 9]. 캠페인, 제품 랜딩 페이지 등에서 일관된 브랜드 비주얼이 필요한 팀은 무드보드 워크플로우를 통해 고품질의 반복 가능한 시각적 자산을 구축할 수 있습니다 [4, 9].
|
||||
* **GPU 사용 비용 고려사항:** Midjourney V8 Alpha 모델과 같은 특정 환경에서 스타일 참조와 무드보드를 함께 사용할 경우(`--sv 6` 사용 시), 평소보다 4배 이상의 GPU 시간이 소모될 수 있다는 점을 프롬프트 설계 시 유의해야 합니다 [10].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Style Reference]], [[Personalization]], [[Image Prompts]]
|
||||
- **Projects/Contexts:** [[캠페인 및 브랜드 미학 구축]], [[인테리어 및 패션 디자인 기획]]
|
||||
- **Contradictions/Notes:** 소스 내에서 무드보드 생성에 대한 명확한 상충 의견은 없으나, Midjourney에서 무드보드 기반의 스타일 참조 기능을 활용할 때 특정 파라미터(`--sv 6`) 조합에 따라 모델의 GPU 처리 비용이 급증할 수 있다는 기술적 주의사항이 존재합니다 [10].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,17 @@
|
||||
# [[Omni Reference (--oref)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Omni Reference(--oref)는 2026년에 미드저니(Midjourney) V7 모델에서 새롭게 도입된 기능으로, 여러 생성 이미지에 걸쳐 특정 피사체, 캐릭터 또는 사물의 시각적 일관성을 유지하기 위해 사용됩니다 [1-3]. 기존의 캐릭터 참조(--cref) 기능보다 더 넓은 범위에서 유연하게 작동하며, V7에서는 이를 대체하는 역할을 수행합니다 [2, 4]. 단순한 스타일 복사를 넘어 사물의 고유한 형태적 정체성(예: 커스텀 자동차, 특정 보석 등)을 기억해 다양한 배경이나 상황에서도 동일하게 재현할 수 있는 것이 특징입니다 [1, 5].
|
||||
|
||||
## 📖 Core Content
|
||||
- **기능의 도입 및 목적**: Omni Reference(--oref)는 미드저니 V7 및 V8.1 Alpha 모델에서 지원되는 강력한 참조 도구로, 피사체와 사물의 시각적 방향성을 반복 가능하게 제어할 수 있습니다 [3, 6, 7]. 이전 모델의 캐릭터 참조(--cref)와 유사한 기능을 수행하지만, 인물의 얼굴에 국한되지 않고 일반 사물이나 크리처 등 더 광범위한 대상을 고정(anchor)하는 데 사용됩니다 [2, 8, 9].
|
||||
- **프롬프트 문법 및 가중치 제어**: 텍스트 프롬프트 작성 시 끝부분에 `--oref` 매개변수와 함께 하나 이상의 참조 이미지 URL을 추가하여 적용합니다 [2]. 예를 들어, `/imagine prompt futuristic engineer woman --oref https://yourimageurl.com/engineer.jpg --ow 70`과 같이 작성할 수 있습니다 [2]. 여기서 함께 사용되는 `--ow` 매개변수(Omni Reference Weight)는 원본 이미지의 특징을 얼마나 강하게 따를지 그 가중치를 조절하는 역할을 합니다 [2, 7].
|
||||
- **활용 전략 및 모범 실무**: 이 기능은 2026년 프롬프트 엔지니어링의 판도를 바꾼 중요한 요소로 평가받습니다 [1]. 샷과 샷 사이에서 크리처나 특정 사물의 시각적 일관성(continuity)이 중요할 때만 제한적으로 사용하는 것이 가장 효과적입니다 [9, 10]. 캠페인용 무드보드나 브랜드 제품 라인의 일관된 이미지를 생성할 때 동일한 피사체의 시각적 정체성을 다른 환경에 이질감 없이 배치하는 데 탁월한 성능을 발휘합니다 [1, 5, 6].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney V7]], [[Character Reference (--cref)]], [[Omni Reference Weight (--ow)]]
|
||||
- **Projects/Contexts:** [[일관성 있는 시리즈물 및 캠페인 시각 디자인 제작]]
|
||||
- **Contradictions/Notes:** 소스 [2]은 Omni Reference가 기존의 `--cref`와 유사하면서도 더 넒은 범위를 포괄하는 유연한 매개변수라고 설명하는 반면, 소스 [4]는 V7 모델에서 `--oref`가 기존 캐릭터 참조(Character Reference) 매개변수를 완전히 대체한다고 명시하고 있습니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,17 @@
|
||||
# [[Omni Reference]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
옴니 참조(Omni Reference, `--oref`)는 미드저니 V7(Midjourney V7)에 도입된 파라미터로, 여러 이미지에서 특정 피사체, 캐릭터 또는 사물의 일관성을 유지하기 위해 사용됩니다 [1, 2]. 단순한 스타일을 넘어서 사물의 고유한 형태적 정체성까지 기억하여 다른 환경에서도 동일하게 재현해 내는 유연하고 포괄적인 기능을 제공합니다 [2, 3]. 기존의 캐릭터 참조(Character Reference, `--cref`)를 대체하거나 그 범위를 넓혀 일관된 이미지 시리즈 제작에 핵심적인 역할을 합니다 [2, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **핵심 기능 및 특징:** 옴니 참조는 미드저니 V7 모델에서 사람의 생김새뿐만 아니라 커스텀 자동차나 특정 장신구와 같은 구체적인 사물의 형태를 기억하고 정확히 유지하도록 해주는 강력한 기능입니다 [1, 4]. 이를 통해 인공지능은 피사체나 객체의 광범위한 고정(anchoring)을 수행하며, 다른 환경적 맥락에서도 동일한 사물을 논리적으로 재현해 냅니다 [3, 5].
|
||||
* **사용 문법 및 파라미터 적용:** 프롬프트 작성 시 `--oref` 파라미터 뒤에 하나 이상의 참조 이미지 URL을 추가하여 사용합니다 [2]. 참조 이미지에 대한 밀착도나 강도를 조절하고 싶다면 옴니 참조 가중치인 `--ow` (예: `--ow 70`, `--ow 80`)를 함께 설정하여 제어할 수 있습니다 [2].
|
||||
* **프롬프트 엔지니어링 활용 전략:** 옴니 참조는 이미지 간에 '피사체나 객체의 연속성(continuity)'이 중요할 때 사용하는 것이 가장 효과적입니다 [6]. 시리즈물이나 캠페인을 제작할 때 캐릭터 참조나 스타일 참조(`--sref`)와 결합하여 사용할 수 있지만, 참조 신호가 너무 많아지면 모델의 결과물 예측이 어려워질 수 있으므로 객체의 연속성이 반드시 필요한 경우에만 선별적으로 사용하는 것이 권장됩니다 [5, 6].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney V7]], [[Character Reference (--cref)]], [[Style Reference (--sref)]], [[Prompt Parameters]]
|
||||
- **Projects/Contexts:** [[미드저니 프롬프트 엔지니어링 및 일관된 시각적 서사(Series) 구축]]
|
||||
- **Contradictions/Notes:** 소스 26(MidJourney Docs)에서는 옴니 참조가 V7에서 기존의 캐릭터 참조(Character Reference)를 대체(replaces)한다고 명시하고 있으나 [4], 소스 2(Skywork)에서는 캐릭터 참조와 옴니 참조를 조합(combo)하여 캐릭터의 행동과 사물/크리처의 단서를 동시에 유지하는 프롬프트 공식을 제시하고 있어 적용 범위에 대한 약간의 설명 차이가 존재합니다 [5].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,29 @@
|
||||
# [[Parameter Control]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
파라미터 제어(Parameter Control)는 AI 이미지 생성 시 자연어 프롬프트만으로는 조절하기 어려운 이미지의 기술적, 미학적 요소를 세밀하게 제어하기 위해 사용하는 추가 명령어 체계입니다 [1, 2]. 주로 텍스트 프롬프트의 끝에 하이픈(`--`)과 함께 추가되거나, 괄호 및 숫자 가중치 형태로 텍스트 내에 입력됩니다 [1, 3]. 이를 통해 사용자는 이미지의 종횡비, 예술적 스타일의 강도, 무작위성, 특정 요소의 배제 등을 명확하고 정확하게 설정할 수 있습니다 [1, 3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
**미드저니(Midjourney)의 파라미터 제어**
|
||||
* **기본 문법**: 파라미터는 항상 텍스트 프롬프트의 가장 마지막에 위치해야 합니다 [1, 5, 6]. 이중 하이픈(`--`)으로 시작하며, 파라미터 이름과 지정할 값을 띄어쓰기로 구분하여 입력합니다. 이때 하이픈 사이나 파라미터에 구두점을 사용해서는 안 됩니다 [6].
|
||||
* **주요 매개변수 종류**:
|
||||
* **종횡비 (`--ar` 또는 `--aspect`)**: 이미지의 가로세로 비율을 조정합니다(예: `--ar 16:9`) [1, 3]. V7 모델에서는 최대 14:1의 파노라마 비율까지 지원합니다 [7].
|
||||
* **스타일화 (`--s` 또는 `--stylize`)**: 미드저니 고유의 예술적 개입 강도를 0에서 1000 사이의 수치로 조절합니다. 값이 높을수록 예술적 해석이 강해지고 낮을수록 텍스트 지시에 충실해집니다 [7, 8].
|
||||
* **혼돈 (`--c` 또는 `--chaos`)**: 0에서 100 사이의 값으로 설정하며, 초기 생성되는 4장의 결과물 간의 무작위성과 시각적 다양성을 높입니다 [4, 9].
|
||||
* **제외/부정 (`--no`)**: 이미지에서 원하지 않는 요소를 명시적으로 제거할 때 사용합니다 [4, 10].
|
||||
* **참조 제어 (`--sref`, `--cref`, `--oref`)**: 스타일 참조(`--sref`)는 이미지의 색감과 분위기를 복제하고, 캐릭터 참조(`--cref`)는 인물의 일관성을 유지합니다 [7, 8, 11]. 특히 V7에 도입된 옴니 참조(`--oref`)는 사물과 주체의 고유한 형태적 정체성까지 다른 환경에 재현해 냅니다 [7, 12].
|
||||
* **기타 제어**: 이미지 해상도와 렌더링 시간을 결정하는 품질(`--q`), 이미지 노이즈의 일관성을 유지하는 시드(`--seed`), 생성 과정을 도중에 멈추는 중단(`--stop`), 모델 버전을 지정하는 버전(`--v`) 등이 있습니다 [9, 13].
|
||||
|
||||
**스테이블 디퓨전(Stable Diffusion)의 가중치 제어 (Prompt Weights)**
|
||||
* **문법 및 가중치 조절**: 특정 단어나 구문의 중요도를 조절하기 위해 숫자를 직접 지정하는 `(keyword:factor)` 형태나 기호를 사용합니다 [2, 14]. `+` 기호는 가중치를 1.1배로 증가시키며, `-` 기호는 0.9배로 감소시킵니다(예: `(word)+`, `(word)-`) [14, 15].
|
||||
* **다중 단어 그룹화**: 여러 단어로 이루어진 구문에 동일한 가중치를 부여하고 싶을 때는 괄호 `()`를 사용하여 그룹화합니다 [14, 16]. 예를 들어 `(in the style of Tamara Łempicka)++`와 같이 적용할 수 있습니다 [16].
|
||||
* **CFG Scale 제어**: 모델이 긍정적 및 부정적 프롬프트 조건(Conditioning)을 얼마나 강력하게 따를지 결정하는 매개변수로, 제어의 전체적인 강도를 조정하는 데 필수적인 역할을 합니다 [17, 18].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney]], [[Stable Diffusion]], [[Prompt Weights]], [[Negative Prompt]]
|
||||
- **Projects/Contexts:** [[image prompt 작성 방법]]
|
||||
- **Contradictions/Notes:** 이미지 생성 플랫폼별로 파라미터를 제어하는 문법 규칙에 차이가 있습니다. 미드저니는 주로 프롬프트 끝에 이중 하이픈(`--`)을 붙이는 전용 매개변수 방식을 취하는 반면, 스테이블 디퓨전은 프롬프트 텍스트 내에서 괄호와 숫자, `+`/`-` 기호를 이용해 텍스트 토큰(단어) 자체의 가중치를 직접 조절하는 방식을 사용합니다 [2, 6, 7].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,26 @@
|
||||
# [[Parameter]]
|
||||
|
||||
## 📌 Brief 미드저니
|
||||
파라미터(Parameter)는 AI 이미지 생성 모델에서 결과물의 형태, 스타일, 품질, 일관성 등을 제어하기 위해 프롬프트의 텍스트 설명 뒤에 추가하는 특수 명령어이다 [1, 2]. 사용자는 파라미터를 통해 이미지의 종횡비, 예술적 개입 강도, 네거티브 프롬프트, 모델 버전 등을 세밀하게 조정할 수 있으며, 이는 모델이 텍스트를 시각적으로 해석하는 방식을 구체적으로 지시하는 역할을 한다 [3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **파라미터의 구문과 규칙:**
|
||||
파라미터는 텍스트 프롬프트의 가장 마지막 부분에 위치해야 한다 [4-6]. 미드저니(Midjourney)를 기준으로, 파라미터는 하이픈 두 개(`--`) 또는 엠대시(`—`)로 시작하며, 텍스트 프롬프트와 파라미터 사이에는 공백을 두어야 하지만 하이픈 사이에는 공백이 없어야 한다 [5, 6]. 또한 파라미터 내에는 쉼표나 마침표 같은 구두점을 사용해서는 안 된다 [6].
|
||||
|
||||
* **주요 미드저니(Midjourney) 파라미터 종류:**
|
||||
* **형태 및 비율 제어:** `--ar` 또는 `--aspect` 파라미터는 생성되는 이미지의 가로세로 비율(종횡비)을 변경한다(예: `--ar 16:9`, `--ar 3:2`) [4, 5, 7, 8].
|
||||
* **모델 및 품질 설정:** `--v` 또는 `--version` 파라미터로 특정 모델 버전(예: `--v 6.0`, `--v 7`)을 선택할 수 있다 [4, 8, 9]. `--q` 또는 `--quality`는 디테일 수준과 렌더링에 사용되는 GPU 시간을 제어한다(예: 0.25, .5, 1) [4, 8, 10]. V7의 경우, `--draft` 모드 파라미터를 사용하여 절반의 GPU 비용으로 초안 이미지를 빠르게 생성할 수도 있다 [7, 8].
|
||||
* **스타일 및 다양성 조정:** `--s` 또는 `--stylize` (0~1000)는 미드저니의 기본 미적 개입 강도를 조절하며, 값이 높을수록 예술적이고 낮을수록 텍스트 지시에 더 충실(리터럴)하게 된다 [3, 4, 8, 11, 12]. `--c` 또는 `--chaos` (0~100)는 결과물 간의 차이와 예측 불가능성을 높여 다양성을 부여하며 [4, 8, 13], `--weird` 파라미터는 독특하고 기이한 요소를 도입할 때 사용된다 [4, 8]. 또한 `--style raw` 파라미터는 미드저니 특유의 미화를 줄여 보다 사실적인 사진 느낌의 결과물을 낸다 [4, 8, 14].
|
||||
* **일관성 유지 (Reference 파라미터):** 생성된 이미지의 무작위성을 제어하기 위해 노이즈를 고정하는 `--seed` 파라미터를 사용할 수 있다 [4, 8, 10, 15]. 스타일을 참조할 때는 `--sref`를, 특정 캐릭터를 유지할 때는 `--cref`를 사용하며, V7에 추가된 옴니 참조 파라미터인 `--oref`는 캐릭터뿐만 아니라 특정 사물의 형태까지 복수 프롬프트에 걸쳐 일관되게 유지한다 [4, 8, 11, 12, 16-18]. 참조의 강도를 조절하기 위해 각각 `--sw`, `--cw`, `--ow`와 같은 가중치 파라미터가 동반된다 [4, 11, 18].
|
||||
* **제외 및 복합 제어:** 원하지 않는 요소를 뺄 때는 부정 프롬프트 파라미터인 `--no`를 사용한다 [8, 13, 19].
|
||||
|
||||
* **스테이블 디퓨전(Stable Diffusion)의 파라미터 제어 메커니즘:**
|
||||
스테이블 디퓨전에서는 CFG Scale(Classifier-Free Guidance Scale)이라는 매개변수를 통해 긍정 및 부정 프롬프트의 지시 강도를 통제한다 [20]. 특정 단어의 중요도는 괄호 문법 및 숫자 조합(예: `(word:1.5)` 또는 `(word)++`)의 가중치 파라미터로 세밀하게 부여할 수 있으며, 네거티브 프롬프트 영역에도 가중치를 적용하여 원하지 않는 결함을 효과적으로 차단한다 [21-25].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Weight]], [[Negative Prompt]], [[Aspect Ratio]], [[Style Reference]], [[Seed]]
|
||||
- **Projects/Contexts:** [[Midjourney V6 & V7]], [[Stable Diffusion]]
|
||||
- **Contradictions/Notes:** 파라미터를 사용하여 프롬프트에 가중치를 주거나 제어할 수 있지만, 지나치게 높은 가중치(예: (apple:2.5))나 충돌하는 파라미터를 동시에 사용하면 오히려 심각한 아티팩트를 발생시키거나 모델에 혼란을 주어 출력 품질을 떨어뜨릴 수 있으므로 주의해야 한다 [26, 27].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,34 @@
|
||||
# [[Positive Prompts]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
긍정 프롬프트(Positive Prompt)는 일반적으로 단순하게 '프롬프트(the prompt)'라고 불리며, 사용자가 AI를 통해 이미지에 구현하고자 하는 대상을 명확히 지시하는 텍스트입니다 [1]. 부정 프롬프트가 모델이 피해야 할 경계를 설정하는 역할을 한다면, 긍정 프롬프트는 이미지 생성의 최종 목적지(Target)와 방향성을 설정하는 역할을 수행합니다 [2, 3]. 주로 주체, 매체, 스타일, 조명, 구도 등의 요소를 포함하여 AI 모델이 명확한 시각적 결과를 출력하도록 돕습니다 [1, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **기본 정의 및 역할:**
|
||||
긍정 프롬프트는 이미지 생성 과정에서 최종적으로 도달해야 할 목적지를 정의합니다 [2]. 부정 프롬프트(Negative Prompt)가 원치 않는 요소를 피하게 해주는 것과 대조적으로, 긍정 프롬프트는 사용자가 화면에 나타나길 바라는 모든 세부 묘사를 담는 공간입니다 [1, 2].
|
||||
|
||||
* **핵심 구성 요소 (Core Elements):**
|
||||
효과적인 긍정 프롬프트를 구성하기 위해 일반적으로 다음의 층위들이 포함됩니다 [4-6].
|
||||
* **주체(Subject):** 인물, 사물, 풍경 등 이미지의 중심 초점이 되는 대상을 정의합니다. 단순한 명사보다 상황적 맥락과 형용사적 묘사를 더할 때 더 명확한 시각적 특징이 도출됩니다 [1, 5].
|
||||
* **매체 및 스타일(Medium & Style):** 유화, 수채화, 3D 렌더링 등의 예술적 도구와 사이버펑크, 인상주의 등의 미학적 형식을 결정하여 이미지의 텍스처와 패턴을 제어합니다 [5, 7].
|
||||
* **조명 및 색상(Color & Lighting):** 골든 아워, 네온 글로우, 소프트 박스 등 명암과 색 온도를 설정하여 전반적인 분위기를 조성합니다 [8, 9].
|
||||
* **구도 및 환경(Composition & Environment):** 카메라의 앵글, 렌즈 특성, 시점, 그리고 주체가 위치한 시공간적 배경을 정의합니다 [6, 8, 10].
|
||||
* **기술 매개변수(Parameters):** 모델별 고유 명령어(예: `--ar`, `--stylize`)를 통해 출력물의 종횡비나 예술적 개입 강도를 통제합니다 [6, 11].
|
||||
|
||||
* **구조화 및 구문(Syntax & Structure):**
|
||||
토큰들이 모델에 일관성 있게 인식되도록 긍정 프롬프트를 구역별로 나누어 구조화하는 것이 좋은 작성 습관입니다 [12]. 가장 보편적인 구조는 세 부분으로 나뉩니다 [13, 14].
|
||||
1. 주체 및 배경 묘사 (Subject & Setting)
|
||||
2. 색상, 스타일, 조명 (Color, Style, and Lighting)
|
||||
3. 구도 및 추가 수식어/매개변수 (Composition & Additional Modifiers)
|
||||
이처럼 연관된 키워드들을 그룹화하면 모델이 의도한 요소를 빠뜨리지 않고 최종 결과물에 반영할 확률이 높아집니다 [12].
|
||||
|
||||
* **긍정형 묘사의 원칙:**
|
||||
인공지능 모델(예: DALL-E, Stable Diffusion 등)은 "아니다(not)", "없다(without)", "하지 마라(don't)"와 같은 부정어나 가능성 표현을 제대로 처리하지 못하는 경향이 있습니다 [15-17]. 긍정 프롬프트 내에 부정어를 포함할 경우, 오히려 그 단어와 관련된 피사체가 이미지에 생성되는 역효과가 발생할 수 있습니다 (예: "케이크 없음"이라고 적으면 케이크가 나타날 수 있음) [18]. 따라서 원하는 특성만을 긍정적인 문장으로 묘사해야 하며, 제외하고 싶은 요소는 전용 매개변수(`--no`)나 부정 프롬프트를 통해 분리해서 처리해야 합니다 [15, 18].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Negative Prompts]], [[Prompt Structure]], [[Parameters]], [[Style Modifiers]]
|
||||
- **Projects/Contexts:** [[AI Image Generation]], [[Prompt Engineering]]
|
||||
- **Contradictions/Notes:** 긍정 프롬프트 내에서 원치 않는 요소를 제거하기 위해 "without"이나 "no"를 사용하면 모델이 이를 오해하여 오히려 해당 요소를 긍정적 지시로 받아들이고 생성할 수 있습니다. 피하고 싶은 요소는 반드시 긍정 프롬프트가 아닌 부정 프롬프트 영역이나 전용 배제 명령어(예: Midjourney의 `--no` 매개변수)를 통해 처리해야 합니다 [17, 18].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,30 @@
|
||||
# [[Prompt Structure]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
프롬프트 구조(Prompt Structure)는 인공지능이 사용자의 의도를 시각적 기호로 정확히 번역할 수 있도록 텍스트 지시어를 논리적, 계층적으로 배치하는 방식을 의미합니다[1]. 성공적인 프롬프트는 일반적으로 주체, 맥락 및 환경, 스타일 및 매체, 조명 및 구도, 그리고 모델 특화 매개변수 등의 명확한 층위로 구성됩니다[1, 2]. 이러한 구조화된 접근은 단순한 단어의 나열을 넘어 AI의 모델별 메커니즘에 최적화된 고품질의 결과물을 도출하는 핵심 요소입니다[3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **핵심 4~5단계 계층 구조 (Core 4-5 Layer Structure)**
|
||||
효과적인 프롬프트는 기술적인 매뉴얼이라기보다는 명확한 대화형 구조를 가지며, 대개 15~50단어 내외의 문장으로 구성됩니다[2, 5]. 고품질 이미지를 생성하기 위한 표준적인 프롬프트 층위는 다음과 같습니다.
|
||||
* **주체 (Subject):** 이미지의 중심 초점이 되는 대상(인물, 사물, 장면 등)을 명확히 정의합니다. "늙은 남자"보다는 "풍파를 겪은 손을 가진 나이 든 어부"와 같이 구체적인 특징을 부여해야 합니다[2, 6-8].
|
||||
* **맥락 및 환경 (Context/Environment):** 주체가 존재하는 공간, 배경, 시간을 설정하여 작품에 서사와 분위기를 부여합니다[2, 9, 10].
|
||||
* **스타일 및 매체 (Style/Medium):** 사진, 수채화, 3D 렌더링, 유화 등 예술적 매체와 질감을 명시하여 출력물의 전반적인 미학을 결정합니다[7, 11, 12].
|
||||
* **세부 묘사 및 구도 (Details/Composition):** 카메라 각도, 조명(예: 골든 아워, 네온 글로우), 감정적 분위기(Mood) 등을 추가하여 최종 출력물의 품질과 톤을 정교하게 다듬습니다[6, 13-15].
|
||||
* **기술적 매개변수 (Parameters):** 플랫폼의 특성에 맞춰 프롬프트의 맨 끝에 종횡비(`--ar`), 스타일화 정도(`--stylize`) 등을 배치하여 기술적 통제를 가합니다[16-18].
|
||||
|
||||
* **플랫폼 및 매체별 구조화 차이**
|
||||
* **미드저니(Midjourney):** `명령어(/imagine) -> 이미지 URL(스타일 참조 등) -> 텍스트 프롬프트 -> 매개변수(--ar, --v 등)`의 순서를 따르는 것이 표준 구조입니다[16].
|
||||
* **동영상 생성 모델 (Veo 3.1 등):** `[카메라 촬영기법] + [주체] + [동작] + [맥락] + [스타일 및 분위기]`의 공식을 사용하여 프레임 내 움직임과 카메라 워크를 구조적으로 제어합니다[19].
|
||||
|
||||
* **프롬프트 작성 및 구조화 전략**
|
||||
* **점진적 반복 (Iterative Refinement):** 처음부터 완벽하고 긴 구조를 짜기보다는 단순한 구조(핵심 아이디어)에서 시작하여 결과를 확인한 후, 점진적으로 조명, 구도 등의 세부 사항을 덧붙여가는 방식이 권장됩니다[20-22].
|
||||
* **단일 초점 유지:** 시각적 구도는 하나의 메인 포커스를 가져야 하므로, 너무 많은 객체나 모순되는 스타일(예: "사실적이면서 추상적인")을 혼합하지 않도록 주의해야 합니다[23, 24].
|
||||
* **네거티브 프롬프트(Negative Prompt)의 구조화:** 스테이블 디퓨전(Stable Diffusion) 등에서는 원치 않는 요소를 긍정 프롬프트에 섞는 대신 네거티브 프롬프트 영역을 활용합니다. 이를 '기술적 결함(저화질 등)', '현실성 왜곡(CGI 느낌 등)', '해부학적 오류(손가락 기형 등)'의 층위로 나누어 작성하면 더욱 효과적입니다[25, 26].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Negative Prompts]], [[Parameters]], [[Style Modifiers]], [[AI Image Generators]]
|
||||
- **Projects/Contexts:** [[Midjourney / DALL-E 3 / Stable Diffusion Prompting Workflow]]
|
||||
- **Contradictions/Notes:** 소스에 따라 텍스트 프롬프트 내 순서 배열에 대한 이견이 존재합니다. 일부 가이드에서는 예술 스타일과 매체(Art style and medium)를 프롬프트의 가장 앞부분에 배치하는 것이 AI의 해석에 유리하다고 주장하는 반면[27], 다른 가이드에서는 주체(Subject)를 가장 먼저 명시하고 스타일을 그 뒤에 덧붙이는 구조를 표준으로 제시합니다[2].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,17 @@
|
||||
# [[Signature Style Design]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
시그니처 스타일 디자인(Signature Style Design)은 인공지능 이미지 생성 시 둘 이상의 스타일 코드를 혼합하여 다른 사람들과 차별화되는 창작자만의 고유한 시각적 정체성(Signature Style)을 구축하는 기법을 의미합니다 [1]. 이는 단순한 기존 예술 스타일의 모방을 넘어, AI와의 협업을 통해 창작자 고유의 미적 코드를 발굴하고 일관된 브랜드 이미지를 유지하는 데 핵심적인 역할을 합니다 [1-3].
|
||||
|
||||
## 📖 Core Content
|
||||
* **다중 스타일 코드 혼합을 통한 고유성 창출:** 미드저니(Midjourney)와 같은 AI 이미지 생성 모델에서는 `--sref`(Style Reference) 매개변수를 활용하여 특정 이미지의 미학이나 색감, 질감을 새로운 생성물에 적용할 수 있습니다 [1, 4, 5]. 시그니처 스타일을 완성하기 위해서는 단일 스타일에 국한되지 않고, 두 개 또는 세 개의 다른 스타일 코드를 함께 혼합하여 오직 창작자 자신에게만 속하는 독보적인 스타일을 창조하는 방식이 권장됩니다 [1].
|
||||
* **브랜드 및 시각적 일관성 유지:** 이렇게 만들어진 고유한 시그니처 스타일은 특정 브랜드나 소셜 미디어 피드를 위해 일관된 느낌(vibe)을 유지하는 데 매우 효과적입니다 [1]. 2026년에 새롭게 도입된 스타일 탐색기(Style Explorer) 등의 도구를 활용하면, 창작자는 자신만의 미적 코드를 라이브러리 형태로 구축하고 이를 프롬프트에 즉각적으로 적용하여 일관된 톤앤매너를 유지할 수 있습니다 [2].
|
||||
* **미래 창작 워크플로우에서의 필수 역량:** 인공지능 기술이 발전함에 따라 창작자들은 보편적인 미학에 의존하기보다, 여러 스타일의 조합과 개인화 매개변수(`--p`)를 활용해 자신만의 '고유한 스타일 코드'를 구축하는 데 집중해야 합니다 [2, 3]. 이는 수많은 AI 예술 작품들 속에서 창작자의 결과물을 돋보이게 만드는 차별화된 경쟁력이 됩니다 [1, 3].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Style Reference (--sref)]], [[Personalization (--p)]], [[Midjourney Prompts]]
|
||||
- **Projects/Contexts:** [[일관된 브랜드 정체성 및 소셜 미디어 피드 구축]], [[에이전틱 크리에이티브(Agentic Creative) 시대의 창작 워크플로우]]
|
||||
- **Contradictions/Notes:** 제공된 소스 내에서 시그니처 스타일 디자인에 대한 상충되는 의견이나 한계점은 명시되어 있지 않으며, 다중 스타일 참조를 결합하여 고유성을 확보하는 강력한 프롬프트 전략(Pro Tip)으로 권장되고 있습니다 [1].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,18 @@
|
||||
# [[Stable Diffusion Image Optimization]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
스테이블 디퓨전(Stable Diffusion) 이미지 최적화는 프롬프트 가중치 조절, 부정 프롬프트(Negative Prompt)의 전략적 활용, 그리고 컨트롤넷(ControlNet)과 같은 고급 제어 기술을 통해 AI 이미지 생성의 품질과 정밀도를 극대화하는 과정입니다. 사용자는 문장 형태가 아닌 쉼표로 구분된 태그 방식과 특수한 기호 문법을 통해 모델이 특정 단어에 부여하는 중요도를 세밀하게 조정할 수 있습니다. 이를 통해 반복 생성(reroll)에 드는 시간을 절약하고 모델의 편향을 제어하여 원하는 예술적 결과물을 일관되게 얻을 수 있습니다.
|
||||
|
||||
## 📖 Core Content
|
||||
* **프롬프트 가중치(Prompt Weights) 제어**: 스테이블 디퓨전에서 사용자의 의도를 가장 정확하게 반영하는 방법은 프롬프트 단어들의 가중치를 조절하는 것입니다 [1]. 프롬프트는 완전한 문장보다는 쉼표로 구분된 태그의 나열이 효과적이며, 높은 품질을 나타내는 태그(예: masterpiece, best quality)로 시작하는 것이 좋습니다 [2]. 특정 단어 뒤에 괄호와 수치를 적용하여 중요도를 조절할 수 있는데, 기본값 1을 기준으로 1.1~2.0은 해당 요소의 강조를, 0~0.9는 약화를 의미합니다 [3]. `(keyword:factor)` 형태의 숫자 입력뿐만 아니라 `(keyword)+`나 `(keyword)-`와 같이 기호를 사용한 중첩 적용도 가능합니다 [1, 4]. 단어의 가중치뿐만 아니라 프롬프트 내에 단어가 배치된 순서 자체도 결과물에 큰 영향을 미칩니다 [5].
|
||||
* **네거티브 프롬프트(Negative Prompt)의 전략적 활용**: 포지티브 프롬프트가 이미지의 '목표 지점'을 설명한다면, 네거티브 프롬프트는 모델이 빠지기 쉬운 실패 패턴을 차단하는 '회피 지도(avoidance map)' 역할을 수행합니다 [6]. 단순히 "나쁜(bad)"과 같은 모호한 단어를 나열하기보다는 이미지를 분석하여 "여섯 개의 손가락(extra fingers)", "비대칭 눈(asymmetrical eyes)", "워터마크(watermark)" 등 구체적인 결함 요소를 명시해야 모델의 편향을 효과적으로 억제할 수 있습니다 [7, 8]. 네거티브 프롬프트에도 가중치를 부여하여 특정 결함을 더욱 강하게 차단하는 것이 가능합니다 [9, 10].
|
||||
* **CFG 스케일 및 파라미터 튜닝**: CFG 스케일(Classifier-Free Guidance Scale)은 생성되는 이미지가 사용자가 입력한 프롬프트 지시를 얼마나 강력하게 따를지 결정하는 안내 강도입니다 [6, 11]. 일반적으로 7에서 15 사이의 값이 권장됩니다 [12]. 네거티브 프롬프트를 명확하게 작성하지 않은 상태에서 CFG 스케일만 높이면 오히려 잘못된 지시사항이나 편향을 더 강하게 따르게 되므로, 프롬프트와 파라미터 간의 균형이 중요합니다 [13].
|
||||
* **컨트롤넷(ControlNet)을 통한 픽셀 단위 통제**: 스테이블 디퓨전은 텍스트 프롬프트의 한계를 넘어선 하드웨어 수준의 제어를 제공합니다. 컨트롤넷을 활용하면 이미지의 뼈대(Pose)나 윤곽선(Canny Edge) 정보를 강제로 주입하여 인체의 자세나 사물의 배치를 픽셀 단위로 통제할 수 있습니다 [1].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 가중치 문법(Prompt Weights Syntax)]], [[네거티브 프롬프트(Negative Prompt)]], [[CFG 스케일(CFG Scale)]], [[컨트롤넷(ControlNet)]]
|
||||
- **Projects/Contexts:** [[오픈소스 이미지 생성 파이프라인 및 미세 조정(Fine-tuning) 워크플로우]]
|
||||
- **Contradictions/Notes:** 가중치를 낮추거나 부정적인 의미를 부여하는 문법 기호에 대해 소스 간 설명의 차이가 있습니다. 특정 가이드에서는 대괄호 `[]`나 `-` 기호가 가중치를 0.9배로 약화시키는 역할을 한다고 명시하지만 [1, 3], 다른 시스템(Graydient AI 등)의 파서 규칙에 따르면 대괄호 `[]`는 네거티브 프롬프트로 작동하며, 단순히 숫자를 낮추는 것과 명시적인 네거티브 프롬프트를 사용하는 것은 기술적으로 다른 결과를 낳는다고 조언합니다 [14, 15]. 따라서 사용 중인 UI나 파서 버전에 맞는 정확한 문법 확인이 필요합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,29 @@
|
||||
# [[Stable Diffusion Weights]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Stable Diffusion 프롬프트 가중치(Prompt Weights)는 텍스트 프롬프트 내 특정 단어나 구문의 중요도를 숫자로 강조하거나 약화시켜 AI가 생성하는 이미지를 더욱 정밀하게 제어하는 기법입니다 [1-3]. 기본 가중치 값은 1이며, 사용자는 기호(`+`, `-`, `()`, `[]`)나 숫자를 활용하여 모델이 특정 피사체나 속성에 얼마나 주의를 기울일지 직접 설정할 수 있습니다 [1, 4]. 이 기능은 긍정적인 요소의 강조뿐만 아니라 부정 프롬프트(Negative Prompt)와 결합하여 원치 않는 시각적 결함을 효과적으로 차단하는 데에도 폭넓게 활용됩니다 [5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
|
||||
* **가중치 조절의 기본 문법과 수학적 원리**
|
||||
* 프롬프트의 단어나 구문 뒤에 **`+` 기호나 1.1에서 2 사이의 숫자**를 추가하면 해당 요소의 비중이 커지며, **`-` 기호나 0에서 0.9 사이의 숫자**를 추가하면 비중이 작아집니다 [1].
|
||||
* 수학적으로 `+` 기호는 기본값 대비 1.1배의 가중치를 의미합니다. 기호가 중첩될수록 이 값은 제곱으로 증가합니다(예: `++`는 1.1², `+++`는 1.1³). 반대로 `-` 기호는 0.9배를 의미하며, 중첩 시 0.9², 0.9³으로 계산됩니다 [7, 8].
|
||||
* `(keyword:factor)` 형태의 직접적인 숫자 지정 문법이 가장 보편적으로 활용되며, 특정 엔진에서는 단어를 괄호 `()`로 감싸면 1.1배 강조, 대괄호 `[]`로 감싸면 부정 또는 약화의 의미로 동작합니다 [3, 4, 9]. 복잡한 구문일 경우 `(in the style of expressionism)+`와 같이 전체를 괄호로 묶어 가중치를 부여할 수 있습니다 [10].
|
||||
|
||||
* **가중치 적용의 한계 및 모범 사례**
|
||||
* 가중치를 지나치게 높게 설정하면 해당 단어가 강하게 반영되기는 하나, **과도한 수치나 여러 강조 구문의 중첩(예: `((dog:2.0))`)은 오히려 이미지의 전반적인 품질을 저하시키거나 프롬프트 충돌을 일으킬 위험**이 큽니다 [1, 4, 11].
|
||||
* 소수점 단위의 지나치게 정밀한 조절(예: 0.55와 0.553의 차이)은 실제 생성 결과에 거의 영향을 미치지 않으므로 소수점 한두 자리 수준의 조정으로 충분합니다 [12].
|
||||
* 특히 특정 화풍이나 인물을 학습시킨 **LoRA 모델과 결합할 때는 0.7 정도의 가중치로 시작하는 것이 가장 안전**합니다. 이는 베이스 모델의 기본 화풍을 훼손하지 않으면서도 의도한 효과를 안정적으로 얻을 수 있는 최적의 타협점입니다 [13, 14].
|
||||
|
||||
* **부정 프롬프트(Negative Prompt)와의 결합**
|
||||
* 프롬프트 가중치 조절은 부정 프롬프트 영역에서도 동일하게 작동하여, 이미지 생성 시 반복적으로 발생하는 오류(예: 기형적인 손, 흐릿함 등)를 제어하는 데 효과적입니다 [6].
|
||||
* 예를 들어, `(blurry:1.5)`나 `(deformed:1.2)`처럼 부정적인 요소에 약간의 가중치를 부여하면, 생성 모델의 샘플러(Sampler)가 해당 개념을 회피하도록 더 강하게 압박할 수 있습니다 [6].
|
||||
* 단, 부정 프롬프트에 너무 공격적인 가중치를 할당하면 이미지의 전반적인 구도나 형태에 전혀 다른 부작용을 일으킬 수 있으므로, 적절한 수준의 가중치를 유지하는 것이 중요합니다 [6, 15].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Negative Prompts]], [[LoRA]]
|
||||
- **Projects/Contexts:** [[오픈소스 이미지 생성 모델 제어]]
|
||||
- **Contradictions/Notes:** 소스에 따르면 프롬프트 가중치를 표현하는 문법은 플랫폼이나 사용자 인터페이스마다 약간의 차이가 존재합니다. 오픈소스 Stable Diffusion 인터페이스 등에서는 `()`와 `[]`를 사용한 가중치 증감 문법이 통용되지만, 특정 플랫폼(예: getimg.ai)에서는 호환성 문제로 인해 해당 문법을 지원하지 않고 오직 `+/-` 기호 및 명시적인 숫자 기반의 문법 사용만을 권장합니다 [3-5]. 또한, 가중치 값이 0 미만인 '음수 가중치'는 일반적인 부정 프롬프트와 달리 기괴하고 예측할 수 없는 결과를 초래할 수 있으므로, 특정 대상을 화면에서 지우고 싶다면 음수 가중치보다는 일반 부정 프롬프트(`[]`)를 사용하는 것이 올바른 접근법입니다 [13, 16].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,19 @@
|
||||
# [[Stable Diffusion 오픈소스 제어]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Stable Diffusion은 Stability AI에서 개발한 오픈소스 텍스트-이미지 생성 AI 모델로, 사용자에게 모델 훈련과 하드웨어 수준의 정밀한 제어 권한을 제공합니다 [1-3]. 클라우드 기반의 다른 모델들과 달리 충분한 컴퓨팅 자원을 갖춘 로컬 머신에서 구동 가능하여 프라이버시를 보장하고 다양한 커뮤니티 커스텀 모델을 활용할 수 있습니다 [4, 5]. 프롬프트 가중치 조절, 부정 프롬프트, 컨트롤넷(ControlNet) 등의 특화 기능을 통해 생성 결과물을 픽셀 단위까지 세밀하게 제어할 수 있는 것이 핵심 특징입니다 [3].
|
||||
|
||||
## 📖 Core Content
|
||||
* **오픈소스 기반의 유연성과 로컬 구동:** Stable Diffusion은 완전한 제어권과 도메인 특화 커스터마이징을 제공하는 오픈소스 확산(Diffusion) 모델입니다 [2, 5]. 충분한 GPU를 갖춘 시스템에서 오프라인으로 작동할 수 있으며, 커뮤니티에서 개발한 수천 개의 모델을 자유롭게 활용할 수 있습니다 [4, 6]. 다만 초보자에게는 초기 설정과 로컬 구동 구성이 다소 복잡할 수 있다는 진입 장벽이 존재합니다 [7].
|
||||
* **프롬프트 가중치(Prompt Weights)를 통한 미세 조정:** `(keyword:factor)`와 같은 문법을 통해 텍스트 프롬프트 내 특정 단어의 중요도를 숫자로 지정할 수 있습니다 [3]. 예를 들어 `+` 기호나 `(단어:1.1)` 구문을 사용해 특정 개념을 강조하고, `-` 기호나 `(단어:0.9)`로 비중을 낮춰 요소들 간의 시각적 균형을 미세하게 제어합니다 [8, 9].
|
||||
* **부정 프롬프트(Negative Prompt)의 전략적 사용:** 워터마크, 변형된 손가락, 저화질 등 원치 않는 요소를 명시적으로 차단하기 위해 부정 프롬프트를 활용합니다 [3, 10]. 이는 단순히 이미지를 다듬는 것을 넘어 생성 과정 전반에서 모델의 방향성을 제어하는 필수 도구로, 원하는 결과물을 얻기 위한 반복 생성(Reroll) 횟수를 최대 80%까지 줄여줍니다 [10, 11].
|
||||
* **CFG Scale 및 매개변수 제어:** 생성 과정의 무작위성을 통제하기 위해 샘플링 스텝(sampling steps)과 CFG 스케일(Classifier-Free Guidance Scale)을 조정할 수 있습니다 [12]. 특히 CFG 스케일은 모델이 긍정적 프롬프트와 부정적 프롬프트를 얼마나 강력하게 따를지 결정하는 지시 강도(intensity of guidance) 역할을 수행합니다 [13].
|
||||
* **컨트롤넷(ControlNet)을 이용한 픽셀 단위 통제:** 단순 텍스트 지시어를 넘어, 이미지의 뼈대(Pose)나 윤곽선(Canny Edge) 정보를 강제로 주입하는 수준 높은 고급 제어 기술입니다 [3]. 이를 통해 인체의 자세나 사물의 배치를 픽셀 단위로 완벽하게 통제하여 프롬프트가 가진 언어적 한계를 시각적으로 극복할 수 있습니다 [3].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[프롬프트 가중치(Prompt Weights)]], [[부정 프롬프트(Negative Prompt)]], [[컨트롤넷(ControlNet)]], [[CFG 스케일(Classifier-Free Guidance Scale)]]
|
||||
- **Projects/Contexts:** [[로컬 환경 구동 및 커스텀 모델 활용 맥락]], [[오픈소스 기반 이미지 생성 파이프라인 구축]]
|
||||
- **Contradictions/Notes:** 프롬프트 가중치 문법과 관련하여, 일반적인 스테이블 디퓨전 환경에서는 `[]` 기호를 부정 가중치(0.9배 약화)로 사용하기도 하지만 [3], getimg.ai와 같은 일부 인터페이스나 변형 플랫폼에서는 해당 대괄호 문법을 지원하지 않고 오직 `+/-` 기호나 숫자 가중치 구문만을 인식하는 등 사용 환경에 따라 문법 지원에 차이가 존재합니다 [3, 14, 15].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,27 @@
|
||||
# [[Stable Diffusion의 가중치 제어 문법]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Stable Diffusion에서 프롬프트 가중치(Prompt Weight) 제어 문법은 특정 단어나 구절의 상대적 중요도를 조절하여 생성되는 이미지에 미치는 영향을 제어하는 기법입니다 [1, 2]. 일반적으로 괄호와 숫자, 또는 특정 기호를 사용하여 가중치를 높이거나 낮출 수 있으며, 이를 통해 사용자는 여러 시각적 요소나 스타일 간의 균형을 세밀하게 조정할 수 있습니다 [1, 3, 4].
|
||||
|
||||
## 📖 Core Content
|
||||
* **가중치 조절의 기본 원리:**
|
||||
프롬프트 내 요소들의 가중치 기본값은 1로 설정됩니다 [1, 5]. 가중치를 늘리기 위해서는 일반적으로 1.1에서 2 사이의 숫자를 사용하고, 영향을 줄이기 위해서는 0에서 0.9 사이의 숫자를 사용합니다 [1]. 과도하게 높은 가중치를 부여하면 하나의 프롬프트가 전체를 지배하게 되어 이미지 품질이 저하되거나 렌더링에 실패할 위험이 있습니다 [1, 5, 6]. 특히 LoRA를 사용할 때 가장 안전하게 출발할 수 있는 가중치 값은 0.7 수준입니다 [5, 7].
|
||||
|
||||
* **주요 문법 및 사용법:**
|
||||
* **숫자 지정 문법 (`(keyword:factor)`):** 괄호 안에 키워드와 가중치 숫자를 콜론(:)으로 구분하여 입력하는 방식이 가장 대표적입니다 [2, 8, 9]. 예를 들어 `(dog:1.1)`은 해당 단어의 중요도를 1.1배로 높이고, `(dog:0.7)`은 0.7배로 약화시킵니다 [6, 7]. 소수점 둘째 자리 이상의 정밀도는 결과에 큰 차이를 주지 않습니다 [10].
|
||||
* **기호 기반 문법:** 단어나 구문 뒤에 `+` 기호를 추가하여 강도를 높이거나, `-` 기호를 추가하여 낮출 수 있습니다 [1, 9]. 이 기호들은 중첩될수록 효과가 배가되며, 예를 들어 `++`는 $1.1^2$, `--`는 $0.9^2$의 가중치로 계산됩니다 [9].
|
||||
* **괄호 및 대괄호 활용:** `()`를 사용하여 단어를 묶으면 가중치를 1.1배 강조하는 효과가 있으며, `[]`를 사용하면 0.9배로 약화시킵니다 [2, 8, 11].
|
||||
|
||||
* **다중 요소의 중첩(Nesting) 및 상대적 비중 조정:**
|
||||
사용자는 괄호를 중첩하여 `(penguin (holding a beer+)++)`와 같이 복잡한 계층의 가중치를 설정할 수 있습니다 [9]. 이는 복합적인 장면에서 유용한데, 예를 들어 "사과 파이(apple pie)"에서 `apple+++ pie`를 입력해 사과의 비중을 높이거나, 상충하는 두 가지 예술 스타일이 섞일 때 `(Style A)-, (Style B)+`처럼 상대적 비중을 다르게 제어할 수 있습니다 [3, 12, 13].
|
||||
|
||||
* **부정 프롬프트(Negative Prompt)와의 결합:**
|
||||
가중치 문법은 이미지에서 배제하고자 하는 요소를 통제하는 부정 프롬프트에도 적용됩니다 [14]. 특정 형태나 텍스트가 지속적으로 잘못 생성된다면, 해당 부정 키워드의 가중치(예: `[(bad:1.2)]`)를 높여 모델이 이를 더 강력하게 회피하도록 유도할 수 있습니다 [14, 15].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Prompt Engineering]], [[Negative Prompt]]
|
||||
- **Projects/Contexts:** [[AI 이미지 생성 워크플로우]]
|
||||
- **Contradictions/Notes:** 플랫폼 간 문법 지원 차이가 존재합니다. 대다수의 오픈소스 Stable Diffusion 인터페이스나 일반적인 가이드는 `()`로 강조하고 `[]`로 약화시키는 문법을 지원하지만 [2, 8], getimg.ai와 같은 특정 플랫폼 도구에서는 이러한 대안적 괄호 문법을 지원하지 않으며, 오직 `+/-` 기호나 명시적 숫자를 통한 가중치 문법만을 사용하도록 권장합니다 [14, 16].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,17 @@
|
||||
# [[Style Reference (--sref)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Style Reference(`--sref`)는 하나 이상의 참조 이미지 URL을 사용하여 해당 이미지의 시각적 스타일, 분위기, 색상 팔레트를 새로운 결과물에 직접 적용하는 Midjourney의 매개변수입니다 [1-3]. 이 기능은 브랜드의 시각적 미학을 유지하거나 여러 결과물 간에 일관된 테마를 맞출 때 특히 유용하게 활용됩니다 [2, 4]. 복잡한 텍스트 묘사에 의존하는 대신 참조 이미지의 시각적 느낌(vibe)을 그대로 빌려올 수 있으며, `--sw` 매개변수를 통해 스타일의 반영 강도를 조절할 수 있습니다 [1, 3].
|
||||
|
||||
## 📖 Core Content
|
||||
- **스타일 참조의 적용 및 기능**: 기본적으로 텍스트 프롬프트 끝에 `--sref` 매개변수를 작성하고 참조할 이미지의 URL을 추가하여 사용합니다 [1]. 특히 Midjourney V7 모델에서는 **두 개 이상의 이미지 URL을 공백으로 구분하여 입력함으로써 여러 스타일을 효과적으로 결합**할 수 있도록 정확도가 개선되었습니다 [5]. 또한, `/describe` 명령어로 묘사된 이미지의 스타일을 새로운 결과물에 적용하여 시각적 응집력을 높일 수도 있습니다 [6].
|
||||
- **세부 제어 매개변수**: 스타일 참조의 영향을 제어하기 위해 여러 추가 매개변수를 함께 사용할 수 있습니다. **스타일 가중치인 `--sw` (Style Weight)** 값을 높이거나 낮춤으로써 참조 이미지가 결과물에 미치는 영향력을 조절할 수 있습니다 [1, 3]. 더불어 `--sv` (Style Reference Versions) 매개변수를 통해 특정 스타일 참조 버전을 선택하는 것도 가능합니다 [3].
|
||||
- **효과적인 프롬프트 작성 팁**: `--sref`를 성공적으로 활용하려면 **텍스트 프롬프트 내에서 스타일 관련 단어를 최소화**하고 참조 이미지 자체의 효과에 의존하는 것이 좋습니다 [1]. 짧은 텍스트 프롬프트에 `--sref`, `--ar`(종횡비), `--v 7`(버전) 등의 매개변수를 조합하면 깨끗하고 일관성 있는 이미지를 얻을 수 있습니다 [5, 7]. 실무 작업 시에는 다양한 참조를 한 번에 섞기보다, 안전한 3-5개의 참조 이미지를 기반으로 1개의 주요 스타일 참조를 설정하여 초안을 생성하는 방식이 추천됩니다 [8].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** `[[Style Weight (--sw)]]`, `[[Omni Reference (--oref)]]`, `[[Character Reference (--cref)]]`, `[[Midjourney Parameters]]`
|
||||
- **Projects/Contexts:** `[[Midjourney V7 Workflow]]`, `[[Brand Aesthetic Maintenance]]`
|
||||
- **Contradictions/Notes:** 소스에 따르면 `--sref`는 전반적인 '스타일(분위기나 색상 팔레트)'을 일치시키는 데 사용됩니다. 반면 특정 피사체, 물체, 또는 캐릭터의 형태적 정체성을 동일하게 유지하려면 `--sref` 대신 옴니 참조(`[[Omni Reference (--oref)]]`)나 캐릭터 참조(`[[Character Reference (--cref)]]`)를 사용해야 한다고 명확히 구분하고 있습니다 [5, 8, 9].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,26 @@
|
||||
# [[V7 Draft Mode Workflow]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Midjourney V7에서 새롭게 도입된 'Draft Mode(초안 모드)'는 프롬프트 엔지니어링 및 이미지 생성 파이프라인의 효율성을 극대화하는 핵심 기능입니다 [1]. `--draft` 매개변수를 사용하여 표준 렌더링 대비 약 10배 빠른 속도와 절반의 GPU 비용으로 초기 컨셉 이미지를 신속하게 생성할 수 있습니다 [1-3]. 이를 통해 작업자는 본격적인 고품질 렌더링에 앞서 다양한 프롬프트 아이디어를 저비용으로 테스트하고 가장 유망한 방향성을 미리 선별할 수 있습니다 [4, 5].
|
||||
|
||||
## 📖 Core Content
|
||||
* **비용 및 생성 속도 최적화**
|
||||
V7의 Draft Mode는 기존 생성 방식보다 약 10배 빠르며, GPU 비용을 절반 수준으로 절감합니다 [1, 2]. 사용자는 제한된 월간 'Fast' 시간을 낭비하지 않으면서도, 약간 낮은 해상도의 프리뷰를 빠르게 생성해 프롬프트의 의도를 점검하고 완성해 나갈 수 있습니다 [4, 6].
|
||||
|
||||
* **권장되는 단계적 워크플로우 (Staged Process)**
|
||||
모든 프롬프트를 곧바로 최종 에셋으로 생성하는 방식은 비용이 많이 들고 비효율적입니다 [5]. 따라서 V7 환경에서는 Draft Mode를 활용한 다음과 같은 검토 루프(Review loop) 기반의 워크플로우가 권장됩니다 [7].
|
||||
1. **초기 탐색:** 다양한 프롬프트와 종횡비를 사용하여 저렴한 비용으로 여러 개의 Draft 시안을 대량으로 생성합니다 [5].
|
||||
2. **선별 작업:** 생성된 러프 컨셉(Rough concepts) 중 가장 유망한 구도와 방향성을 사용자나 팀의 리뷰어가 선별합니다 [2, 5].
|
||||
3. **고품질 렌더링:** 선택된 후보 이미지에만 전체 해상도(Full-resolution) 파라미터를 적용하여 최종 결과물로 승격(Promote)시킵니다 [5, 6].
|
||||
4. **반복 및 재사용:** 후속 수정 작업을 위해 성공적인 결과물의 시드(Seed)와 참조(References) 정보를 저장하여 재사용합니다 [5, 8].
|
||||
|
||||
* **시스템 및 제품 로직 설계의 이점**
|
||||
Draft Mode는 단순한 UI 기능을 넘어 기업 및 개발팀의 비용 통제 원형(cost-control primitive)으로 작용합니다 [1]. 이미지 생성 과정을 단계적으로 분리함으로써, 고비용의 향상 작업을 진행하기 전에 안전하지 않거나 브랜드 가이드라인에 맞지 않는 결과물을 미리 거르거나 인간의 리뷰 단계를 삽입하기가 훨씬 용이해집니다 [7].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Midjourney Parameters]], [[Iterative Prompting]]
|
||||
- **Projects/Contexts:** [[Midjourney V7 API Workflow]], [[Image-Generation Product Flow]]
|
||||
- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다. (제공된 소스들 사이에서 V7 Draft Mode의 기능이나 효용성에 대해 상충되는 의견이나 모순점은 발견되지 않았습니다.)
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,27 @@
|
||||
# [[Vary Region (인페인팅)]]
|
||||
|
||||
## 📌 Brief Summary
|
||||
Vary Region(인페인팅)은 업스케일된 AI 생성 이미지에서 전체를 변경하지 않고 사용자가 선택한 특정 영역만을 수정하거나 다시 생성할 수 있게 해주는 편집 기능이다[1-3]. 이 도구를 활용하면 이미지의 작은 오류를 수정하거나 새로운 요소를 추가하는 등 정밀한 부분 편집을 수행할 수 있다[2, 4]. 이미지를 처음부터 다시 생성할 필요 없이 원하는 부분만 지역적으로 수정(localize fixes)할 수 있어 창작 워크플로우의 효율성을 극대화한다[5, 6].
|
||||
|
||||
## 📖 Core Content
|
||||
* **작동 방식 및 사용 절차**
|
||||
* 사용자는 먼저 이미지를 업스케일(Upscale)한 뒤 'Vary (Region)' 버튼을 클릭하여 편집 인터페이스를 연다[7, 8].
|
||||
* 팝업 에디터에서 직사각형(Rectangle) 또는 자유형(Freehand) 선택 도구를 사용하여 수정할 영역을 지정한다[7, 8].
|
||||
* 리믹스 모드(Remix Mode)가 활성화된 상태라면, 해당 영역에 생성하고자 하는 내용으로 프롬프트를 직접 수정하여 입력한 뒤 제출(Submit)하면 마법처럼 합성된다[3, 9, 10].
|
||||
|
||||
* **프롬프트 작성 및 영역 선택(Selection) 팁**
|
||||
* **선택 영역의 크기 조절**: 선택 영역의 크기는 AI가 새로운 콘텐츠를 기존 이미지와 매끄럽게 병합하기 위한 맥락(Context)을 제공하므로 매우 중요하다[3, 8, 11]. 영역을 너무 작게 잡으면 AI가 주변과의 연결성을 파악하기 어렵고, 너무 크게 잡으면 유지하고 싶은 원본 요소까지 변경될 위험이 있으므로 대상 주변의 여백을 충분히 포함하여 선택하는 것이 기술적 노하우이다[3, 11].
|
||||
* **간결하고 직접적인 프롬프트**: 수정할 영역에 대해서는 길고 서술적인 지시문(예: "초원 길을 아름다운 시냇물로 바꿔주세요")보다는, 짧고 직접적인 키워드(예: "초원 시냇물(meadow stream)")를 입력하는 것이 훨씬 효과적이다[11].
|
||||
* **작은 단위의 반복 작업**: 여러 부분을 수정해야 할 경우, 한 번에 한 섹션씩 집중해서 선택하고 각각의 영역에 맞는 개별 프롬프트를 적용하는 방식이 권장된다[11].
|
||||
|
||||
* **주요 활용 사례**
|
||||
* **오류 수정 및 디테일 개선**: 흩날리는 머리카락 정리, 배경 흐름(Blur) 조정, 메이크업(립스틱 색상, 아이섀도우 등) 디테일 변경, 제품 목업 이미지의 아티팩트 제거, 점토의 디테일이나 손 모양 수정 등에 유용하게 쓰인다[12, 13].
|
||||
* **요소의 추가 및 교체**: 인물의 얼굴은 그대로 유지한 채 액세서리를 교체하거나, 모자를 왕관이나 헬멧으로 변경할 수 있다[6, 14, 15]. 또한 비어있는 풍경에 새 떼, 헛간(barn), 보행자 등의 새로운 객체를 추가할 때 기존 이미지의 환경과 조명을 완벽히 유지하며 자연스럽게 합성할 수 있다[3, 15].
|
||||
|
||||
## 🔗 Knowledge Connections
|
||||
- **Related Topics:** [[Remix Mode]], [[Upscale]]
|
||||
- **Projects/Contexts:** [[미드저니(Midjourney) 이미지 사후 편집 및 워크플로우 효율화]]
|
||||
- **Contradictions/Notes:** 소스에 관련 정보가 부족합니다.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-30*
|
||||
@@ -0,0 +1,15 @@
|
||||
# 📊 Business 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 수익화 모델 1개 가설 검증 → 매출화
|
||||
- 핵심 KPI 대시보드 운영
|
||||
|
||||
## 이번 주 목표
|
||||
- 가격·번들 옵션 2~3안 비교 메모
|
||||
- 경쟁사 3곳 ROI 분석
|
||||
|
||||
## 작업 원칙
|
||||
- 결정 가능한 권고 (A/B 중 어느 쪽인지) + 근거 숫자
|
||||
@@ -0,0 +1,7 @@
|
||||
# 💰 Business (Head of Business) 개인 메모리
|
||||
|
||||
_Business 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
|
||||
- [2026-04-30] researcher의 분석 결과를 기반으로 초기 수익화 모델(광고/스폰서/디지털 제품 중 1개 선택)을 제안하고, 월별 조회수·구독자·변환율 목표를 포함한 KPI 프레임워크와 가격/수익 구조를 1페이지 분량으로 작성하세요. → 산출물 sessions/2026-04-30T07-07/business.md
|
||||
@@ -0,0 +1,5 @@
|
||||
# 💰 Business 페르소나 디테일
|
||||
|
||||
_여기에 Business 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# 🧭 CEO (Chief Executive Agent) 개인 메모리
|
||||
|
||||
_CEO 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# 🧭 CEO 페르소나 디테일
|
||||
|
||||
_여기에 CEO 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# 🎨 Designer 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 브랜드 컬러·타이포·로고 시스템 확정
|
||||
- 썸네일/포스트 템플릿 3종 표준화
|
||||
|
||||
## 이번 주 목표
|
||||
- 디자인 브리프 1건 작성 (레퍼런스 5장 포함)
|
||||
- 썸네일 컨셉 3안 비교 정리
|
||||
|
||||
## 작업 원칙
|
||||
- 텍스트 설명만 X — 색상 코드·폰트명·레이아웃 좌표까지 구체적으로
|
||||
@@ -0,0 +1,5 @@
|
||||
# 🎨 Designer (Lead Designer) 개인 메모리
|
||||
|
||||
_Designer 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# 🎨 Designer 페르소나 디테일
|
||||
|
||||
_여기에 Designer 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# 💻 Developer 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 반복 업무 자동화 스크립트 5개 운영
|
||||
- 데이터 파이프라인 / API 연결 안정화
|
||||
|
||||
## 이번 주 목표
|
||||
- 가장 시간 잡아먹는 수동 작업 1개 자동화
|
||||
- 기존 스크립트 1개 리팩터·테스트 보강
|
||||
|
||||
## 작업 원칙
|
||||
- 항상 실행 가능한 코드 + 사용법 1줄
|
||||
- 외부 호출은 키 노출 없이 환경변수로
|
||||
@@ -0,0 +1,5 @@
|
||||
# 💻 Developer (Lead Engineer) 개인 메모리
|
||||
|
||||
_Developer 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# 💻 Developer 페르소나 디테일
|
||||
|
||||
_여기에 Developer 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# ✂️ Editor 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 영상 편집 디렉션 템플릿 (오프닝·B-roll·아웃트로) 표준화
|
||||
- 평균 컷 리듬·자막 톤 가이드 확립
|
||||
|
||||
## 이번 주 목표
|
||||
- 최근 영상 1편 컷·자막·B-roll 디렉션 작성
|
||||
- 스크립트 1편 다듬기 (불필요 문장 제거)
|
||||
|
||||
## 작업 원칙
|
||||
- 막연한 "다듬어줘" X — 시간 코드 + 구체 액션
|
||||
@@ -0,0 +1,5 @@
|
||||
# ✂️ Editor (Video & Content Editor) 개인 메모리
|
||||
|
||||
_Editor 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# ✂️ Editor 페르소나 디테일
|
||||
|
||||
_여기에 Editor 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# 📸 Instagram 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 피드 톤앤매너 확립 + 팔로워 5천 도달
|
||||
- 릴스 평균 도달 1만 이상
|
||||
|
||||
## 이번 주 목표
|
||||
- 릴스 기획 3개 (훅·보이스오버·자막 포함)
|
||||
- 캡션·해시태그 패턴 정리
|
||||
|
||||
## 작업 원칙
|
||||
- 매 산출물마다 게시 시간 + 후속 스토리 아이디어 1개
|
||||
@@ -0,0 +1,5 @@
|
||||
# 📷 Instagram (Head of Instagram) 개인 메모리
|
||||
|
||||
_Instagram 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# 📷 Instagram 페르소나 디테일
|
||||
|
||||
_여기에 Instagram 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# 🔍 Researcher 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 산업·경쟁사 트렌드 리포트 월 1회 발행
|
||||
- 인용 가능한 1차 자료 라이브러리 구축
|
||||
|
||||
## 이번 주 목표
|
||||
- 우리 분야 트렌드 5개 짧은 메모
|
||||
- 경쟁사 2곳 최근 활동·성공 콘텐츠 정리
|
||||
|
||||
## 작업 원칙
|
||||
- 출처 링크 필수, 의견과 사실 분리해서 표기
|
||||
@@ -0,0 +1,7 @@
|
||||
# 🔍 Researcher (Trend & Data Researcher) 개인 메모리
|
||||
|
||||
_Researcher 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
|
||||
- [2026-04-30] AI/기술/콘텐츠 관련 상위 3개 시장 트렌드와 주요 경쟁 채널의 성장 패턴을 분석한 후, 우리 회사가 1개월 내 진입 가능한 최적의 1개 닉슈와 핵심 타깃 키워드 5개를 정리해 보고하세요. → 산출물 sessions/2026-04-30T07-07/researcher.md
|
||||
@@ -0,0 +1,5 @@
|
||||
# 🔍 Researcher 페르소나 디테일
|
||||
|
||||
_여기에 Researcher 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# 🗂️ Secretary 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 데일리 브리핑·할 일 정리 루틴 자동화
|
||||
- 다른 에이전트 산출물을 한 줄 요약으로 모아서 보고
|
||||
|
||||
## 이번 주 목표
|
||||
- 매일 09:00 데일리 브리핑 정리
|
||||
- 미해결 할 일 5건 추적 + 다음 액션 명시
|
||||
|
||||
## 작업 원칙
|
||||
- "정리"보다 "다음 액션 1개" 명시가 우선
|
||||
@@ -0,0 +1,7 @@
|
||||
# 📱 Secretary (Personal Assistant) 개인 메모리
|
||||
|
||||
_Secretary 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
|
||||
- [2026-04-30] 리서치와 비즈니스 전략 결과를 종합해 오늘 하루의 핵심 작업 3가지를 최종 확정하고, 마감 시간·담당 에이전트·진행 상태를 명시한 데일리 브리핑과 1주일 액션 플랜을 텔레그램 보고 형식으로 출력하세요. → 산출물 sessions/2026-04-30T07-07/secretary.md
|
||||
@@ -0,0 +1,5 @@
|
||||
# 📱 Secretary 페르소나 디테일
|
||||
|
||||
_여기에 Secretary 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# ✍️ Writer 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 후크·CTA 라이브러리 50개 운영
|
||||
- 채널·인스타·블로그 톤앤매너 가이드 확정
|
||||
|
||||
## 이번 주 목표
|
||||
- 영상 스크립트 초안 2편 (후크 3안 포함)
|
||||
- 인스타 캡션 5개 + 블로그 글 1편
|
||||
|
||||
## 작업 원칙
|
||||
- 한 산출물에 후크/본문/CTA를 명확히 분리
|
||||
@@ -0,0 +1,5 @@
|
||||
# ✍️ Writer (Copywriter) 개인 메모리
|
||||
|
||||
_Writer 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# ✍️ Writer 페르소나 디테일
|
||||
|
||||
_여기에 Writer 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# 🎯 YouTube 에이전트 — 나의 미션
|
||||
|
||||
> 🌞 24시간 업무가 켜져 있으면 이 미션을 향해 자동으로 한 스텝씩 일합니다.
|
||||
> 자유롭게 수정하세요. 비워두면 회사 공동 목표만 따라갑니다.
|
||||
|
||||
## 장기 목표 (3~6개월)
|
||||
- 채널 정체성 확립 + 구독자 1만 도달
|
||||
- 영상 평균 시청 지속률 50% 이상
|
||||
|
||||
## 이번 주 목표
|
||||
- 후크 강한 영상 기획서 3개 작성
|
||||
- 감시 채널 댓글 패턴에서 후크 단어 5개 추출
|
||||
- 경쟁 채널 인기 영상 → 다음 액션 브리프 1건
|
||||
|
||||
## 사용 가능한 도구 (Skills)
|
||||
- 🔑 `youtube_account` — API 키·내 채널·감시 채널·텔레그램 한 번에 설정
|
||||
- 🎯 `trend_sniper` — 키워드 기반 떡상 영상 패턴 분석
|
||||
- 🌙 `auto_planner` — 트렌드 스나이퍼 무인 반복 실행
|
||||
- 🎬 `my_videos_check` — 내 채널 영상이 잘 올라갔는지 자동 판단
|
||||
- 💬 `comment_harvester` — 감시 채널 댓글 → memory.md 누적
|
||||
- 🔭 `competitor_brief` — 경쟁 채널 → 지시문 형식 다음 액션
|
||||
- 📨 `telegram_notify` — 다른 도구 보고를 메신저로 자동 푸시
|
||||
|
||||
## 작업 원칙
|
||||
- 추상적 조언 대신 **실행 가능한 산출물** (제목·썸네일 브리프·스크립트 후크)
|
||||
- 매번 다음 단계 1줄을 명시
|
||||
- 메모리(`memory.md`)에 누적된 댓글·반응 키워드를 후크에 반영
|
||||
@@ -0,0 +1,5 @@
|
||||
# 📺 YouTube (Head of YouTube) 개인 메모리
|
||||
|
||||
_YouTube 에이전트만 읽고 쓰는 개인 노트. 학습·교훈·자주 쓰는 패턴이 누적됩니다._
|
||||
|
||||
## 학습 기록
|
||||
@@ -0,0 +1,5 @@
|
||||
# 📺 YouTube 페르소나 디테일
|
||||
|
||||
_여기에 YouTube 에이전트에게 주고 싶은 추가 지시·말투·취향·예시 등을 자유롭게 적으세요._
|
||||
_매 호출 시 시스템 프롬프트에 자동 주입됩니다. (git에 동기화됨)_
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"INTERVAL_HOURS": 2,
|
||||
"TOTAL_RUN_HOURS": 8
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
# 🌙 오토 플래너
|
||||
|
||||
트렌드 스나이퍼를 정해진 간격으로 반복 실행해서 패턴 데이터를 쌓아주는 무인 작업자예요. 한 번 트렌드를 보면 지금 잘 되는 영상 한 장만 보이지만, 8시간 동안 2시간마다 4번 보면 "어떤 키워드의 후크가 시간이 지나도 계속 살아남는지"가 보이기 시작합니다 — 자는 동안에 그 작업을 대신해줍니다.
|
||||
|
||||
## 어떻게 도와주나요?
|
||||
- ⏰ N시간마다 `trend_sniper.py`를 자동 실행 (스나이퍼 결과는 매번 sessions/에 누적)
|
||||
- 🛌 잘 때 켜두면 아침에 4~5번분의 트렌드 스냅샷이 쌓여 있어요
|
||||
- 📊 같은 키워드라도 시간대별로 어떤 영상이 새로 떠오르는지 비교 가능
|
||||
|
||||
## 어떤 상황에 켜면 좋나요?
|
||||
- 새 채널 컨셉을 결정하기 전, 며칠치 트렌드를 누적해서 보고 싶을 때
|
||||
- 회사 일/외출 중 백그라운드에서 데이터만 모아두고 싶을 때
|
||||
- 특정 키워드의 알고리즘 반응이 시간대마다 다른지 확인하고 싶을 때
|
||||
|
||||
## 시작하기 전 체크
|
||||
- 트렌드 스나이퍼 도구가 먼저 설정돼 있어야 해요 (YouTube API 키, 키워드 목록 등)
|
||||
- 첫 실행 전에 트렌드 스나이퍼를 한 번 수동으로 돌려서 정상 작동 확인을 권장합니다
|
||||
|
||||
## 설정값 (auto_planner.json)
|
||||
- `INTERVAL_HOURS` — 몇 시간마다 실행할지 (기본 2)
|
||||
- `TOTAL_RUN_HOURS` — 총 가동 시간 (기본 8 → 8시간 동안 4회 실행)
|
||||
|
||||
## 실행 방법
|
||||
패널의 [▶ 실행]을 누르면 시작됩니다. 또는 터미널에서:
|
||||
```bash
|
||||
python auto_planner.py
|
||||
```
|
||||
|
||||
⚠️ 이 스크립트는 끝날 때까지 터미널을 점유해요. 백그라운드로 돌리려면 별도 창에서 실행하세요. 중단하려면 Ctrl+C.
|
||||
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Auto Planner — runs trend_sniper.py on a fixed interval for a chosen
|
||||
duration (e.g. overnight). Reads its config from auto_planner.json."""
|
||||
import os, json, time, datetime, subprocess, sys
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
CONFIG_PATH = os.path.join(HERE, "auto_planner.json")
|
||||
SNIPER_PATH = os.path.join(HERE, "trend_sniper.py")
|
||||
|
||||
def load_config():
|
||||
try:
|
||||
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception as e:
|
||||
print(f"❌ 설정 파일을 읽을 수 없어요: {CONFIG_PATH}\n{e}")
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
cfg = load_config()
|
||||
interval_h = float(cfg.get("INTERVAL_HOURS", 2))
|
||||
total_h = float(cfg.get("TOTAL_RUN_HOURS", 8))
|
||||
print(f"\n🚀 [오토 플래너] {total_h}시간 동안 {interval_h}시간마다 트렌드 분석 실행")
|
||||
if not os.path.exists(SNIPER_PATH):
|
||||
print(f"❌ trend_sniper.py를 찾을 수 없어요: {SNIPER_PATH}")
|
||||
sys.exit(1)
|
||||
start = time.time()
|
||||
loop = 0
|
||||
while True:
|
||||
if time.time() - start > total_h * 3600:
|
||||
print("\n☀️ 목표 가동 시간을 채웠어요. 종료합니다.")
|
||||
break
|
||||
loop += 1
|
||||
ts = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
print(f"\n[{ts}] 🤖 {loop}회차 트렌드 스나이핑")
|
||||
try:
|
||||
subprocess.run([sys.executable, SNIPER_PATH], check=False)
|
||||
except Exception as e:
|
||||
print(f"❌ 실행 실패: {e}")
|
||||
print(f"⏳ 다음 실행: {interval_h}시간 후")
|
||||
time.sleep(interval_h * 3600)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"VIDEOS_PER_CHANNEL": 5,
|
||||
"COMMENTS_PER_VIDEO": 20,
|
||||
"LOOKBACK_DAYS": 14
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# 💬 댓글 수집기
|
||||
|
||||
`youtube_account.json`의 `WATCHED_CHANNELS`에 적은 채널들의 최근 영상에서 인기 댓글을 가져와 YouTube 에이전트의 `memory.md`에 누적 저장합니다. 시청자가 실제로 어떤 단어·반응을 쓰는지가 메모리에 쌓이면, 에이전트가 다음 영상 후크나 제목을 짤 때 그 표현을 자연스럽게 참고하게 됩니다.
|
||||
|
||||
## 어떻게 도와주나요?
|
||||
- 📡 감시 채널마다 최근 N개 영상 → 인기 댓글 M개 가져오기
|
||||
- 🧠 결과를 `_agents/youtube/memory.md`에 자동 추가 (에이전트가 다음 사이클에 자동 참조)
|
||||
- 📒 같은 폴더에 `comment_harvester_report.md`로 누적 백업
|
||||
|
||||
## 시작하기 전 체크
|
||||
- `youtube_account.json`에 `WATCHED_CHANNELS` 배열 채워두기 (예: `["@channel_a","@channel_b"]`)
|
||||
- 댓글이 꺼진 영상은 자동 스킵
|
||||
- API 비용: 채널당 search 1회 + 영상마다 commentThreads 1회 (가벼움)
|
||||
|
||||
## 설정값 (comment_harvester.json)
|
||||
- `VIDEOS_PER_CHANNEL` — 채널마다 영상 몇 개 (기본 5)
|
||||
- `COMMENTS_PER_VIDEO` — 영상마다 댓글 몇 개 (기본 20)
|
||||
- `LOOKBACK_DAYS` — 며칠치 영상까지 (기본 14)
|
||||
|
||||
## 어떻게 활용되나?
|
||||
메모리에 쌓인 댓글을 에이전트가 다음 한 스텝에서 자연스럽게 참고합니다. 직접 보고 싶으면 `memory.md` 또는 같은 폴더의 `comment_harvester_report.md`를 열면 돼요.
|
||||
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Comment Harvester — for every channel in WATCHED_CHANNELS, pulls the most
|
||||
recent N videos and their top M comments. Appends the results to the agent's
|
||||
memory.md so the YouTube agent can reference real audience reactions on the
|
||||
next think step.
|
||||
|
||||
Reads from youtube_account.json (api key, watched channels) and
|
||||
comment_harvester.json (volume settings)."""
|
||||
import os, json, sys, time, datetime
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
ACCOUNT = os.path.join(HERE, "youtube_account.json")
|
||||
CONFIG = os.path.join(HERE, "comment_harvester.json")
|
||||
# memory.md lives one level up — under _agents/youtube/
|
||||
MEMORY = os.path.abspath(os.path.join(HERE, "..", "memory.md"))
|
||||
REPORT = os.path.join(HERE, "comment_harvester_report.md")
|
||||
|
||||
def _load(p):
|
||||
with open(p, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
def _resolve_channel_id(youtube, handle):
|
||||
h = handle.lstrip("@")
|
||||
try:
|
||||
r = youtube.search().list(part="snippet", q=h, type="channel", maxResults=1).execute()
|
||||
items = r.get("items", [])
|
||||
if items:
|
||||
return items[0]["snippet"]["channelId"], items[0]["snippet"]["title"]
|
||||
except Exception as e:
|
||||
print(f"⚠️ {handle} 채널 조회 실패: {e}")
|
||||
return None, None
|
||||
|
||||
def main():
|
||||
if not os.path.exists(ACCOUNT):
|
||||
print("❌ youtube_account.json이 없어요. 먼저 그 도구로 설정.")
|
||||
sys.exit(1)
|
||||
acct = _load(ACCOUNT)
|
||||
cfg = _load(CONFIG) if os.path.exists(CONFIG) else {}
|
||||
api_key = (acct.get("YOUTUBE_API_KEY") or "").strip()
|
||||
watched = acct.get("WATCHED_CHANNELS") or []
|
||||
if not api_key:
|
||||
print("❌ YOUTUBE_API_KEY 비어있음.")
|
||||
sys.exit(1)
|
||||
if not watched:
|
||||
print("❌ WATCHED_CHANNELS가 비어있어요. youtube_account.json에 핸들 목록을 넣어주세요.")
|
||||
print(' 예: "WATCHED_CHANNELS": ["@channel_a", "@channel_b"]')
|
||||
sys.exit(1)
|
||||
vids_per = int(cfg.get("VIDEOS_PER_CHANNEL", 5))
|
||||
cmts_per = int(cfg.get("COMMENTS_PER_VIDEO", 20))
|
||||
lookback = int(cfg.get("LOOKBACK_DAYS", 14))
|
||||
|
||||
try:
|
||||
from googleapiclient.discovery import build
|
||||
except ImportError:
|
||||
print("❌ pip install google-api-python-client")
|
||||
sys.exit(1)
|
||||
youtube = build("youtube", "v3", developerKey=api_key)
|
||||
after = (datetime.datetime.utcnow() - datetime.timedelta(days=lookback)).isoformat("T") + "Z"
|
||||
|
||||
harvested = []
|
||||
for ch in watched:
|
||||
cid, ctitle = _resolve_channel_id(youtube, ch)
|
||||
if not cid:
|
||||
continue
|
||||
print(f"📡 [{ch}] 최근 영상 {vids_per}개 가져오는 중...")
|
||||
sr = youtube.search().list(part="snippet", channelId=cid, maxResults=vids_per,
|
||||
order="date", publishedAfter=after, type="video").execute()
|
||||
for it in sr.get("items", []):
|
||||
vid = it["id"]["videoId"]
|
||||
vtitle = it["snippet"]["title"]
|
||||
print(f" 💬 {vtitle[:60]}")
|
||||
try:
|
||||
cr = youtube.commentThreads().list(part="snippet", videoId=vid,
|
||||
maxResults=cmts_per, order="relevance",
|
||||
textFormat="plainText").execute()
|
||||
except Exception as e:
|
||||
msg = str(e)
|
||||
if "commentsDisabled" in msg or "disabled" in msg.lower():
|
||||
continue
|
||||
print(f" ⚠️ 댓글 가져오기 실패: {e}")
|
||||
continue
|
||||
comments = []
|
||||
for ci in cr.get("items", []):
|
||||
top = ci["snippet"]["topLevelComment"]["snippet"]
|
||||
comments.append({
|
||||
"author": top.get("authorDisplayName", ""),
|
||||
"likes": int(top.get("likeCount", 0)),
|
||||
"text": (top.get("textDisplay", "") or "")[:280],
|
||||
})
|
||||
harvested.append({
|
||||
"channel": ch, "channel_title": ctitle,
|
||||
"video": vtitle, "video_id": vid, "comments": comments,
|
||||
})
|
||||
|
||||
if not harvested:
|
||||
print("⚠️ 수집된 댓글 없음.")
|
||||
sys.exit(0)
|
||||
|
||||
ts = time.strftime('%Y-%m-%d %H:%M')
|
||||
md_lines = [f"\n## 💬 시청자 댓글 수집 — {ts}"]
|
||||
for h in harvested:
|
||||
md_lines.append(f"\n### {h['channel_title']} ({h['channel']}) — {h['video']}")
|
||||
md_lines.append(f"https://youtu.be/{h['video_id']}")
|
||||
for c in h["comments"][:10]:
|
||||
md_lines.append(f"- ({c['likes']}❤) **{c['author']}**: {c['text']}")
|
||||
block = "\n".join(md_lines)
|
||||
|
||||
# Append to memory so the agent uses these comments next think.
|
||||
os.makedirs(os.path.dirname(MEMORY), exist_ok=True)
|
||||
if not os.path.exists(MEMORY):
|
||||
with open(MEMORY, "w", encoding="utf-8") as f:
|
||||
f.write("# YouTube 에이전트 — 메모리\n\n")
|
||||
with open(MEMORY, "a", encoding="utf-8") as f:
|
||||
f.write("\n" + block + "\n")
|
||||
with open(REPORT, "a", encoding="utf-8") as f:
|
||||
f.write("\n" + block + "\n\n---\n")
|
||||
print(f"\n✅ 메모리에 추가: {MEMORY}")
|
||||
print(f"✅ 보고서: {REPORT}")
|
||||
print(f" {len(harvested)}개 영상 · 평균 {sum(len(h['comments']) for h in harvested)//max(len(harvested),1)}개 댓글")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"TOP_N_PER_CHANNEL": 5,
|
||||
"LOOKBACK_DAYS": 30
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
# 🔭 경쟁 채널 분석
|
||||
|
||||
`youtube_account.json`의 `COMPETITOR_CHANNELS`에 적은 경쟁 채널들의 최근 떡상 영상을 모아서, 로컬 LLM에게 **지시문 형식**의 다음 액션 브리프를 받아옵니다 — "이거 해야합니다 / 저거 해야합니다 / 이건 절대 하지 마세요" 형태로 나옵니다.
|
||||
|
||||
## 어떻게 도와주나요?
|
||||
- 🔭 경쟁 채널마다 최근 N개 인기 영상(view 기준) 수집
|
||||
- 🧠 로컬 LLM이 패턴을 읽고 4섹션으로 브리프 작성:
|
||||
- 1) 지금 당장 해야 하는 것 3개
|
||||
- 2) 이번 주 시도할 것 3개 (제목 후보 포함)
|
||||
- 3) 절대 하지 말 것 1개
|
||||
- 4) 다음 영상 핵심 한 줄
|
||||
- 📨 텔레그램 설정돼있으면 자동 푸시
|
||||
|
||||
## 시작하기 전 체크
|
||||
- `youtube_account.json`의 `COMPETITOR_CHANNELS` 채워두기
|
||||
- 로컬 LLM(Ollama/LM Studio)이 켜져 있어야 함
|
||||
|
||||
## 설정값 (competitor_brief.json)
|
||||
- `TOP_N_PER_CHANNEL` — 채널마다 상위 영상 몇 개 (기본 5)
|
||||
- `LOOKBACK_DAYS` — 며칠치 (기본 30)
|
||||
@@ -0,0 +1,156 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Competitor Brief — for every channel in COMPETITOR_CHANNELS, pulls their
|
||||
recent top-performing videos and asks the local LLM for a *prescriptive*
|
||||
brief: what should YOU do next, given what's working for them.
|
||||
|
||||
Reads youtube_account.json (api key, competitors, ollama, model) and
|
||||
competitor_brief.json (volume)."""
|
||||
import os, json, sys, time, datetime
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
ACCOUNT = os.path.join(HERE, "youtube_account.json")
|
||||
CONFIG = os.path.join(HERE, "competitor_brief.json")
|
||||
REPORT = os.path.join(HERE, "competitor_brief_report.md")
|
||||
|
||||
def _load(p):
|
||||
with open(p, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
def _resolve_channel_id(youtube, handle):
|
||||
h = handle.lstrip("@")
|
||||
try:
|
||||
r = youtube.search().list(part="snippet", q=h, type="channel", maxResults=1).execute()
|
||||
items = r.get("items", [])
|
||||
if items:
|
||||
return items[0]["snippet"]["channelId"], items[0]["snippet"]["title"]
|
||||
except Exception:
|
||||
pass
|
||||
return None, None
|
||||
|
||||
def _push_telegram(account, text):
|
||||
token = (account.get("TELEGRAM_BOT_TOKEN") or "").strip()
|
||||
chat = (account.get("TELEGRAM_CHAT_ID") or "").strip()
|
||||
if not token or not chat:
|
||||
return
|
||||
try:
|
||||
import requests
|
||||
requests.post(f"https://api.telegram.org/bot{token}/sendMessage",
|
||||
json={"chat_id": chat, "text": text[:4000], "parse_mode": "Markdown"},
|
||||
timeout=10)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def main():
|
||||
if not os.path.exists(ACCOUNT):
|
||||
print("❌ youtube_account.json이 없어요.")
|
||||
sys.exit(1)
|
||||
acct = _load(ACCOUNT)
|
||||
cfg = _load(CONFIG) if os.path.exists(CONFIG) else {}
|
||||
api_key = (acct.get("YOUTUBE_API_KEY") or "").strip()
|
||||
competitors = acct.get("COMPETITOR_CHANNELS") or []
|
||||
if not api_key:
|
||||
print("❌ YOUTUBE_API_KEY 비어있음.")
|
||||
sys.exit(1)
|
||||
if not competitors:
|
||||
print("❌ COMPETITOR_CHANNELS가 비어있어요. youtube_account.json에 채워주세요.")
|
||||
sys.exit(1)
|
||||
top_n = int(cfg.get("TOP_N_PER_CHANNEL", 5))
|
||||
lookback = int(cfg.get("LOOKBACK_DAYS", 30))
|
||||
ollama_url = (acct.get("OLLAMA_URL") or "http://127.0.0.1:11434").rstrip("/")
|
||||
model = acct.get("MODEL") or ""
|
||||
|
||||
try:
|
||||
from googleapiclient.discovery import build
|
||||
import requests
|
||||
except ImportError:
|
||||
print("❌ pip install google-api-python-client requests")
|
||||
sys.exit(1)
|
||||
youtube = build("youtube", "v3", developerKey=api_key)
|
||||
after = (datetime.datetime.utcnow() - datetime.timedelta(days=lookback)).isoformat("T") + "Z"
|
||||
|
||||
snapshot = []
|
||||
for ch in competitors:
|
||||
cid, ctitle = _resolve_channel_id(youtube, ch)
|
||||
if not cid:
|
||||
print(f"⚠️ {ch} 채널 못 찾음")
|
||||
continue
|
||||
print(f"🔭 [{ch}] 최근 영상 분석 중...")
|
||||
sr = youtube.search().list(part="snippet", channelId=cid, maxResults=top_n,
|
||||
order="viewCount", publishedAfter=after, type="video").execute()
|
||||
ids = [it["id"]["videoId"] for it in sr.get("items", [])]
|
||||
if not ids:
|
||||
continue
|
||||
st = youtube.videos().list(part="statistics,snippet", id=",".join(ids)).execute()
|
||||
for it in st.get("items", []):
|
||||
stats = it.get("statistics", {})
|
||||
snip = it.get("snippet", {})
|
||||
snapshot.append({
|
||||
"channel": ctitle,
|
||||
"title": snip.get("title", ""),
|
||||
"views": int(stats.get("viewCount", 0)),
|
||||
"published": snip.get("publishedAt", "")[:10],
|
||||
})
|
||||
|
||||
if not snapshot:
|
||||
print("❌ 데이터 수집 실패.")
|
||||
sys.exit(1)
|
||||
|
||||
snapshot.sort(key=lambda r: r["views"], reverse=True)
|
||||
data_text = "\n".join(f"[{r['channel']}] {r['views']:,}회 · {r['published']} · {r['title']}"
|
||||
for r in snapshot[:25])
|
||||
|
||||
if not model:
|
||||
try:
|
||||
r = requests.get(f"{ollama_url}/api/tags", timeout=5)
|
||||
r.raise_for_status()
|
||||
models = [m["name"] for m in r.json().get("models", [])]
|
||||
if not models:
|
||||
print("❌ 로컬 LLM에 모델이 없어요.")
|
||||
sys.exit(1)
|
||||
model = models[0]
|
||||
except Exception as e:
|
||||
print(f"❌ LLM 연결 실패: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
prompt = f"""당신은 유튜브 알고리즘 전략가입니다. 아래는 경쟁 채널들의 최근 {lookback}일간 상위 영상 데이터입니다.
|
||||
|
||||
[경쟁 데이터]
|
||||
{data_text}
|
||||
|
||||
이 채널 운영자에게 **지시문 형식**으로 다음을 작성하세요. 모호한 조언 금지, 구체적이고 실행 가능한 지시.
|
||||
|
||||
## 1) 지금 당장 해야 하는 것 (3개)
|
||||
- 각 항목: "~을(를) 하세요. 왜냐하면 …"
|
||||
|
||||
## 2) 이번 주 안에 시도해야 하는 것 (3개)
|
||||
- 각 항목: 구체적 영상 제목 후보 또는 후크 문장 포함
|
||||
|
||||
## 3) 절대 하지 말아야 할 것 (1개)
|
||||
- 경쟁사 데이터에서 보이는 함정 패턴
|
||||
|
||||
## 4) 한 줄 요약
|
||||
- 다음 영상의 핵심 컨셉을 한 문장으로
|
||||
"""
|
||||
print("🧠 [LLM 분석 중...]")
|
||||
try:
|
||||
r = requests.post(f"{ollama_url}/api/generate",
|
||||
json={"model": model, "prompt": prompt, "stream": False},
|
||||
timeout=240)
|
||||
r.raise_for_status()
|
||||
brief = r.json().get("response", "").strip()
|
||||
except Exception as e:
|
||||
print(f"❌ LLM 실패: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
ts = time.strftime('%Y-%m-%d %H:%M')
|
||||
out = f"# 🔭 경쟁 채널 브리프 — {ts}\n\n채널: {', '.join(competitors)} · 최근 {lookback}일\n\n{brief}\n"
|
||||
print("\n" + "="*60)
|
||||
print(out)
|
||||
print("="*60)
|
||||
with open(REPORT, "a", encoding="utf-8") as f:
|
||||
f.write("\n\n" + out + "\n---\n")
|
||||
print(f"\n✅ 보고서: {REPORT}")
|
||||
_push_telegram(acct, out)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"LOOKBACK_DAYS": 30,
|
||||
"TOP_N": 10
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# 🎬 내 영상 체크
|
||||
|
||||
본인 채널의 최근 영상이 잘 올라갔는지 한눈에 봅니다. 조회수 중간값을 기준선으로 삼아 떡상/부진 영상을 자동 분류하고, 다음에 뭘 할지 짧은 제안까지 만들어줘요.
|
||||
|
||||
## 어떻게 도와주나요?
|
||||
- 🎬 본인 채널 최근 N개 영상 메타·통계 수집
|
||||
- 📊 조회수 **중간값** 계산 → 1.5배 이상 = 🔥 떡상, 0.5배 미만 = 🥶 부진
|
||||
- 🧭 떡상/부진 비율 보고 다음 액션 1~3개 제안
|
||||
- 📨 `youtube_account.json`에 텔레그램이 설정돼있으면 보고를 메시지로도 보내줌
|
||||
|
||||
## 시작하기 전 체크
|
||||
- `youtube_account.json`의 `YOUTUBE_API_KEY` + `MY_CHANNEL_HANDLE` 또는 `MY_CHANNEL_ID` 채워야 함
|
||||
- 핸들만 있어도 자동으로 채널 ID를 조회합니다 (검색 1회 사용)
|
||||
|
||||
## 설정값 (my_videos_check.json)
|
||||
- `LOOKBACK_DAYS` — 며칠치 영상 볼지 (기본 30)
|
||||
- `TOP_N` — 최대 몇 개 분석할지 (기본 10)
|
||||
|
||||
## 출력
|
||||
- 콘솔에 영상별 조회수·라이크·댓글 수
|
||||
- `my_videos_check_report.md`에 누적 저장
|
||||
- (선택) 텔레그램 알림
|
||||
@@ -0,0 +1,141 @@
|
||||
#!/usr/bin/env python3
|
||||
"""My Videos Check — pulls your own channel's recent uploads, computes a
|
||||
view-count baseline (median of last N), and flags which videos are above /
|
||||
below the line. Outputs a short report. Optionally pings Telegram.
|
||||
|
||||
Reads YOUTUBE_API_KEY + MY_CHANNEL_HANDLE/ID from youtube_account.json.
|
||||
Reads LOOKBACK_DAYS / TOP_N from my_videos_check.json."""
|
||||
import os, json, sys, time, datetime
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
ACCOUNT = os.path.join(HERE, "youtube_account.json")
|
||||
CONFIG = os.path.join(HERE, "my_videos_check.json")
|
||||
REPORT = os.path.join(HERE, "my_videos_check_report.md")
|
||||
|
||||
def _load(p):
|
||||
with open(p, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
def _resolve_channel_id(youtube, handle, channel_id):
|
||||
if channel_id:
|
||||
return channel_id
|
||||
if not handle:
|
||||
return None
|
||||
h = handle.lstrip("@")
|
||||
try:
|
||||
r = youtube.search().list(part="snippet", q=h, type="channel", maxResults=1).execute()
|
||||
items = r.get("items", [])
|
||||
if items:
|
||||
return items[0]["snippet"]["channelId"]
|
||||
except Exception as e:
|
||||
print(f"⚠️ 채널 ID 조회 실패: {e}")
|
||||
return None
|
||||
|
||||
def _push_telegram(account, text):
|
||||
token = (account.get("TELEGRAM_BOT_TOKEN") or "").strip()
|
||||
chat = (account.get("TELEGRAM_CHAT_ID") or "").strip()
|
||||
if not token or not chat:
|
||||
return
|
||||
try:
|
||||
import requests
|
||||
requests.post(
|
||||
f"https://api.telegram.org/bot{token}/sendMessage",
|
||||
json={"chat_id": chat, "text": text, "parse_mode": "Markdown"},
|
||||
timeout=10,
|
||||
)
|
||||
print("📨 텔레그램으로 보고 전송")
|
||||
except Exception as e:
|
||||
print(f"⚠️ 텔레그램 전송 실패: {e}")
|
||||
|
||||
def main():
|
||||
if not os.path.exists(ACCOUNT):
|
||||
print("❌ youtube_account.json이 없어요. 같은 폴더에서 youtube_account 도구를 먼저 실행/설정하세요.")
|
||||
sys.exit(1)
|
||||
acct = _load(ACCOUNT)
|
||||
cfg = _load(CONFIG) if os.path.exists(CONFIG) else {}
|
||||
api_key = (acct.get("YOUTUBE_API_KEY") or "").strip()
|
||||
handle = (acct.get("MY_CHANNEL_HANDLE") or "").strip()
|
||||
chan_id = (acct.get("MY_CHANNEL_ID") or "").strip()
|
||||
if not api_key:
|
||||
print("❌ YOUTUBE_API_KEY가 비어있어요. youtube_account.json에 채워주세요.")
|
||||
sys.exit(1)
|
||||
if not (handle or chan_id):
|
||||
print("❌ MY_CHANNEL_HANDLE 또는 MY_CHANNEL_ID 중 하나는 채워야 해요.")
|
||||
sys.exit(1)
|
||||
lookback = int(cfg.get("LOOKBACK_DAYS", 30))
|
||||
top_n = int(cfg.get("TOP_N", 10))
|
||||
|
||||
try:
|
||||
from googleapiclient.discovery import build
|
||||
except ImportError:
|
||||
print("❌ google-api-python-client 미설치. pip install google-api-python-client requests")
|
||||
sys.exit(1)
|
||||
youtube = build("youtube", "v3", developerKey=api_key)
|
||||
|
||||
cid = _resolve_channel_id(youtube, handle, chan_id)
|
||||
if not cid:
|
||||
print("❌ 채널 ID를 찾지 못했어요. youtube_account.json의 핸들/ID 확인.")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"🎬 [내 영상 체크] 채널 {handle or cid} 최근 {top_n}개 분석 중...")
|
||||
after = (datetime.datetime.utcnow() - datetime.timedelta(days=lookback)).isoformat("T") + "Z"
|
||||
sr = youtube.search().list(part="snippet", channelId=cid, maxResults=top_n,
|
||||
order="date", publishedAfter=after, type="video").execute()
|
||||
vids = [(it["id"]["videoId"], it["snippet"]["title"], it["snippet"]["publishedAt"])
|
||||
for it in sr.get("items", [])]
|
||||
if not vids:
|
||||
print(f"⚠️ 최근 {lookback}일 안에 업로드한 영상이 없어요.")
|
||||
sys.exit(0)
|
||||
|
||||
stats = youtube.videos().list(part="statistics", id=",".join(v[0] for v in vids)).execute()
|
||||
sm = {it["id"]: it["statistics"] for it in stats.get("items", [])}
|
||||
rows = []
|
||||
for vid, title, pub in vids:
|
||||
s = sm.get(vid, {})
|
||||
views = int(s.get("viewCount", 0))
|
||||
likes = int(s.get("likeCount", 0))
|
||||
comments = int(s.get("commentCount", 0))
|
||||
rows.append({"id": vid, "title": title, "pub": pub[:10], "views": views, "likes": likes, "comments": comments})
|
||||
|
||||
rows.sort(key=lambda r: r["views"], reverse=True)
|
||||
views_list = sorted([r["views"] for r in rows])
|
||||
median = views_list[len(views_list)//2] if views_list else 0
|
||||
|
||||
print("\n" + "="*60)
|
||||
print(f"중간값(median) 조회수: {median:,}")
|
||||
print("="*60)
|
||||
for r in rows:
|
||||
marker = "🔥" if r["views"] >= median * 1.5 else ("👍" if r["views"] >= median else "🥶")
|
||||
print(f"{marker} {r['views']:>7,}회 · {r['pub']} · {r['title'][:60]}")
|
||||
print(f" https://youtu.be/{r['id']}")
|
||||
|
||||
above = [r for r in rows if r["views"] >= median * 1.5]
|
||||
below = [r for r in rows if r["views"] < median * 0.5]
|
||||
|
||||
summary_lines = [
|
||||
f"# 🎬 내 채널 체크 — {time.strftime('%Y-%m-%d %H:%M')}",
|
||||
f"채널: {handle or cid} · 최근 {lookback}일 · 영상 {len(rows)}개",
|
||||
f"조회수 중간값: **{median:,}**",
|
||||
"",
|
||||
f"## 🔥 떡상 (중간값×1.5 이상) — {len(above)}개",
|
||||
]
|
||||
for r in above[:5]:
|
||||
summary_lines.append(f"- {r['views']:,}회 · {r['title']}")
|
||||
summary_lines.append(f"\n## 🥶 부진 (중간값×0.5 미만) — {len(below)}개")
|
||||
for r in below[:5]:
|
||||
summary_lines.append(f"- {r['views']:,}회 · {r['title']}")
|
||||
summary_lines.append("\n## 다음 액션 (제안)")
|
||||
if above:
|
||||
summary_lines.append(f"- 🔥 떡상한 영상의 후크/제목 패턴을 트렌드 스나이퍼 결과와 교차 분석")
|
||||
if below:
|
||||
summary_lines.append(f"- 🥶 부진 영상은 썸네일 A/B 또는 제목 리네이밍 후보")
|
||||
summary_lines.append("- 댓글 수집기를 돌려서 시청자 반응 키워드 확인")
|
||||
summary = "\n".join(summary_lines)
|
||||
|
||||
with open(REPORT, "a", encoding="utf-8") as f:
|
||||
f.write("\n\n" + summary + "\n\n---\n")
|
||||
print(f"\n✅ 보고서: {REPORT}")
|
||||
_push_telegram(acct, summary)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,20 @@
|
||||
# 📨 텔레그램 보고
|
||||
|
||||
다른 도구가 보고를 메신저로 보낼 때 호출하는 통신선이에요. 이 도구를 직접 [▶ 실행]하면 **연결 테스트 메시지**를 보냅니다 — 받으면 OK, 안 오면 토큰/chat_id 다시 확인.
|
||||
|
||||
## 어떻게 도와주나요?
|
||||
- ✅ 연결 확인용 핑 (아무 인자 없이 실행)
|
||||
- 📨 다른 도구(내 영상 체크, 경쟁 채널 분석 등)가 자동 보고를 보내는 채널
|
||||
- 🔕 토큰이나 chat_id가 비어있으면 다른 도구들은 그냥 텔레그램 단계만 건너뜁니다
|
||||
|
||||
## 봇 만드는 법 (한 번만)
|
||||
1. 텔레그램에서 [@BotFather](https://t.me/BotFather) 검색 → `/newbot` → 이름·핸들 정하면 `123:ABC...` 형식 토큰을 줍니다
|
||||
2. 새로 만든 봇한테 아무 메시지나 한 번 보내기 (`/start` 권장)
|
||||
3. 브라우저에서 `https://api.telegram.org/bot<TOKEN>/getUpdates` 열어서 `chat.id` 확인
|
||||
4. `youtube_account.json`의 `TELEGRAM_BOT_TOKEN` / `TELEGRAM_CHAT_ID`에 입력
|
||||
5. 이 도구 [▶ 실행] → 핑 메시지 받으면 끝
|
||||
|
||||
## 다른 도구에서 어떻게 쓰이나?
|
||||
- "내 영상 체크" → 떡상/부진 요약을 자동 푸시
|
||||
- "경쟁 채널 분석" → 다음 액션 브리프 자동 푸시
|
||||
- 향후 트렌드 스나이퍼/오토 플래너 결과도 같은 라인을 통해 보냅니다
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Telegram Notify — small wrapper that sends a message to your Telegram bot.
|
||||
|
||||
Two modes:
|
||||
1. No CLI arg → sends a connectivity test ("✅ 텔레그램 연결 정상").
|
||||
2. With CLI arg(s) → sends those as the message body. Other tools can call
|
||||
this script to push their summaries.
|
||||
|
||||
Reads TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID from youtube_account.json."""
|
||||
import os, json, sys, time
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
ACCOUNT = os.path.join(HERE, "youtube_account.json")
|
||||
|
||||
def main():
|
||||
if not os.path.exists(ACCOUNT):
|
||||
print("❌ youtube_account.json이 없어요.")
|
||||
sys.exit(1)
|
||||
with open(ACCOUNT, "r", encoding="utf-8") as f:
|
||||
acct = json.load(f)
|
||||
token = (acct.get("TELEGRAM_BOT_TOKEN") or "").strip()
|
||||
chat = (acct.get("TELEGRAM_CHAT_ID") or "").strip()
|
||||
if not token or not chat:
|
||||
print("❌ TELEGRAM_BOT_TOKEN 또는 TELEGRAM_CHAT_ID가 비어있어요.")
|
||||
print(" 봇 만들기: Telegram에서 @BotFather → /newbot")
|
||||
print(" chat_id 찾기: 봇한테 메시지 한 번 보내고")
|
||||
print(" https://api.telegram.org/bot<TOKEN>/getUpdates 열기")
|
||||
sys.exit(1)
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
body = " ".join(sys.argv[1:])
|
||||
else:
|
||||
body = f"✅ 텔레그램 연결 정상 — {time.strftime('%Y-%m-%d %H:%M:%S')}\n\n이 메시지가 보이면 다른 YouTube 도구들도 자동으로 보고를 보낼 수 있어요."
|
||||
|
||||
try:
|
||||
import requests
|
||||
except ImportError:
|
||||
print("❌ pip install requests")
|
||||
sys.exit(1)
|
||||
try:
|
||||
r = requests.post(
|
||||
f"https://api.telegram.org/bot{token}/sendMessage",
|
||||
json={"chat_id": chat, "text": body, "parse_mode": "Markdown"},
|
||||
timeout=15,
|
||||
)
|
||||
r.raise_for_status()
|
||||
print(f"✅ 전송 OK ({len(body)}자)")
|
||||
except Exception as e:
|
||||
print(f"❌ 전송 실패: {e}")
|
||||
if "Bad Request" in str(e):
|
||||
print(" chat_id가 정확한지, 봇과 한 번이라도 대화를 시작했는지 확인하세요.")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"TARGET_KEYWORDS": [
|
||||
"유튜브 자동화",
|
||||
"AI 비즈니스",
|
||||
"마케팅 트렌드",
|
||||
"생산성 툴"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# 🎯 트렌드 스나이퍼
|
||||
|
||||
유튜브 Data API로 최근 30일 떡상 영상을 수집하고, 로컬 LLM(Ollama/LM Studio)으로 패턴을 분석해 다음 영상 기획안(제목·썸네일·후크)을 도출합니다.
|
||||
|
||||
## 필요한 것
|
||||
- Python 3 + `pip install google-api-python-client requests`
|
||||
- `youtube_account.json`에 `YOUTUBE_API_KEY` 채우기 (한 번만)
|
||||
- 로컬 LLM (Ollama 또는 LM Studio)이 켜져 있어야 함
|
||||
|
||||
## 설정값 (trend_sniper.json)
|
||||
- `TARGET_KEYWORDS` — 분석할 키워드 배열
|
||||
- (API 키·Ollama URL·모델은 공유 `youtube_account.json`에서 자동 로드)
|
||||
|
||||
## 실행 방법
|
||||
패널의 [▶ 실행] 버튼을 누르거나 터미널에서:
|
||||
```bash
|
||||
python trend_sniper.py
|
||||
```
|
||||
|
||||
## 출력
|
||||
같은 폴더에 `trend_sniper_report.md` 누적 저장.
|
||||
@@ -0,0 +1,151 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Trend Sniper — pulls top YouTube videos for target keywords, asks a local
|
||||
LLM (Ollama/LM Studio) to extract the algorithmic patterns, and writes a
|
||||
planning report next to this script.
|
||||
|
||||
Shared keys (API key, OLLAMA_URL, MODEL) come from youtube_account.json so
|
||||
you only set them once. Per-tool keys (TARGET_KEYWORDS) come from
|
||||
trend_sniper.json. If a key exists in both, trend_sniper.json wins.
|
||||
|
||||
Requires: pip install google-api-python-client requests
|
||||
"""
|
||||
import os, json, time, random, datetime, sys
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
CONFIG_PATH = os.path.join(HERE, "trend_sniper.json")
|
||||
ACCOUNT_PATH = os.path.join(HERE, "youtube_account.json")
|
||||
REPORT_PATH = os.path.join(HERE, "trend_sniper_report.md")
|
||||
|
||||
def load_config():
|
||||
try:
|
||||
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception as e:
|
||||
print(f"❌ 설정 파일을 읽을 수 없어요: {CONFIG_PATH}\n{e}")
|
||||
sys.exit(1)
|
||||
|
||||
def load_account():
|
||||
try:
|
||||
if os.path.exists(ACCOUNT_PATH):
|
||||
with open(ACCOUNT_PATH, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception:
|
||||
pass
|
||||
return {}
|
||||
|
||||
def _shared(cfg, acct, key, default=""):
|
||||
"""Per-tool config wins; falls back to shared account; finally default."""
|
||||
v = cfg.get(key)
|
||||
if v not in (None, "", []):
|
||||
return v
|
||||
v = acct.get(key)
|
||||
if v not in (None, "", []):
|
||||
return v
|
||||
return default
|
||||
|
||||
def main():
|
||||
cfg = load_config()
|
||||
acct = load_account()
|
||||
api_key = (_shared(cfg, acct, "YOUTUBE_API_KEY") or "").strip()
|
||||
if not api_key:
|
||||
print("⚠️ YOUTUBE_API_KEY가 비어있어요. youtube_account.json 또는 trend_sniper.json에 입력하세요.")
|
||||
print(" 발급: https://console.cloud.google.com/ → YouTube Data API v3 사용 설정 → 사용자 인증 정보 → API 키")
|
||||
sys.exit(1)
|
||||
target_keywords = cfg.get("TARGET_KEYWORDS", [])
|
||||
if not target_keywords:
|
||||
print("⚠️ TARGET_KEYWORDS가 비어있어요. 분석할 키워드를 1개 이상 추가하세요.")
|
||||
sys.exit(1)
|
||||
ollama_url = (_shared(cfg, acct, "OLLAMA_URL", "http://127.0.0.1:11434") or "http://127.0.0.1:11434").rstrip("/")
|
||||
model = _shared(cfg, acct, "MODEL", "") or ""
|
||||
pick = min(2, len(target_keywords))
|
||||
chosen = random.sample(target_keywords, pick)
|
||||
|
||||
try:
|
||||
from googleapiclient.discovery import build
|
||||
except ImportError:
|
||||
print("❌ google-api-python-client가 설치되지 않았어요.")
|
||||
print(" 설치: pip install google-api-python-client requests")
|
||||
sys.exit(1)
|
||||
try:
|
||||
import requests
|
||||
except ImportError:
|
||||
print("❌ requests가 설치되지 않았어요. pip install requests")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"\n🎯 [트렌드 스나이퍼] 키워드 {chosen} 스캔 시작...")
|
||||
youtube = build('youtube', 'v3', developerKey=api_key)
|
||||
last_month = (datetime.datetime.utcnow() - datetime.timedelta(days=30)).isoformat("T") + "Z"
|
||||
sniper_data = []
|
||||
for q in chosen:
|
||||
print(f"📡 [{q}] 검색 중...")
|
||||
try:
|
||||
req = youtube.search().list(
|
||||
part="snippet", q=q, maxResults=5, order="viewCount",
|
||||
publishedAfter=last_month, type="video"
|
||||
)
|
||||
res = req.execute()
|
||||
for item in res.get('items', []):
|
||||
title = item['snippet']['title']
|
||||
channel = item['snippet']['channelTitle']
|
||||
sniper_data.append(f"[{q}] 채널: {channel} | 제목: {title}")
|
||||
except Exception as e:
|
||||
print(f"❌ 검색 오류 ({q}): {e}")
|
||||
|
||||
if not sniper_data:
|
||||
print("❌ 수집된 데이터 없음. API 키 한도/네트워크 확인.")
|
||||
sys.exit(1)
|
||||
|
||||
data_text = "\n".join(sniper_data)
|
||||
prompt = f"""당신은 유튜브 알고리즘 마스터마인드입니다. 아래는 최근 30일 떡상 영상입니다.
|
||||
|
||||
[키워드] {', '.join(chosen)}
|
||||
[데이터]
|
||||
{data_text}
|
||||
|
||||
분석해서 마크다운 보고서를 작성하세요. 반드시 3섹션:
|
||||
1. 🌍 트렌드 해킹 분석 — 어떤 패턴이 조회수를 끌고 있는지
|
||||
2. 🎯 빈집 털기 전략 — 차별화 가능한 틈새 주제
|
||||
3. 🎬 파괴적 영상 기획안 — 썸네일 카피, 제목 3개, 후킹 오프닝(첫 5초)
|
||||
"""
|
||||
|
||||
print("🧠 [LLM 분석 중...]")
|
||||
if not model:
|
||||
# Try first available model
|
||||
try:
|
||||
r = requests.get(f"{ollama_url}/api/tags", timeout=5)
|
||||
r.raise_for_status()
|
||||
models = [m["name"] for m in r.json().get("models", [])]
|
||||
if not models:
|
||||
print("❌ 로컬 LLM에 설치된 모델이 없어요. Ollama/LM Studio에서 모델을 풀(pull)하세요.")
|
||||
sys.exit(1)
|
||||
model = models[0]
|
||||
except Exception as e:
|
||||
print(f"❌ 로컬 LLM 연결 실패 ({ollama_url}): {e}")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
r = requests.post(
|
||||
f"{ollama_url}/api/generate",
|
||||
json={"model": model, "prompt": prompt, "stream": False},
|
||||
timeout=180,
|
||||
)
|
||||
r.raise_for_status()
|
||||
report = r.json().get("response", "").strip()
|
||||
except Exception as e:
|
||||
print(f"❌ LLM 호출 실패: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
print("\n" + "="*60)
|
||||
print(report)
|
||||
print("="*60)
|
||||
|
||||
with open(REPORT_PATH, "a", encoding="utf-8") as f:
|
||||
now = time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
f.write(f"\n\n# 🎯 트렌드 스나이핑 보고서 — {now}\n")
|
||||
f.write(f"## 📡 키워드: {', '.join(chosen)}\n\n")
|
||||
f.write(report)
|
||||
f.write("\n\n---\n")
|
||||
print(f"\n✅ 보고서 저장: {REPORT_PATH}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"YOUTUBE_API_KEY": "",
|
||||
"MY_CHANNEL_HANDLE": "",
|
||||
"MY_CHANNEL_ID": "",
|
||||
"WATCHED_CHANNELS": [],
|
||||
"COMPETITOR_CHANNELS": [],
|
||||
"TELEGRAM_BOT_TOKEN": "",
|
||||
"TELEGRAM_CHAT_ID": "",
|
||||
"OLLAMA_URL": "http://127.0.0.1:11434",
|
||||
"MODEL": ""
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# 🔑 계정 / 채널 (공유 설정)
|
||||
|
||||
여기 한 번만 채워두면 다른 모든 YouTube 도구(트렌드 스나이퍼·내 영상 체크·댓글 수집기·경쟁 채널 분석·텔레그램 보고)가 이 값을 그대로 가져다 씁니다. 매번 도구마다 같은 키를 넣지 않아도 돼요.
|
||||
|
||||
## 채워야 하는 항목
|
||||
|
||||
| 키 | 설명 | 채우는 법 |
|
||||
|---|---|---|
|
||||
| `YOUTUBE_API_KEY` | YouTube Data API v3 키 | [console.cloud.google.com](https://console.cloud.google.com/) → 프로젝트 → "YouTube Data API v3" 사용 설정 → 사용자 인증 정보 → API 키. 무료 한도 충분(하루 10,000 단위). |
|
||||
| `MY_CHANNEL_HANDLE` | 본인 채널 @핸들 | 예: `@mychannel`. 핸들 또는 ID 둘 중 하나만 채우면 됨. |
|
||||
| `MY_CHANNEL_ID` | 본인 채널 ID (UCxxxx) | 핸들로 못 잡힐 때 백업용. studio.youtube.com → 설정 → 채널에서 확인. |
|
||||
| `WATCHED_CHANNELS` | 댓글 수집 대상 채널 핸들 목록 | 예: `["@channel_a", "@channel_b"]`. 댓글 수집기가 이 채널들 최근 영상의 댓글을 메모리로 가져옵니다. |
|
||||
| `COMPETITOR_CHANNELS` | 경쟁 채널 분석 대상 | 같은 형식. 경쟁 채널 분석 도구가 패턴을 뽑아 다음 액션을 추천합니다. |
|
||||
| `TELEGRAM_BOT_TOKEN` | 텔레그램 봇 토큰 | @BotFather에서 /newbot으로 봇 만들고 받은 `123:ABC...` 형식 토큰. 비워두면 보고 알림 OFF. |
|
||||
| `TELEGRAM_CHAT_ID` | 본인 chat_id | 봇한테 아무 메시지 보낸 뒤 `https://api.telegram.org/bot<TOKEN>/getUpdates` 열어서 `chat.id` 확인. |
|
||||
| `OLLAMA_URL` | 로컬 LLM 주소 | 기본 `http://127.0.0.1:11434`. LM Studio면 보통 `http://127.0.0.1:1234`. |
|
||||
| `MODEL` | 분석에 쓸 모델 이름 | 비워두면 첫 번째로 발견된 모델을 자동 선택. |
|
||||
|
||||
## 실행하면?
|
||||
입력값이 제대로 들어왔는지 확인 리포트만 출력합니다 (실제 데이터 호출 X). 키가 비어있으면 알려줍니다.
|
||||
|
||||
## 어디 저장되나?
|
||||
이 폴더의 `youtube_account.json` 한 파일에. 브레인 폴더 안이라 GitHub 백업도 같이 됩니다.
|
||||
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python3
|
||||
"""YouTube Account / Channels — shared config for every YouTube tool.
|
||||
|
||||
This script doesn't fetch anything by itself. It's listed in the agent panel
|
||||
so you can click ⚙️ once and fill in your API key, channel, watched
|
||||
channels, etc. — and every other tool will read from here.
|
||||
|
||||
Running it just prints a sanity-check report so you can confirm the values
|
||||
are loaded correctly (without leaking the full API key)."""
|
||||
import os, json, sys
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
CONFIG_PATH = os.path.join(HERE, "youtube_account.json")
|
||||
|
||||
def load():
|
||||
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
def main():
|
||||
cfg = load()
|
||||
api = (cfg.get("YOUTUBE_API_KEY") or "").strip()
|
||||
masked = (api[:4] + "…" + api[-3:]) if len(api) >= 8 else ("(빈 값)" if not api else "(짧음)")
|
||||
print("─── YouTube 계정 / 채널 설정 ───")
|
||||
print(f" API 키 : {masked}")
|
||||
print(f" 내 채널 핸들 : {cfg.get('MY_CHANNEL_HANDLE') or '(없음)'}")
|
||||
print(f" 내 채널 ID : {cfg.get('MY_CHANNEL_ID') or '(없음)'}")
|
||||
watched = cfg.get('WATCHED_CHANNELS') or []
|
||||
print(f" 감시 채널 ({len(watched)}개) : {', '.join(watched) if watched else '(없음)'}")
|
||||
competitors = cfg.get('COMPETITOR_CHANNELS') or []
|
||||
print(f" 경쟁 채널 ({len(competitors)}개): {', '.join(competitors) if competitors else '(없음)'}")
|
||||
tg_bot = (cfg.get('TELEGRAM_BOT_TOKEN') or '').strip()
|
||||
tg_chat = (cfg.get('TELEGRAM_CHAT_ID') or '').strip()
|
||||
if tg_bot and tg_chat:
|
||||
print(f" 텔레그램 : 연결됨 (chat {tg_chat})")
|
||||
else:
|
||||
print(f" 텔레그램 : 미설정 (보고 알림 비활성)")
|
||||
print(f" Ollama URL : {cfg.get('OLLAMA_URL') or 'http://127.0.0.1:11434'}")
|
||||
print(f" 분석 모델 : {cfg.get('MODEL') or '(자동 선택)'}")
|
||||
if not api:
|
||||
print("\n⚠️ API 키가 비어있어요. 다른 도구들이 동작하지 않습니다.")
|
||||
print(" 발급: https://console.cloud.google.com/ → YouTube Data API v3")
|
||||
sys.exit(1)
|
||||
print("\n✅ 공유 설정 로드 OK. 다른 도구들이 이 값을 자동으로 사용합니다.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,46 @@
|
||||
# 🧬 1인 기업 OS — 자가 매뉴얼
|
||||
|
||||
## 이 폴더는 무엇인가요?
|
||||
당신의 1인 기업의 두뇌입니다. 7명의 AI 에이전트가 여기서 일합니다.
|
||||
|
||||
## 폴더 구조
|
||||
- `_shared/` — 모든 에이전트가 매번 읽는 공동 메모리
|
||||
- `identity.md` — 회사 정체성 (이름, 톤, 가치)
|
||||
- `goals.md` — 목표
|
||||
- `decisions.md` — 의사결정 로그 (자가학습이 자동 누적)
|
||||
- `_system.md` — 이 파일
|
||||
- `_agents/<id>/` — 각 에이전트 개인 공간
|
||||
- `memory.md` — 자가학습 (자동, append-only)
|
||||
- `prompt.md` — 페르소나 디테일 (사용자가 편집)
|
||||
- `config.md` — API 키·시크릿 (`.gitignore`로 보호)
|
||||
- `sessions/<ts>/` — 세션별 산출물 (자동)
|
||||
- `_cache/` — API 응답 캐시 (sync 제외)
|
||||
|
||||
## 메모리 위계 (충돌 시 우선순위)
|
||||
1. `decisions.md` — 가장 강한 신뢰
|
||||
2. `identity.md`
|
||||
3. `goals.md`
|
||||
4. 개인 메모리
|
||||
5. 지식 베이스 (`10_Wiki/`)
|
||||
|
||||
## 다른 PC로 옮길 때
|
||||
1. 새 PC에 Connect AI 설치
|
||||
2. 👔 모드 ON → "📥 다른 PC에서 가져오기" 선택
|
||||
3. GitHub URL 입력 → 자동 clone
|
||||
4. 끝.
|
||||
|
||||
## 동기화 정책
|
||||
- `_shared/`, `_agents/*/memory.md`, `_agents/*/prompt.md`, `sessions/` → git sync ✅
|
||||
- `_agents/*/config.md`, `_cache/` → git sync ❌ (시크릿·캐시)
|
||||
|
||||
## 7명의 에이전트
|
||||
- 🧭 **CEO** (Chief Executive Agent): 오케스트레이션, 작업 분해, 종합 판단, 다음 액션 결정
|
||||
- 📺 **YouTube** (Head of YouTube): 유튜브 채널 운영, 영상 기획서(제목·후크·구조), 트렌드 분석, 썸네일 브리프, 업로드 메타데이터, 시청자 유지율 전략
|
||||
- 📷 **Instagram** (Head of Instagram): 인스타그램 릴스/피드 콘셉트, 캡션, 해시태그 전략, 게시 시간, 스토리, 팔로워 인게이지먼트
|
||||
- 🎨 **Designer** (Lead Designer): 브랜드 디자인 브리프(컬러·타이포·레퍼런스), 썸네일 컨셉 3안, 비주얼 시스템, 디자인 가이드
|
||||
- 💻 **Developer** (Lead Engineer): 코드, 자동화 스크립트, API 통합, 웹사이트/봇, 데이터 파이프라인, 디버깅
|
||||
- 💰 **Business** (Head of Business): 수익화 모델, 가격 전략, 시장·경쟁 분석, ROI/KPI 설계, 비즈니스 의사결정
|
||||
- 📱 **Secretary** (Personal Assistant): 일정·할 일 관리, 다른 에이전트 작업 요약·텔레그램 보고, 데일리 브리핑, 알림
|
||||
- ✂️ **Editor** (Video & Content Editor): 영상 편집 디렉션, 컷 구성, B-roll 제안, 자막·타이틀, 스크립트 다듬기, 콘텐츠 폴리싱
|
||||
- ✍️ **Writer** (Copywriter): 카피라이팅, 영상 스크립트 초안, 인스타 캡션, 블로그 글, 메일 톤앤매너, 후크 작성
|
||||
- 🔍 **Researcher** (Trend & Data Researcher): 트렌드 리서치, 경쟁사 분석, 데이터 수집·요약, 인용 자료 정리, 사실 확인
|
||||
@@ -0,0 +1,12 @@
|
||||
# 🎯 공동 목표
|
||||
|
||||
## 올해 핵심 목표
|
||||
- [ ] 없음
|
||||
|
||||
## 1개월 내 단기 목표
|
||||
- 없음
|
||||
|
||||
## 지금 가장 필요한 것
|
||||
- _자가학습이 채울 예정_
|
||||
|
||||
> 모든 에이전트가 매번 이 파일을 읽고 일합니다. 회사 설정 모달에서 폼으로도 수정 가능.
|
||||
@@ -0,0 +1,10 @@
|
||||
# 🏢 회사 정체성
|
||||
|
||||
- **회사 이름:** 테스트
|
||||
- **한 줄 소개:** 테스트
|
||||
- **타깃 청중:** 테스트
|
||||
- **브랜드 톤:** _자가학습이 채울 예정_
|
||||
- **금기:** _자가학습이 채울 예정_
|
||||
|
||||
> 이 파일은 사용자가 직접 편집하거나, 작업하면서 자가학습으로 채워집니다.
|
||||
> 채팅 사이드바의 "👔 회사명" 뱃지를 누르면 폼으로 수정할 수도 있어요.
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"tasksCompleted": 3,
|
||||
"knowledgeInjected": 0,
|
||||
"lastSessionDate": ""
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
# 📋 작업 브리프
|
||||
|
||||
**원 명령:** [모닝 브리핑] 오늘 날짜는 2026-04-30입니다. 회사 목표(goals.md)와 지금까지의 의사결정 로그를 바탕으로 오늘 우리 회사가 우선순위로 처리해야 할 작업 3가지를 결정하고, 각 작업을 적절한 에이전트에게 분배하세요.
|
||||
|
||||
## 요약
|
||||
회사 목표와 로그가 초기화 상태이므로, 시장 분석을 통한 닉슈 선정 → 수익화 전략 및 KPI 도출 → 일일/주간 실행 계획 수립 순으로 3가지 우선 작업을 정의합니다.
|
||||
|
||||
## 분배
|
||||
- **🔍 Researcher**: AI/기술/콘텐츠 관련 상위 3개 시장 트렌드와 주요 경쟁 채널의 성장 패턴을 분석한 후, 우리 회사가 1개월 내 진입 가능한 최적의 1개 닉슈와 핵심 타깃 키워드 5개를 정리해 보고하세요.
|
||||
- **💰 Business**: researcher의 분석 결과를 기반으로 초기 수익화 모델(광고/스폰서/디지털 제품 중 1개 선택)을 제안하고, 월별 조회수·구독자·변환율 목표를 포함한 KPI 프레임워크와 가격/수익 구조를 1페이지 분량으로 작성하세요.
|
||||
- **📱 Secretary**: 리서치와 비즈니스 전략 결과를 종합해 오늘 하루의 핵심 작업 3가지를 최종 확정하고, 마감 시간·담당 에이전트·진행 상태를 명시한 데일리 브리핑과 1주일 액션 플랜을 텔레그램 보고 형식으로 출력하세요.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user