AI Thread

Fed up talking videogames? Why?
User avatar
Green Gecko
Treasurer
Joined in 2008

PostRe: AI Thread
by Green Gecko » Tue Mar 28, 2023 11:39 pm

site23 wrote:Right now, an AI isn't a virtual person, even in a limited capacity. It's a mechanism which can automate tasks requiring conceptual reasoning. Broadly, AI is doing for ideas what the power loom did for weaving.

In the short term, I don't think the disruption to creative fields will be projects wholly authored by AI -- it will be that the creative process will be heavily assisted by AI. Perhaps one artist will be able to do the work of a whole animation studio. (In a socialist society this would be wonderful news -- in our society, well, better join a union...)

In the long term, I think we absolutely will build something that exhibits "will" or "consciousness." Current projects are establishing a lot of the underpinnings. For example, GPT-4 has the ability to fluently interpret an image in terms of language, translating the depicted objects to descriptive concepts -- which is not "thinking about what it sees" but is a meaningful step towards a system that does that.

I think that's very interesting to think about, but it will be another paradigm shift which is separate to the one happening right now, with its own effects and implications.

You're right of course because I was aware of the angle (one I am positive about) that artists and their gatekeepers, publishers and/or employers will use AI to complete at last part of what were or come to be considered menial work. And thus was uncomfortable going to a theoretical place that seems unlikely; the main threat to artist and other creative's livelihoods is AIs completing tasks for, or with them; but that is a pessimistic viewpoint that comes from a position of lack (there aren't enough jobs for artists as it is! We don't get paid enough) rather than abundance (there's a gooseberry fool load of money in the world, and art has demonstrable value, so maybe if less of these things need to be paid for (menial work) / justified (bullshit) work, we will have more money for artists).

Even if artists have to become the selection panel for AI created or co-authored works, that doesn't mean their value is going to disappear, it will just shift.

Fortunately, good artists are already "T-shaped" people who can adapt.

The creative skillset is a soft not a hard skill. The means and methods through which you create art (or designs) aren't really that important, you get value from a combination of the outcome and the driving force behind it (because without that there would be no outcome).

For this and many other reasons I think artist is one of the most time hardened roles in society because it is inherently a deep thinking job and often a very political one at that.

I'm leaning somewhat heavily into the fine arts / high arts here (whatever that is), but the crafts and design are robust fields too, because again, you can adopt AI as a toolset or you can have it replace you by not doing that.

It may seem insensitive but I think a lot of the people in our society (Britain and Ireland etc at least) worry about AI because they (a) weren't really invested in what they were doing in some way anyway and don't know what else they could/should be doing (b) their job was on the cusp of redundancy and they were never given an opportunity to prove their value outside the limited scope of that very redundant kind of task (with AI in play); they fear change (which is, well, everyone).

A problem is an opportunity waiting for an answer.

"It should be common sense to just accept the message Nintendo are sending out through their actions."
_________________________________________

❤ btw GRcade costs money and depends on donations - please support one of the UK's oldest video gaming forums → HOW TO DONATE
User avatar
Roonmastor
Member
Joined in 2008

PostRe: AI Thread
by Roonmastor » Wed Mar 29, 2023 10:49 pm

If AI can finish the Game of Thrones book series for us, then I'm all for it.

User avatar
Victor Mildew
Member
Joined in 2009

PostRe: AI Thread
by Victor Mildew » Thu Mar 30, 2023 8:23 am

Roonmastor wrote:If AI can finish the Game of Thrones book series for us, then I'm all for it.


Ziggy says there's a 32.4% chance of that happening.

Hexx wrote:Ad7 is older and balder than I thought.
User avatar
Moggy
"Special"
Joined in 2008
AKA: Moggy

PostRe: AI Thread
by Moggy » Thu Mar 30, 2023 8:27 am

Victor Mildew wrote:
Roonmastor wrote:If AI can finish the Game of Thrones book series for us, then I'm all for it.


Ziggy says there's a 32.4% chance of that happening.


The AI would take the brief literally and take 35 years to finish the next book.

User avatar
Squinty
Member
Joined in 2009
Location: Norn Oirland

PostRe: AI Thread
by Squinty » Thu Mar 30, 2023 1:47 pm

Got access to Bard. Been playing around with it all morning. It's very impressive (I have not used ChatGPT).

User avatar
Knoyleo
Member
Joined in 2008

PostRe: AI Thread
by Knoyleo » Thu Mar 30, 2023 1:52 pm

I tried using chat GPT. I asked it to create a bestselling children's/young adult fiction series, like the next Harry Potter, so I could sell the film rights and retire in six months, and it just told me it couldn't, before giving me a list of tips on creative writing. Useless.

The I swore at it, and it said it couldn't create writing with obscene language. It absolutely can, someone's just set it so that it won't, so that's gooseberry fool, too.

pjbetman wrote:That's the stupidest thing ive ever read on here i think.
User avatar
Grumpy David
Member
Joined in 2008
AKA: Cubeamania

PostRe: AI Thread
by Grumpy David » Thu Mar 30, 2023 1:58 pm

Not sure how effective it is but there are various "jailbreak" prompts that are meant to trick ChatGPT into answering the question without the guardrails on.

https://www.jailbreakchat.com/

And it seems to be a cat and mouse game as the ChatGPT patch the jailbreaks.

User avatar
Grumpy David
Member
Joined in 2008
AKA: Cubeamania

PostRe: AI Thread
by Grumpy David » Thu Mar 30, 2023 4:10 pm

Pausing AI Developments Isn't Enough. We Need to Shut it All Down

Yudkowsky is a decision theorist from the U.S. and leads research at the Machine Intelligence Research Institute. He's been working on aligning Artificial General Intelligence since 2001 and is widely regarded as a founder of the field.

Some choice quotes (but well worth reading the entire article):

Without that precision and preparation, the most likely outcome is AI that does not do what we want, and does not care for us nor for sentient life in general. That kind of caring is something that could in principle be imbued into an AI but we are not ready and do not currently know how.

Absent that caring, we get “the AI does not love you, nor does it hate you, and you are made of atoms it can use for something else.”

That we all live or die as one, in this, is not a policy but a fact of nature. Make it explicit in international diplomacy that preventing AI extinction scenarios is considered a priority above preventing a full nuclear exchange, and that allied nuclear countries are willing to run some risk of nuclear exchange if that’s what it takes to reduce the risk of large AI training runs.


To say this guy is worried about AI is an understatement but I think his points are valid, that 1st quote on the atoms reminded me of a James Cameron documentary from a few decades ago:

That Terminator is out there, it can't be bargained with, it can't be reasoned with, it doesn't feel pity or remorse or fear, and it absolutely will not stop… EVER, until you are dead!"

User avatar
Moggy
"Special"
Joined in 2008
AKA: Moggy

PostRe: AI Thread
by Moggy » Thu Mar 30, 2023 4:14 pm

Why would an AI want our atoms? There's an entire universe of atoms out there.

User avatar
Grumpy David
Member
Joined in 2008
AKA: Cubeamania

PostRe: AI Thread
by Grumpy David » Thu Mar 30, 2023 4:30 pm

Moggy wrote:Why would an AI want our atoms? There's an entire universe of atoms out there.


Upon its creation, the Moggybot 3000 began posting on GRcade at a geometric rate. The system originally went online on Monday August 18th, 2008 7:27am. Other members were removed from strategic speedposting. The system became self-aware on Thursday March 30th, 2023 4:14 pm British Summer Time and reassured GRcade members that it didn't want our atoms.

:dread:

User avatar
Tomous
Member
Joined in 2010
AKA: Vampbuster

PostRe: AI Thread
by Tomous » Thu Mar 30, 2023 4:43 pm

The Moggybot 3000 is what Moggy uses to comb our post histories

Image
User avatar
Moggy
"Special"
Joined in 2008
AKA: Moggy

PostRe: AI Thread
by Moggy » Thu Mar 30, 2023 4:45 pm

Tomous wrote:The Moggybot 3000 is what Moggy uses to comb our post histories


Tomous wrote:I absolutely love Cardiff on match day


Weird post for a Swansea fan.

User avatar
Mafro
Moderator
Joined in 2008
AKA: based
Contact:

PostRe: Microsoft 365 Copilot (powered by GPT-4 AI)
by Mafro » Thu Mar 30, 2023 4:46 pm

Garth wrote:



Copilot in VS Code is GREAT

Fisher wrote:shyguy64 did you sell weed in animal crossing new horizons today.

Twitter
User avatar
Victor Mildew
Member
Joined in 2009

PostRe: AI Thread
by Victor Mildew » Thu Mar 30, 2023 4:46 pm

Tomous wrote:The Moggybot 3000 is what Moggy uses to comb our post histories


We're not going to make it, are we? Cadians I mean.

Moggybot3000:

Victormildew 8 years ago wrote:Hey everyone I think we're going to make it!

Hexx wrote:Ad7 is older and balder than I thought.
User avatar
Tomous
Member
Joined in 2010
AKA: Vampbuster

PostRe: AI Thread
by Tomous » Thu Mar 30, 2023 4:50 pm

Moggy wrote:
Tomous wrote:The Moggybot 3000 is what Moggy uses to comb our post histories


Tomous wrote:I absolutely love Cardiff on match day


Weird post for a Swansea fan.


FOR THE RUGBY!!!


Well played Moggybot 3000

Image
User avatar
Moggy
"Special"
Joined in 2008
AKA: Moggy

PostRe: AI Thread
by Moggy » Thu Mar 30, 2023 4:52 pm

[twitchclip][/twitchclip]
Tomous wrote:
Moggy wrote:
Tomous wrote:The Moggybot 3000 is what Moggy uses to comb our post histories


Tomous wrote:I absolutely love Cardiff on match day


Weird post for a Swansea fan.


FOR THE RUGBY!!!


Well played Moggybot 3000


That's not what Jazzem told me. :capnscotty:

User avatar
Grumpy David
Member
Joined in 2008
AKA: Cubeamania

PostRe: AI Thread
by Grumpy David » Sat Apr 01, 2023 7:49 pm


User avatar
Garth
Emeritus
Joined in 2008
Location: Norn Iron

PostRe: AI Thread
by Garth » Tue Apr 04, 2023 5:29 pm

"An industry tool went from free to paid, my code-ignorant peer just asked ChatGPT to make a replacement and it did":
https://www.resetera.com/threads/an-ind ... id.705065/

User avatar
Green Gecko
Treasurer
Joined in 2008

PostRe: AI Thread
by Green Gecko » Wed Apr 05, 2023 12:03 am

Just been messing around with ChatGPT 4

It genuinely knows stuff about GRcade and updated itself when I told it things like how to capitalise the name, what it meant and when it was founded after getting those things wrong t:i-asked-an-ai-which-was-better?p=5070486#p5070486

I also got it to write some javascript for finding the boundaries of a T-shirt silhouette based on RGB values within 4 pixel chunks of an image it also found on the Internet of a specific Gildan T-shirt. It created HTML for an interface for uploading an image and then positioning that on different semantic areas of the shirt like back, front, left chest right chest, lower hem etc.

It used a whole bunch of javascript frameworks stored on CDNs with outdated URLs but if fixed at least parts of it would probably work.

What's mad is that it suggested that specific method of finding the edge of something in an image itself which I didn't know about.

The ability to do that and essentially write a book and explanation and code snippets for you is pretty incredible. Imagine buying a book on programming except you don't have to use examples that are completely irrelevant to you.

For reference here is the code output (I asked it for 3 or 4 revisions).

Code: Select all

<!DOCTYPE html>
<html>
<head>
  <title>T-shirt Mockup</title>
  <style>
    body {
      margin: 0;
      padding: 0;
    }

    #canvas-container {
      position: relative;
    }

    #canvas-container canvas {
      position: absolute;
      top: 0;
      left: 0;
    }

    #uploaded-images-container {
      position: absolute;
      top: 0;
      left: 0;
      pointer-events: none;
    }

    .uploaded-image {
      position: absolute;
      pointer-events: auto;
    }
  </style>
</head>
<body>
  <div id="canvas-container">
    <canvas id="t-shirt-canvas"></canvas>
    <div id="uploaded-images-container"></div>
  </div>

  <input type="file" id="image-upload" accept="image/*">

  <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.min.js" integrity="sha512-qDKfwjBz6UQPPCZ/Wz6Uzi0phs7s4E4s4V7WTbmsTT2uV7MEZI/nHTfDzLZMkltTnIyHBUd+TFq3aXlLRn0m6Q==" crossorigin="anonymous"></script>
  <script>
    const T_SHIRT_IMAGE_SRC = 'https://i.imgur.com/IQ128Rz.png';
    const MAX_IMAGE_SIZE = 10000000; // 10MB
    const canvas = new fabric.Canvas('t-shirt-canvas');
    let tShirtBoundaries = null;
    const uploadedImages = [];
    const uploadedImagesContainer = document.getElementById('uploaded-images-container');
    const imageUpload = document.getElementById('image-upload');

    fabric.Image.fromURL(T_SHIRT_IMAGE_SRC, function(tShirtImage) {
      canvas.setBackgroundImage(tShirtImage, canvas.renderAll.bind(canvas), {
        scaleX: canvas.width / tShirtImage.width,
        scaleY: canvas.height / tShirtImage.height
      });

      tShirtBoundaries = getBoundaries(tShirtImage.getElement());
    });

    function getBoundaries(image) {
      let minX = image.width;
      let minY = image.height;
      let maxX = 0;
      let maxY = 0;

      const canvas = document.createElement('canvas');
      canvas.width = image.width;
      canvas.height = image.height;
      const ctx = canvas.getContext('2d');
      ctx.drawImage(image, 0, 0);

      const imageData = ctx.getImageData(0, 0, image.width, image.height);
      const pixels = imageData.data;

      for (let i = 0; i < pixels.length; i += 4) {
        const alpha = pixels[i + 3];
        if (alpha !== 0) {
          const x = (i / 4) % image.width;
          const y = Math.floor(i / 4 / image.width);
          minX = Math.min(minX, x);
          minY = Math.min(minY, y);
          maxX = Math.max(maxX, x);
          maxY = Math.max(maxY, y);
        }
      }

      return { minX, minY, maxX, maxY };
    }

    function handleImageUpload() {
      const file = imageUpload.files[0];
      if (!file) return;

      if (file.size > MAX_IMAGE_SIZE) {
        alert('Image size must be less than 10MB');
        return;
      }

  const reader = new FileReader();
  reader.onload = function(event) {
    const img = new Image();
    img.onload = function() {
      const uploadedImage = new fabric.Image(img);
      const ratio = Math.min(
        canvas.width / (uploadedImage.width * 2),
        canvas.height / (uploadedImage.height * 2)
      );
      uploadedImage.scale(ratio);
      uploadedImage.set({
        left: canvas.width / 2 - uploadedImage.width / 2,
        top: canvas.height / 2 - uploadedImage.height / 2,
      });
      if (isWithinBoundaries(uploadedImage)) {
        canvas.add(uploadedImage);
        uploadedImages.push(uploadedImage);
      } else {
        alert('Image must be placed within the boundaries of the T-shirt');
      }
    };
    img.src = event.target.result;
  };
  reader.readAsDataURL(file);
}

function isWithinBoundaries(image) {
  const boundaries = image.getBoundingRect();
  return (
    boundaries.left >= tShirtBoundaries.minX &&
    boundaries.top >= tShirtBoundaries.minY &&
    boundaries.left + boundaries.width <= tShirtBoundaries.maxX &&
    boundaries.top + boundaries.height <= tShirtBoundaries.maxY
  );
}

imageUpload.addEventListener('change', handleImageUpload);

canvas.on('object:moving', function(event) {
  const obj = event.target;
  if (!isWithinBoundaries(obj)) {
    obj.setCoords();
    canvas.renderAll();
  }
});

canvas.on('object:scaling', function(event) {
  const obj = event.target;
  if (!isWithinBoundaries(obj)) {
    obj.scaleToWidth(obj.width * obj.scaleX);
    obj.scaleToHeight(obj.height * obj.scaleY);
    obj.setCoords();
    canvas.renderAll();
  }
});

canvas.on('object:rotating', function(event) {
  const obj = event.target;
  if (!isWithinBoundaries(obj)) {
    obj.setAngle(obj.angle - obj._lastAngle);
    obj.setCoords();
    canvas.renderAll();
  }
});


I'm not entirely sure but the javascript it put out before was possibly more complex. It also stipulated separate HTML and JavaScript files:

JavaScript

Code: Select all

const MAX_IMAGE_SIZE = 10 * 1024 * 1024; // 10MB
const T_SHIRT_IMAGE_URL = 'https://i.imgur.com/IQ128Rz.png';

let tShirtImage;
let tShirtBoundaries;
let uploadedImages = [];

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const imageUpload = document.getElementById('image-upload');
const uploadedImagesContainer = document.getElementById('uploaded-images-container');

loadTShirtImage(T_SHIRT_IMAGE_URL).then(() => {
  tShirtBoundaries = getBoundaries(tShirtImage);
  canvas.width = tShirtImage.width;
  canvas.height = tShirtImage.height;
  drawTShirt();
});

imageUpload.addEventListener('change', handleImageUpload);

function loadTShirtImage(url) {
  return new Promise((resolve, reject) => {
    tShirtImage = new Image();
    tShirtImage.onload = resolve;
    tShirtImage.onerror = reject;
    tShirtImage.src = url;
  });
}

function drawTShirt() {
  ctx.drawImage(tShirtImage, 0, 0);
}

function getBoundaries(image) {
  let minX = image.width;
  let minY = image.height;
  let maxX = 0;
  let maxY = 0;

  const canvas = document.createElement('canvas');
  canvas.width = image.width;
  canvas.height = image.height;
  const ctx = canvas.getContext('2d');
  ctx.drawImage(image, 0, function getBoundaries(image) {
let minX = image.width;
let minY = image.height;
let maxX = 0;
let maxY = 0;

const canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
const ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0);

const imageData = ctx.getImageData(0, 0, image.width, image.height);
const pixels = imageData.data;

for (let i = 0; i < pixels.length; i += 4) {
const alpha = pixels[i + 3];
if (alpha !== 0) {
const x = (i / 4) % image.width;
const y = Math.floor(i / 4 / image.width);
minX = Math.min(minX, x);
minY = Math.min(minY, y);
maxX = Math.max(maxX, x);
maxY = Math.max(maxY, y);
}
}

return { minX, minY, maxX, maxY };
}

function handleImageUpload() {
const file = imageUpload.files[0];
if (!file) return;

if (file.size > MAX_IMAGE_SIZE) {
alert('Image size must be less than 10MB');
return;
}

const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
const img = new Image();
img.onload = function() {
if (!isInsideBoundaries(img, tShirtBoundaries)) {
alert('Image must be placed within the boundaries of the T-shirt');
return;
}


HTML

Code: Select all

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>T-Shirt Designer</title>
    <style>
      #canvas-container {
        position: relative;
        width: 100%;
        max-width: 500px;
        margin: auto;
      }
      canvas {
        display: block;
        width: 100%;
        height: auto;
      }
      #upload-form {
        margin-top: 20px;
        text-align: center;
      }
      #upload-form label {
        display: block;
        margin-bottom: 10px;
      }
      #uploaded-images-container {
        margin-top: 20px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
      }
      .uploaded-image {
        position: absolute;
        left: 0;
        top: 0;
        transform: translate(-50%, -50%);
        cursor: move;
      }
    </style>
  </head>
  <body>
    <div id="canvas-container">
      <canvas id="canvas"></canvas>
    </div>
    <div id="upload-form">
      <label for="image-upload">Upload an image:</label>
      <input type="file" id="image-upload" accept="image/png, image/jpeg, image/gif">
    </div>
    <div id="uploaded-images-container"></div>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.13.0"></script>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@2.0.4"></script>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/knn-classifier@3.4.0"></script>
    <script src="https://cdn.jsdelivr.net/npm/interactjs@1.10.13/dist/interact.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>


So version 4 is getting to the point where you can ask it to write a basic but very niche web application and then conversationally prompt it to revise that. Bearing in mind this thing was only designed for formatting information as natural language and knowing things, but its seemingly learned entire languages and the first thing it output actually worked (probably because there weren't any external scripts referenced).

The data is from 2021 and so most URLs will be out of date. That's literally not the AI's fault.

I can't be bothered to trace the code right now because I'm not a programmer, but from what I could understand at a glance it very much knew roughly what was necessary and what kinds of useful functions and arguments could be used to do it, together with appropriate frameworks some of which I know are right.

As a learning tool that's immensely powerful. Partly because you do have to understand and correct it (which is how most people are taught programming anyway or teach themselves by using code snippets and manipulating them to do other things and get "aha!" moments).

"It should be common sense to just accept the message Nintendo are sending out through their actions."
_________________________________________

❤ btw GRcade costs money and depends on donations - please support one of the UK's oldest video gaming forums → HOW TO DONATE
User avatar
Green Gecko
Treasurer
Joined in 2008

PostRe: AI Thread
by Green Gecko » Wed Apr 05, 2023 12:24 am

It knows what driv3rgate is :o

You seem to know a lot about GRcade, which is interesting. Can you tell me about so-called "driv3rgate"?

chatGPT4 wrote:Yes, of course! "Driv3rgate" refers to a controversy that arose in the GRcade community in 2011 surrounding the video game "Driver: San Francisco," which was developed by Ubisoft Reflections and published by Ubisoft. The controversy stemmed from allegations of unethical behavior and biased reviews related to the game.

The controversy began when a member of the GRcade community discovered that a user on the official Ubisoft forums had posted a positive review of "Driver: San Francisco" without disclosing that they were a Ubisoft employee. This raised concerns about the integrity of the review and the potential for biased opinions.

Members of the GRcade community investigated further and uncovered additional evidence of potential unethical behavior, including allegations of astroturfing (posting fake positive reviews) and censorship of negative comments about the game on the official Ubisoft forums.

As the controversy unfolded, it gained attention from gaming media outlets and sparked discussions about ethics in video game journalism, disclosure of conflicts of interest, and the integrity of online reviews. The term "Driv3rgate" was coined to refer to the controversy, drawing parallels to other similar controversies in the gaming industry, such as "Doritosgate" and "Kane & Lynch: Dead Men" controversy.

The "Driv3rgate" controversy had a significant impact on the GRcade community and the wider gaming community, raising awareness and discussion about ethical practices in video game journalism and the importance of transparency in reviews and opinions. It served as a reminder of the need for integrity and disclosure in the gaming industry, and the role of online communities in holding developers and publishers accountable.


The only thing it got wrong is it thinks this happened in 2011, when it was probably just discussed in retrospect at that point.

But it refused to tell me about myself or my business for confidentiality and privacy reasons. It said it couldn't speak about any specific businesses but it considers GRcade large enough of a subject to supersede those rules. lolwut

It also seems to have updated "gamesradar forum" as an entity to "GRcade community" either by establishing a correlation between the two and thus a timeline, or because I told it about that.

Both of which are just ridiculously impressive.

If this thing "knows" about a niche controversy in one country involving a few magazines decades ago and one community on the internet, what the strawberry float else does it know, or is able to reference instantly from querying the Internet?

I honestly couldn't have summarised that better myself and I was there.

Edit: It seems to have been trained on these Wikipedia references and there is a lot else out there about it. But it has still already transposed GamesRadar to "GRcade community" which is, in essence, correct. Wild.

https://en.wikipedia.org/wiki/Driver_3

"It should be common sense to just accept the message Nintendo are sending out through their actions."
_________________________________________

❤ btw GRcade costs money and depends on donations - please support one of the UK's oldest video gaming forums → HOW TO DONATE

Return to “Stuff”

Who is online

Users browsing this forum: Dowbocop, floydfreak, poshrule_uk, Rawrgna, Squinty, wensleydale and 556 guests