Community이미지github.com

OpenAI 이미지 생성 & 네이티브 GIF

OpenAI 공식 Images API를 사용하여 정적 이미지와 네이티브 애니메이션 GIF를 생성합니다.

OpenAI 이미지 생성 & 네이티브 GIF란 무엇인가요?

이 AI 에이전트 스킬은 OpenAI의 이미지 생성 API를 활용하여 정적 이미지(PNG, JPEG, WebP)와 네이티브 애니메이션 GIF(gpt-image-2.6-sunburst 또는 gpt-image-2.6-flare 모델 필요)를 생성합니다. 주된 사용 사례는 사용자가 그림, 이미지 생성, 애니메이션 또는 GIF를 요청할 때이며, Codex, GitHub Copilot 등 다양한 에이전트 플랫폼에서 지원됩니다. 이 스킬은 uv 패키지 관리자를 통해 실행되는 독립적인 Python CLI를 제공하며, Pillow, FFmpeg, OpenAI SDK 등 외부 라이브러리에 의존하지 않습니다. GIF 생성 시 특별한 프레임 합성 없이 모델이 직접 출력하는 고유한 기능을 제공하며, 프레임 수(2~16), 지속 시간(최소 20ms) 등을 세밀하게 제어할 수 있습니다. 중요한 점은 이 스킬이 사용자 승인 없이 API를 호출하지 않으며, API 키를 안전하게 관리하고, dry-run 모드를 제공하여 비용 부담 없이 요청을 미리 확인할 수 있다는 것입니다. 또한, 잘못된 요청이나 오류 상황에 대한 명확한 오류 처리를 제공하여 예상치 못한 비용이나 잘못된 파일 생성을 방지합니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/weber87na/openai-image-skill/tree/HEAD/.agents/skills/openai-image

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

OpenAI 이미지 생성 & 네이티브 GIF은(는) 무엇을 하나요?

이 스킬은 독립적으로 복사할 수 있는 Agent Skills 패키지로, 프로젝트 또는 개인 설치를 지원합니다. 이 파일이 있는 폴더를 스킬 루트 디렉토리로 간주하며, 고정된 설치 위치나 현재 작업 디렉토리를 가정하지 마십시오. 모든 Python 명령은 uv를 통해 실행해야 하며, python, pip를 직접 사용하거나 venv를 직접 생성하지 마십시오.

기능 및 제한 사항

  • 정적 이미지: PNG, JPEG, WebP.
  • 네이티브 애니메이션 GIF: output_format=gif, frame_count, frame_duration_ms를 사용하여 /v1/images/generations를 한 번 호출합니다.
  • 기본 모델: gpt-image-2.6-sunburst; 빠른 반복 작업 시 gpt-image-2.6-flare를 선택할 수 있습니다. gpt-image2.6과 같은 구어체 이름을 모델 ID로 직접 사용하지 마십시오.
  • GIF를 사용하려면 선택한 모델에 대한 GIF 미리보기 액세스 권한이 필요하며, 단순히 ChatGPT / Codex / Copilot 구독만으로는 사용할 수 없습니다.
  • GIF는 2–16프레임을 지원하며, 기본값은 9프레임입니다. 각 프레임의 기본 지속 시간은 200ms이며, 최소 20ms, API는 10ms 단위로 반올림하며, 최대 인코딩 가능 시간은 655,350ms입니다. 기본 애니메이션 길이는 약 1.8초이며, 실제 시간은 출력 데이터를 기준으로 합니다.
  • 동일한 이미지를 여러 프레임으로 복사하지 않으며, PNG 파일을 GIF로 이름을 바꾸지 않으며, 실패 시 여러 이미지 생성이나 다른 유료 서비스로 전환하지 않습니다.
  • 이 CLI는 텍스트-이미지 생성에 특화되어 있으며, 이미지 편집, 스트리밍, 비디오 생성 또는 로컬 애니메이션 합성을 제공하지 않습니다. Pillow, FFmpeg 또는 OpenAI SDK에 의존하지 않습니다.

워크플로우

  1. 정적 이미지인지 애니메이션인지 판단하고, 사용자가 지정한 피사체, 구성, 텍스트, 스타일 및 출력 경로를 유지합니다.
  2. 애니메이션의 경우 "동작, 고정 카메라, 일관된 배경, 처음과 끝 연결" 등 설명을 보완합니다. 사용자 동의 없이 요구 사항을 변경하지 마십시오. 프레임 수와 속도가 지정되지 않은 경우 기본값을 사용하며, API 제한을 초과하는 경우 먼저 설명하고 절충 방안을 문의합니다.
  3. OpenAI API 할당량이 사용된다는 점을 알리고, 사용자가 그림 생성을 승인한 경우에만 호출합니다. 단순히 스킬을 생성하거나, 설명을 보거나, dry-run을 실행하는 것은 유료 테스트에 대한 승인을 의미하지 않습니다. 소스 코드, 자격 증명 또는 기타 기밀 정보를 전송해서는 안 됩니다.
  4. uv --version을 확인합니다. uv가 설치되지 않은 경우 사용자에게 uv를 설치하도록 요청하며, 시스템 도구를 임의로 설치하지 마십시오.
  5. OPENAI_API_KEY가 존재하는지만 확인하고, 절대 .env 또는 키의 내용을 출력하지 않으며, 대화에 붙여넣도록 요구하지 않고, 소스 코드나 버전 관리 시스템에 기록하지 않습니다. 기존 프로세스 환경 변수가 있으면 직접 사용합니다. dotenv 파일이 필요한 경우 사용자 작업 프로젝트 또는 명시적으로 지정된 .env의 절대 경로를 확인하고, uv run --env-file <경로>를 사용하여 로드합니다. 스킬 설치 디렉토리에서 다른 프로젝트의 자격 증명을 찾지 마십시오. 이 도구는 https://api.openai.com에만 연결되며, OPENAI_BASE_URL을 읽지 않습니다.
  6. 스킬 루트 디렉토리에서 CLI의 절대 경로를 확인하고, 먼저 dry-run으로 매개변수를 검사한 후 실제 요청을 한 번 실행합니다. 출력 경로는 사용자 작업 프로젝트를 기준으로 하며, 스킬 설치 디렉토리에 쓰지 않습니다. 초기 설정 시 제공된 빈 설정 템플릿과 사용 가이드를 사용하고, 기존 설정을 덮어쓰지 마십시오.
  7. 종료 코드와 결과 JSON을 확인합니다. 도구는 반환 형식을 검증하고, GIF의 경우 청크를 파싱하고 최소 2프레임인지 확인한 후 실제 크기, 프레임 수 및 총 지속 시간을 보고하고 파일을 씁니다. 이는 컨테이너 및 형식 검사이며, 완전한 픽셀 디코딩 또는 시각적 품질 검수가 아닙니다. 이미지 미리보기 기능이 있는 경우에만 화면을 확인합니다.
  8. 출력 파일 링크를 제공합니다. GIF가 미리보기되지 않은 경우 시각적 효과가 검증되었다고 주장하지 마십시오. 프레임 수가 일치하지 않는 경우 warning을 표시하고 숨기지 않습니다.

실행 방법

먼저 로드 위치에 따라 $skillDir을 스킬 루트 디렉토리의 절대 경로로 설정하고, 사용자 작업 프로젝트에서 실행합니다. 전체 설정, 정적 이미지/GIF 예제 및 매개변수는 사용 가이드를 참조하십시오.

$script = Join-Path $skillDir 'scripts\openai_image.py'
uv run --no-env-file --script "$script" --prompt '독창적인 수채화 스타일의 대만 산림과 아침 안개, 텍스트 없음' --output outputs\mountains.png --dry-run
  • --dry-run은 API 키가 필요 없고, API를 호출하지 않으며, 파일을 쓰지 않습니다. 프롬프트를 표시하므로 기밀 콘텐츠를 사용해서는 안 됩니다. uv가 처음 실행될 때 Python이 없으면 실행 환경을 다운로드할 수 있습니다.
  • 그림 생성 승인을 받은 경우에만 --dry-run을 제거하십시오. dotenv 파일이 필요한 경우 --no-env-file을 --env-file <사용자가 지정한 .env 절대 경로>로 바꾸십시오.
  • GIF는 .gif 확장자를 사용하며, --frames 9 --frame-duration-ms 200을 지정할 수 있습니다. n=1은 전체 애니메이션을 의미하며, 프레임 수가 아닙니다.
  • response_format, stream, partial_images, output_compression 등 GIF에 적용되지 않는 매개변수는 전송하지 마십시오.
  • 기본적으로 크기를 지정하지 않습니다. 사용자 정의 크기는 16의 배수여야 하며, 가로 세로 비율이 1:3에서 3:1 사이여야 합니다. GIF에는 모델별 크기 제한이 추가로 있으므로 정적 이미지 크기가 항상 적용된다고 가정하지 마십시오.
  • --overwrite를 제공하지 않으며, 사용자가 명시적으로 기존 파일을 덮어쓰는 데 동의하지 않는 한 덮어쓰지 마십시오.

오류 처리

  • 키 누락: 중단하고 사용자에게 자신의 환경에서 설정하도록 요청합니다. 키를 대화에 붙여넣지 마십시오.
  • HTTP 401 / 403 / 404: 자격 증명, 전체 모델 ID, 조직 검증 및 GIF 미리보기 권한을 확인합니다.
  • HTTP 400: 크기, 형식, 프레임 매개변수 및 모델 지원을 확인합니다. 자동으로 다른 형식이나 합성 방식으로 다운그레이드하지 마십시오.
  • HTTP 429, 5xx, 시간 초과 또는 연결 끊김: 이미 처리되어 요금이 청구되었을 수 있습니다. 먼저 보고하고 사용자 동의를 받은 후에 다시 전송합니다.
  • 애니메이션이 아닌 GIF, 잘못된 형식, 유효하지 않은 Base64 또는 불완전한 GIF: 성공 보고를 거부하고 대상 파일에 쓰지 않습니다.
  • 출력 경로가 없으면 자동으로 상위 폴더를 생성합니다. 기존 파일은 기본적으로 덮어쓰지 않습니다. 파일 시스템은 하드 링크를 지원하여 덮어쓰지 않고 안전하게 저장해야 합니다. 지원하지 않는 경우 오류를 보고하고 조용히 덮어쓰지 않습니다.

검증

오프라인 테스트는 로컬 HTTP 모의 서버만 사용하며, 실제 키를 읽지 않고, OpenAI에 연결하지 않으며, 요금이 청구되지 않습니다:

$tests = Join-Path $skillDir 'tests\test_openai_image.py'
uv run --no-env-file --script "$tests"

테스트는 모델/GIF 미리보기 권한이 있다거나 유료 종단 간 검증이 완료되었음을 의미하지 않습니다. 실제 생성을 위해서는 유효한 키와 사용자 승인이 필요합니다.

에이전트에서 호출

  • Copilot: /openai-image를 사용하거나, "OpenAI로 그림 그리기/애니메이션 GIF 만들기"라고 직접 말합니다.
  • Codex: $openai-image를 사용하거나, 자연어로 이 스킬을 사용하도록 요청합니다. Codex 인터페이스 설정은 공유 명령에 영향을 주지 않습니다.
  • 찾을 수 없는 경우 현재 harness가 설치 위치를 지원하는지 확인하고, 대화를 다시 열거나 스킬 목록을 다시 로드합니다. Copilot CLI와 Codex는 .agents/skills를 공유할 수 있습니다. 일부 Copilot harness는 .github/skills를 사용합니다. 전체 폴더를 이동하고, 동시에 스캔되는 여러 위치에 동일한 이름의 스킬을 복사하지 마십시오.

공식 참고 자료

구현 매개변수는 2026-11-09에 확인된 공식 문서를 기반으로 합니다. 모델 액세스, 제한 사항 및 가격은 변경될 수 있습니다.

관련 스킬