We're on the hunt for a frontend engineer to join our team of product and engineering people spread across Australia (our home base is Melbourne but you can work from anywhere).
What you'll be working on is pretty exciting - we're building with React and TypeScript, including canvas-based interactions and custom domain-specific language editors, we have lots of challenging UI work to do.
We are a well funded, profitable company, with 20 years in ICM, we have a global customer base across Australia, Asia, Europe, and the US in 25+ industries.
Oh! Very grateful for the correction. I do feel that’s a third-degree burn waiting to happen. Are you saying heat the pain to high, then put on the oil? Doesn’t that splash painfully?
Probably the ideal workflow would use a reference image via something like IP-Adapter since a simple colour palette wouldn't really give enough control (see https://x.com/P_Galbraith/status/1716405163420963196 for example). Typically you have the character design done in a flat perspective. So it would be nice to have something like an IP-Adapter input as well as a detailed line drawing and a rough paintover.
You would also need to provide a way to give lighting control (i.e. control over light sources and direction) as well as multiple characters etc... for it to be useful in complex compositions.
They used LoRa. Alternatively you can use IP-Adapter and ControlNet, there are models for face, style, composition, lighting, etc... Search for "ComfyUI IP-Adapter workflow".
"NTOSKRNL.EXE + debug symbols + IDA helped me understand how the remote break-in is supposed to work. I knew that something in the remote break-in code path before the first debug packet is sent is going to reboot my machine. So I patched "JMP SHORT $" instructions into the relevant code-path. If I placed it before the crash point, the machine hangs. If I placed it after the crash point, the machine reboots. This allowed me to "bisect" where the crash is happening."
-----
Here is a Chat-GPT breakdown of the comment:
NTOSKRNL.EXE: This is the kernel of the Windows NT operating system. When people refer to the "Windows kernel," they're typically talking about this executable.
debug symbols: These are additional pieces of data that describe the internal structures and functions within a binary (like an EXE or DLL). They make it much easier to understand what's going on when analyzing or debugging the binary.
IDA: IDA (Interactive DisAssembler) is a popular disassembler and debugger used by security researchers and reverse engineers to analyze binaries.
how the remote break-in is supposed to work: It sounds like the commenter is trying to understand how a specific feature or vulnerability related to remote debugging (or "remote break-in") operates.
something in the remote break-in code path before the first debug packet is sent: There's a sequence of events or a code path in the kernel related to the remote debugging feature. The problem seems to manifest before the first debug packet is sent over the network.
JMP SHORT $: This is an assembly instruction. The JMP instruction is used to jump to another part of the code. SHORT refers to a short jump, meaning the jump target is relatively close. The $ symbol refers to the current address of the instruction, so "JMP SHORT $" will cause the program to jump to itself, effectively causing an infinite loop.
patched "JMP SHORT $" instructions into the relevant code-path: By inserting this instruction at various points in the code, the commenter created intentional hangs in the system. This helped isolate where the crash occurs.
bisect: This term comes from the world of debugging and means to divide the code into smaller parts to determine where a problem is. In this context, the commenter is using the hang (from the JMP instruction) as an indicator. If they inserted the JMP instruction and the system hangs, it means the crash hasn't occurred yet. If they inserted the JMP instruction and the system reboots, it means the crash already happened. By moving the JMP instruction around, they can get closer to the exact point of the crash.
In essence, the commenter used a mix of reverse engineering tools and clever debugging tricks to narrow down where a crash was occurring in the Windows NT 3.1 kernel when using a remote debugging feature.
Not sure why this is downvoted, the comment is on point. Is it because it is partly gpt-generated content?
I wonder if patching memory worked in the debugger, if not this would have to be done by manually editing the kernel file with IDA or something, and rebooting the machine. But in either case this is a good way to find the problem.
If you don't want to be seeing ChatGPT generated content here, you should downvote it to discourage the poster from doing so. This is a perfect use of a downvote IMHO.
If you don't mind or care enough, obviously don't downvote, and if you love it, upvote it. That's how we get our community to develop some shared standards of communication.
FWIW, if someone wants ChatGPT content, they can just go to ChatGPT too.
True, although in this case the ChatGPT explanation seems to be mostly accurate.
The one dubious point is the definition of "bisect". The definition is completely accurate in this context. But the sentence after the definition starts with "In this context,", implying that the definition itself should be relatively context-independent. Yet the term "bisect" in programming is more commonly used to refer to something slightly different: dividing some code's commit history into parts, not the code itself.
Also, several of the explanations are wordy and uninsightful, though not false.
…Admittedly, this is all beside the point. ChatGPT output carries a high risk of being inaccurate, so even if it's accurate in some specific case, readers have no way of knowing that. Which means that you shouldn't post ChatGPT output unless you can personally vouch for its accuracy, but in that case why use ChatGPT at all? Still, in this case I'll retrospectively vouch for it.
I added the ChatGPT explanation after the fact because I thought some readers might not have the background to understand the original explanation and I could vouch for its accuracy.
Honestly didn't expect it to cause such a backlash in this forum...
Here is a test I did the other day of rough sketch (hand drawn) -> clean line work (AI) -> coloured (AI). This workflow gives 100% control over the output because you can easily adjust the linework in the intermediary step.
- Automatic1111 outpainting works well but you need to enable the outpainting script. I would recommend Outpainting MK2. What the author did was just resize with fill which doesn't do any diffusion on the outpainted sections.
- There are much better resizing workflows, at a minumum I would recommend using the "SD Upscale Script". However you can get great results by resizing the image to high-res (4-8k) using lanczos then using inpainting to manually diffuse the image at a much higher resolution with prompt control. In this case "SD Upscale" is fine but the inpaint based upscale works well with complex compositions.
- When training I would typically recommend to keep the background. This allows for a more versitile finetuned model.
- You can get a lot more control of final output by using ControlNet. This is especially great if you have illustration skills. But it is also great to generate varitions in a different style but keep the composition and details. In this case you could have taken a portrait photo of the subject and used ControlNet to adjust the style (without and finetuning required).
> However you can get great results by resizing the image to high-res (4-8k) using lanczos then using inpainting to manually diffuse the image at a much higher resolution with prompt control.
Diffuse an 8k image? Isn't it going to take much, much more VRAM tho?
For what it's worth if you actually want to get help on the state of the art on this stuff the best place to ask is the 4chan /g/ /sdg/ threads, and you can absolutely diffuse images that large using TiledVAE and Mixture of Diffusers or Multidiffusion, both of which are part of the Tiled Diffusion plugin for auto1111.
Here's an example using various techniques I've gathered from those 4chan threads. (yes I know it's 4chan but just ignore the idiots and ask for catboxes, you'll learn much faster than anywhere else, at least that was the case for me after exhausting the resources on github/reddit/various discords)
I'm not the guy who came up with this style! I just vacuum up catboxes and do a lot of tests/repros. I'm not at my main computer so I can't give you exact gen parameters, but the cliff notes version is:
- DPM++ 2M K or DPM++ SDE K w/ a high eta are the best samplers in general, the former was used here
- search seed space at whatever res is reasonable (512x704) before upscaling
- once you have a good seed hiresfix with ultrasharp or remarci @ 0.5-0.6 denoise (i prefer the former, ymmv)
- do a second diffusion pass in i2i on top of the hires, but with a simpler prompt focusing on high quality e.x. "gorgeous anime wallpaper, beautiful colors, impeccable lineart"
- for the second pass (this will be taking you from ~1k x 1.5k to 2.5k x 4k) you're gonna run out of VRAM if you're trying to diffuse traditionally so use the Tiled Diffusion addon with Tiled VAE enabled as well to conserve vram. DDIM seems to work best here though I've gotten good results with the two samplers above as well.
- using a style finetune helps a lot, Cardos Anime was used here
- when in doubt, search Civit.ai or huggingface, there are tons of great models/LoRAs and textual inversions out there and if you have anything specific in mind having some form of finetune helps a ton
Obviously you're going to need to know how to prompt as well which is definitely not something I can explain in a single post, just like any kind of art you just have to practice a bunch to gain an intuition for it.
P.S. I've recently started a patreon, if any of you'd like to support my work on this stuff. I'm a big believer in sharing all my knowledge, so most of it will come out for free eventually, but I gotta eat. [0]
Yeah :) Thanks for your infodump! I'm mostly curious how you achieve the insane amount of "clutter" in these images - is it done by referencing a specific artist or style in the prompt, or just by some difficult-to-find key phrase? I haven't been able to get anything near.
I think it's the tiled diffusion second/third pass that does it, because you're essentially doing many gens on individual tiles of the image there's a natural visual density that SD tends toward and since this is composed of many gens the density is increased in the overall picture, that being said it's not something I've tested super extensively and mostly only with this sort of style.
Do not start with me with this shit. Of course artists need to eat. I'm on the fucking internet essentially begging because I struggle with capitalism and the idea that almost all forms of employment force me to restrict my intellectual property, or assign it to someone else. Every time I'm forced to do it because the bank account is low I can feel it grinding down my soul. It is antisocial to prevent people from building upon my ideas (or any ideas). We should take every step we can to strengthen the commons. (see "Everything is a Remix"[0])
I dropped out of fucking high school and was homeless couch surfing in LA for years trying to break into steady VFX work, I don't think for a lack of skill/blood/sweat/tears[1]. I'm well aware artists need to eat.
The problem isn't technological progress, (jfc this is all open source!!! stability is doing god's work by undermining the value of ghouls who try to restrict access to these models for personal profit). It's certainly not that copyright is too weak in preventing people form building off the aggregate styles and work of artists. I learned style by fucking copying the masters[2]!! This is how art is supposed to work. The problem it's the disgusting economic/political system that has twisted copyrights and patents into a device to enable rent seeking for those who can afford to purchase/commission them rather than protecting the innovation and creativity that they were meant to.
While I'm strongly on team "train the AI on everything and reduce IP protections to strengthen the commons" as much as such a team exists, I think it's important to point out that this is a argument that misses the forest for the trees.
It's only relevant when taking a very logical/semantic view of the situation, when you take a more holistic view it breaks down. The scale and implications of the two things you're comparing are completely different. While I probably agree with you in general I think these sorts of arguments don't really help people understand our point of view because they sidestep the economic and social implications which are at the heart of this.
I appreciate it, I'm trying to be a great artist here so this isn't really my work, it's 90% stolen from anons on 4chan. ;) I post on twitter[0] a reasonable bit but SD art isn't a big focus for me. I also recently started a patreon which is another post in this thread if you're interested in supporting.
auto1111 saves generation parameters as text into exif/png data chunks, so you can re-create generations done by other people/yourself in the past. 4chan strips metadata from images, hence the need for catbox.
That confused me at first too.You aren’t diffusing the 8k image.
You are upsampling, then inpainting sections that need it. So if you took your 8K and inpainted a section with 1024x1024 that works well with normal ram usages. In Auto1111, you need to select “inpainted masked area” to do that.
Yeah exactly this. It doesn't need more VRAM since you inpaint small sections (~512x515) of the image manually. It takes more time but gives the best results.
The automated equivalent is SD Upscale or TiledVAE
To clarify when things are upscaled like that they typically mean a section of img2img in a grid pattern to make up the full picture so it doesn’t overuse vram.
Good luck! I have some workflow videos on Youtube https://youtube.com/pjgalbraith. But I haven't had a chance to show off all the latest techniques yet.
Well, it's possible to detect patterns and characteristics in the language used in the comments that can provide clues about their origin...
Here's some indicators that a comment may have been generated by an AI system:
* Repeating phrases or sentences
* Using generic language that could apply to any topic
* Lack of coherence or logical flow
* Poor grammar, or syntax errors
* Overuse of technical, or specialized vocabulary
I mean, these indicators aren't foolproof... and humans can also exhibit some of these characteristics. It's tough to be sure whether or not a comment is generated by an AI system or not...
We're on the hunt for a frontend engineer to join our team of product and engineering people spread across Australia (our home base is Melbourne but you can work from anywhere).
What you'll be working on is pretty exciting - we're building with React and TypeScript, including canvas-based interactions and custom domain-specific language editors, we have lots of challenging UI work to do.
We are a well funded, profitable company, with 20 years in ICM, we have a global customer base across Australia, Asia, Europe, and the US in 25+ industries.
Link if interested: https://www.performio.co/careers?gh_jid=4447789006