• Sign up or login, and you'll have full access to opportunities of forum.

Discussion about A.I.

Go to CruxDreams.com
Hi, I'm totally out of technical discussions.

I follow your progress with enormous interest.
My question is, do you think that AI feeds on all the creations of artists like you, and that maybe, in 2 or 3 years, it will be enough to "order" a scene which well described will resemble those you will create?
 
Hi, I'm totally out of technical discussions.

I follow your progress with enormous interest.
My question is, do you think that AI feeds on all the creations of artists like you, and that maybe, in 2 or 3 years, it will be enough to "order" a scene which well described will resemble those you will create?

I think we might not even need 3 years before something similar can happen. All those technical jargon and complex node trees I've posted in this thread don't have any artistic value in themselves. They are just tools that I need to direct AI to create something I imagine with the current state of the technology.

As such, they will incrementally become obsolete until anyone without particular technical skills can use AI to create their original art in the way they envision.

And we're already seeing a few signs that AI that creates images is approaching that stage. See this example, in particular, that combines LLM with image-generating AI above:


It means you can just "talk" to an AI rather than write a prompt or create a complex node tree to start creating a scene. Of course, the AI won't get what you want perfectly at first. But you can keep telling it to change this or that aspect in the way you want in a natural language, which I believe isn't too different from what you said by "ordering" a render from AI.

While I respect those artists who've honed their skills in whatever method they chose to create their art, I believe anyone who has a sufficiently imaginative mind shouldn't be excluded from the joy of artistic expression.

As such, I look forward to the day when all the technical stuff I've learned to use Stable Diffusion today won't be needed any more so that anyone can create something like what I make now.

We don't lack people with excitingly kinky minds. Imagine what we'll see from them if they can create anything they can imagine without learning much of 3D or AI :)
 

Rendering a Whipping Scene Using AI​

Part 2 - Rendering The Base Image​


Last time, we prepared the base image using Daz3D and Blender. Now we will run it through AI to make it photorealistic.

(Disclaimer: Although I use ComfyUI for the flexibility it provides, you can use other popular frontends like A1111 to achieve similar results. Also, note that what I share here isn’t the only way to generate decent results and it may not be even the best method. As such, I recommend using this series to get general ideas instead of blindly following the suggested steps.)

To convert a non-photo source into a photo-like result, it is best to start from a blank image (i.e. txt2img instead of img2img, if you use A1111). The reason is that AI tries to make the overall image consistent which means it will try to mimic the source’s style if it is present in the input. But we still want to keep the content of the source image without it affecting the photographic style. And that’s where ControlNet comes in.

There are many different types of ControlNet models and I chose depth and sketch for my render. I included depth because the original composition exploited the difference of distances to the camera of each characters. I wanted to give it a feeling that you’re looking from the perspective of the victim. So I used the depth of field effect to emphasise the space between the slave and the audience behind. The depth model can be great to capture that kind of details from the source image.

I also used sketch which is good at preserving finer details like contours of the characters. Canny is another option that preserves details even better. Personally I prefer sketch if it doesn’t miss too much details since its easier to edit by hand and has less detrimental impact on the quality.

Note that any kind of “conditionings” like prompting or using ControlNets has a potentially adverse effect to the image quality. The more specific you restrict the options for the AI, the more it struggles to find a good quality image that satisfies your conditions. As such, I try to use as few and weak conditions as possible that still give me the outcome I want. That is why I didn’t use more ControlNets or set maximum strength for those used. The overall workflow of this stage looks like the following image:

stage1.jpeg

It may look complicated but it’s just what more user-friendly clients like A1111 do under the hood when you run txt2img with ControlNets. The only part that may be peculiar is how I separated the “style prompt” so that I can reuse it in later stages.

You may have noted that I didn’t use a lot of words to describe the scene. The reason is that it almost never works with the current state of Stable Diffusion. One of the biggest limitations of the software is that it’s extremely difficult to depict a complex scene from a single generation process. There are several ways to mitigate the problem but none of them I’ve tried so far worked reliably for SDXL. As such, we will just render the overall scene as closely possible now and fix inevitable problems in the subsequent stages.

What is the most important in this stage is to get the overall atmosphere right. It may sound counterintuitive since things like adjusting the lighting or tone is something you’d do at the last when you work with a traditional 3D tool. But with AI, it’s more difficult to change such things that globally affect the overall scene without also changing the details that you’ve carefully constructed for main subjects. So, it’s better to make the scene look as good as possible at first then fix all the details later.

Also, AI struggles to depict details in low resolution areas. In other words, it’s unlikely that AI will get all the details correctly at one go unless you render in a gigantic resolution, which has problems of its own. So it’s usually best to approach it as an iterative process that incrementally improves the outcome instead of trying to find the best combination of prompts and settings that gives you a perfect image at one go unless it’s a simple scene.

And that was why I didn’t use any Lora to enhance details, like one that helps depicting better chains or nipples, for instance. Like prompts and ControlNets, Loras can have detrimental or unexpected effects on the overall image when used without discretion. But if you want to use a Lora that affects the global style rather than a specific subject or details it’s better to include it in this stage.

To determine the best atmosphere and lighting of the scene, you need to find out what combination of the models, prompts, and sampler settings that gives you that. As it involves many variables, it’s best to take a systematic approach than blindly changing them at random.

What I usually do is to use a fast sampler like Euler or UniPC with small steps and a fixed seed then experiment with prompts and CFG first. Don’t blindly copy and paste “best prompts” you find on the internet. You may get surprised to see how many of the words included in them have little or even negative impact on your render. Instead, it’s best to try the words one by one to see what effect each has to the outcome. It’s better to use a short prompt anyway since the longer it gets, the less significance each token gets.

CFG is also important for getting a photorealistic image. 5 is usually a good place to start. If you find your image dull or ignoring some of the words in your prompt, try raising CFG. And if you see unrealistic colours, use a lower value.

Once you are happy with the output, you can switch to a better sampler like SDE and go “seed hunting”. While keeping the number of samples low, try generating a batch of images with different seeds each. Keep doing it until you find a seed that gives you the best result and increase the samples once you’re done.

You can also use the method explained above to determine how much leeway you want to allow the AI. In my current render, for example, I decided to keep the result when the AI ignored the trees in the source image and replaced them with buildings instead. I thought the city square would be a better background for such a scene so I changed my prompt accordingly. AI also generated a night scene or one with a rainy weather for some seeds. I didn’t like them as much, so I ended up with the following image instead:

ComfyUI_temp_snjhq_00001_.jpeg

Now that we have a suitable base render, we’ll fix defects and add more details in next stages.
 
Last edited:
Last time, we prepared the base image using Daz3D and Blender. Now we will run it through AI to make it photorealistic.
No wonder you got so upset with me when I said your work wasn't allowed on VoD earlier this year. Photographs aren't allowed there because I have no way of verifying how old subjects are. Your work is indistinguishable from a photograph, but the people aren't even real. I couldn't wrap my head around that at the time.

Damn. I am so sorry.

You may have noted that I didn’t use a lot of words to describe the scene. The reason is that it almost never works with the current state of Stable Diffusion.
I've been wondering how folks come up with extraordinarily long prompts to refine the work. This should prove helpful for my experiments.
 
Last edited:
No wonder you got so upset with me when I said your work wasn't allowed on VoD. Photographs aren't allowed there because I have no way of verifying how old subjects are. Your work is indistinguishable from a photograph, but the people aren't even real. I couldn't wrap my head around that.

Damn. I am so sorry.
That’s alright. Looks like it turned out for the better for both of us somehow - I returned to CF and did my part to revise the ToS about AI works, and now you’re enjoying enhancing your Daz3D renders with AI :)
 
Last edited:
This is a troubling matter:

https://www.bbc.co.uk/news/technology-67172231

Needless to say, anything of this kind would be absolutely unacceptable on the Forums.
If any member has even a suspicion that an image is a product of such activity, click 'Report'.
 

Rendering a Whipping Scene Using AI​

Part 3 - Enhancing The Man​


The base image we made last time has several problems, like how the whip from the original Blender render became almost invisible. We'll try to fix this issue using "inpainting", an essential skill for composing a complex scene using SD. While it's not difficult to use the feature in a client like A1111, it's not as easy to do it right.

Let's see how we can enhance this part of the base image with inpainting, then:

Screenshot_20231026_231649.jpeg

As you can see, the AI failed to recognise that the man was holding a whip and smiling. Those details are something that I want to restore because they are essential for the theme of the scene. As I mentioned earlier, we can use inpainting to replace this region with a better version.

There are a few things to consider when you do inpainting. First, you must give the AI a sufficiently large area to work with, or it may generate a mangled image with bad anatomy. You may have heard how AI can't draw hands, by the way. While not entirely wrong, the problem mostly arises when the area is either too small or obstructed by something else. The hand that holds the whip in our render is barely 50x50 in size, which is not insufficient for SD to generate a good image.

One way to solve this problem would be simply resizing the whole image. However, SD is picky about resolution, so it doesn't like rendering a huge image either. Besides, it would take a long time to render even if you don't run out of VRAM.

As such, a common approach is upscaling the target area before performing inpaint, then resizing it down to the original size before pasting over the source image. And that's exactly what the "Inpaint Only Masked" option does in A1111 or SD.next.

But sometimes, you may get an unexpected image using that method, like something doesn't even look like a hand, for instance. It's likely because AI lacks a proper context to understand the overall picture. Imagine someone giving you only a picture of a mangled hand and telling you to draw a better version that would perfectly match the rest of the body without showing you what it looks like. Regardless of your skill, what you'll draw would likely look out of place when you paste it over the whole image.

An obvious remedy would be giving AI the whole context, i.e. the entire image, which might not always be the best way, as we discussed before. So, we need a third option, like upscaling the target area like the first method but cropping larger than what's needed for inpainting to provide the AI sufficient context. And that's what "padding" does in A1111 or SD.next.

Also, remember to change the prompt according to the method you choose for inpainting. Describing something not even included in the target or context area would be pointless, for example.

Lastly, you can choose what AI will draw over. If you want to insert something completely new into your image, you may tell the AI to erase the area or fill it with a noise pattern so that the original content wouldn't affect the result. On the contrary, you may want to preserve the original image while making a minor enhancement, in which case you can lower the denoising strength to achieve that.

ControlNet can be very useful in the inpainting process as well. Just don't forget that it's not only for preserving the content you can also modify it by editing the preprocessed images - e.g. drawing a whip mark or erasing an extra finger in the lineart map.

As with the previous stage, I used ComfyUI for maximum flexibility. Here's the stage I made to inpaint the man holding a whip:

Screenshot_20231026_225025.jpeg

It takes the input image generated from the previous stage, so I can always repeat the whole process and reproduce the same output. It can be handy because I can always revisit this render and change any step I have taken to arrive at the final result.

And shown below is what this setup produced:

ComfyUI_temp_sfyzd_00008_.jpg

As you can see, it now properly includes a smiling man holding a whip, like the original Blender render did. It may not look great, but it doesn't matter since it'll get changed in later stages again. Next time, we'll finally start enhancing our main subject - the naked slave tied to a post.
 
Last edited:
A slightly different topic on artificial intelligence, I have now tried the Photoshop firefly app once for just under 5 euros a month, and the result is really outstanding. Old dungeon backgrounds that I haven't used for years because any mismatched people items would have destroyed the scenario, were removed in a few seconds, great tool that I will still exhaust a little, here are some examples. only drawback, porn scenes are not accepted, with nudity it works for the most part.Firefly 20231026202750.pngFirefly 20231026164005.pngFirefly 20231026171916.png03857359.jpeg
 
Apparently not all traditional artists think AI is a bad thing. YT recommended a guide to Stable Diffusion prompts by a professional illustrator:


I have now tried the Photoshop firefly app once for just under 5 euros a month... only drawback, porn scenes are not accepted

You might be able to get around that with Stable Diffusion and Inpainting with those images as part of an img2img workflow.
 
Last edited:

Rendering a Whipping Scene Using AI​

Part 4 - Enhancing The Slave​


As I promised last time, we will add another stage to enhance our main character today. In the previous stage, I used Impact Pack's detailer nodes for convenience, but I found that it doesn't allow using ControlNet images from a different source. So, I decided to construct my own inpainting node graph, which looks like below:

Screenshot_20231029_133018.jpeg

For A1111 users: it's just "inpaint the whole image" with a few tweaks. I decided to upscale the latent image to give more room for details since we're now rendering our main character. Normally, naively upscaling the latent image would detrimentally affect the quality. However, this particular scene uses depth of field effect, so the background will look blurry anyway.

Also, I decided to decrease the strength of the ControlNets in the middle of the sampling stage. It's because my focus in this stage is to depict the skin details (i.e. grimes) of the slave, which might be suppressed if the ControlNet's or Lora's influence is too strong. A1111 also provides an equivalent similar functionality, so you can try it if you have similar trouble with ControlNets.

The important thing to remember is that now we used a mask over the slave girl, which means we can now use a more focused prompt without concerning ourselves too much with what's outside the mask.

We have a few more stages that fix or enhance various aspects of our main character. The next stage, for example, restores the shackles which were lost during the conversion from the Blender render to the base image. I added my Lora (linked in my signature) to depict the restraints this time. The node setup looks like the following image:

Screenshot_20231029_133105.jpeg

As you can see, the graph is slightly different from the previous stage, which is because we're doing something similar to A1111's "inpaint masked only" this time. The reason is that the feet area is too small, so we won't be able to add enough details without cropping the area and upscale it temporarily to give it enough space. Also, note that 1024x1024 is the best resolution for SDXL, so we'll use it as the target resolution when performing regional upscaling such as this one.

This time, I also injected a noise pattern over the original image because I didn't want the sampler to use the defective image (i.e. deformed shackles and chains) too much. Also, I ran the Unipc sampler to quickly shape up the image and pass it over to the SDE 2M to refine it. I'm not sure how much of what I did here is just snake oil, but it worked fine for my purpose in this case, so I don't intend to question it too much.

I also added another stage to fix the hands part as well. The node graph is almost identical, so I'll just post the screenshot of the setup:

Screenshot_20231029_133209.jpeg

The same goes for yet another stage that changes the slave's face:

Screenshot_20231029_133247.jpeg

The output image of the last stage we added today is shown below:

ComfyUI_temp_pjzcn_00003_.jpg

We're almost done with the render. Next time, we'll add more details, like a proper slave collar and body hair (which is a must to suit my personal taste :p).
 
Last edited:
Ages ago people creates programming languages to future work with A.I. Lisp,Prolog,Kobold(1950-1970) First experiments with Tensorflow started in 1989.
 

Rendering a Whipping Scene Using AI​

Part 5 - Wrapping Up​


As I mentioned last time, we'll just add a bit more detail before finishing up our render. I won't post screenshots of each added stage this time since they look almost identical to the ones we saw earlier.

There are two important changes to the inpainting stages, however. Firstly, I found a dangling node tree in the middle of the graph, which I removed from each stage. I also noticed some of the larger inpainting process leaves visible seams in the output, so I added additional nodes at the end of the pipeline in each stage to address the issue.

I also split the whole workflow into two parts because it was incrementally taking more time and memory to run it from start to finish. You can also take the idea and save the output of a previous stage and use it as the input of the next one using a "Load Image" node. ComfyUI's node cache gets invalidated after each start, so it can be a great time saver when your workflow is a complex one.

To get back to the actual workflow, I first added armpit and pubic hair using "Hairy armpits" and "NaturalBodyXL" Loras, respectively. As a reminder, I prefer to include non-essential Loras only in the inpainting stages so they won't negatively affect the output quality.

I also restored slave brands from the original render, which had gotten lost during the initial conversion process. Unlike SD1.5, you can render simple texts like tattoos, which I find handy to depict brands or tattoos.

Aside from that, I refined the slave collar and the man holding the whip because I didn't like how they looked. I usually apply post-processes like colour correction or vignettes using a Linux application called Darktable. But I'm sure there are good alternatives for other platforms like Windows or Mac.

With the workflow I showed in this series, we went from a quick Blender sketch, which looks as below:



to a photo-like final render (copied from my AI works thread):



Initially, I planned to share everything needed to reproduce this work at the end of the series. One of the best ComfyUI's features is that it allows saving the whole workflow to a bunch of files so that you can either share them or revisit them later to improve the render.

However, I found that the size of the referenced images was slightly over 23 Mb, which I'm afraid may strain CF's server. As such, I'll attach the JSON files without the images instead, which should be sufficient to inspect the workflow in case anyone feels interested.

Please let me know if you have questions or need help using ComfyUI or A1111 to make your own works.

I'll wrap it up by listing the links to the previous posts in this series. Thanks!



Rendering a Whipping Scene Using AI​

  1. Preparation
  2. Rendering The Base Image
  3. Enhancing The Man
  4. Enhancing The Slave
  5. Wrapping Up
 

Attachments

  • workflow.zip
    38.4 KB · Views: 22
Last edited:
Firstly, I found a dangling node tree in the middle of the graph
Damned impressive eye from a layman's pov.

With the workflow I showed in this series, we went from a quick Blender sketch, which looks as below:
to a photo-like final render (copied from my AI works thread):
Stellar work, but you're not bothered by the fact that the slaver is no longer looking directly at the slave, or with the same mischievous grin as in your Blender sketch?
 
Last edited:
Damned impressive eye from a layman's pov.

Stellar work, but you're not bothered by the fact that the slaver is no longer looking directly at the slave, or with the same mischievous grin as in your Blender sketch?

Thanks! And yes, the render still has a few areas which could be improved further. Aside from the things you correctly pointed out, I'd also like to refine the chains if I had more time, for example. But I've already spent a few days on this render, so I feel a bit tired to continue.

And it's a judgment call, after all. I can understand if someone prefers using AI to make only slight improvements to one's Daz3D renders or even thinks that it's not worth bothering with AI if it doesn't exactly replicate every minute detail of the original.

But I made that Blender file to be used as only a sketch for an AI render from the start. To my eyes, the final AI version of my current render looks vastly superior to the original sketch despite the few defects it has.

I certainly would like to turn the man's head slightly lower if I didn't spend too much time on this work already. But do I want to throw away my AI version in favour of the Blender original because of it? Hell no.

It's not a problem of right or wrong but of the intention and preference of each person using tools such as SD, Blender, or Daz3D.
 
Last edited:
And it's a judgment call, after all.
But I made that Blender file to be used as only a sketch for an AI render from the start.
Fair point. That makes sense.

We've been discussing AI-enhanced art on VoD. Your comments reminded me of something I wrote there while I was still experimenting, before learning why AI has issues with hands and faces:

----
I own an old VHS tape of an interview with my favorite Horror author, Clive Barker, from back in the 80s. There's a segment in which he discusses a project that involved his Books of Blood anthologies being adapted into graphic novels. He told the illustrators not to worry so much about following his prose to the letter of the descriptions he wrote, but to make each illustration its own thing based on what they imagined while reading the stories. I still own my copies.

That's the approach I'm attempting to take with AI, to see how it interprets my artwork to produce photo-realistic versions of it. The only difference is I have to tell it how to interpret my renders if I don't want to wind up with exercises in surrealism.
----

From that perspective, I completely understand why you like and prefer the AI version of your Blender sketch. :thumbsup:
 
Back
Top Bottom