Image to Image Endpoint
Overview
Dreambooth Image to Image API is used to generate an image from an image based on trained or on public models. Pass the appropriate request parameters to the endpoint to generate image from an image.
This endpoint generates and returns an image from an image passed with its URL in the request.
Together with the image you can add your description of the desired result by passing prompt and negative prompt. The dimensions of the generated image will be the same as the dimensions of the init_image.
Request
--request POST 'https://modelslab.com/api/v6/images/img2img' \
Make a POST
request to https://modelslab.com/api/v6/images/img2img endpoint and pass the required parameters as a request body to the endpoint.
Watch the how-to video to see it in action.
Body Attributes
Parameter | Description | Values |
---|---|---|
key | Your API Key used for request authorization. | key |
model_id | The ID of the model to be used. It can be a public model or one you have trained. | id |
prompt | A text description of what you want in the generated image. | string |
negative_prompt | Items you don't want in the image. | string |
init_image | Link to the initial image to be used as a reference. | URL |
samples | The number of images to be returned in the response. | Maximum is 4. |
num_inference_steps | The number of denoising steps. | values range from 1 to 20, and any value above 20 will be capped at 20. |
safety_checker | A checker for NSFW images. If detected, such images will be replaced by a blank image. Default is "yes". | "yes"/"no" |
safety_checker_type | How to modify the image if NSFW content is found. Default is "sensitive_content_text". | "blur", "sensitive_content_text", "pixelate", "black" |
enhance_prompt | Enhance prompts for better results. Default is "yes". | "yes"/"no" |
enhance_style | Allows you to set the style of the image for better results. Available styles include: enhance , cinematic-diva , nude , nsfw , sex , abstract-expressionism , academia , action-figure , adorable-3d-character , adorable-kawaii , art-deco , art-nouveau , astral-aura , avant-garde , baroque , bauhaus-style-poster , blueprint-schematic-drawing , caricature , cel-shaded-art , character-design-sheet , classicism-art , color-field-painting , colored-pencil-art , conceptual-art , constructivism , cubism , dadaism , dark-fantasy , dark-moody-atmosphere , dmt-art , doodle-art , double-exposure , dripping-paint-splatter , expressionism , faded-polaroid-photo , fauvism , flat-2d , fortnite-style , futurism , glitchcore , glo-fi , googie-style , graffiti-art , harlem-renaissance-art , high-fashion , idyllic , impressionism , infographic-drawing , ink-dripping-drawing , japanese-ink-drawing , knolling-photography , light-cheery-atmosphere , logo-design , luxurious-elegance , macro-photography , mandola-art , marker-drawing , medievalism , minimalism , neo-baroque , neo-byzantine , neo-futurism , neo-impressionism , neo-rococo , neoclassicism , op-art , ornate-and-intricate , pencil-sketch-drawing , pop-art-2 , rococo , silhouette-art , simple-vector-art , sketchup , steampunk-2 , surrealism , suprematism , terragen , tranquil-relaxing-atmosphere , sticker-designs , vibrant-rim-light , volumetric-lighting , watercolor , whimsical-and-playful , sharp , masterpiece , photograph , negative , cinematic , ads-advertising , ads-automotive , ads-corporate , ads-fashion-editorial , ads-food-photography , ads-gourmet-food-photography , ads-luxury , ads-real-estate , ads-retail , abstract , abstract-expressionism , art-deco , art-nouveau , constructivist , cubist , expressionist , graffiti , hyperrealism , impressionist , pointillism , pop-art , psychedelic , renaissance , steampunk , surrealist , typography , watercolor , futuristic-biomechanical , futuristic-biomechanical-cyberpunk , futuristic-cybernetic , futuristic-cybernetic-robot , futuristic-cyberpunk-cityscape , futuristic-futuristic , futuristic-retro-cyberpunk , futuristic-retro , futuristic-sci-fi , futuristic-vaporwave , game-bubble , game-cyberpunk , game-fighting , game-gta , game-mario , game-minecraft , game-pokemon , game-retro-arcade , game-retro , game-rpg-fantasy , game-strategy , game-streetfighter , game-zelda , misc-architectural , misc-disco , misc-dreamscape , misc-dystopian , misc-fairy-tale , misc-gothic , misc-grunge , misc-horror , misc-kawaii , misc-lovecraftian , misc-macabre , misc-manga , misc-metropolis , misc-minimalist , misc-monochrome , misc-nautical , misc-space , misc-stained-glass , misc-techwear-fashion , misc-tribal , misc-zentangle , papercraft-collage , papercraft-flat-papercut , papercraft-kirigami , papercraft-paper-mache , papercraft-paper-quilling , papercraft-papercut-collage , papercraft-papercut-shadow-box , papercraft-stacked-papercut , papercraft-thick-layered-papercut , photo-alien , photo-film-noir , photo-glamour , photo-hdr , photo-iphone-photographic , photo-long-exposure , photo-neon-noir , photo-silhouette , photo-tilt-shift , 3d-model , analog-film , anime , cinematic , comic-book , craft-clay , digital-art , fantasy-art , isometric , line-art , lowpoly , neonpunk , origami , photographic , pixel-art , texture . | |
guidance_scale | Scale for classifier-free guidance. | Minimum 1, Maximum 20 |
tomesd | Enable tomesd to generate images quickly. Default is "yes". | "yes"/"no" |
use_karras_sigmas | Use Keras sigmas to generate images. Produces nice results. Default is "yes". | "yes"/"no" |
algorithm_type | Used in the DPMSolverMultistepScheduler scheduler. Default is "none". | "dpmsolver+++" |
vae | Use a custom VAE for generating images. Default is null. | string/null |
lora_strength | Specify the strength of the LoRa model you're using. If using multiple LoRa models, provide each value as a comma-separated range from 0.1 to 1. | float |
lora_model | Pass LoRa model ID. Multiple LoRa models are supported; pass comma-separated values (e.g., "contrast-fix, yae-miko-genshin"). | LoRa model IDs |
strength | Prompt strength when using the initial image. 1.0 corresponds to full destruction of information in the initial image. | 0-1 |
seed | Used to reproduce results. The same seed will generate the same image again. Pass null for a random number. | integral value/null |
scheduler | Use this to set a scheduler. | scheduler |
webhook | Set a URL to receive a POST API call once image generation is complete. | URL |
track_id | This ID is returned in the response to the webhook API call and is used to identify the webhook request. | id |
ip_adapter_id | IP adapter ID. Supported IDs are ip-adapter_sdxl , ip-adapter_sd15 , ip-adapter-plus-face_sd15 , ip-adapter-plus_sdxl_vit-h , ip-adapter-plus-face_sdxl_vit-h . | ID |
ip_adapter_scale | Scale for the IP adapter. Should be between 0 and 1. | 0-1 |
ip_adapter_image | Valid image URL for the IP adapter. | URL |
clip_skip | Clip Skip. | Minimum 1, Maximum 8 |
base64 | Get the response as a base64 string. Pass init_image as a base64 string to get a base64 response. Default is "no". | "yes"/"no" |
temp | Create a temporary image link valid for 24 hours. | "yes"/"no" |
Schedulers
This endpoint also supports schedulers. Use the "scheduler" parameter in the request body to pass a specific scheduler from the list below:
- DDPMScheduler
- DDIMScheduler
- PNDMScheduler
- LMSDiscreteScheduler
- EulerDiscreteScheduler
- EulerAncestralDiscreteScheduler
- DPMSolverMultistepScheduler
- HeunDiscreteScheduler
- KDPM2DiscreteScheduler
- DPMSolverSinglestepScheduler
- KDPM2AncestralDiscreteScheduler
- UniPCMultistepScheduler
- DDIMInverseScheduler
- DEISMultistepScheduler
- IPNDMScheduler
- KarrasVeScheduler
- ScoreSdeVeScheduler
- LCMScheduler
Example
Body
{
"key": "",
"model_id": "realistic-vision-51",
"prompt": "women playing tennis",
"negative_prompt": null,
"init_image": "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"samples": "1",
"num_inference_steps": "31",
"safety_checker": "yes",
"enhance_prompt": "yes",
"guidance_scale": 7.5,
"strength": 0.7,
"scheduler": "UniPCMultistepScheduler",
"seed": null,
"lora_model": null,
"tomesd": "yes",
"use_karras_sigmas": "yes",
"vae": null,
"lora_strength": null,
"embeddings_model": null,
"webhook": null,
"track_id": null
}
Request
- JS
- PHP
- NODE
- PYTHON
- JAVA
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"key": "",
"model_id": "realistic-vision-51",
"prompt": "women playing tennis",
"negative_prompt": null,
"init_image": "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"samples": "1",
"num_inference_steps": "31",
"safety_checker": "yes",
"enhance_prompt": "yes",
"guidance_scale": 7.5,
"strength": 0.7,
"scheduler": "UniPCMultistepScheduler",
"seed": null,
"lora_model": null,
"tomesd": "yes",
"use_karras_sigmas": "yes",
"vae": null,
"lora_strength": null,
"embeddings_model": null,
"webhook": null,
"track_id": null
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://modelslab.com/api/v6/images/img2img", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$payload = [
"key" => "",
"model_id" => "realistic-vision-51",
"prompt" => "women playing tennis",
"negative_prompt" => null,
"init_image" => "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"samples" => "1",
"num_inference_steps" => "31",
"safety_checker" => "yes",
"enhance_prompt" => "yes",
"guidance_scale" => 7.5,
"strength" => 0.7,
"scheduler" => "UniPCMultistepScheduler",
"seed" => null,
"lora_model" => null,
"tomesd" => "yes",
"use_karras_sigmas" => "yes",
"vae" => null,
"lora_strength" => null,
"embeddings_model" => null,
"webhook" => null,
"track_id" => null
];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://modelslab.com/api/v6/images/img2img',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://modelslab.com/api/v6/images/img2img',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"key": "",
"model_id": "realistic-vision-51",
"prompt": "women playing tennis",
"negative_prompt": null,
"init_image": "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"samples": "1",
"num_inference_steps": "31",
"safety_checker": "yes",
"enhance_prompt": "yes",
"guidance_scale": 7.5,
"strength": 0.7,
"scheduler": "UniPCMultistepScheduler",
"seed": null,
"lora_model": null,
"tomesd": "yes",
"use_karras_sigmas": "yes",
"vae": null,
"lora_strength": null,
"embeddings_model": null,
"webhook": null,
"track_id": null
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "https://modelslab.com/api/v6/images/img2img"
payload = json.dumps({
"key": "",
"model_id": "realistic-vision-51",
"prompt": "women playing tennis",
"negative_prompt": None,
"init_image": "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"samples": "1",
"num_inference_steps": "31",
"safety_checker": "yes",
"enhance_prompt": "yes",
"guidance_scale": 7.5,
"strength": 0.7,
"scheduler": "UniPCMultistepScheduler",
"seed": None,
"lora_model": None,
"tomesd": "yes",
"use_karras_sigmas": "yes",
"vae": None,
"lora_strength": None,
"embeddings_model": None,
"webhook": None,
"track_id": None
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"key\": \"\",\n \"model_id\": \"realistic-vision-51\",\n \"prompt\": \"women playing tennis\",\n \"negative_prompt\": null,\n \"init_image\": \"https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg\",\n \"samples\": \"1\",\n \"num_inference_steps\": \"31\",\n \"safety_checker\": \"yes\",\n \"enhance_prompt\": \"yes\",\n \"guidance_scale\": 7.5,\n \"strength\": 0.7,\n \"scheduler\": \"UniPCMultistepScheduler\",\n \"seed\": null,\n \"lora_model\":null,\n tomesd\": \"yes\",\n \"use_karras_sigmas\": \"yes\",\n \"vae\": null,\n \"lora_strength\": null,\n \"embeddings_model\": null,\n \"webhook\": null,\n \"track_id\": null\n}");
Request request = new Request.Builder()
.url("https://modelslab.com/api/v6/images/img2img")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
Response
{
"status": "success",
"generationTime": 9.07,
"id": 112514254,
"output": [
"https://d9jy2smsrdjcq.cloudfront.net/generations/0-8751f0cf-25f3-41ca-8259-e22d01d05143.png"
],
"proxy_links": "",
"nsfw_content_detected": false,
"webhook_status": "",
"meta": {
"prompt": "women playing tennis hyperrealistic, full body, detailed clothing, highly detailed, cinematic lighting, stunningly beautiful, intricate, sharp focus, f/1. 8, 85mm, (centered image composition), (professionally color graded), ((bright soft diffused light)), volumetric fog, trending on instagram, trending on tumblr, HDR 4K, 8K",
"model_id": "realistic-vision-51",
"scheduler": "UniPCMultistepScheduler",
"safety_checker": "yes",
"negative_prompt": " (child:1.5), ((((underage)))), ((((child)))), (((kid))), (((preteen))), (teen:1.5) ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy",
"W": 736,
"H": 736,
"guidance_scale": 7.5,
"init_image": "https://i.pinimg.com/736x/20/ab/3d/20ab3df5c180e1cae812020bcfeb3093.jpg",
"steps": 30,
"n_samples": 1,
"strength": 0.7,
"multi_lingual": "no",
"tomesd": "yes",
"use_karras_sigmas": "yes",
"algorithm_type": "no",
"safety_checker_type": "sensitive_content_text",
"instant_response": "no",
"full_url": "no",
"upscale": "no",
"vae": null,
"ip_adapter_id": null,
"enhance_prompt": "yes",
"enhance_style": null,
"ip_adapter_scale": 0.6,
"ip_adapter_image": null,
"lora": null,
"lora_strength": 1,
"embeddings": null,
"seed": 4139316548,
"outdir": "out",
"file_prefix": "79920644-ac2e-42ff-9bee-d4aad967b016.png",
"clip_skip": 1,
"watermark": "no",
"temp": "no",
"base64": "no"
},
"tip": "Get 20x faster image generation using enterprise plan. Click here : https://modelslab.com/enterprise"
}