Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Crop Scale Desaturate script - ChatGPT seems to make a mess
#1
Question 
Hi,

To not unnecessarily bother the people on this forum, I tried to have ChatGPT put a script togther for me. But ChatGPT cannot manage, however hard I try to prompt it clearly.

Here's the question:

Write me a complete python script for the Gimp that does the following for me. I will start by manually activating the crop tool and marking an area for cropping. after I mark the area I want to start the script and then it does the following for me:
- Run a crop on the crop selection I already made;
- Adjust the longest side of the image to 2000 pixels, (and the other side to ratio)
- Reduce the saturation to 0


The best it came up with after about 10 attempts, was this:
Code:
def crop_scale_desaturate(image, drawable):
    # Crop the image to the current selection
    pdb.gimp_edit_clear(drawable)
    pdb.gimp_selection_none(image)
    pdb.gimp_selection_invert(image)
    pdb.gimp_edit_cut(drawable)
    pdb.gimp_selection_none(image)

    # Scale the image to a maximum size of 2000 pixels on the longest side
    max_size = 2000
    width, height = drawable.width, drawable.height
    if width > height:
        scale_width = max_size
        scale_height = (height * max_size) // width
    else:
        scale_width = (width * max_size) // height
        scale_height = max_size
    pdb.gimp_image_scale(image, scale_width, scale_height)

    # Desaturate the image
    pdb.gimp_desaturate_full(cropped_image, DESATURATE_LIGHTNESS)

    # Show the results
    gimp.displays_flush()

This is sort of the best of the 10 worlds. Is it close? It is not working, that is for sure. The closest that I got to result, was the whole image resized and a black rectangle in the middle...

I have no idea why it needs to clear / select none / invert / cut / select none. I would just want to "hit enter", since I already made the selection ready for cropping. But I guess that does not exsist.
When I ask it why we need all those, GPT says that it is not needed, but then it puts it right back in every time. I guess this is called hallucinating.

I also tried with rectangular selection (instead of using the croptool), and crop from there, But I can't get that to work either.


Code:
    # get current selection
    selection = pdb.gimp_selection_save(image)

    # Crop image
    pdb.gimp_edit_copy(drawable)
    cropped_image = pdb.gimp_edit_paste_as_new()
    pdb.gimp_floating_sel_to_layer(cropped_image)
    pdb.gimp_selection_none(image)

    # Crop prev selected area
    pdb.gimp_image_select_item(image, CHANNEL_OP_REPLACE, selection)
    pdb.gimp_edit_clear(cropped_image)
    pdb.gimp_selection_none(image)

How would you go about this?

Resizing, desaturation and registration are working.

Thanks, Thomas.
Reply


Messages In This Thread
Crop Scale Desaturate script - ChatGPT seems to make a mess - by tkemmere - 04-26-2023, 09:24 PM

Forum Jump: