from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.ai_image_upscaler.generate(
assets={"image_file_path": "/path/to/1234.png"},
scale_factor=2.0,
style={"enhancement": "Balanced"},
name="Image Upscaler image",
wait_for_completion=True,
download_outputs=True,
download_directory="."
)import { Client } from "magic-hour";
const client = new Client({ token: process.env["API_TOKEN"]!! });
const res = await client.v1.aiImageUpscaler.generate(
{
assets: { imageFilePath: "/path/to/1234.png" },
name: "Image Upscaler image",
scaleFactor: 2.0,
style: { enhancement: "Balanced" },
},
{
waitForCompletion: true,
downloadOutputs: true,
downloadDirectory: ".",
},
);package main
import (
os "os"
sdk "github.com/magichourhq/magic-hour-go/client"
nullable "github.com/magichourhq/magic-hour-go/nullable"
ai_image_upscaler "github.com/magichourhq/magic-hour-go/resources/v1/ai_image_upscaler"
types "github.com/magichourhq/magic-hour-go/types"
)
func main() {
client := sdk.NewClient(
sdk.WithBearerAuth(os.Getenv("API_TOKEN")),
)
res, err := client.V1.AiImageUpscaler.Create(ai_image_upscaler.CreateRequest{
Assets: types.V1AiImageUpscalerCreateBodyAssets{
ImageFilePath: "api-assets/id/1234.png",
},
Name: nullable.NewValue("My Image Upscaler image"),
ScaleFactor: 2.0,
})
}let client = magic_hour::Client::default()
.with_bearer_auth(&std::env::var("API_TOKEN").unwrap());
let res = client
.v1()
.ai_image_upscaler()
.create(magic_hour::resources::v1::ai_image_upscaler::CreateRequest {
assets: magic_hour::models::V1AiImageUpscalerCreateBodyAssets {
image_file_path: "api-assets/id/1234.png".to_string(),
},
name: Some("My Image Upscaler image".to_string()),
scale_factor: 2.0,
..Default::default()
})
.await;curl --request POST \
--url https://api.magichour.ai/v1/ai-image-upscaler \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
--data '
{
"name": "My Image Upscaler image",
"scale_factor": 2,
"style": {},
"assets": {
"image_file_path": "api-assets/id/1234.png"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magichour.ai/v1/ai-image-upscaler",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Image Upscaler image',
'scale_factor' => 2,
'style' => [
],
'assets' => [
'image_file_path' => 'api-assets/id/1234.png'
]
]),
CURLOPT_HTTPHEADER => [
"accept: application/json",
"authorization: Bearer <token>",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://api.magichour.ai/v1/ai-image-upscaler")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer <token>")
.body("{\"name\":\"My Image Upscaler image\",\"scale_factor\":2,\"style\":{},\"assets\":{\"image_file_path\":\"api-assets/id/1234.png\"}}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magichour.ai/v1/ai-image-upscaler")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scale_factor\": 2,\n \"assets\": {\n \"image_file_path\": \"api-assets/id/1234.png\"\n },\n \"name\": \"My Image Upscaler image\",\n \"style\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "cuid-example",
"credits_charged": 50
}{
"message": "Missing request body"
}{
"message": "Unauthorized"
}{
"message": "Payment required"
}{
"message": "Not Found"
}{
"message": "Unable to create image"
}AI Image Upscaler API Reference - Magic Hour Docs
Upscale your image using AI. Each 2x upscale costs 50 credits for balanced/creative modes, and 25 credits for preserve. 4x upscale costs 200 and 100 credits respectively.
from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.ai_image_upscaler.generate(
assets={"image_file_path": "/path/to/1234.png"},
scale_factor=2.0,
style={"enhancement": "Balanced"},
name="Image Upscaler image",
wait_for_completion=True,
download_outputs=True,
download_directory="."
)import { Client } from "magic-hour";
const client = new Client({ token: process.env["API_TOKEN"]!! });
const res = await client.v1.aiImageUpscaler.generate(
{
assets: { imageFilePath: "/path/to/1234.png" },
name: "Image Upscaler image",
scaleFactor: 2.0,
style: { enhancement: "Balanced" },
},
{
waitForCompletion: true,
downloadOutputs: true,
downloadDirectory: ".",
},
);package main
import (
os "os"
sdk "github.com/magichourhq/magic-hour-go/client"
nullable "github.com/magichourhq/magic-hour-go/nullable"
ai_image_upscaler "github.com/magichourhq/magic-hour-go/resources/v1/ai_image_upscaler"
types "github.com/magichourhq/magic-hour-go/types"
)
func main() {
client := sdk.NewClient(
sdk.WithBearerAuth(os.Getenv("API_TOKEN")),
)
res, err := client.V1.AiImageUpscaler.Create(ai_image_upscaler.CreateRequest{
Assets: types.V1AiImageUpscalerCreateBodyAssets{
ImageFilePath: "api-assets/id/1234.png",
},
Name: nullable.NewValue("My Image Upscaler image"),
ScaleFactor: 2.0,
})
}let client = magic_hour::Client::default()
.with_bearer_auth(&std::env::var("API_TOKEN").unwrap());
let res = client
.v1()
.ai_image_upscaler()
.create(magic_hour::resources::v1::ai_image_upscaler::CreateRequest {
assets: magic_hour::models::V1AiImageUpscalerCreateBodyAssets {
image_file_path: "api-assets/id/1234.png".to_string(),
},
name: Some("My Image Upscaler image".to_string()),
scale_factor: 2.0,
..Default::default()
})
.await;curl --request POST \
--url https://api.magichour.ai/v1/ai-image-upscaler \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
--data '
{
"name": "My Image Upscaler image",
"scale_factor": 2,
"style": {},
"assets": {
"image_file_path": "api-assets/id/1234.png"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magichour.ai/v1/ai-image-upscaler",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Image Upscaler image',
'scale_factor' => 2,
'style' => [
],
'assets' => [
'image_file_path' => 'api-assets/id/1234.png'
]
]),
CURLOPT_HTTPHEADER => [
"accept: application/json",
"authorization: Bearer <token>",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://api.magichour.ai/v1/ai-image-upscaler")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer <token>")
.body("{\"name\":\"My Image Upscaler image\",\"scale_factor\":2,\"style\":{},\"assets\":{\"image_file_path\":\"api-assets/id/1234.png\"}}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magichour.ai/v1/ai-image-upscaler")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scale_factor\": 2,\n \"assets\": {\n \"image_file_path\": \"api-assets/id/1234.png\"\n },\n \"name\": \"My Image Upscaler image\",\n \"style\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "cuid-example",
"credits_charged": 50
}{
"message": "Missing request body"
}{
"message": "Unauthorized"
}{
"message": "Payment required"
}{
"message": "Not Found"
}{
"message": "Unable to create image"
}Authorizations
Bearer authentication header of the form Bearer <api_key>, where <api_key> is your API key. To get your API key, go to Developer Hub and click "Create new API Key".
Body
Body
How much to scale the image. Must be either 2 or 4.
Note: 4x upscale is only available on Creator, Pro, or Business tier.
2
Provide the assets for upscaling
Show child attributes
Show child attributes
Give your image a custom name for easy identification.
"My Image Upscaler image"
Style settings for the upscale. Use mode ("preserve", "balanced", or "creative"). Defaults to "balanced".
Show child attributes
Show child attributes
Response
Success
Success
Unique ID of the image. Use it with the Get image Project API to fetch status and downloads.
"cuid-example"
The amount of credits deducted from your account to generate the image. We charge credits right when the request is made.
If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.
50
Was this page helpful?