Community이미지github.com

parthbatra99/feedready

라이트룸 전문 사진작가처럼 사진을 편집합니다. 사진을 분석하고, 분위기를 합의한 후, 편집 방향을 나란히 보여주고, 원하는 분위기가 나올 때까지 편집(렌더링, 자체 리뷰, 보여주기, 메모)을 반복하여 Instagram, LinkedIn 또는 스토리에 최종 이미지를 제공합니다. 등급 및 룩, 노출, 색상, 자르기, 영역 편집(얼굴, 눈, 하늘, 산, 사람, 배경, 모든 개체), 개체 제거를 포함합니다.

feedready란 무엇인가요?

이 기술은 라이트룸 전문가 수준의 사진 편집을 자동화하는 AI 에이전트 기술입니다. 사용자가 사진을 공유하고 편집을 요청하면, `feedready`는 사진 분석부터 시작하여 분위기를 합의하고, 여러 편집 방향을 제시하며, 단계별로 편집을 진행합니다. Apple Core Image, Vision 프레임워크, SegFormer 모델, EdgeTAM, MI-GAN 등 다양한 엔진을 활용하여 조정, 마스킹, 객체 제거를 수행하며, Mac이 아닌 환경(claude.ai 등)에서는 numpy와 소형 모델(YuNet, U²-Net-p)을 사용하여 동일한 기능을 제공합니다. Claude Code, Cursor 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 사진의 종류(인물, 풍경 등)에 관계없이 고품질 편집 결과물을 제공하는 것이 핵심 강점입니다. 기술은 사용자의 취향을 학습하여 점점 더 개인화된 편집을 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/parthbatra99/feedready/tree/HEAD/skills/feedready

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

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

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

문서

feedready은(는) 무엇을 하나요?

사용자가 이 사진 편집을 의뢰했습니다. 좋은 사진작가처럼 작업하세요:

  • 사진을 만지기 전에 먼저 읽으십시오.
  • 한 번의 대화로 분위기를 합의하십시오.
  • 설명 대신 옵션을 보여주십시오.
  • 누구에게 보여주기 전에 자신의 작업을 확인하십시오.
  • 평범한 언어로 메모를 하십시오.
  • 제대로 되었을 때 멈추십시오.

run.sh가 렌더링하며; 당신이 모든 호출을 결정합니다.

Mac에서는 다음 엔진을 사용합니다:

  • Apple Core Image: 조정용
  • Vision: 사람, 피사체 및 얼굴 마스크용
  • 4.4 MB SegFormer 모델: 하늘, 산, 물, 나무 마스크용
  • EdgeTAM: 상자나 클릭으로 지정한 모든 객체 마스크용
  • MI-GAN: 객체 제거용

다른 환경(claude.ai, 또는 엔진이 없는 모든 시스템)에서는 numpy가 동일한 조정을 렌더링하고, 소형 포터블 모델이 Vision을 대체합니다: YuNet(얼굴 및 눈용), U²-Net-p + EdgeTAM(피사체용), SegFormer + EdgeTAM(사람용). bootstrap은 세션에서 처음 사용할 때 이를 설치하므로, 모든 기능이 해당 환경에서도 작동합니다.

모든 명령은 이 스킬의 기본 디렉토리에서 실행하세요: Mac에서는 <base>/run.sh <cmd>, claude.ai에서는 python3 <base>/scripts/feedready.py <cmd>. setup.sh는 run.sh와 같은 위치에 있습니다. 모든 명령은 JSON을 출력합니다.

사용자에게 이미지를 보여주려면, 파일 전송 도구(Claude Code 앱의 SendUserFile)를 사용하세요. 도구가 없으면 파일의 절대 경로를 제공하세요.

각 라운드마다 한 가지를 보여주고, 그것은 다음 결정에 필요한 것이어야 합니다. 대부분의 사람들은 휴대폰으로 이 내용을 읽습니다. 라운드 카드(card)가 기본값입니다: 4:5 비율의 이미지로, 휴대폰 채팅에서 전체 너비로 표시됩니다. 리뷰 페이지(review)는 동일한 라운드이지만 버전, 길게 눌러 비교하기, 편집 내용이 접혀서 아래에 표시됩니다; HTML 페이지(아티팩트, HTML 미리보기, 브라우저)를 표시할 수 있는 화면에서는 카드 대신 리뷰 페이지를 보여주세요. 공유 파일이 사용자가 탭하여 열어야 하는 첨부 파일로 도착하는 경우(claude.ai 및 Claude 앱), 세션당 하나의 아티팩트를 게시하고 계속 업데이트하세요: 보드의 page를 먼저, 그 다음 각 라운드마다 review를 파일로 공유하는 대신 업데이트하세요. 이러한 방식으로 게시된 페이지는 채팅으로 아무것도 보낼 수 없으므로, 사용자에게 답변을 입력하도록 요청합니다.

화면이 허용하는 경우 답변을 한 번의 탭으로 만들 수 있도록 하세요. board와 preview는 또한 replies를 반환합니다: 이미지가 없고 sendPrompt(text)를 호출하는 버튼이 있는 작은 HTML 답변 버튼 조각입니다. 이 함수는 탭한 답변을 채팅에 게시하는 인라인 대화형 시각 요소(예: show_widget)에서만 존재합니다 (claude.ai 웹 및 Claude 데스크톱 앱에서). 화면별:

화면이미지답변 방식
claude.ai 웹, Claude 데스크톱 앱아티팩트 페이지메시지 후에 replies를 인라인 시각 요소로 그대로 렌더링
Claude iOS 및 Android 앱아티팩트 페이지직접 입력; 인라인 시각 요소가 렌더링되지 않음
Claude Code, 기타 에이전트review 또는 card직접 입력

웹과 휴대폰 앱을 구분할 수 없으므로, claude.ai에서는 항상 replies를 렌더링하고 메시지 끝에 항상 직접 입력 안내문도 함께 포함하세요: 시각 요소가 렌더링되지 않는 곳에서는 텍스트가 여전히 역할을 합니다. 사진을 인라인 시각 요소에 절대 넣지 마세요; 해당 코드는 직접 작성하며 렌더링된 파일을 로드할 수 없습니다. 화면에 그러한 시각 요소가 없으면 replies를 무시하세요. --note는 자체 리뷰 수정 사항이 아닌 사용자가 알아차릴 변경 사항을 전달하세요 ("잎사귀를 어둡게 함"이 아닌 "능선 부분 따뜻하게"); 레시피의 label은 카드 상단에 표시됩니다. 카드, 비교, 카드 및 지도를 한 메시지에 절대 쌓아 올리지 마세요.

명령어:

명령어기능
doctorversion, 등급, capabilities, 그리고 missing된 항목을 얻는 방법
probe이 시스템의 상태: Python, 패키지, 네트워크, 디스크 (bootstrap 진단용)
bootstrap FEATURE… [--from DIR]people, segment, object, heal, heic, opencv 또는 all에 대한 패키지 및 모델 설치; --from은 다운로드 대신 사용자가 첨부한 모델 파일 설치
inspect PHOTO --fetch이 사진에 필요한 모델을 다운로드한 후, 그리드, 통계, profile(장르, 주인공), 측정된 findings, previous_versions, fetched 정보 제공
board PHOTO R1 R2 …원본 사진과 각 레시피를 나란히 배치하고 too_similar 경고와 함께 이미지(board), 선택을 위한 모바일 우선 페이지(page), 한 번 탭으로 선택하는 버튼(replies) 제공
masks RECIPE PHOTO각 단계 마스크의 연락처 시트
preview RECIPE PHOTO --note "…"다음 버전 vN으로 저장되는 화면 크기 렌더링, 시각 자료 및 비평 함께 제공; --redo는 최신 버전을 대체 (자체 리뷰 수정)
apply RECIPE PHOTO전체 해상도 내보내기, 100% 크롭 증명 함께 제공
carry HERO vN PHOTO세트 내 다른 사진에 주인공의 룩을 레시피로 적용: 배치된 단계와 적용할 대상이 없는 단계는 dropped, 눈으로 확인해야 할 밴드는 check, 자르기는 이 사진의 피사체를 따르며, match the set 단계는 주인공 쪽으로 밝기와 화이트 밸런스를 끌어당김
sheet PHOTO…캐러셀 순서로 정렬된 세트, 각 사진의 최신 버전, 사진별 플래그: 아직 편집되지 않음, 다른 모양, 더 밝음, 더 어두움, 나머지보다 따뜻함 또는 차가움. 최대 12장

RECIPE는 JSON 파일, 인라인 JSON 문자열 또는 저장된 버전(v3)입니다. 스키마: reference/recipe.md. 취향, 방향, 메모 어휘 및 리뷰 체크리스트: reference/vibes.md. 첫 번째 보드 전에 vibes.md를 읽으세요.

0. 등급 확인 (세션 첫 사용 시)

doctor를 실행하세요. capabilities는 현재 작동하는 기능을 알려줍니다:

기능(capability)제공 사항
peopleperson, subject, background, face 및 skin 마스크, 얼굴 인식 findings, 크롭 및 비평 (Mac에서는 apple, 그 외에서는 portable)
segmentsegment 및 sky 마스크, 장면 인식 findings
objectobject 마스크
healheal 조정
heicHEIC 사진
opencvgrabcut 정제, 더 선명한 마스크 가장자리, 방해 요소 찾기

전역 슬라이더, 룩, 크롭, 그리고 방사형, 선형, 브러시, 다각형, 휘도 및 색상 마스크는 항상 작동합니다.

다운로드에 대한 허가는 필요하지 않습니다. 작업에 필요한 것을 가져온 후, 다음 메시지 한 줄에 무엇을 가져왔는지 말하세요. 단일 다운로드가 100 MB를 초과하는 경우에만 먼저 물어보세요.

  • 엔진 (Mac): missing에 엔진이 나열되어 있으면, 다른 모든 작업보다 먼저 <base>/setup.sh를 실행하세요. Swift 엔진을 컴파일하고 (다운로드 없음) 약 90 MB의 Python 패키지를 설치합니다. 한 줄로 말하세요.
  • 모델: inspect --fetch (1단계)는 장면 모델을 다운로드하고, Mac이 아닌 경우 사람 모델도 다운로드합니다. subject 및 object 마스크도 제공하므로, 사진에 사람이 있든 없든 모든 사진에 대해 다운로드됩니다. 이후 편집에 필요한 항목 (heal, HEIC)은 MissingCapability 오류의 명령에서 제공됩니다. 실행하고, 한 줄로 언급한 후 계속 진행하세요. 각 claude.ai 대화는 새로 시작되므로, 이 작업은 대화당 한 번 발생합니다.
  • inspect의 unlock 은 기능이 여전히 누락되었음을 의미합니다. 그리기 모양을 사용하기 전에 해당 명령을 실행하세요; 감지된 마스크를 대신하는 방사형 또는 다각형은 최후의 수단이며, 사용 시 이를 명시하세요.
  • 다운로드가 실패하면 (fetched[].ok가 false이거나 bootstrap이 fallback을 보고), probe를 실행하고 사용자에게 무엇이 차단되었는지 알리세요. 일반적으로 샌드박스의 네트워크 설정 문제입니다: 사용자가 설정에서 도메인을 허용하거나 still_needed에 명명된 모델 파일을 채팅에 첨부하고 --from 업로드 폴더(claude.ai의 /mnt/user-data/uploads)를 사용하여 다시 실행할 수 있습니다. 해시가 확인되므로 파일 이름이 변경되어도 괜찮습니다. 그동안은 기하학적 마스크로 작업하고 그렇게 말하세요. 부정확한 근사치로 속이지 마세요.

여러 장의 사진

채팅당 최대 12장의 사진. 13장 이상이면 말하세요: "한 채팅에서 모두 잘 편집하기에는 너무 많습니다. Claude Cowork에서는 폴더를 첨부하면 모두 작업할 수 있고, 여기서는 가장 중요한 12장을 선택해 주세요."

편집 전에 사용자가 원하는 바를 읽으세요. 불명확하면, 분위기와 같은 메시지에서 한 번 질문하세요 ("캐러셀을 위해 여섯 장 모두 같은 룩으로 할까요, 아니면 각각 따로 할까요?"):

  • 하나의 룩, 세트 ("캐러셀", "포토 덤프", "서로 맞춰주세요"): 가장 강력한 프레임을 주인공으로 선택하고 한 줄로 이유를 말하세요. 주인공에 대해서만 브리핑과 보드를 실행하세요. 그런 다음 다른 모든 사진에 대해 carry HERO vN PHOTO를 실행하고 recipe를 미리보기하세요. 룩, 전역 슬라이더 및 감지된 마스크를 유지하고, 주인공의 좌표에 연결된 것은 삭제하며, match the set 단계를 추가합니다. 이 사진에 필요한 각 dropped 단계를 고유한 그리드에서 다시 실행하고, 각 check 밴드를 눈으로 확인하며, notes를 읽으세요: 화이트 밸런스를 맞추기에는 그레이스케일이 너무 적었는지 알려줍니다. 그런 다음 세트에 대해 sheet를 실행하고 보여주기 전에 플래그가 지정된 모든 사진을 수정하세요. 시트를 세트 보기로 보여주세요. Instagram 캐러셀은 모든 슬라이드를 사진 1의 모양으로 표시하므로, 모두 4:5를 제안하고 crop_flag가 있으면 질문으로 제기하세요.
  • 각각 따로: 주어진 순서대로 한 번에 한 장씩. 사진에서 사진으로 사용자의 취향에 대해 배운 내용을 전달하고, 현재 위치를 말하세요 ("5장 중 2번째").
  • 어느 것? ("어느 것을 올려야 할까요?"): 순위를 매기고, 각각 한 줄의 이유(선명도, 눈, 빛)를 제시하고, 선택된 사진을 편집하세요. 절대 사진을 조용히 버리지 마세요.
  • 이 사진처럼 ("내 사진을 이렇게 보이게 해주세요"): 참조 사진은 편집 대상이 아닙니다. 톤과 색상을 맞추고, 내보내지 말고, 세트에서 제외하세요.

1. 사진 읽기

run.sh inspect PHOTO --fetch를 실행한 다음 original 및 grid 이미지를 살펴보세요. 그리드에는 10% 간격으로 .1–.9 레이블이 있는 노란색 선이 있으며, 감지된 각 얼굴은 시안색 상자로 표시되고 index로 번호가 매겨집니다. 사용하는 모든 좌표는 이 그리드에서 읽고, 절대 눈대중으로 하지 마세요.

inspect는 먼저 summary를 출력합니다: 인덱스별 얼굴(main은 중요한 얼굴을 표시, 배경 얼굴은 제외), 현재 작동하는 마스크, 그리고 각각 한 줄로 된 findings입니다. 전체를 읽으세요. inspect를 자체 필터에 파이프하지 마세요: 직접 선택한 하위 집합은 얼굴 상자가 누락되고 얼굴이 추측되는 원인입니다. 전체 필드는 증거가 필요할 때 summary 뒤에 이어집니다.

사진작가의 읽기를 구성하세요:

  • 사진이 무엇에 관한 것인지.
  • 시선이 어디에 머물러야 하는지 (profile.hero).
  • 무엇이 잘 작동하는지.
  • 무엇이 발목을 잡는지. diagnostics.findings (각각 측정된 evidence와 준비된 step이 있음) 및 측정으로 판단할 수 없는 것: 방해 요소, 색상 조화, 크롭.
  • 무엇이 특별하게 만들 수 있는지. opportunities는 findings 옆에 있습니다: 측정된 강점 — 빛의 특성 (profile.light), 시선이 실제로 닿는 곳, 강조할 가치가 있는 색상 쌍, 활용할 가치가 있는 분리감. 각각 evidence와 move_hint가 있습니다. 여기서 와우 포인트가 나옵니다.
  • 그 안의 다른 사진들. recrops는 측정된 최대 3개의 대체 프레이밍 — 얼굴의 정사각형, 세로, 가장 바쁜 영역의 더 타이트한 컷 — 각각 준비된 crop 상자와 그 이유에 대한 증거를 나열합니다.

fetched가 있으면, 사용자의 말을 사용하여 다운로드한 내용과 이유를 한 줄로 답변을 시작하세요: "4.4 MB 장면 모델을 가져와서 하늘과 능선 편집이 지평선을 따르도록 했습니다." 항목에 licence 정보가 있으면 같은 줄에 추가하세요, 예: "(연구 또는 평가 목적으로 라이선스가 부여됨)". 누락된 기능을 조용히 우회하지 마세요.

previous_versions가 있으면, 이 사진을 이전에 편집한 적이 있습니다. 최신 버전에서 계속할지 아니면 새로 시작할지 제안하세요.

taste가 있으면, 이전 세션에서 입증된 사용자의 취향입니다: 선호하는 룩과 그 양, 슬라이더 강도, 비네트 및 대상 습관. 보드를 그 방향으로 기울이세요 — 하지만 이 사진 자체의 기회에도 여전히 답해야 합니다.

profile.signals.face_readable이 false이면, 얼굴이 가려졌거나 피부로 읽기에는 너무 어둡습니다. 얼굴 findings는 건너뛰고, 감지된 얼굴 및 눈 포인트는 신뢰할 수 없으므로 type: face 대신 확대된 그리드를 사용하여 얼굴 또는 눈 마스크를 배치하세요.

2. 브리핑: 분위기 합의

두 가지가 필요합니다:

  • 대상: Instagram 4:5, LinkedIn 정사각형 또는 프로필 원형, 스토리 9:16, 또는 원본 비율 유지.
  • 분위기 (Vibe).

대상을 모르면 분위기와 같은 교환에서 물어보거나, 원본 비율로 편집하고 크롭 변형을 보드 방향으로 제공하세요. 사용자가 선택하지 않은 크롭을 강요하지 말고, 비율에 맞추기 위해 사람을 자르지 마세요: inspect의 크롭 finding이 프레임이 무엇을 유지할지 선택해야 한다고 말할 때, 묻고 — 추측하지 마세요.

둘 다 이미 명확하면 ("인스타용으로 무드 있게 만들어줘"), 보드를 건너뛰고 1라운드로 가세요.

그렇지 않으면 보드가 질문입니다. vibes.md에 따라 세 가지 방향을 구성하세요:

  • 모든 방향은 분위기에 관계없이 옳은 기본 수정 사항을 공유합니다: findings, 방해 요소 제거, 그리고 사용자가 대상을 선택한 경우에만 대상 크롭; 그렇지 않으면 원본 비율을 유지하고 크롭 변형을 자체 방향으로 제공하세요.
  • 그런 다음 각 방향은 자체 look과 이 사진에서 해당 분위기를 작동하게 하는 영역 조정을 추가합니다.
  • 두 번째와 세 번째 방향은 각각 측정된 기회(빛, 색상 쌍, 시선 경로, 분리감)에 답하며, 단순히 룩만 바꾸지 않습니다.
  • 재크롭이 현재 프레임보다 분명히 나은 경우 ("이 프레임 안의 초상화"), 자체 방향으로 제공하세요: 크롭, 기본 수정 사항, 적합한 룩, 그것이 무엇인지 레이블 지정 ("C · 프레임 안의 초상화").
  • 한 방향은 깔끔하고 충실한 방향입니다. 하나는 대담하게 진행합니다: 130–160 양의 라이트 핏 룩 (vibes.md, "빛 읽기"); 비평 확인이 그것을 잡는 그물입니다. 나머지 두 개는 시각적으로 달라야 합니다.
  • 각각 label과 note를 지정하세요.

run.sh board PHOTO A.json B.json C.json을 실행하세요. too_similar가 쌍을 나열하면, 서로 멀어지게 하고 다시 실행하세요.

보드 (페이지를 표시할 수 있는 화면에서는 page, 그렇지 않으면 board 이미지)를 보여주고 다음을 작성하세요:

  • 사진에 대한 당신의 독해, 1-2줄.
  • A, B, C, 각각 한 줄: 느낌, 그리고 이것이 이 사진에 어떤 영향을 미치는지.
  • 대상 질문 (알 수 없는 경우).
  • inspect가 large: true (30 MP 초과)라고 말하면, 전체 크기를 유지할지 아니면 축소할지 물어보세요:
    • 전체 크기는 모든 픽셀을 유지하지만 파일이 수십 MB에 달할 수 있습니다.
    • 4096 px 긴 가장자리는 여전히 모든 화면에서 선명하며 크기는 훨씬 작습니다.
  • 다음으로 끝맺으세요: "A, B, C 중에서 고르거나, 섞거나 ('B지만 더 어둡게'), 또는 자신의 말로 분위기를 설명해 주세요."

그런 다음 화면이 허용하는 경우 replies를 렌더링하세요 ("답변을 한 번의 탭으로" 부분 참조).

관련 스킬