초대하고 적립

초대 보상 안내

초대 링크를 공유하세요. 친구가 링크로 가입하고 충전하면 이후 충전마다 표시된 보상을 받을 수 있습니다.

Grok Imagine 이미지에서 짧은 영상 만들기: 전체 워크플로

정지 이미지 선택, 모션 프롬프트, 연속성 점검, 접근 제한 구분, xAI API 폴링, 실패 처리, 영상 저장까지 다루는 실전 Grok Imagine 가이드입니다.

목차
Grok Imagine 이미지에서 짧은 영상 만들기: 전체 워크플로

Grok Imagine에서 마음에 드는 정지 이미지를 만들었는데 영상으로 바꾸자 얼굴이 달라지거나 소품이 사라지고 배경이 녹아내릴 수 있습니다. 이럴 때 프롬프트를 무작정 길게 만드는 것보다 효과적인 방법은 원본 이미지를 먼저 안정시키고, 외형과 움직임 지시를 분리한 뒤, 매번 같은 기준으로 결과를 검사하는 것입니다.

이 글은 Grok 앱이나 웹에서 버튼 이름이 달라도 적용할 수 있는 작업 순서부터 설명하고, 이어서 xAI API로 재현 가능한 전체 흐름을 제공합니다. 읽고 나면 정지 이미지를 만들고, 선택한 이미지를 짧은 영상으로 변환하고, 움직임과 주체 연속성을 확인하고, 파일을 저장하며, Grok 계정의 이용 제한과 API 제한을 구분할 수 있습니다.

이미지→영상 작업을 다섯 단계로 한 번 완주하세요

첫 시도에서는 주체 동작 하나와 카메라 동작 하나만 요청하세요. 처음부터 복잡한 장면을 노리기보다 전체 경로가 정상 작동하는지 확인하는 것이 우선입니다.

  1. 정지 이미지를 만드세요. 주체, 의상이나 핵심 소품, 구도, 배경, 조명을 고정하고 긴 동작 순서는 아직 넣지 마세요.
  2. 애니메이션에 적합한 이미지를 고르세요. 얼굴, 손, 글자, 가장자리, 가려진 부분을 먼저 확인하세요. 정지 이미지에 이미 있는 결함은 움직일 때 더 크게 드러나는 경우가 많습니다.
  3. 움직임 프롬프트를 따로 쓰세요. 다음에 일어날 변화만 설명한 뒤, 바뀌면 안 되는 정체성 요소와 장면 요소를 명시하세요.
  4. 선택한 이미지에서 영상을 시작하세요. 해당 이미지를 열고 현재 계정에 실제로 표시되는 애니메이션 또는 영상 기능을 사용하세요. 버튼 이름은 계정, 버전, 지역에 따라 다를 수 있습니다.
  5. 다시 생성하기 전에 다운로드하세요. 움직임, 주체 연속성, 카메라, 저장된 파일을 확인한 뒤 다음 버전에서는 변수 하나만 바꾸세요.

움직임을 넣기 전에 정지 이미지에서 정체성과 구도를 고정하세요

애니메이션용 원본 이미지는 화려하기 전에 안정적이어야 합니다. 얼굴 특징, 의상, 핵심 소품, 실루엣이 명확할수록 모델이 중간 프레임을 만들 때 해석할 여지가 줄어듭니다.

프롬프트는 주체와 변하지 않을 특징, 구도와 카메라, 배경, 조명과 스타일, 화면 비율 순으로 작성하세요. 움직임은 영상 프롬프트에 남겨 두면 문제가 원본 이미지에서 생겼는지, 애니메이션 지시에서 생겼는지 구분하기 쉬워집니다.

정지 이미지 프롬프트 템플릿

주체와 변하지 않을 특징; 의상, 액세서리 또는 핵심 소품; 샷 크기, 카메라 높이와 렌즈 느낌; 배경; 조명, 색감과 스타일; 심도; 화면 비율.

예시

짙은 회색 코트를 입은 젊은 여성의 영화 같은 허리 위 초상, 어깨에는 선명한 노란 새가 앉아 있다; 바쁜 역의 군중은 배경에서 부드러운 모션 블러를 만든다; 눈높이 카메라, 50mm 렌즈 느낌, 얕은 심도; 여성과 새는 선명하다.

여러 결과 중 가장 분위기 있는 한 장만 고르지 말고 다음 항목을 우선 확인하세요.

  • 얼굴, 눈, 손, 핵심 소품이 일관되고 각각의 실루엣이 분리되어 알아보기 쉽습니다.
  • 움직여야 할 신체 부위가 프레임 밖으로 잘리거나 전경 물체에 심하게 가려지지 않았습니다.
  • 머리 모양, 의상 색, 액세서리, 주체 수를 쉽게 말로 표현할 수 있어 움직임 프롬프트에서 고정할 수 있습니다.
  • 배경에 깨진 글자, 중복된 사람, 서로 복잡하게 교차하는 구조물이 없어 흔들릴 가능성이 낮습니다.

정지 이미지에서 이미 정체성이나 형태가 불안정하다면 영상을 만들기 전에 이미지를 다시 생성하세요. 영상 생성이 어색한 얼굴, 합쳐진 손, 잘못 그려진 소품을 안정적으로 고쳐 주지는 않습니다.

움직임 프롬프트에는 새 장면이 아니라 변화만 적으세요

좋은 움직임 프롬프트는 주체 동작, 카메라 동작, 배경 동작, 고정 목록의 네 부분으로 구성됩니다. 먼저 몇 초 안에 눈으로 확인할 수 있는 짧은 동작부터 시작하세요.

시작과 끝이 보이는 동작을 고르세요. “카메라 쪽으로 천천히 돌아서 한 번 눈을 깜박인다”는 성공 여부를 판단할 수 있지만, “생동감 있고 마법 같은 분위기”는 무엇이 어떻게 움직여야 하는지 알려 주지 않습니다.

움직임 프롬프트 템플릿

몇 초 동안 주체가 하는 행동; 카메라가 움직이는 방식; 배경이 움직이는 방식; 얼굴, 의상, 소품, 주체 수, 구도와 장면 배치 중 바뀌면 안 되는 요소.

예시

여성이 카메라 쪽으로 천천히 돌아서 한 번 눈을 깜박인다. 노란 새는 발 위치를 바꾸고 한쪽 날개를 살짝 편다. 군중은 두 사람 뒤에서 계속 움직인다. 카메라는 천천히 앞으로 이동한다. 여성의 얼굴, 짙은 회색 코트, 새의 색, 주체 수, 구도와 역의 배치를 그대로 유지한다.

첫 시도부터 의상 변화, 날씨 변화, 폭발, 여러 사람의 상호작용, 복잡한 카메라 이동을 한꺼번에 넣지 마세요. 결과가 실패해도 어느 지시가 원인이었는지 알 수 없게 됩니다.

선택한 이미지에서 시작하고 두 결과물을 즉시 저장하세요

Grok 앱이나 웹에서는 정확한 버튼 이름보다 현재 작업 맥락이 중요합니다. 새 텍스트 대화나 다른 변형이 아니라 최종 선택한 이미지에서 이어서 작업하고 있는지 확인하세요.

최종 이미지를 열고 현재 계정에 제공되는 애니메이션 또는 이미지→영상 기능을 선택한 뒤 움직임 프롬프트를 붙여 넣고 한 번만 생성하세요. 표시 이름, 할당량, 대기 시간은 달라질 수 있으므로 다른 사람의 화면 캡처가 아니라 본인 계정 화면을 기준으로 판단하세요.

결과가 완료되면 정지 이미지와 영상을 즉시 다운로드하고 두 프롬프트도 함께 기록하세요. 생성된 미디어 URL은 영구 보관소로 쓰지 말고, 버전이 드러나는 로컬 파일명으로 원본 이미지, 지시, 결과 영상의 관계를 남기세요.

다음 생성 전에 다섯 가지를 확인하세요

재생된다는 이유만으로 쓸 수 있는 영상은 아닙니다. 매번 같은 순서로 검사하면 원본 이미지 결함, 과도한 프롬프트, 예상 밖 카메라 움직임을 구분할 수 있습니다.

  • 첫 프레임 일치: 첫 프레임이 선택한 이미지와 여전히 비슷한지 확인합니다. 얼굴, 의상, 새, 주체 수, 배경 배치가 맞아야 합니다.
  • 요청한 움직임: 원하는 방향, 크기, 순서로 동작이 실제로 발생하는지 확인합니다.
  • 주체 연속성: 얼굴 교체, 팔다리 추가·누락, 색 변화, 액세서리 소실, 주체끼리 합쳐지는 현상이 없어야 합니다.
  • 카메라 제어: 요청한 이동만 수행하고 예상하지 않은 컷, 회전, 심한 흔들림이 없어야 합니다.
  • 저장된 결과물: 전체 영상이 재생되고 파일이 다운로드되었으며 어떤 원본 이미지와 프롬프트에서 나온 것인지 찾을 수 있어야 합니다.

정체성 연속성이나 파일 저장이 실패하면 아직 움직임을 더 크게 만들지 마세요. 정지 이미지나 움직임 프롬프트로 돌아가고, 단순한 영상이 안정된 뒤에만 동작을 추가하세요.

Grok 제품 이용 권한, xAI API 제한, 사용자 사례를 구분하세요

2026년 9월 28일 기준 공식 문서는 이미지→영상 기능과 API 요청 규격을 확인해 줍니다. 그러나 모든 Grok 계정에 같은 버튼, 무료 할당량, 대기 시간, 지역별 제공 상태가 적용된다고 보장하지는 않습니다.

근거안전하게 판단할 수 있는 내용
본인의 Grok 앱 또는 웹 화면현재 계정에서 기능을 사용할 수 있는지, 남은 할당량, 대기 안내, 다운로드 경로가 실제로 작동하는지 알려 줍니다.
xAI 공식 API 문서API 모델, 입력 형식, 비동기 상태, 길이, 해상도를 설명하지만 Grok 화면에서의 이용 권한을 증명하지는 않습니다.
한 제작자의 X 게시물그 사람이 당시 짧은 영상을 만들었다는 사례일 뿐, 모든 계정의 최대 길이, 품질, 무료 제공량을 뜻하지는 않습니다.

공식 이미지→영상 가이드는 공개 URL, base64 data URI, file_id를 입력 이미지로 받습니다. 영상 생성 문서에 따르면 grok-imagine-video-1.5는 1~15초 길이와 480p, 720p, 1080p 해상도를 지원합니다. 이미지→영상에서 화면 비율을 생략하면 원본 비율을 유지하고, 다른 비율을 강제로 지정하면 이미지가 늘어납니다.

앱의 할당량, 재사용 대기 시간, 지역별 제공 여부는 본인 화면에서 확인되기 전까지 계정별 조건으로 보세요. API 요청 한도와 가격은 Grok 제품 구독과 별개이며 바뀔 수 있으므로 실행 시점에 다시 확인하세요.

Frame Zero의 X 게시물은 Grok Imagine에서 정지 이미지를 만든 뒤 눈에 보이는 4초 영상을 생성했다고 보고합니다. 이는 작업 흐름을 보여 주는 개인 사례이며 공식 사양이나 보편적인 품질 보장이 아닙니다.

재현 가능한 경로가 필요하면 공식 API를 사용하세요

아래 Bash 예시는 공식 이미지 생성, 이미지→영상, 영상 조회 규격을 따릅니다. 이미지를 생성하고 다운로드한 뒤 반환된 URL로 영상 요청을 시작하고, 명확한 종료 상태가 나올 때까지 조회한 다음 MP4를 저장합니다.

결제와 접근 권한이 활성화된 xAI API 계정, curl, jq, python3가 필요합니다. 아래 코드는 Bash용입니다. API 키는 화면에 표시되지 않게 입력하며 스크립트 본문이나 명령 기록에 남기지 않습니다.

set -euo pipefail

command -v curl >/dev/null
command -v jq >/dev/null
command -v python3 >/dev/null

read -rs XAI_API_KEY && export XAI_API_KEY
trap 'unset XAI_API_KEY' EXIT

STILL_PROMPT=$(cat <<'PROMPT'
짙은 회색 코트를 입은 젊은 여성의 영화 같은 허리 위 초상, 어깨에는 선명한 노란 새가 앉아 있다; 바쁜 역의 군중은 배경에서 부드러운 모션 블러를 만든다; 눈높이 카메라, 50mm 렌즈 느낌, 얕은 심도; 여성과 새는 선명하다.
PROMPT
)

MOTION_PROMPT=$(cat <<'PROMPT'
여성이 카메라 쪽으로 천천히 돌아서 한 번 눈을 깜박인다. 노란 새는 발 위치를 바꾸고 한쪽 날개를 살짝 편다. 군중은 두 사람 뒤에서 계속 움직인다. 카메라는 천천히 앞으로 이동한다. 여성의 얼굴, 짙은 회색 코트, 새의 색, 주체 수, 구도와 역의 배치를 그대로 유지한다.
PROMPT
)

IMAGE_PAYLOAD=$(jq -n \
  --arg prompt "$STILL_PROMPT" \
  '{
    model: "grok-imagine-image-2.0",
    prompt: $prompt,
    aspect_ratio: "16:9",
    resolution: "1k"
  }')

IMAGE_JSON=$(curl --fail-with-body --silent --show-error \
  https://api.x.ai/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d "$IMAGE_PAYLOAD")

IMAGE_URL=$(jq -r '.data[0].url // empty' <<<"$IMAGE_JSON")
if [ -z "$IMAGE_URL" ]; then
  printf '%s\n' "이미지 응답에서 이미지 URL을 찾지 못했습니다." >&2
  jq . <<<"$IMAGE_JSON" >&2
  exit 1
fi

curl --fail-with-body --location --silent --show-error \
  "$IMAGE_URL" -o grok-imagine-still.jpg

VIDEO_PAYLOAD=$(jq -n \
  --arg prompt "$MOTION_PROMPT" \
  --arg image "$IMAGE_URL" \
  '{
    model: "grok-imagine-video-1.5",
    prompt: $prompt,
    image: {url: $image},
    duration: 8,
    resolution: "720p"
  }')

START_JSON=$(curl --fail-with-body --silent --show-error \
  https://api.x.ai/v1/videos/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d "$VIDEO_PAYLOAD")

REQUEST_ID=$(jq -r '.request_id // empty' <<<"$START_JSON")
if [ -z "$REQUEST_ID" ]; then
  printf '%s\n' "영상 시작 응답에서 request_id를 찾지 못했습니다." >&2
  jq . <<<"$START_JSON" >&2
  exit 1
fi

for _ in $(seq 1 120); do
  RESULT=$(curl --fail-with-body --silent --show-error \
    "https://api.x.ai/v1/videos/$REQUEST_ID" \
    -H "Authorization: Bearer $XAI_API_KEY")

  STATUS=$(jq -r '.status // "unknown"' <<<"$RESULT")

  case "$STATUS" in
    pending)
      sleep 5
      ;;
    done)
      VIDEO_URL=$(jq -r '.video.url // empty' <<<"$RESULT")
      if [ -z "$VIDEO_URL" ]; then
        printf '%s\n' "완료 응답에서 영상 URL을 찾지 못했습니다." >&2
        jq . <<<"$RESULT" >&2
        exit 1
      fi
      curl --fail-with-body --location --silent --show-error \
        "$VIDEO_URL" -o grok-imagine-output.mp4
      printf '%s\n' "grok-imagine-still.jpg와 grok-imagine-output.mp4를 저장했습니다"
      exit 0
      ;;
    failed|expired)
      printf '영상 생성이 다음 상태로 종료되었습니다: %s\n' "$STATUS" >&2
      jq . <<<"$RESULT" >&2
      exit 1
      ;;
    *)
      printf '예상하지 못한 상태입니다: %s\n' "$STATUS" >&2
      jq . <<<"$RESULT" >&2
      exit 1
      ;;
  esac
done

printf '%s\n' "완료되지 않아 10분 후 상태 조회를 중단했습니다." >&2
exit 1

성공 조건은 스크립트가 종료 코드 0으로 끝나고 현재 폴더에 grok-imagine-still.jpg와 grok-imagine-output.mp4가 모두 존재하는 것입니다. failed와 expired는 오류로 종료하고, pending이면 계속 조회하며, done은 .video.url이 있을 때만 성공으로 처리합니다.

이 코드는 문서화된 요청·응답 필드를 바탕으로 만든 재현용 템플릿이며 여기서 직접 수행한 화질 벤치마크가 아닙니다. 반환된 이미지 URL을 바로 영상 요청에 사용하고 두 미디어를 모두 다운로드하는 이유는 생성 URL이 임시이기 때문입니다.

모든 값을 바꾸기 전에 가장 가능성 높은 원인부터 고치세요

한 번에 상위 변수 하나만 바꾸면 다음 결과에서 무엇이 개선이나 실패를 만들었는지 판단할 수 있습니다.

이미지→영상 기능이 보이지 않습니다

먼저 새 텍스트 대화가 아니라 최종 선택한 이미지를 열었는지 확인하세요. 그다음 앱 버전, 로그인 계정, 요금제, 지역, 화면에 표시된 재사용 대기 안내를 확인하세요. 다른 사람의 캡처에서 버튼 이름을 그대로 따라 하지 말고, API 접근 권한이 있다면 공식 이미지→영상 엔드포인트를 사용할 수 있습니다.

얼굴이 달라지거나 핵심 소품이 사라집니다

실루엣이 더 명확하고 가림이 적은 원본 이미지를 선택하고, 동작 크기를 줄이며, 프롬프트 끝에 얼굴, 의상, 색, 주체 수, 핵심 소품의 고정 목록을 명시하세요. 첫 프레임부터 다르다면 설명을 더 길게 붙이는 것만으로는 해결되기 어렵습니다.

영상이 거의 움직이지 않습니다

추상적인 표현 대신 시작과 끝이 보이는 변화로 바꾸세요. 예를 들어 “왼쪽을 보다가 카메라를 향해 돌아서 한 번 눈을 깜박인다”처럼 작성합니다. 주체 동작 하나와 카메라 동작 하나만 남겨 서로 충돌하지 않게 하세요.

배경이 무너지거나 카메라가 과하게 움직입니다

먼저 배경 동작을 빼고 주체 동작만 남기세요. 카메라는 고정하거나 천천히 한 번 전진하도록 설정합니다. 군중, 글자, 울타리, 교차선은 흔들리기 쉬우므로 필요하면 원본 배경을 단순화하세요.

API가 pending에 머물다가 실패하거나 만료됩니다

고정 간격으로 상태를 조회하고 몇 분 지났다는 이유만으로 중복 요청을 보내지 마세요. failed 또는 expired 뒤에는 응답 내용, 키와 계정 상태, 입력 URL의 접근 가능 여부를 확인한 다음 새 요청을 만드세요. 무한 조회 대신 정한 시간 제한에서 중단하세요.

완료된 URL이 나중에 열리지 않습니다

공식 문서는 생성된 이미지와 영상 URL이 임시라고 설명합니다. 상태가 done이 되면 즉시 다운로드하고 로컬 파일을 버전별로 이름 붙이며, 호스팅 URL을 영구 저장소로 사용하지 마세요.

원본 이미지는 유지하고 두 번째 버전에서는 변수 하나만 바꾸세요

좋은 재시도는 질문 하나에 답하지만, 기준 없이 “다시 생성”만 하면 원인을 알 수 없습니다.

  1. 같은 원본 이미지와 정체성 고정 목록을 유지하고 움직임 크기만 바꿔 연속성이 나아지는지 확인하세요.
  2. 움직임이 안정되면 원본 이미지는 그대로 둔 채 카메라만 고정에서 느린 전진으로 바꿔 보세요.
  3. 카메라까지 안정되면 길이 또는 해상도를 조정하고 처리 시간, 최종 상태, 다운로드 결과를 기록하세요.
  4. 버전 번호, 정지 이미지 파일명, 움직임 프롬프트, 매개변수, 검사 결과를 한 줄에 보관해 이전 상태로 돌아갈 수 있게 하세요.

이 방식은 문제가 정지 이미지, 움직임 지시, 카메라, 이용 권한 중 어디에서 생겼는지 분리해 줍니다. 단순한 영상을 먼저 안정시킨 뒤 어려운 요소를 하나씩 추가하세요.

근거와 적용 범위

아래 페이지는 2026년 9월 28일에 확인했습니다. 공식 문서는 API 기능과 필드를 뒷받침하며, X 게시물은 개인 사용 사례로만 다룹니다.

LLM 워크플로를 최적화할 준비가 되셨나요?

하나의 API로 모델을 연결하고 키와 AI 비용을 관리하세요.

무료로 시작하기