Community이미지github.com

josephprada/jp-skill-image

텍스트 설명으로 Cloudflare Workers AI(flux-1-schnell 모델)를 사용해 이미지를 생성합니다.

jp-skill-image란 무엇인가요?

이 스킬은 사용자의 자연어 요청을 Cloudflare Workers AI의 `@cf/black-forest-labs/flux-1-schnell` 모델을 통해 이미지로 변환합니다. 사용자가 '이미지 생성', '로고 만들어줘', '썸네일 제작' 등 텍스트 아이디어를 주면 Claude가 이를 고품질 프롬프트로 확장하고, `generate.py` 스크립트를 실행해 Cloudflare API를 호출한 후 JPG 파일로 로컬에 저장합니다. 사용자는 Cloudflare 계정 ID와 API 토큰만 `.env` 파일에 설정하면 추가 Python 패키지 설치 없이 바로 사용할 수 있습니다. 모든 주요 AI 에이전트 플랫폼(Claude Code, Cursor 등)과 호환되며, 생성된 이미지의 품질은 Claude가 작성하는 프롬프트의 정교함에 크게 의존합니다.

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

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

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

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

문서

jp-skill-image은(는) 무엇을 하나요?

자연어 요청을 Cloudflare Workers AI(@cf/black-forest-labs/flux-1-schnell)로 생성된 이미지로 변환합니다. 전체 흐름은 다음과 같습니다: 사용자가 원하는 내용을 설명하고, Claude가 프롬프트 엔지니어링을 수행하며, 스크립트가 Cloudflare API를 호출하고, 이미지가 로컬에 JPG로 저장됩니다.

적용 시점

사용자가 설명을 바탕으로 이미지 생성을 원할 때 — "카페 로고 만들어줘", "내 AI 영상 썸네일 만들어줘", "사이버펑크 고양이 사진" 등. Claude는 모호한 요청을 훌륭한 프롬프트로 변환한 후 생성해야 합니다.

적용되지 않는 경우: 기존 이미지 편집, 벡터 아트/SVG, 비디오.

0단계 — 항상 먼저 .env 확인하기

스크립트를 실행하기 전에 자격 증명이 확인되는지 확인하세요. 스크립트는 다음 순서로 찾습니다: 실제 환경 변수 → 현재 디렉토리 또는 상위 디렉토리의 .env → ~/.claude/skills/jp-skill-image/.env (전역 폴백).

python3 -c "import sys; sys.path.insert(0, '$HOME/.claude/skills/jp-skill-image'); from generate import load_credentials; print('OK' if all(load_credentials()) else 'MISSING')"

변수가 누락된 경우 (새 사용자 / 새로 클론된 프로젝트), 이미지를 생성하지 말고 다음 3단계로 사용자에게 설정 방법을 알려주세요:

  1. CF_ACCOUNT_ID: Cloudflare 대시보드 → 모든 도메인/프로젝트 → Workers & Pages → Overview (오른쪽에 표시됨), 또는 https://dash.cloudflare.com/profile/account-id에서 직접 확인... 대시보드 URL이나 왼쪽 사이드바의 Manage Account 섹션(My Profile 아님)에서도 찾을 수 있습니다.
  2. CF_API_TOKEN: https://dash.cloudflare.com/profile/api-tokens → Create Token → Custom Token → 권한 Account.Workers AI Scripts: Edit → Account Resources: 사용자 계정 → Create.
  3. .env 파일 생성 — 프로젝트 루트 또는 ~/.claude/skills/jp-skill-image/.env (어느 폴더에서든 작동하도록)에 다음 내용을 추가:
    CF_ACCOUNT_ID=xxxxx
    CF_API_TOKEN=xxxxx
    

프로젝트가 인터넷 연결에 기업 프록시를 사용하는 경우 (.npmrc에 HTTPS_PROXY가 있는지 또는 외부 API 요청이 타임아웃으로 실패하는지 확인), 다음도 추가하세요:

HTTPS_PROXY=<프록시-주소>

변수가 존재하는지 확인되면 정상적으로 계속 진행합니다.

실행 방법

아무 디렉토리에서든 (이미지는 현재 디렉토리를 기준으로 저장됩니다):

python3 ~/.claude/skills/jp-skill-image/generate.py "<최적화된 프롬프트>" -o <파일명>.jpg --steps <N>
  • "<최적화된 프롬프트>" — 당신이 작성한 프롬프트 (아래 참조), 사용자의 원본 단어가 아닙니다.
  • -o / --output — 저장 위치 (기본값 out.jpg). 짧고 설명적인 이름 사용, 예: coffee-logo.jpg.
  • --steps — 확산 단계 수 (기본값 4). flux-schnell은 적은 단계에 최적화되었지만, 최고 품질을 위해서는 사용자가 속도를 요구하지 않는 한 8을 사용하세요. 4 미만은 사용하지 마세요.

스크립트는 성공 시 Saved <파일> ...을 출력하고, 실패 시 읽기 쉬운 오류를 출력합니다 (내부적으로 처리되는 base64 JSON 이미지 응답 사례 포함).

Claude의 실제 작업: 최고 품질의 프롬프트 작성

이 스킬의 가치는 Claude가 사용자의 의도를 생생하고 구체적이며 기술적으로 정확한 프롬프트로 확장한 후 스크립트를 호출하는 데 있습니다. 사용자의 요청을 그대로 전달하지 마세요 — 항상 먼저 다듬으세요.

Flux용 고품질 프롬프트는 다음 순서로 명시해야 합니다:

  1. 주요 주제 — 장면에 무엇이 있는지 구체적이고 모호함 없이.
  2. 스타일/매체 — 사실적 사진, 3D 렌더링, 플랫 벡터, 수채화, 아이소메트릭, 픽셀 아트 등.
  3. 구성 및 프레이밍 — 클로즈업, 풀 샷, 중앙 배치, 3분할 법칙, 카메라 각도.
  4. 조명 및 분위기 — 골든 아워, 네온, 부드러운 스튜디오 조명, 드라마틱한 그림자, 역광.
  5. 색상 및 디테일 수준 — 특정 팔레트, 배경, 텍스처, 디테일 수준 ("highly detailed", "clean minimal").
  6. 기술적 품질 (사실적 사진/렌더용) — "cinematic", "8k", "sharp focus", "professional photography" 등의 용어는 Flux가 프리미엄 결과물에 가까워지도록 도와줍니다.

변환 예시:

  • 사용자: "카페 로고"
  • 전달할 프롬프트: "minimalist logo of a steaming coffee cup, flat vector illustration, warm brown and cream palette, centered on a clean off-white background, simple bold shapes, modern branding, professional design"

엄격한 규칙:

  • 프롬프트는 항상 영어로 (Flux가 더 잘 반응합니다).
  • 1-2문장, 정보 밀도가 높고 군더더기 없이.
  • 이미지 내에 읽을 수 있는 텍스트/단어를 요청하지 마세요 — Flux가 제대로 렌더링하지 못합니다.
  • 사용자가 충분한 디테일을 제공하지 않으면, 최선의 창의적 결정으로 빈칸을 채우세요 (주제가 정말 모호하지 않은 이상 질문하지 마세요).
  • 기본적으로 --steps 8을 사용하여 품질을 극대화하세요. 사용자가 명시적으로 속도를 요청하는 경우에만 4로 낮추세요.

생성 후

  1. 파일이 저장되었는지 확인하세요 (스크립트가 경로를 출력합니다).
  2. 사용자에게 파일 이름과 사용한 정확한 프롬프트를 알려주어 조정 후 재실행할 수 있도록 하세요.
  3. 변형을 원하면 수정된 프롬프트와 새 -o로 다시 실행하세요.

기술 요구 사항

  • CF_ACCOUNT_ID와 CF_API_TOKEN이 0단계의 세 가지 소스 중 하나로 확인되어야 함.
  • Python 3.8+. 외부 의존성 없음 — 스크립트는 표준 라이브러리(urllib)만 사용하므로 pip install이나 가상 환경이 필요 없습니다.
  • 스크립트는 Cloudflare API의 base64 응답을 디코딩하여 바이너리 JPG로 저장합니다. 응답 자체가 직접 이미지는 아닙니다.

관련 스킬