> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evolink.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Midjourney V7 변형

> - 완료된 mj-v7 시리즈 이미지 생성 작업을 기반으로, 지정된 이미지의 스타일이 유사하지만 차이가 있는 변형을 생성
- 선택적 프롬프트(prompt) 지원, 입력 시 변형과 동시에 내용 수정
- 비동기 처리 모드, 반환된 작업 ID로 [조회](/ko/api-manual/task-management/get-task-detail)

<Note>
  Midjourney에는 콘텐츠 검토 시스템이 내장되어 있습니다. 생성된 이미지 중 일부가 검토에 의해 필터링된 경우, 해당 요청에서 소비된 크레딧은 환불되지 않습니다. 프롬프트가 콘텐츠 가이드라인을 준수하는지 확인해 주세요.
</Note>


## OpenAPI

````yaml ko/api-manual/image-series/midjourney/mj-v7-variation.json POST /v1/images/generations
openapi: 3.1.0
info:
  title: Midjourney V7 변형 인터페이스
  description: 이미 생성된 이미지를 기반으로 스타일 변형을 생성합니다
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: 프로덕션
security:
  - bearerAuth: []
paths:
  /v1/images/generations:
    post:
      tags:
        - 이미지 생성
      summary: Midjourney V7 변형 인터페이스
      description: >-
        - 완료된 mj-v7 시리즈 이미지 생성 작업을 기반으로, 지정된 이미지의 스타일이 유사하지만 차이가 있는 변형을 생성

        - 선택적 프롬프트(prompt) 지원, 입력 시 변형과 동시에 내용 수정

        - 비동기 처리 모드, 반환된 작업 ID로
        [조회](/ko/api-manual/task-management/get-task-detail)
      operationId: createMjV7Variation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerationRequest'
            examples:
              basic_variation:
                summary: 기본 변형
                value:
                  model: mj-v7-variation
                  model_params:
                    task_id: task-unified-xxx
                    image_number: 2
                    type: strong
      responses:
        '200':
          description: 작업 생성 성공
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageGenerationResponse'
        '400':
          description: 잘못된 요청 매개변수
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: 미인증, 토큰 무효 또는 만료
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: 쿼터 부족, 충전하세요
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: 접근 거부
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: mj-v7-variation'
                  type: invalid_request_error
        '429':
          description: 요청 속도 제한 초과
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: 내부 서버 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    ImageGenerationRequest:
      type: object
      required:
        - model
        - model_params
      properties:
        model:
          type: string
          enum:
            - mj-v7-variation
          default: mj-v7-variation
          description: 모델 이름
        prompt:
          type: string
          description: 선택적 프롬프트, 입력 시 remix 프롬프트로 사용되어 변형과 동시에 내용 수정
          example: 일몰 장면으로 변경
        model_params:
          type: object
          description: 모델 매개변수
          required:
            - task_id
          properties:
            task_id:
              type: string
              description: 소스 작업 ID, 완료된 mj-v7 시리즈 작업이어야 하며, 현재 사용자에게 속해야 합니다
              example: task-unified-1757165031-mjv7
            image_number:
              type: integer
              enum:
                - 0
                - 1
                - 2
                - 3
              default: 0
              description: 소스 작업의 4장 이미지 중 선택 (0-3)
            type:
              type: string
              enum:
                - subtle
                - strong
              default: subtle
              description: |-
                변형 강도

                - `subtle`: 미세한 변화
                - `strong`: 강한 변화
            speed:
              type: string
              enum:
                - fast
                - turbo
              default: fast
              description: |-
                속도 모드 (prompt 입력 시에만 적용)

                **비용 안내:** turbo 모드는 비용이 더 높습니다
        callback_url:
          type: string
          description: >-
            작업 완료 후 HTTPS 콜백 주소


            **콜백 시점:**

            - 작업 완료(completed), 실패(failed) 또는 취소(cancelled) 시 트리거

            - 과금 확인 완료 후 전송


            **보안 제한:**

            - HTTPS 프로토콜만 지원

            - 내부 네트워크 IP 주소로의 콜백 금지 (127.0.0.1, 10.x.x.x, 172.16-31.x.x,
            192.168.x.x 등)

            - URL 길이 최대 `2048`자


            **콜백 메커니즘:**

            - 타임아웃: `10`초

            - 실패 후 최대 `3`회 재시도 (실패 후 `1`초/`2`초/`4`초에 각각 재시도)

            - 콜백 응답 형식은 작업 조회 인터페이스 반환 형식과 동일

            - 콜백 주소가 2xx 상태 코드를 반환하면 성공, 기타 상태 코드는 재시도 트리거
          format: uri
          example: https://your-domain.com/webhooks/image-task-completed
    ImageGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: 작업 생성 타임스탬프
          example: 1757165031
        id:
          type: string
          description: 작업 ID
          example: task-unified-1757165031-mjv7
        model:
          type: string
          description: 실제 사용된 모델 이름
          example: mj-v7-variation
        object:
          type: string
          enum:
            - image.generation.task
          description: 작업 유형
        progress:
          type: integer
          description: 작업 진행률 (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: 작업 상태
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/TaskInfo'
          description: 비동기 작업 정보
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: 작업 출력 유형
          example: image
        usage:
          $ref: '#/components/schemas/Usage'
          description: 사용량 및 과금 정보
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: 오류 코드 식별자
            message:
              type: string
              description: 오류 메시지
            type:
              type: string
              description: 오류 유형
    TaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: 작업 취소 가능 여부
          example: true
        estimated_time:
          type: integer
          description: 예상 완료 시간(초)
          minimum: 0
          example: 45
    Usage:
      type: object
      description: 사용량 및 과금 정보
      properties:
        billing_rule:
          type: string
          description: 과금 규칙
          enum:
            - per_call
            - per_token
            - per_second
          example: per_call
        credits_reserved:
          type: number
          description: 예상 소비 크레딧
          minimum: 0
          example: 1.8
        user_group:
          type: string
          description: 사용자 그룹
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |-
        ##모든 인터페이스는 Bearer Token 인증이 필요합니다##

        **API Key 발급:**

        [API Key 관리 페이지](https://evolink.ai/dashboard/keys)에서 API Key를 발급받으세요

        **요청 헤더에 다음을 추가하세요:**
        ```
        Authorization: Bearer YOUR_API_KEY
        ```

````