A new rabbit hole (AI art & music)

Well… I wasn’t going to mention it until the plugin was ready to at least test, but I am using some MJ stuff to create experimental panels for my experimental modules

So far I havent added any controls to this, but I want to also create custom knobs and ports for it, and probably also custom lights.

My problems is that I am too easily distracted from my current project, got a few things brewing :nerd_face:

6 Likes

Since I’ve posted a lot of images to this thread, let me say, feel free to use any of my images that I post publicly for whatever you want, I just ask that you acknowledge the source

source: MidJourney AI

seriously though I believe there’s an open question related to copyright on the images it creates, especially if seeded from online images

There aren’t any open questions in any legal sense, although some may have their own personal questions on the morality of it.

The terms of service for MJ are refreshingly easy to understand https://midjourney.gitbook.io/docs/terms-of-service#4.-copyright-and-trademark

I own the images I create using MJ and MJ the company reserve the right to use them in any way they see fit.

MJ does not have an “init image” option, neither does it have an option to train or augment a model using additional images. When you provide an image to MJ it is just an alternative way to creating a text prompt.

Personally, I don’t have any qualms about using MJ, it is not infringing anyone’s copyrights in my opinion.

I am not asserting the same for any other AI tool.

Hmmm… what’s the process? Instead of an SVG panel you use a generated PNG? How’s that done?

image

The panel is just a regular PNG yes, the main thing is that I have calculated an image size that I think is a decent quality at full zoom, and also ensured that the aspect ratio of the image matches the rack grid.

Basically I drew the entire panel in Photoshop by cutting up and editing images from MidJourney, then saved the image at the predetermined size and with transparency.

Here is the code I am using (no warranty):

static std::shared_ptr<rack::window::Image> loadImage(const std::string filename)
{
  return APP->window->loadImage(rack::asset::plugin(pluginInstance, filename));
}

static NVGpaint getFileTexture(
    NVGcontext *vg,
    std::shared_ptr<rack::window::Image> img,
    const float width = rack::app::RACK_GRID_WIDTH,
    const float height = rack::app::RACK_GRID_HEIGHT,
    rack::math::Vec imgOffset = rack::math::Vec(0.0f, 0.0f),
    const float rotation = 0.0f,
    const float alpha = 1.0f)
{
  return nvgImagePattern(vg, imgOffset.x, imgOffset.y, width, height, rotation, img->handle, alpha);
}

template <typename W>
static void drawPngPanel(NVGcontext *vg, W *widget, std::string image)
{
  nvgSave(vg);

  nvgBeginPath(vg);

  nvgRect(vg, 0.0f, 0.0f, widget->box.size.x, widget->box.size.y);

  nvgFillPaint(vg, getFileTexture(vg, loadImage(image), widget->box.size.x));

  nvgFill(vg);

  nvgRestore(vg);
}
1 Like

Sometime later this week I’ll give a try with one of these ones

1 Like

Those look awesome (I’d be tempted to add CV inputs just to make the eyes move, or even make the eyes follow the cursor automatically!!!)

FYI the PNG in my screenshot above is 1830 x 1900 pixels and the module is 23hp in Rack, and the Rack grid is 15 x 380 pixels

TBH now that I’ve written that out, I’m not sure how I arrived that those sizes… :face_with_spiral_eyes:

Originally I wanted to have 1 knob, 1 switch, and 6 sockets. MJ used my instructions creatively but I think there’s space for all of them. For the eyes I thought to have some solid glowing LEDs only. But nothing crazy or moving. But I know that you are more “progressive” in this field. :smiley:

I’d love to use something like --ar 138:50 (ca. 10HP) but it doesn’t seem to work. Is there any smart way to influence the ratio and/or upscaled size?

But the 2D pixar style looks like fun for a VCV panel, doesn’t it?

Edit: --ar 128:51 (ca. 10 HP)

Yeah, only the early MJ versions support aspect ratios other than 1:1, 2:3 & 3:2

Which is a shame, hopefully more aspect ratios will be added at some point.

I find overall MJ is much better when you just go with it, rather than try to force it into something specific.

For my panels I’ll just edit in Photoshop after to get the exact details and sizes that I need.

I think we are still a fairly long way off from MJ being able to output its creative stuff AND conform to technical specifications, but the field is evolving rapidly, so who knows…

I guess I’m only saying it’s an open question as no-one has as far as I know challenged legally over the resulting images. I imagine chat GPT generated arguments before a robo-beak :slight_smile:

I don’t know how to avoid these dramatic lights, high contrast and shadows in MidJourney… Any idea?

—no shadow

?

that’s 2 hyphens before the no

Wow, another fantastic image

Try the negative prompt using --no as suggested above

if that doesn’t get you where you want to be, you’ll have to get creative with the prompting

I would try a few different things, like perhaps uplight or boxlight, maybe diffuse or low contrast, or possibly simply even lighting

One that often produces nice results for me is gi render

And if that fails and you have access to Photoshop you can use the Shadows/Highlights tool, it wont remove the shadows but it can make shadowed areas have more definition and reduce the glare on highlighted areas (there are probably similar tools in non-commercial apps, perhaps in Gimp?)

I just came up with a new game to play in MJ;

Word association, use a single, long, complex word, that is not especially visually descriptive as the prompt to see what MJ thinks represents that word.

It seems to me that MJ falls onto certain surreal imagery when there is a lack of description in the prompt, here are some examples:

inconsequentiality =

inconsiderableness =

interdepartmental =

onomatopoeic =

hypothesists =

subconsciousness =

Surreptitiously =

Incomprehensibility =

3 Likes

Umm, solarize svg …

Sorry, I’m not following you…

are you suggesting the solarize filter would be good in Photoshop?

or the word solarization for the MJ game?

:sunglasses:

Solarize should reduce colours and make areas suitable for an svg automatic trace of the graphics.

Ah, yes that could be a good approach for PNG to SVG…

Although, personally I have found more success using the Indexed Color... image mode in Photoshop

and then the Image Trace tool in Illustrator

Also, just to mention, I am not trying to convert my experimental panels that are PNGs into SVGs.

SVGs cannot create smooth shadow falloffs that work in VCV, like a transparent PNG can: