# midjourney/midjourney-v7/image-to-image > Midjourney v7 image-to-image evolves from basic pixel-matching to advanced feature extraction, precisely locking in the original’s structure, texture, and lighting logic to enable seamless, text-driven reconstruction at the pixel level. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `midjourney/midjourney-v7/image-to-image` - **Category**: image-to-image - **Kind**: inference ## Pricing The billing rate for Fast mode is $0.04 per request. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`mode`** (`string`, _required_): Image generation mode - Default: `fast` - Options: "fast" - **`prompt`** (`string`, _required_): Positive text prompt. The text must not contain '-' and other special characters - Examples: "An action shot of a black lab swimming..." - **`negative_prompt`** (`string`, _optional_): Negative text prompt. The text must not contain '-' and other special characters - **`aspect_ratio`** (`string`, _required_): The aspect ratio of the generated image - Options: "9:16", "2:3", "3:4", "4:5", "5:6", "1:1", "6:5", "5:4", "4:3", "3:2", "16:9" - **`performance`** (`string`, _optional_): Image Quality - Default: `balance` - Options: "speed", "balance", "quality" - **`stylization`** (`int`, _optional_): Controls the artistic style intensity - Default: `100` - Range: `0` to `1000` - **`chaos`** (`int`, _optional_): Controls the diversity of generated images - Default: `0` - Range: `0` to `100` - **`weirdness`** (`int`, _optional_): Controls the creativity and uniqueness - Default: `0` - Range: `0` to `3000` - **`image_urls`** (`list`, _optional_): The URLs of the images to use for image-to-image generation or image editing - **`style_image_urls`** (`list`, _optional_): The URLs of the images to use for style transfer or style reference - **`omni_image_url`** (`string`, _optional_): The URL of the image to use for omni-modal reference or multi-purpose image prompting - **`style_weight`** (`int`, _optional_): The numerical value representing the strength or influence of the style images on the final output - Default: `100` - Range: `0` to `1000` - **`omni_weight`** (`int`, _optional_): The numerical value representing the overall strength or combined influence of the omni-modal reference image on the final output - Default: `100` - Range: `0` to `2000` ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "images": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "midjourney/midjourney-v7/image-to-image", "args": { "mode": "fast", "prompt": "A warrior stands on a snow-covered mountain, holding a sword, in a cyberpunk style.", "aspect_ratio": "1:1" }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "midjourney/midjourney-v7/image-to-image", "args": { "mode": "fast", "prompt": "A warrior stands on a snow-covered mountain, holding a sword, in a cyberpunk style.", "aspect_ratio": "1:1" }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "midjourney/midjourney-v7/image-to-image", "args": { "mode": "fast", "prompt": "A warrior stands on a snow-covered mountain, holding a sword, in a cyberpunk style.", "aspect_ratio": "1:1" }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```