Welcome
DarkAgent/ M4RV3LS-DUNGEONS
API Sample: DarkAgent/M4RV3LS-DUNGEONS
You don't have any projects yet. To be able to use our api service effectively, please sign in/up and create a project.
Get your api keyPrepare Authentication Signature
//Sign up Wiro dashboard and create project
export YOUR_API_KEY="{{useSelectedProjectAPIKey}}";
export YOUR_API_SECRET="XXXXXXXXX";
//unix time or any random integer value
export NONCE=$(date +%s);
//hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY
export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")";
Create a New Folder - Make HTTP Post Request
Create a New Folder - Response
Upload a File to the Folder - Make HTTP Post Request
Upload a File to the Folder - Response
Run Command - Make HTTP Post Request
curl -X POST "{{apiUrl}}/Run/{{toolSlugOwner}}/{{toolSlugProject}}" \
-H "Content-Type: {{contentType}}" \
-H "x-api-key: ${YOUR_API_KEY}" \
-H "x-nonce: ${NONCE}" \
-H "x-signature: ${SIGNATURE}" \
-d '{{toolParameters}}';
Run Command - Response
//response body
{
"errors": [],
"taskid": "2221",
"socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt",
"result": true
}
Get Task Detail - Make HTTP Post Request
curl -X POST "{{apiUrl}}/Task/Detail" \
-H "Content-Type: {{contentType}}" \
-H "x-api-key: ${YOUR_API_KEY}" \
-H "x-nonce: ${NONCE}" \
-H "x-signature: ${SIGNATURE}" \
-d '{
"tasktoken": 'eDcCm5yyUfIvMFspTwww49OUfgXkQt',
}';
Get Task Detail - Response
//response body
{
"total": "1",
"errors": [],
"tasklist": [
{
"id": "2221",
"uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd",
"name": "",
"socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt",
"parameters": {
"inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png"
},
"debugoutput": "",
"debugerror": "",
"starttime": "1734513809",
"endtime": "1734513813",
"elapsedseconds": "6.0000",
"status": "task_postprocess_end",
"cps": "0.000585000000",
"totalcost": "0.003510000000",
"guestid": null,
"projectid": "699",
"modelid": "598",
"description": "",
"basemodelid": "0",
"runtype": "model",
"modelfolderid": "",
"modelfileid": "",
"callbackurl": "",
"marketplaceid": null,
"createtime": "1734513807",
"canceltime": "0",
"assigntime": "1734513807",
"accepttime": "1734513807",
"preprocessstarttime": "1734513807",
"preprocessendtime": "1734513807",
"postprocessstarttime": "1734513813",
"postprocessendtime": "1734513814",
"pexit": "0",
"categories": "["tool","image-to-image","quick-showcase","compare-landscape"]",
"outputs": [
{
"id": "6bc392c93856dfce3a7d1b4261e15af3",
"name": "0.png",
"contenttype": "image/png",
"parentid": "6c1833f39da71e6175bf292b18779baf",
"uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd",
"size": "202472",
"addedtime": "1734513812",
"modifiedtime": "1734513812",
"accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK",
"foldercount": "0",
"filecount": "0",
"ispublic": 0,
"expiretime": null,
"url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png"
}
],
"size": "202472"
}
],
"result": true
}
Get Task Process Information and Results with Socket Connection
<script type="text/javascript">
window.addEventListener('load',function() {
//Get socketAccessToken from task run response
var SocketAccessToken = 'eDcCm5yyUfIvMFspTwww49OUfgXkQt';
WebSocketConnect(SocketAccessToken);
});
//Connect socket with connection id and register task socket token
async function WebSocketConnect(accessTokenFromAPI) {
if ("WebSocket" in window) {
var ws = new WebSocket("wss://socket.wiro.ai/v1");
ws.onopen = function() {
//Register task socket token which has been obtained from task run API response
ws.send('{"type": "task_info", "tasktoken": "' + accessTokenFromAPI + '"}');
};
ws.onmessage = function (evt) {
var msg = evt.data;
try {
var debugHtml = document.getElementById('debug');
debugHtml.innerHTML = debugHtml.innerHTML + "\n" + msg;
var msgJSON = JSON.parse(msg);
console.log('msgJSON: ', msgJSON);
if(msgJSON.type != undefined)
{
console.log('msgJSON.target: ',msgJSON.target);
switch(msgJSON.type) {
case 'task_queue':
console.log('Your task has been waiting in the queue.');
break;
case 'task_accept':
console.log('Your task has been accepted by the worker.');
break;
case 'task_preprocess_start':
console.log('Your task preprocess has been started.');
break;
case 'task_preprocess_end':
console.log('Your task preprocess has been ended.');
break;
case 'task_assign':
console.log('Your task has been assigned GPU and waiting in the queue.');
break;
case 'task_start':
console.log('Your task has been started.');
break;
case 'task_output':
console.log('Your task has been started and printing output log.');
console.log('Log: ', msgJSON.message);
break;
case 'task_error':
console.log('Your task has been started and printing error log.');
console.log('Log: ', msgJSON.message);
break;
case 'task_output_full':
console.log('Your task has been completed and printing full output log.');
break;
case 'task_error_full':
console.log('Your task has been completed and printing full error log.');
break;
case 'task_end':
console.log('Your task has been completed.');
break;
case 'task_postprocess_start':
console.log('Your task postprocess has been started.');
break;
case 'task_postprocess_end':
console.log('Your task postprocess has been completed.');
console.log('Outputs: ', msgJSON.message);
//output files will add ui
msgJSON.message.forEach(function(currentValue, index, arr){
console.log(currentValue);
var filesHtml = document.getElementById('files');
filesHtml.innerHTML = filesHtml.innerHTML + '<img src="' + currentValue.url + '" style="height:300px;">'
});
break;
}
}
} catch (e) {
console.log('e: ', e);
console.log('msg: ', msg);
}
};
ws.onclose = function() {
alert("Connection is closed...");
};
} else {
alert("WebSocket NOT supported by your Browser!");
}
}
</script>
Prepare UI Elements Inside Body Tag
<div id="files"></div>
<pre id="debug"></pre>
> VERSION 3.0 NOW AVAILABLE! FULL & PRUNED VERSIONS <
=======OVER 23,000! COMBINED DOWNLOADS!!=======
📜Many years ago... when I got first got my start in artwork.. some of my first attempts were to draw comic book characters. Over time during my career I've had the fortune to work on graphic novels and even with some pretty big names. There is an old love that runs in me of this genre. This is my attempt to capture that and bring it to SD!
===========================================================
☞(Please read below the Pro Tips & Tricks section for the vae & necessary settings to get the best results!)☜
A hand selected collection of the best of the best, no compromise models to make up this collection!
Specializes in traditional Western Style Comic Characters 2D-2.5D Semi-Realistic, Illustrations & Fantasy Art!
Will do everything from sketch designs, to full comic posters, character concepts, panel layouts, complex scenery, fantasy art of all kinds, sci-fi, retro, etc. The results are endless!
From 2D to Boris Vallejo Paintings and other artists this will do almost everything with a bit of prompt crafting!
It also works with LORAs & EMBEDS without difficulty and generates some very unique and interesting results. (Can't guarantee every LORA will work with it. but many I've tried seem to without issue.)
It's created to be a catch all for this particular medium and I've tested this model for a month exclusively and have been very impressed with its results.
No embedded VAE but this particular vae is required to get the results & examples shown: (The Vae has also been added to the file list)
YOU NEED TO USE THIS VAE!
☞vae-ft-mse-840000-ema-pruned ☜for v4.0
☞kl-f8-anime2.ckpt ☜ for v3.0
☞vae-ft-mse-840000-ema-pruned ☜for v2.5
☞kl-f8-anime2.ckpt ☜ for v2.0
2.5 is more utilitarian in that it specializes now in both oil painting & flat shaded 2D & everything in between!
🔥PRO TIPS & TRICKS:🔥
====================================================
Works best from 4-15 CFG and up 20-150 STEPS! YMMV!
There is a PRUNED (COMING SOON!) & FULL VERSION
=============>🌟WORKS BEST WITH CLIP SKIP 1! 🌟<===========
(seriously use this or you will not get results like the image examples at all.)
I recommend & use the following negatives commonly:
EasyNegative (The all around catch all. Always good in a bind)
badhandv4_anime (absolutely your go to neg for anime / drawn hands)
bad-hands-5 (good for the more realistic images but many times will not work amazingly for just anime. I usually use this and badhands4_anime together)
bad-artist \ bad-artist-anime (I've had good & bad luck with this but sometimes it's great.)
bad_prompt \ bad_prompt_version2 (works very good sometimes)
===========================================================
This is complex mix that I'll share information about how it was made in the near future.
I'm going to take a break for a while as I've been working on this fairly solid for over a month straight! I hope you all enjoy it and show me what you make with this magical model <3
🌟Below (and also other images in the gallery) are examples of the styles you can achieve from the model just by changing the weights on a few simple prompts like: (Comic Style), (Realistic), (Line Art), (Illustration), (Curisscaro), etc. (These image examples w/ prompts are in the gallery for your use & reference.)
MANY examples will be going up in the next few days. So keep your eyes peeled!
=========================================================
A walkthrough on how to setup and use the basics in A1111 to get the results you see:
===========================================================
Blurred eyes, or sometimes warped faces are not that uncommon in SD and sometimes require an inpaint to pull off. Most of my examples are not inpainted. But a few are.
First off when you run txt2img ALWAYS use HIRES FIX! <===
Upscaled: latent (nearest or exact) upscale, or 4x-UltraSharp.
Denoising: 0.35-0.7 denoise (Complete variable - depends on the type and complexity of the image. YMMV! But 0.4-0.55 is a good window.)
Upscale by 1.5-2 but no more than that.
This will get you a pretty good base image to work with.
Afterwards.. You can always send your txt2img picture to inpaint on the bottom right under the result area > select the face or eyes > lower the denoise strength to 0.5-0.57. > make sure your seed is set to random.
masked content = fill / inpaint area = whole picture ====== for faces
masked content = fill / inpaint area = only masked ====== for eyes
With "whole picture" selected for larger inpaint target aka faces (or hands) you may need the denoise to be lower to pick up more of the original image. 0.53-0.56
Now with "only masked" and a smaller target like eyes you get a little more freedom so your denoise can be 0.54-0.57
Run a batch of 4-5 (or more) for the faces.. go through pick the best one.. if you're lucky you got the eyes and face in one go... if not you may need to choose the best face.. send back to inpaint again.. select just the eyes.. and rerun a new batch (changing it to only masked and the settings described above for eyes.)
Finally when you get it all together send to extras:
Resize to 1.5-2
Upscale 1= Nearest
Upscale 2= R-ESERGAN 2x or 4x
But google or get yourself these:
Remacri Upscaler
Lollypop Upscaler
4x_Fatality_Comix_260000_G
4x_NMKD_Superscale-SP_178000_G
(Install these into the proper directory: A1111-Web-UI-Autoinstaller\stable-diffusion-webui\models\ESRGAN and reload a1111.)
Upscaler 2 is what will get you the results you want. You can also drag the upscaler 2 visibility to control the amount of effect each puts on the finished result. (I recommend turning it up 1 but YMMV.)
Ramacri / Lollypop / & Fatality Comix are neck and neck for the best output!
They are all different. One is sharpest, One is more subdued, and one is like a sharp HD.
Each are good for any type of comic / illustration / cell shading / anime.
NMKD_Super is more for semi-realistic to real images and good for scenery. Tends to run sharp so you may have to turn it down a bit.
Each of these is unique and so is their outputs if you want to compare simply change the pull down and run off the various types and contrast / compare all your the finished results.
For the more advanced upscale: Get yourself Ultimate SD Upscale
(click the link for a basic tutorial on how to get it and how to use it.)
Good Luck & Have Fun!
Tools
View All
