Multi LoRA
Overview
Multi LoRA is used to create image from text, using multiple LoRA models, based on trained or on public models.
Make an API call using your trained models or any public model by also passing multiple comma separated LoRA model IDs to the lora_model
parameter, such as "more_details,cinnamon" for example.
tip
You can find a list of the public and LoRA models available and their IDs here.
Request
--request POST 'https://modelslab.com/api/v6/images/text2img' \
Make a POST
request to https://modelslab.com/api/v6/images/text2img endpoint and pass the required parameters in the request body.
Body Attributes
Parameter | Description | Values |
---|---|---|
key | Your API Key used for request authorization. | string |
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 |
width | The width of the image. | Maximum value is 1024 pixels. |
height | The height of the image. | Maximum value is 1024 pixels. |
samples | Number of images to be returned in the response. | Maximum value is 4. |
num_inference_steps | The number of denoising steps. | Accepts values: 21, 31, or 41. |
safety_checker | A checker for NSFW images. If detected, such images will be replaced by a blank image. | Default: "yes", Options: "yes"/"no" |
enhance_prompt | Enhance prompts for better results. | Default: "yes", Options: "yes"/"no" |
seed | Used to reproduce results. The same seed will generate the same image again. Pass null for a random number. | integral value |
guidance_scale | Scale for classifier-free guidance. | Minimum 1, Maximum 20 |
multi_lingual | Allow multilingual prompts to generate images. Set this to "yes" if you use a language other than English in your text prompts. | YES or NO |
panorama | Set this parameter to "yes" to generate a panorama image. | YES or NO |
self_attention | If you want a high-quality image, set this parameter to "yes". Image generation will take more time. | YES or NO |
upscale | Set this parameter to "yes" if you want to upscale the image resolution two times (2x). For example, if the requested resolution is 512x512 pixels, the generated image will be 1024x1024 pixels. | YES or NO |
embeddings_model | Use this to pass an embeddings model (embeddings_model_id). | ID |
lora_model | Pass LoRa model ID. Multiple LoRa models are supported; pass comma-separated values. Example: "contrast-fix,yae-miko-genshin". | ID |
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 minimum 0.1 to maximum 1. | |
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 |
clip_skip | Clip Skip. | Minimum 1, Maximum 8 |
base64 | Get the response as a base64 string. Pass init_image, mask_image, and control_image as base64 strings to get a base64 response. Default is "no". | Options: "yes"/"no" |
temp | Create a temporary image link valid for 24 hours. | Options: "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
Body
{
"key": "",
"model_id": "f222-diffusion",
"prompt": "a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image",
"negative_prompt": "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime",
"width": "512",
"height": "512",
"samples": "1",
"num_inference_steps": "31",
"safety_checker": "yes",
"enhance_prompt": "yes",
"seed": null,
"guidance_scale": 7.5,
"panorama": "no",
"self_attention": "no",
"upscale": "no",
"embeddings_model": null,
"lora_model": "ganyu-lora,more_details",
"lora_strength": "0.45,0.55",
"scheduler": "UniPCMultistepScheduler",
"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": "f222-diffusion",
"prompt": "a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image",
"negative_prompt": "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime",
"width": "512",
"height": "512",
"samples": "1",
"num_inference_steps": "30",
"safety_checker": "yes",
"enhance_prompt": "yes",
"seed": null,
"guidance_scale": 7.5,
"panorama": "no",
"self_attention": "no",
"upscale": "no",
"embeddings_model": null,
"lora_model": "ganyu-lora,more_details",
"lora_strength": "0.45,0.55",
"scheduler": "UniPCMultistepScheduler",
"webhook": null,
"track_id": null
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://modelslab.com/api/v6/images/text2img", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$payload = [
"key" => "",
"model_id" => "f222-diffusion",
"prompt" => "a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image",
"negative_prompt" => "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime",
"width" => "512",
"height" => "512",
"samples" => "1",
"num_inference_steps" => "30",
"safety_checker" => "yes",
"enhance_prompt" => "yes",
"seed" => null,
"guidance_scale" => 7.5,
"panorama" => "no",
"self_attention" => "no",
"upscale" => "no",
"embeddings_model" => null,
"lora_model" => "ganyu-lora,more_details",
"lora_strength" => "0.45,0.55",
"scheduler" => "UniPCMultistepScheduler",
"webhook" => null,
"track_id" => null
];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://modelslab.com/api/v6/images/text2img',
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/text2img',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"key": "",
"model_id": "f222-diffusion",
"prompt": "a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image",
"negative_prompt": "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime",
"width": "512",
"height": "512",
"samples": "1",
"num_inference_steps": "30",
"safety_checker": "yes",
"enhance_prompt": "yes",
"seed": null,
"guidance_scale": 7.5,
"panorama": "no",
"self_attention": "no",
"upscale": "no",
"embeddings_model": null,
"lora_model": "ganyu-lora,more_details",
"lora_strength": "0.45,0.55",
"scheduler": "UniPCMultistepScheduler",
"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/text2img"
payload = json.dumps({
"key": "",
"model_id": "f222-diffusion",
"prompt": "a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image",
"negative_prompt": "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime",
"width": "512",
"height": "512",
"samples": "1",
"num_inference_steps": "30",
"safety_checker": "yes",
"enhance_prompt": "yes",
"seed": None,
"guidance_scale": 7.5,
"panorama": "no",
"self_attention": "no",
"upscale": "no",
"embeddings_model": None,
"lora_model": "ganyu-lora,more_details",
"lora_strength": "0.45,0.55",
"scheduler": "UniPCMultistepScheduler",
"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\": \"your_model_id\",\n \"prompt\": \"a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image\",\n \"negative_prompt\": \"painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime\",\n \"width\": \"512\",\n \"height\": \"512\",\n \"samples\": \"1\",\n \"num_inference_steps\": \"30\",\n \"safety_checker\":\"yes\",\n \"enhance_prompt\":\"yes\",\n \"seed\": null,\n \"guidance_scale\": 7.5,\n \"panorama\":\"no\",\n \"self_attention\":\"no\",\n \"upscale\":\"no\",\n \"embeddings_model\":\"no\",\n \"lora_model\":\"ganyu-lora,more_details\",\n \"lora_strength\":\"0.45,0.55\",\n \"scheduler\":\"UniPCMultistepScheduler\",\n \"webhook\": null,\n \"track_id\": null\n}");
Request request = new Request.Builder()
.url("https://modelslab.com/api/v6/images/text2img")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
Response
{
"status": "processing",
"tip": "Your image is processing in background, you can get this image using fetch API: here is link for fetch api : https://docs.modelslab.com/community-models-api-v4/dreamboothfetchqueimg",
"eta": 13.067986918399999,
"messege": "Try to fetch request after seconds estimated",
"webhook_status": "",
"fetch_result": "https://modelslab.com/api/v3/dreambooth/fetch/29763508",
"id": 29763508,
"output": [],
"meta": {
"prompt": " a female model doing photoshoot, ultra realistic face, ultra high resolution, 4K image 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": "f222-diffusion",
"negative_prompt": "painting, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, deformed, ugly, blurry, bad anatomy, bad proportions, extra limbs, cloned face, skinny, glitchy, double torso, extra arms, extra hands, mangled fingers, missing lips, ugly face, distorted face, extra legs, anime(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",
"scheduler": "UniPCMultistepScheduler",
"safety_checker": "yes",
"W": 512,
"H": 512,
"guidance_scale": 7.5,
"seed": 3361266218,
"steps": 20,
"n_samples": 1,
"full_url": "no",
"tomesd": "yes",
"upscale": "no",
"panorama": "no",
"self_attention": "no",
"use_karras_sigmas": "yes",
"embeddings": null,
"vae": null,
"lora": "ganyu-lora,more_details",
"lora_strength": "0.45,0.55",
"clip_skip": 1,
"temp": "no",
"base64": "no",
"file_prefix": "d00bf96e-8cec-40b4-a090-c87e7165f78e.png"
},
"future_links": [
"https://cdn.stablediffusionapi.com/generations/0-d00bf96e-8cec-40b4-a090-c87e7165f78e.png"
]
}