GPT Image 2.6으로 GIF 만들기: 프롬프트, 도구와 오류 해결
ChatGPT, Image 2.6 API 또는 스프라이트 시트로 GIF를 만드는 방법. 모션 프롬프트, GitHub 도구, 실제 변환 예제와 파일 검증·압축 절차를 확인하세요.
GPT Image 2.6으로 움직이는 GIF를 만들려면 먼저 방식을 정해야 합니다. ChatGPT에 다운로드 가능한 애니메이션을 요청하거나, Images API에서 네이티브 GIF를 생성하거나, 스프라이트 시트를 만들어 프레임을 조립할 수 있습니다. 세 방식은 제어할 수 있는 항목이 다릅니다. 여섯 칸짜리 이미지는 아직 GIF가 아니며, 코딩 도구가 조립한 GIF만으로 모델이 애니메이션을 직접 반환했다고 입증할 수는 없습니다.
이 글에서는 세 방식의 전체 과정과 재사용할 프롬프트, 관련 GitHub 프로젝트, 파일 검사 및 용량 줄이기를 다룹니다. 피사체 하나, 원래 자세로 돌아오는 작은 동작 하나, 고정된 카메라로 시작하세요. 첫 결과물은 대화가 성공했다는 응답이 아니라 실제로 움직이며 제대로 반복되는 파일이어야 합니다.
근거와 이용 가능 여부 — 2026년 11월 5일 확인: Ofox의 Image 2.6 Flare API로 네이티브 GIF 한 개를 생성하고 9개 프레임의 시간과 파일 크기를 검사했습니다. 공개 라이선스의 외부 스프라이트 시트로 브라우저 변환과 로컬 내보내기도 시험했습니다. 두 결과는 아래에서 다운로드할 수 있습니다. Image 2.6은 Ofox Chat에서도 사용할 수 있습니다. 아래 생성 측정은 Chat 화면이 아닌 API 테스트이며, 추가 프롬프트 여섯 개는 아직 테스트하지 않은 템플릿입니다. 재현할 수 있도록 프롬프트와 코드는 영어 원문을 유지했습니다. 한국어로 번역한 프롬프트의 결과까지 검증한 것은 아닙니다.
ChatGPT, API, 스프라이트 시트 중 방식 선택하기
OpenAI의 Images 2.6 발표는 제품 전반의 GIF 생성과 캐릭터, 반응 이미지, 업무 보조 애니메이션 예제를 소개합니다. 모델 문서는 API 모델을 명시합니다. 발표만으로 현재 내 계정에 어떤 조작 기능이 표시되는지까지 알 수는 없습니다.
| 방식 | 시작하기 좋은 작업 | 제어할 수 있는 것 | 확인할 것 |
|---|---|---|---|
| ChatGPT | API 코드 없이 만드는 반응 이미지나 마스코트 애니메이션 | 작업, 움직임, 수정 지시 | 실제로 움직이는 다운로드 파일과 현재 세션의 기능 |
| 네이티브 Images API | 파라미터를 기록하며 반복하는 요청 | 모델, 지원되는 GIF 설정, 요청 로그 | API 접근 권한, 실제 프레임 시간, 반환 사용량 |
| 스프라이트 시트 → GIF | 정지 시트는 생성할 수 있지만 조립 과정을 직접 제어해야 하는 경우 | 격자, 프레임 순서, 지연 시간, 팔레트, 출력 크기 | 동일한 셀 크기, 피사체 정렬, 일관된 동작 |
사진이나 참조 이미지가 있다면 특히 주의해야 합니다. 화면에서 이미지를 첨부할 수 있다고 해서 모든 API 엔드포인트나 래퍼가 그 이미지를 전달하는 것은 아닙니다. 아래에서 검토한 저장소에서는 --image를 Codex 경로에서 사용하지만 API 경로는 텍스트 프롬프트를 구성합니다. 마스코트나 제품 사진이 실제로 전달되었다고 가정하기 전에 선택한 경로를 확인하세요.
긴 제품 이야기, 여러 카메라 샷, 소리가 필요하다면 제품 영상 스토리보드 워크플로를 참고하세요. 짧은 GIF와는 다른 결과물입니다.
ChatGPT에서 첫 GIF 만들기
이미지 생성 기능이 있는 계정에서 대화를 여세요. 사용할 권한이 있는 창작 캐릭터나 제품 이미지가 있다면 첨부하고 바뀌면 안 되는 특징을 지정합니다. 없다면 텍스트로 설명하기 쉬운 캐릭터부터 시작하세요. 존재 여부가 확인되지 않은 버튼 이름을 찾거나 모든 앱 버전에 같은 GIF 편집기가 있다고 가정할 필요는 없습니다.
다음은 이 글을 위해 작성한 시작 프롬프트입니다.
Create a downloadable animated GIF of a small orange bird standing on a
branch against a plain cream background. The bird lifts both wings,
briefly holds the pose, then lowers them to the starting position.
Keep the camera, branch, body proportions and colors fixed. Use one
continuous reversible action. No text, extra objects or camera cuts.
Deliver the animated GIF file, not a still image or a grid of frames.
Ofox Chat에서도 이 주황색 새 프롬프트를 시도할 수 있습니다. Image 2.6으로 다운로드 가능한 GIF를 만들어 달라고 요청하세요. 링크는 Chat을 열기만 하므로 프롬프트를 직접 복사해 대화에 넣어야 합니다.
응답이 오면 파일을 열고 여러 번 반복해서 보세요. 정지 이미지만 받았다면 “움직이는 파일이 첨부되어 있나요? GIF 다운로드를 제공하거나, 이 세션에서는 생성할 수 없다고 알려 주세요”라고 한 번 확인합니다. 출력물을 명확히 하는 요청이지, 사용할 수 없는 기능을 활성화하는 방법은 아닙니다.
애니메이션은 있지만 어색하다면 관찰한 문제 하나를 구체적으로 설명하세요. “장면은 유지하고 날개 움직임만 느리게 해 주세요” 또는 “세 번째 자세에서 새의 모양이 달라집니다. 원래 실루엣을 유지해 주세요”처럼 요청합니다. 수정 후에는 전체 반복 구간을 다시 확인하세요. 한 자세를 고치면서 앞뒤 프레임과 맞지 않을 수 있습니다.
스프라이트 시트를 받았다면 아래의 변환 과정을 사용하세요. 현재 세션이 애니메이션 파일을 만들지 못한다면 같은 요청을 계속 반복하지 말고 이용 가능한 API나 다른 도구로 전환합니다. AI가 자신이 어떤 모델인지 설명하는 내용만으로 정확한 백엔드 모델을 판단하지 마세요. 원본 파일과 화면에 표시된 생성 정보를 보관하세요. 파일명에 ‘2.6’이 있어도 모델을 입증하지는 못합니다.
사진에서 시작할 때
원본이 유용한 참조로 남을 정도로 작은 움직임을 선택하세요. 눈 깜박임, 가벼운 끄덕임, 제품의 작은 기울임은 보이지 않던 면을 드러내는 한 바퀴 회전보다 검사하기 쉽습니다. 얼굴 형태, 옷, 제품 라벨, 조명, 배경처럼 유지할 항목을 명시하세요. 원하는 파일 형식을 요청한 뒤 모든 프레임에서 세부 요소가 유지되는지 확인합니다.
이것은 제안하는 프롬프트 작성 절차이며 ChatGPT의 사진→GIF 생성을 직접 시험했다는 뜻이 아닙니다. 아래 API 제한을 ChatGPT 화면에 그대로 적용하거나 ChatGPT 구독에 API 크레딧이 포함된다고 가정하지 마세요.
움직임과 고정 요소를 중심으로 프롬프트 작성하기
공식 프롬프트 가이드는 카메라를 고정하고 시작 자세로 돌아오는 캐릭터 예제를 제공합니다. 핵심은 바뀌는 것과 유지되는 것을 함께 설명하는 것입니다. 스타일 설명만으로 애니메이션의 동작이 정해지지는 않습니다.
재사용할 프롬프트는 여섯 부분으로 구성할 수 있습니다.
OUTPUT: a downloadable animated GIF, or a single sprite sheet for assembly
SUBJECT: one clearly described character/object and its visual identity
MOTION: starting pose → small action → return toward the starting pose
INVARIANTS: camera, background, scale, colors and details that must not change
STYLE: one coherent material/rendering style and lighting setup
ACCEPTANCE: visible motion, no unwanted cuts, no extra text, a clean loop
두 출력 형식을 동시에 요청하지 마세요. 네이티브 GIF 생성에서는 애니메이션을, 시트 방식에서는 격자를 지정합니다. 같은 프롬프트에 GIF라는 단어가 있더라도 ‘3열 2행 스프라이트 시트’라는 지시를 따르면 정지 격자가 나오는 것이 자연스럽습니다.
응용할 수 있는 창작 프롬프트 여섯 개
아래는 Ofox가 작성한 템플릿입니다. 커뮤니티에서 복사한 프롬프트도, Image 2.6으로 결과를 검증한 사례도 아닙니다. 피사체와 브랜드 정보를 바꾸되 동작은 작게 유지하고 각 항목의 실패 위험을 확인하세요.
1. 손을 흔드는 마스코트 — 실루엣과 액세서리 확인
Create a looping animated GIF of an original rounded orange fox mascot,
wearing a small blue scarf, on a plain off-white background. Start with
both paws down. Raise one paw, make one small wave, then lower it back.
Keep the ears, muzzle, scarf, scale and camera unchanged in every frame.
Use flat illustrated shapes and consistent soft lighting. No text or
new props. Return smoothly toward the starting pose. Deliver a GIF file.
2. 제품 강조 — 움직임뿐 아니라 라벨도 확인
Using the attached product image where this interface supports references,
create a looping GIF with a small left-to-right tilt and return to rest.
Keep the product shape, approved label text, colors, lighting and background
unchanged. Fixed camera, no full rotation, no new packaging or reflections
that obscure the label. Deliver the animated file. If the reference cannot
be used in this route, say so instead of inventing a replacement product.
3. 반응 캐릭터 — 작은 크기에서도 감정이 읽히도록 구성
Create a looping GIF of an original round robot receiving good news.
It starts neutral, opens its eyes slightly wider, lifts both short arms
in a small celebration, then returns to neutral. Fixed front camera,
plain pale-blue background, same face and body proportions throughout.
Use simple high-contrast shapes. No captions, numbers or extra characters.
Deliver a GIF whose expression remains readable as a small reaction image.
4. 입력 중 표시 — 인터페이스 전체가 아닌 한 요소만 이동
Create a short looping GIF of three small orange dots on a cream background.
One dot rises slightly, then the next, then the third, with each returning
to the same baseline before the cycle repeats. Keep dot size, spacing,
color and camera fixed. No glow, text, shadow changes or additional dots.
Use clean flat shapes and a calm rhythm. Deliver the GIF file.
5. 잔잔한 일러스트 — 움직일 요소를 분리
Create a looping GIF of an illustrated mug on a wooden desk. Only one thin
curl of steam moves upward and reforms gently; the mug, handle, desk,
window light and camera stay still. Warm muted colors, simple ink lines,
no lettering, hands or added objects. Avoid a visible reset at the loop
boundary. Deliver an animated GIF, not a video or a sprite sheet.
6. 6프레임 스프라이트 시트 — 조립할 입력 형식을 명확히 지정
Create one still sprite sheet of an original small orange bird raising
and lowering its wings. Exactly six equal cells in three columns and two
rows, read left-to-right then top-to-bottom. Start at rest, raise the
wings, reach the high pose, lower them, and approach rest again. Same bird,
branch, scale, framing and plain cream background in all cells. Leave
safe space around the wings. No borders, gutters, captions or cell labels.
Use flat illustration. This output is a sprite sheet for later GIF assembly.
네 번째 예제는 도구 선택을 점검하는 기준이기도 합니다. 정확한 기하학적 로딩 표시가 필요하다면 반복 생성보다 규칙에 따라 구현한 애니메이션이 유지보수하기 쉬울 수 있습니다. 일러스트 자체가 가치를 더하는 작업에 모델을 활용하세요. 읽을 수 있어야 하는 광고 문구는 움직이는 그림 밖에 두거나 프레임마다 검사하세요. 관련 작업은 이미지 속 텍스트 처리 가이드(영어)에서 다룹니다.
API로 네이티브 GIF 생성하기
API 접근 권한과 결제 설정, Python 3, curl이 필요합니다. 아래 OpenAI 직접 호출 예제는 공식 문서를 따릅니다. 실제 테스트는 바로 다음 절의 Ofox 호환 경로로 진행했습니다. Images API 가이드는 생성 엔드포인트의 GIF 출력을 설명합니다.
GIF 워크플로 파일 모음을 새 폴더에 압축 해제하고 셸에서 OPENAI_API_KEY를 안전하게 설정하세요. 키를 프롬프트에 넣거나 요청 JSON에 저장하지 마세요.
포함된 gif-request.json에는 주황색 새 프롬프트와 다음 설정이 있습니다.
{
"model": "gpt-image-2.6-flare",
"prompt": "Create a looping animation of a small orange bird on a stationary branch against a plain cream background. The bird raises its wings, pauses, then lowers them to its starting pose. Keep the camera fixed, the branch still, and the bird shape and colors consistent. No text. Make the transition back to the start smooth.",
"quality": "low",
"complexity": "low",
"size": "auto",
"n": 1,
"output_format": "gif",
"frame_count": 9,
"frame_duration_ms": 200
}
curl --fail-with-body --max-time 240 \
https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @gif-request.json \
--output gif-response.json
# Run only after a successful API response:
python3 decode_image.py gif-response.json bird.gif
디코더는 base64 데이터와 GIF 시그니처를 검증하고, 기존 파일 덮어쓰기를 거부하며, 응답에 사용량이 있으면 출력합니다. curl이 실패하면 먼저 오류 응답을 확인하세요. 시간 초과가 서버에서 작업하지 않았다는 뜻은 아닙니다. 유료 요청을 다시 보내기 전에 계정과 요청 내역을 확인하세요.
| 설정 | 문서에 명시된 동작 |
|---|---|
frame_count | 2–64, 기본값 9 |
frame_duration_ms | 20–2000ms, 10ms 단위로 반올림, 기본값 200 |
size | auto 또는 지원되는 16의 배수 크기. 총 픽셀 예산 제한도 적용 |
| GIF에서 지원하지 않는 옵션 | 스트리밍, 부분 이미지, 출력 압축, prompt_rewriter |
| 이미지 편집 엔드포인트 | GIF를 출력하지 않음 |
9프레임에 각각 200ms를 지정하면 재생 한 주기가 1.8초입니다. 생성 시간이 1.8초라는 뜻은 아닙니다. 이미지 크기, 프레임 수, 출력 개수가 요청의 총 픽셀 예산에 들어가야 하므로 16의 배수 조건만으로는 충분하지 않습니다. 요청이 거부되면 작업량을 줄이세요. 프레임 지연을 늘리는 것은 재생 시간만 바꾸며 요청하는 이미지 픽셀 수를 줄이지 않습니다.
Flare와 Sunburst는 실제 작업에 맞춰 선택해야 합니다. 어느 하나가 항상 더 좋은 반복 동작을 만든다고 단정할 수 없습니다. 요청과 사용량을 결과 옆에 보관하세요. Image 2.6 가격 가이드(영어)에서는 정지 이미지 견적을 모든 GIF에 적용할 수 없는 이유를 설명합니다. 아래 단일 요청의 사용량은 공통 가격이나 청구 내역과 대조가 끝난 요금이 아닙니다.
실제 Ofox API 생성 결과
새로 조회한 카탈로그와 인증된 모델 목록에 openai/gpt-image-2.6-flare와 openai/gpt-image-2.6-sunburst가 모두 있었습니다. 위와 같은 주황색 새 프롬프트 및 설정에서 모델만 openai/gpt-image-2.6-flare로 바꿔 Flare를 한 번 테스트했습니다. GIF 지원의 근거는 목록에 모델이 있다는 사실이 아니라 생성 요청에서 실제 GIF를 반환했다는 점입니다.
자신의 OFOX_API_KEY를 안전하게 설정하고 포함된 ofox-request.json을 사용하세요. 검사 도구에는 Pillow가 필요하므로 아직 설치하지 않았다면 가상 환경을 만들어 설치합니다.
curl --fail-with-body --max-time 240 \
https://api.ofox.ai/v1/images/generations \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @ofox-request.json \
--output ofox-response.json
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install Pillow
python3 decode_image.py ofox-response.json ofox-bird.gif
python3 inspect_gif.py ofox-bird.gif

네이티브 GIF 원본과 인증 정보가 없는 요청 파일을 다운로드할 수 있습니다. 생성된 일러스트이며 제품 화면 캡처가 아닙니다.
| 관찰 항목 | 이번 요청 한 건의 결과 |
|---|---|
| 반환 파일 | GIF, 512 × 512픽셀, 677,030바이트 |
| 애니메이션 | 9프레임, 각 200ms, 한 주기 1,800ms |
| 반복 메타데이터 | 0: 무한 반복 |
| 클라이언트에서 관찰한 요청 시간 | 네트워크 시간을 포함해 14.426초 |
| 반환 사용량 | 입력 텍스트 토큰 92개, 출력 이미지 토큰 1,172개 |
새가 날개를 올렸다 내리며 첫 자세와 마지막 자세는 비슷합니다. 하지만 나뭇가지를 고정하라는 지시에도 프레임 사이에서 가지와 잎의 모양이 조금 달라집니다. 짧은 일러스트로 활용할 수 있지만 배경이 완벽하게 고정된 것은 아닙니다. 로고나 정확한 제품 애니메이션이라면 모든 프레임을 비교해 원치 않는 변형을 걸러내세요. Flare 요청 한 건의 성공으로 Sunburst의 성능, 일반적인 응답 속도, 모든 계정의 접근 가능성을 입증할 수는 없습니다. 반환 사용량은 별도로 대조해 확정한 청구액이 아닙니다.
대화로 작업하고 싶다면 이 주황색 새 프롬프트를 Ofox Chat에 넣고 Image 2.6 GIF를 요청하세요. 피사체, 움직임, 유지할 세부 요소를 설명한 뒤 결과를 다운로드해 반복 동작을 확인합니다. 위 예제는 프레임 수가 맞아도 마지막 시각 검사가 필요한 이유를 보여 줍니다.
스프라이트 시트를 GIF로 변환하기: 검증한 예제
스프라이트 시트는 애니메이션 셀이 순서대로 들어 있는 정지 이미지입니다. 올바른 셀을 잘라 순서대로 재생하고 각 프레임의 시간을 인코딩해야 합니다. 이미지 도구가 PNG만 제공하고 네이티브 GIF 설정이 없다면 대안이 됩니다.
이 예제에서는 jkf87/gif-maker-skill의 공개 cat_sheet.png를 링크에 고정된 리비전에서 사용했습니다. 작성자는 이를 Codex 시트 경로의 예제로 표시합니다. 원본 그림은 해당 작성자의 작업이며, Ofox는 변환·다운로드·파일 검사를 수행했습니다. 원본 생성에 사용된 모델은 독립적으로 확인하지 않았습니다. 재배포 결과에는 MIT 라이선스 고지를 포함했습니다.
브라우저에서 변환하기: 로컬 코드 없이 진행
Sprite Sheet to GIF Converter를 열고 시트를 불러옵니다. 실제 테스트에서는 다음과 같이 설정했습니다.
- Number of rows를
2, Number of columns를3으로 설정합니다. - Frame delay (ms)를
180으로 설정합니다. - 셀 크기가 같고 간격이 없는 시트이므로 오프셋은
0으로 둡니다. - Generate GIF를 누르고 잘린 프레임을 확인한 뒤 Download GIF로 다운로드합니다.
- 다운로드한 파일을 별도로 검사합니다. 미리보기만으로 내보낸 파일의 재생 시간이 유지되었다고 볼 수 없습니다.

변환 테스트에서 촬영한 실제 브라우저 화면입니다. 영어 설정 패널과 시트 미리보기 영역을 잘라 사용했으며 Image 2.6 제품 화면이 아닙니다.

외부 작성자의 그림을 Ofox가 변환하고 검증했습니다. 결과 파일과 라이선스 고지를 확인하세요. Ofox의 모델 생성 샘플은 아닙니다.
내보낸 파일은 512 × 512픽셀, 6프레임, 프레임당 180ms, 한 주기 1,080ms, 920,053바이트였습니다. 반복 확장 값은 0으로, 사용한 디코더 기준 무한 반복을 의미합니다. 이는 파일 구조와 시간을 검증한 수치이며 캐릭터의 완벽한 일관성이나 끊김 없는 전환을 보장하지 않습니다. 테스트 당시 도구 페이지에 광고가 표시되었으므로 내보내기 조작과 광고를 구분하세요.
격자가 얼굴이나 날개를 잘못 자른다면 행·열 순서, 테두리, 셀 간격, 셀 크기 차이를 먼저 확인하세요. 원본 시트가 잘못 생성됐는데 모든 셀이 정렬되어 있다고 가정해서는 안 됩니다. 사용하는 도구에서 3×2가 3열 2행을 뜻하는지 확인하세요.
로컬에서 변환하기: Pillow로 재현 가능한 조립
워크플로 파일 모음에는 직접 작성한 sheet_to_gif.py도 있습니다. 셀 간격 없이 균등 분할된 정지 시트를 받아 읽기 순서대로 처리하고 공통 팔레트를 사용합니다. 출력은 흰색 배경의 불투명 GIF이며 투명도를 보존하지 않습니다. 모델 호출이나 네트워크 요청은 하지 않습니다.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install Pillow
python3 sheet_to_gif.py sheet.png local-loop.gif \
--cols 3 --rows 2 --ms 180 --width 512
python3 inspect_gif.py local-loop.gif
Windows에서는 .venv\Scripts\Activate.ps1로 환경을 활성화하세요. 고정 리비전의 저장소에서 예제 시트를 받거나 자신의 시트를 사용하고 sheet.png로 이름을 지정합니다. 출력 파일명은 새로 지정하세요. 스크립트는 균등하게 나눌 수 없는 크기와 부적절한 시간 값을 거부하지만 피사체 위치를 교정하거나 없는 중간 자세를 만들지는 않습니다.
같은 시트를 로컬 변환기로 처리했을 때 512 × 512 크기의 6프레임, 동일한 1.08초 주기, 656,867바이트가 나왔습니다. 이 입력과 인코딩 방식의 결과일 뿐 일반적인 품질이나 압축 우위를 뜻하지 않습니다. GIF 인코더는 인접한 동일 셀을 합칠 수 있으므로 디코딩한 프레임 수와 전체 시간을 함께 비교하세요.
완료로 판단하기 전에 결과 검사하기
파일 모음에 포함된 검사 도구로 네이티브 결과나 조립한 GIF를 확인하세요.
python3 inspect_gif.py bird.gif
크기, 프레임 수, 각 지연 시간, 총 재생 시간, 반복 정보를 출력합니다. 첫 프레임과 마지막 프레임의 RGB 차이도 진단용으로 알려 줍니다. 이 숫자는 품질 점수가 아닙니다. 양 끝 프레임이 비슷해도 중간이 끊길 수 있고, 다음 주기의 첫 프레임으로 자연스럽게 이어진다면 양 끝이 달라도 정상일 수 있습니다.
세 층위를 따로 확인하세요.
| 층위 | 통과 기준 | 오해하기 쉬운 지름길 |
|---|---|---|
| 파일 | GIF로 열리고 움직이며 크기와 시간이 의도에 맞음 | PNG 확장자를 .gif로 바꾸기 |
| 움직임 | 피사체를 알아볼 수 있고 카메라·고정 요소가 안정적이며 반복 시작이 자연스러움 | 정지 미리보기 한 장만 보고 성공 판단 |
| 사용처 | 실제 페이지, 메시지, 앱에서 의도한 크기로 재생됨 | 업로드하면 어디서나 애니메이션이 유지된다고 가정 |
제품이라면 모든 프레임에서 라벨을, 마스코트라면 눈·손·액세서리·실루엣을 확인하세요. 반복 애니메이션은 다시 시작하는 순간을 포함해 여러 주기를 봅니다. 원본 요청, 최초 결과, 수정한 내보내기를 별도 파일로 저장해야 어느 단계에서 문제가 생겼는지 찾을 수 있습니다.
반복 확장 정보가 없으면 반복 재생된다는 근거가 없습니다. 1프레임 GIF는 유효한 이미지 파일이지만 애니메이션 작업은 충족하지 못합니다. OpenAI가 공개한 랜턴 애니메이션도 시각 참고로 사용할 수 있습니다. 이는 Ofox 결과가 아닌 공식 예제입니다.
GIF 용량 줄이기와 MP4 내보내기
먼저 실제 표시 크기를 정하세요. 작은 반응 이미지로 보여 줄 대형 원본은 용량을 낭비합니다. 원본을 보관하고 크기, 프레임 레이트, 팔레트를 하나씩 바꿔 보세요. 용량을 줄이면 가장자리 디테일, 색상 그라데이션, 시간 정확도가 떨어질 수 있습니다.
FFmpeg 팔레트 필터로 팔레트를 생성해 내보낼 수 있습니다. FFmpeg가 설치되어 있다면 다음 명령은 너비를 384픽셀로 줄이고 10fps로 다시 샘플링합니다.
ffmpeg -n -i input.gif \
-filter_complex "[0:v]fps=10,scale=384:-1:flags=lanczos,split[a][b];[a]palettegen=stats_mode=diff[p];[b][p]paletteuse=dither=bayer:bayer_scale=3" \
-loop 0 smaller.gif
재샘플링은 부드러운 중간 동작을 새로 만들지 않습니다. 프레임 시간을 바꾸며 프레임이 복제될 수 있습니다. 브라우저에서 변환한 예제에 적용한 결과는 384 × 384픽셀, 인코딩된 프레임 11개, 한 주기 1.10초, 573,847바이트였습니다. 원래 1.08초였던 주기가 달라졌으므로 시간을 보존하는 압축은 아닙니다.
사용처가 동영상을 지원한다면 MP4를 시도하세요.
ffmpeg -n -i input.gif -movflags +faststart -pix_fmt yuv420p \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4
예제의 MP4는 56,121바이트, 길이는 1.08초였습니다. MP4에는 GIF의 반복 지시가 저장되지 않으므로 플레이어나 사용처에서 반복을 설정해야 합니다. 이 명령은 알파 투명도를 보존하는 방법도 아닙니다. 가장 작은 파일을 무조건 선택하지 말고 변환 후 영상을 검사하세요.
Gifsicle은 GIF 검사와 최적화에 특화된 또 다른 도구입니다. 설치했다면 gifsicle -O3 input.gif -o optimized.gif를 시작점으로 삼아 원본과 비교할 수 있습니다. 이번에는 설명서를 검토했지만 Gifsicle을 실행하지 않았습니다. FFmpeg 예제와 달리 이 글에 측정 결과는 없습니다.
유용한 GitHub 프로젝트와 실제 역할
다음 수치는 2026년 11월 5일 중국 표준시(UTC+8) 약 11:19에 GitHub에서 조회했습니다. 저장소 전체에 대한 관심을 보여 줄 뿐 Image 2.6 채택률, 신뢰성, 웹 전체의 순위를 뜻하지 않습니다. 오래된 후처리 도구는 출시 무렵 생긴 모델 전용 프로젝트보다 별이 훨씬 많을 수 있습니다.
| 프로젝트 | 조회 당시 별 수 | 활용할 작업 | 중요한 한계 |
|---|---|---|---|
| FFmpeg | 66,513 | 크기·시간 변경, 팔레트 생성, 동영상 출력 | 범용 미디어 도구이며 Image 2.6 생성기가 아님 |
| freestylefly/awesome-gpt-image-2 | 35,470 | 이미지 작업 지시, 스타일, 제약 패턴 참고 | Image 2/2.5를 포함한 모음이며 모든 프롬프트가 2.6 GIF에서 작동한다는 근거가 아님 |
| Pillow | 13,969 | 프레임 읽기, 시간 검사, 시트 조립 | 로컬 처리 라이브러리이며 이미지 모델을 포함하지 않음 |
| YouMind-OpenLab/awesome-gpt-image-2 | 10,242 | 대규모 다국어 이미지 프롬프트 탐색 | 정지 이미지에 동작·반복 지시를 더해야 하며 항목별 출처 확인 필요 |
| agent-sprite-forge | 5,052 | 복잡한 캐릭터·스프라이트·게임 내보내기 | 검토한 0.4 워크플로에 이미지→영상 경로가 포함되며 단순한 네이티브 2.6 GIF 클라이언트가 아님 |
| Gifsicle | 4,343 | GIF 전용 검사와 최적화 | 모델 생성과 별개 |
| spritesheet-to-gif | 36 | 화면에서 격자 자르기와 브라우저 GIF 출력 | 이 글에서 변환을 테스트했지만 잘못 그린 원본을 고치지는 못함 |
| jkf87/gif-maker-skill | 1 | 새 2.6 관련 API 및 Codex/시트 워크플로 | 소스는 검토했지만 Ofox가 설치해 전체 과정을 실행하지는 않음 |
| awesome-gpt-images-2.6 | 0 | 새 비공식 2.6 기능·공식 예제 색인 | 새 참고 모음이며 이미 인기가 입증된 선두 프로젝트는 아님 |
작업에 가장 특화된 저장소가 별이 가장 많은 것은 아닙니다. 고정 리비전의 gif-maker-skill은 기본값 --via auto에서 OPENAI_API_KEY의 존재에 따라 경로를 선택합니다. 그에 따라 과정과 API 요금 발생 가능성이 달라질 수 있습니다. --image 인수는 네이티브 API 페이로드가 아닌 Codex 경로에 연결되어 있습니다. 명령이 성공했다는 이유로 참조 이미지가 쓰였다고 가정하지 말고 현재 코드를 읽고 의도한 경로를 명시하세요.
프로젝트 설명과 관련 소스를 검토했고 공개 브라우저 변환기 및 자체 로컬 도구를 테스트했습니다. 모든 에이전트 스킬을 설치하거나 관리자가 주장하는 생성 속도를 검증하지는 않았습니다. 자산을 재배포하기 전에는 저장소 라이선스와 개별 예제의 권리를 따로 확인하세요. 프롬프트 갤러리의 설명이 등장하는 모든 브랜드와 캐릭터를 재사용할 포괄적 허가는 아닙니다.
참고할 출시 페이지와 프롬프트 자료
‘가장 인기 있다’고 하려면 관찰 가능한 기준이 필요합니다. 11월 5일 스냅샷에서 Hacker News 출시 토론은 147점, 댓글 98개였습니다. 토론의 관심 신호이며 검색량이나 튜토리얼 방문자 수가 아닙니다. 아래 페이지의 비교 가능한 공개 방문 수치는 찾지 못했으므로 트래픽 순위를 지어내지 않고 용도에 따라 분류했습니다.
| 자료 | 참고할 내용 | 읽을 때 주의할 점 |
|---|---|---|
| OpenAI 출시 글 | 공식 예제와 제품 범위 | OpenArt 예제는 시트 중심 프롬프트 구조이며 API 페이로드와 혼동하면 안 됨 |
| OpenAI 프롬프트 가이드 | 반복 캐릭터의 구체적 프롬프트와 모델 지침 | 동작, 카메라, 시작 자세로 복귀하는 지시를 비교 |
| OpenAI 생성 가이드 | 네이티브 요청 설정과 제한 | API 설명이며 모든 ChatGPT 화면의 명세가 아님 |
| Hacker News 토론 | 사용자 질문과 연결된 실험 | 사용자 보고는 통제된 비교나 모든 계정의 접근 진단이 아님 |
| FindSkill GIF 튜토리얼 | 비교할 수 있는 출시 당일 안내 | 작성자가 직접 테스트하지 않았다고 명시한 2차 자료 |
| Kingy.ai GIF 테스트 보고 | 외부 작성자가 보고한 테스트·파일·사용량 | 해당 작성자의 요청 수치이며 Ofox나 모든 사용자의 결과가 아님 |
기술 설명이 충돌할 때는 공식 자료로 확인하세요. 커뮤니티 자료에서는 시험해 볼 사례를 찾습니다. 갤러리 프롬프트를 응용할 때 원하는 스타일은 남기되 실제 움직임, 고정 요소, 종료 자세, 출력 형식을 추가하세요. ‘image’를 ‘GIF’로 바꾸는 것만으로 정지 이미지 예제가 애니메이션 제작법이 되지는 않습니다.
정지 이미지, 깨진 동작, 큰 파일 문제 해결하기
| 증상 | 먼저 확인할 것 | 다음 조치 |
|---|---|---|
| ChatGPT가 정지 그림을 반환함 | 애니메이션 다운로드가 첨부되어 있는가? 시트인가? | 파일을 한 번 요청하고 시트만 가능하다면 시트 변환 사용 |
| API가 GIF 출력을 거부함 | 정확한 모델, 생성 엔드포인트, 프로젝트 권한 | 문서의 경로 사용. 이미지 편집에 GIF 출력 요청을 보내지 않기 |
| 픽셀 예산·파라미터 오류 | 프레임, 크기, 출력 수, 미지원 옵션 | 페이로드 단순화. 재생 지연만 바꿔도 픽셀은 줄지 않음 |
| 기존 제품·캐릭터를 무시함 | 선택한 경로가 참조 이미지를 실제 전달했는가? | 래퍼 확인. 텍스트 요청만으로 전달하지 않은 첨부를 보존할 수 없음 |
| 반복 경계에서 튐 | 종료 자세, 카메라, 정렬, 중간 자세 | 복귀 가능한 동작 하나로 단순화. 지연만 바꾸지 말고 시트 수정 또는 재생성 |
| 셀마다 피사체가 달라짐 | 구도, 크기, 캐릭터 특징, 격자 품질 | 동작을 줄이고 일관된 시트를 다시 만든 후 자르기 |
| 인코딩 후 색이 깜박임 | 프레임별 팔레트, 디더링, 원본 변화 | 공통 팔레트와 비교하고 진단용 원본 유지 |
| 업로드 후 움직이지 않음 | 원본 프레임 수와 사용처의 처리 방식 | 애니메이션 지원을 시험하거나 허용되는 동영상 형식 사용 |
| 파일이 너무 큼 | 실제 표시 크기, 팔레트, 시간 요구 | 복사본의 크기·출력을 변경하고 손실 확인 |
| 시간 초과, 401, 429 | 오류 본문, 인증 정보, 프로젝트 제한, 계정 활동 | 재시도 전에 진단하고 유료 요청을 무제한 반복하지 않기 |
업무용으로 전달할 때는 편집 가능한 원본이나 시트, 최초 생성 파일, 최종 GIF/동영상, 비밀 정보가 없는 프롬프트·요청, 짧은 검수 메모를 함께 남기세요. 크기, 주기, 시각적 일관성, 대상 플랫폼 재생 중 무엇을 확인했는지 적습니다. 다음 작업이 편집 가능한 벡터 그림이라면 Image 2.6 SVG 가이드(영어)를 참고하세요. Ofox 연동 전에는 현재 이미지 모델 문서를 확인하세요. Image 2.6은 Ofox Chat에서도 이용할 수 있으며 위 Flare API 경로는 별도로 테스트했습니다. Chat의 세부 조작과 다른 모델 변형은 이번 테스트 범위가 아닙니다.


