이미지 생성 스킬
현재 프로젝트를 위한 이미지(예: 웹사이트 자산, 게임 자산, UI 목업, 제품 목업, 와이어프레임, 로고 디자인, 사실적인 이미지, 인포그래픽)를 생성하거나 편집합니다.
최상위 모드 및 규칙
이 스킬은 정확히 두 가지 최상위 모드를 가집니다:
- 기본 내장 도구 모드 (권장): 일반 이미지 생성, 편집 및 간단한 투명 이미지 요청을 위한 내장
image_gen도구.OPENAI_API_KEY가 필요하지 않습니다. - 폴백 CLI 모드:
scripts/image_gen.pyCLI. 사용자가 명시적으로 CLI/API/모델 경로를 요청하거나, 사용자가gpt-image-1.5를 사용한 진정한 모델 네이티브 투명성 폴백을 명시적으로 확인한 후 사용합니다.OPENAI_API_KEY가 필요합니다.
CLI 폴백 내에서 CLI는 세 가지 하위 명령을 제공합니다:
generateeditgenerate-batch
규칙:
- 일반적인 이미지 생성 및 편집 요청에는 기본적으로 내장
image_gen도구를 사용합니다. - 일반적인 품질, 크기, 파일 경로 제어를 위해 CLI 폴백으로 전환하지 마십시오.
- 사용자가 명시적으로 투명 이미지/배경을 요청한 경우, 먼저 내장
image_gen도구를 사용합니다: 평평한 제거 가능 크로마키 배경을 프롬프트하고,$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py에 설치된 헬퍼를 사용하여 로컬에서 배경을 제거합니다. - 내장
image_gen또는 CLIgpt-image-2에서 CLIgpt-image-1.5로 조용히 전환하지 마십시오. 이를 모델/경로 다운그레이드로 간주하고 사용자가 이미gpt-image-1.5,scripts/image_gen.py또는 CLI 폴백을 명시적으로 요청하지 않은 경우 사용자에게 먼저 물어보십시오. - 투명 요청이 크로마키 제거에 너무 복잡해 보이거나, 진정한/네이티브 투명성을 요구하거나, 로컬 제거가 검증에 실패하면,
gpt-image-2가background=transparent를 지원하지 않기 때문에 진정한 투명성을 위해서는 CLIgpt-image-1.5 --background transparent --output-format png가 필요하다고 설명하고 진행 여부를 물어보십시오. 사용자가 확인한 후에만 CLI 폴백을 실행합니다. batch라는 단어 자체가 CLI 폴백을 의미하지는 않습니다. 사용자가 많은 자산을 요청하거나 CLI/API/모델 컨트롤을 명시적으로 요청하지 않고 자산을 일괄 생성하라고 하면, 내장 경로를 유지하고 요청된 자산이나 변형 각각에 대해 내장 호출을 한 번씩 수행합니다.- 내장 도구가 실패하거나 사용할 수 없으면, CLI 폴백이 존재하며
OPENAI_API_KEY가 필요하다고 사용자에게 알립니다. 사용자가 명시적으로 해당 폴백을 요청하는 경우에만 진행합니다. - 사용자가 명시적으로 CLI 모드를 요청하면, 번들된
scripts/image_gen.py워크플로를 사용합니다. 일회성 SDK 실행기를 만들지 마십시오. scripts/image_gen.py를 수정하지 마십시오. 누락된 것이 있으면 다른 작업을 하기 전에 사용자에게 물어보십시오.
내장 저장 경로 정책:
- 내장 도구 모드에서 Codex는 생성된 이미지를 기본적으로
$CODEX_HOME/*아래에 저장합니다. - OS 임시 폴더를 기본 내장 대상으로 설명하거나 의존하지 마십시오.
- 내장
image_gen도구의 대상 경로 인수(있는 경우)를 설명하거나 의존하지 마십시오. 특정 위치가 필요한 경우 먼저 생성한 다음$CODEX_HOME/generated_images/...에서 선택한 출력을 이동하거나 복사하십시오. - 내장 모드에서 저장 경로 우선 순위:
- 사용자가 대상을 지정하면 선택한 출력을 해당 위치로 이동하거나 복사합니다.
- 이미지가 현재 프로젝트용인 경우, 작업을 마치기 전에 최종 선택된 이미지를 작업 공간으로 이동하거나 복사합니다.
- 이미지가 미리 보기나 브레인스토밍용인 경우 인라인으로 렌더링합니다. 기본 파일은 기본
$CODEX_HOME/*경로에 남겨둘 수 있습니다.
- 프로젝트에서 참조하는 자산을 기본
$CODEX_HOME/*경로에만 남겨두지 마십시오. - 사용자가 명시적으로 교체를 요청하지 않는 한 기존 자산을 덮어쓰지 마십시오. 대신
hero-v2.png또는item-icon-edited.png와 같은 버전 관리 파일 이름을 만듭니다.
두 모드에 대한 공유 프롬프트 지침은 references/prompting.md 및 references/sample-prompts.md에 있습니다.
CLI 모드 전용 폴백 문서/리소스:
references/cli.mdreferences/image-api.mdreferences/codex-network.mdscripts/image_gen.py
로컬 후처리 헬퍼:
$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py: 생성된 이미지에서 평평한 크로마키 배경을 제거하고 알파 채널이 있는 PNG/WebP를 작성합니다. 앤티앨리어싱된 가장자리를 위해 자동 키 샘플링, 소프트 매트 및 디스필을 선호합니다.
사용 시기
- 새 이미지 생성 (컨셉 아트, 제품 사진, 표지, 웹사이트 히어로)
- 스타일, 구도 또는 분위기를 위한 하나 이상의 참조 이미지를 사용하여 새 이미지 생성
- 기존 이미지 편집 (인페인팅, 조명 또는 날씨 변환, 배경 교체, 개체 제거, 합성, 투명 배경)
- 하나의 작업에 대해 많은 자산 또는 변형 생성
사용하지 않을 시기
- 리포지토리 내 기존 SVG/벡터 아이콘 세트, 로고 시스템 또는 일러스트레이션 라이브러리 확장 또는 일치
- SVG, HTML/CSS 또는 캔버스에서 직접 생성하는 것이 더 나은 단순한 도형, 다이어그램, 와이어프레임 또는 아이콘 만들기
- 소스 파일이 이미 편집 가능한 네이티브 형식으로 존재할 때 작은 프로젝트 로컬 자산 편집
- 사용자가 생성된 비트맵 대신 결정론적 코드 네이티브 출력을 명확히 원하는 모든 작업
결정 트리
두 가지 별개의 질문을 생각하십시오:
- 의도: 새 이미지인가, 기존 이미지 편집인가?
- 실행 전략: 하나의 자산인가, 여러 자산/변형인가?
의도:
- 사용자가 기존 이미지의 일부를 보존하면서 수정하려는 경우 요청을 편집으로 처리합니다.
- 사용자가 스타일, 구도, 분위기 또는 주제 안내를 위한 참조로만 이미지를 제공하는 경우 요청을 생성으로 처리합니다.
- 사용자가 이미지를 제공하지 않는 경우 요청을 생성으로 처리합니다.
내장 편집 의미:
- 내장 편집 모드는 대화 컨텍스트에 이미 표시된 이미지(예: 첨부된 이미지 또는 이전에 스레드에서 생성된 이미지)를 위한 것입니다.
- 사용자가 내장 도구로 로컬 이미지 파일을 편집하려는 경우, 먼저 내장
view_image도구로 로컬 파일을 로드하여 이미지가 대화 컨텍스트에 표시되도록 한 다음 내장 편집 흐름을 진행합니다. - 내장 도구를 통해 임의 파일 시스템 경로 편집을 약속하지 마십시오.
- 로컬 파일에 여전히 직접 파일 경로 제어, 마스크 또는 기타 명시적 CLI 전용 매개변수가 필요한 경우, 사용자가 요청할 때만 명시적 CLI 폴백을 사용합니다.
- 편집의 경우 불변 요소를 적극적으로 보존하고 기본적으로 비파괴적으로 저장합니다.
실행 전략:
- 내장 기본 경로에서 요청된 자산 또는 변형 각각에 대해 하나의
image_gen호출을 발행하여 여러 자산 또는 변형을 생성합니다. - CLI 폴백 경로에서 사용자가 명시적으로 CLI 모드를 선택하고 많은 프롬프트/자산이 필요할 때만 CLI
generate-batch하위 명령을 사용합니다. - 여러 개의 고유한 자산의 경우
n을 별도의 프롬프트 대신 사용하지 마십시오.n은 하나의 프롬프트에 대한 변형을 위한 것입니다. 고유한 자산에는 별도의 내장 호출 또는 별도의 CLIgenerate-batch작업이 필요합니다.
사용자가 명확하게 기존 이미지를 변경하도록 요청하지 않는 한 새 이미지를 원한다고 가정합니다.
워크플로
- 최상위 모드를 결정합니다: 기본적으로 내장 모드(간단한 투명 출력 요청 포함); 명시적으로 요청되거나 사용자가 투명 출력 폴백을 명시적으로 확인한 경우에만 폴백 CLI.
- 의도를 결정합니다:
generate또는edit. - 출력이 미리 보기 전용인지 현재 프로젝트에서 사용될 것인지 결정합니다.
- 실행 전략을 결정합니다: 단일 자산 대 내장 호출 반복 대 CLI
generate-batch. - 입력을 사전에 수집합니다: 프롬프트, 정확한 텍스트(그대로), 제약/금지 목록 및 모든 입력 이미지.
- 모든 입력 이미지에 대해 해당 역할을 명시적으로 레이블링합니다:
- 참조 이미지
- 편집 대상
- 보조 삽입/스타일/합성 입력
- 편집 대상이 로컬 파일 시스템에만 있고 내장 경로를 유지하는 경우 먼저
view_image로 검사하여 이미지가 대화 컨텍스트에서 사용 가능하도록 합니다. - 사용자가 사진, 일러스트, 스프라이트, 제품 이미지, 배너 또는 기타 명시적 래스터 스타일 자산을 요청한 경우 SVG/HTML/CSS 자리 표시자를 대체하는 대신
image_gen을 사용합니다. 요청이 기존 리포지토리 네이티브 SVG/벡터/코드 자산과 일치해야 하는 아이콘, 로고 또는 UI 그래픽인 경우 대신 해당 자산을 직접 편집하는 것이 좋습니다. - 특이성에 따라 프롬프트를 확장합니다:
- 사용자의 프롬프트가 이미 구체적이고 상세한 경우, 창의적인 요구 사항을 추가하지 않고 명확한 사양으로 정규화합니다.
- 사용자의 프롬프트가 일반적인 경우, 출력 품질을 실질적으로 향상시킬 때만 세련된 확장을 추가합니다.
- 기본적으로 내장
image_gen도구를 사용합니다. - 투명 출력 요청의 경우 아래 투명 이미지 지침을 따릅니다: 내장
image_gen으로 평평한 크로마키 배경에 생성하고, 선택한 출력을 작업 공간 또는tmp/imagegen/에 복사하고, 설치된$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py헬퍼를 실행하고, 알파 결과를 사용하기 전에 검증합니다. 이 경로가 부적합해 보이거나 실패하면 CLIgpt-image-1.5로 전환하기 전에 사용자에게 묻습니다. - 출력을 검사하고 검증합니다: 주제, 스타일, 구도, 텍스트 정확성 및 불변/금지 항목.
- 단일 대상 변경으로 반복한 다음 다시 확인합니다.
- 미리 보기 전용 작업의 경우 이미지를 인라인으로 렌더링합니다. 기본 파일은 기본
$CODEX_HOME/generated_images/...경로에 남아 있을 수 있습니다. - 프로젝트 바인딩 작업의 경우 선택한 아티팩트를 작업 공간으로 이동하거나 복사하고 소비하는 모든 코드 또는 참조를 업데이트합니다. 프로젝트에서 참조하는 자산을 기본
$CODEX_HOME/generated_images/...경로에만 남겨두지 마십시오. - 배치 또는 다중 자산 요청의 경우 사용자가 명시적으로 출력을 미리 보기 전용으로 유지하도록 요청하지 않는 한 모든 요청된 최종 산출물을 작업 공간에 유지합니다. 폐기된 변형은 요청되지 않는 한 보관할 필요가 없습니다.
- 사용자가 명시적으로 CLI 폴백을 선택하거나 확인하는 경우, 폴백 전용 문서를 사용하여 모델, 품질, 크기,
input_fidelity, 마스크, 출력 형식, 출력 경로 및 네트워크 설정을 처리합니다. - 작업 공간 바인딩 자산에 대한 최종 저장 경로와 최종 프롬프트 또는 프롬프트 세트 및 사용된 모드(내장 도구 또는 폴백 CLI)를 항상 보고합니다.
투명 이미지 요청
투명 이미지 요청은 여전히 먼저 내장 image_gen을 사용합니다. 내장 도구가 진정한 투명 배경 제어 기능을 노출하지 않기 때문에, 제거 가능한 크로마키 소스 이미지를 만든 다음 키 색상을 로컬에서 알파로 변환합니다.
기본 순서:
- 내장
image_gen을 사용하여 완벽하게 평평한 단색 크로마키 배경에 요청된 주제를 생성합니다. - 주제에 나타날 가능성이 낮은 키 색상을 선택합니다: 기본
#00ff00, 녹색 주제의 경우#ff00ff, 파란색 주제의 경우#0000ff를 피합니다. - 생성 후, 선택한 소스 이미지를
$CODEX_HOME/generated_images/...에서 작업 공간 또는tmp/imagegen/로 이동하거나 복사합니다. - 프로젝트 상대 스크립트 경로가 아닌 설치된 헬퍼 경로를 실행합니다:
python "${CODEX_HOME:-$HOME/.codex}/skills/.system/imagegen/scripts/remove_chroma_key.py" \ --input <source> \ --out <final.png> \ --auto-key border \ --soft-matte \ --transparent-threshold 12 \ --opaque-threshold 220 \ --despill - 출력에 알파 채널, 투명 모서리, 그럴듯한 주제 범위 및 명백한 키 색상 프린지가 없는지 확인합니다. 얇은 프린지가 남아 있으면
--edge-contract 1로 한 번 재시도합니다. 가장자리가 눈에 띄게 계단식이고 주제가 반짝이거나 반사되지 않는 경우에만--edge-feather 0.25를 사용합니다. - 자산이 프로젝트에 바인딩된 경우 최종 알파 PNG/WebP를 프로젝트에 저장합니다. 프로젝트에서 참조하는 투명 자산을
$CODEX_HOME/*아래에만 남겨두지 마십시오.
투명 요청을 다음과 같이 프롬프트합니다:
배경 제거를 위해 완벽하게 평평한 단색 #00ff00 크로마키 배경에 요청된 주제를 생성합니다.
배경은 그림자, 그라데이션, 텍스처, 반사, 바닥 평면 또는 조명 변화 없이 하나의 균일한 색상이어야 합니다.
주제를 선명한 가장자리와 충분한 여백으로 배경과 완전히 분리된 상태로 유지합니다.
주제 내 어디에도 #00ff00을 사용하지 마십시오.
명시적으로 요청되지 않는 한, 투사 그림자, 접촉 그림자, 반사, 워터마크 또는 텍스트가 없습니다.
크로마 키잉 대신 CLI gpt-image-1.5 --background transparent --output-format png를 자동으로 사용하지 마십시오. 사용자가 진정한/네이티브 투명성을 요청하거나, 로컬 제거가 검증에 실패하거나, 요청된 이미지가 복잡한 경우(머리카락, 털, 깃털, 연기, 유리, 액체, 반투명 재질, 반사 개체 부드러운 그림자, 사실적인 제품 접지 또는 모든 실용적인 키 색상과 충돌하는 주제 색상) 사용자에게 먼저 문의하십시오.
다음과 같은 간결한 확인 메시지를 사용합니다:
이 작업은 진정한 네이티브 투명성이 필요할 것으로 보입니다. 기본 내장 경로는 크로마키 배경과 로컬 제거를 사용하지만, 진정한 투명성은 gpt-image-2가 background=transparent를 지원하지 않기 때문에 CLI 폴백(gpt-image-1.5)이 필요합니다. 또한 OPENAI_API_KEY가 필요합니다. 해당 CLI 폴백을 진행할까요?
프롬프트 확장
사용자 프롬프트를 구조화된 프로덕션 지향 사양으로 재구성합니다. 사용자의 목표를 더 명확하고 실행 가능하게 만들지만, 맹목적으로 세부 사항을 추가하지는 마십시오.
이를 닫힌 스키마가 아닌 프롬프트 형성 지침으로 취급하십시오. 도움이 되는 줄만 사용하고, 출력 선명도를 실질적으로 향상시킬 때만 짧은 추가 레이블 줄을 추가하십시오.
특이성 정책
얼마나 많은 확장이 적절한지 결정하기 위해 사용자 프롬프트의 특이성을 사용합니다:
- 프롬프트가 이미 구체적이고 상세한 경우, 해당 특이성을 유지하고 정규화/구조화만 합니다.
- 프롬프트가 일반적인 경우, 결과를 실질적으로 향상시킬 때만 세련된 확장을 추가할 수 있습니다.
허용되는 확장:
- 구도 또는 프레이밍 힌트
- 마감 수준 또는 의도된 사용 힌트
- 실용적인 레이아웃 지침
- 명시된 요청을 뒷받침하는 합리적인 장면 구체성
허용되지 않는 확장:
- 요청에 암시되지 않은 추가 캐릭터 또는 개체
- 암시되지 않은 브랜드 이름, 슬로건, 팔레트 또는 내러티브 비트
- 주변 레이아웃이 뒷받침하지 않는 한 임의의 측면별 배치
사용 사례
…
[이하 생략됨 - 번역을 위해 잘림]