Skip to main content
rickburress
Inspiring
January 14, 2026
Open for Voting

Please, PLEASE create a larger Generative AI Prompt field!

  • January 14, 2026
  • 3 replies
  • 103 views

Please, PLEASE create a larger Generative AI Prompt field in Photoshop! A scalable option would be sufficient.

3 replies

rickburress
Inspiring
January 15, 2026

Stephen! You are a dear LEGEND! Thank you.

Stephen Marsh
Community Expert
Community Expert
January 15, 2026

Screenshot 2026-01-16 124850.png

Screenshot 2026-01-16 124908.png

 

Until Adobe possibly offer such a thing, a script can be used to create a larger prompt:

 

Screenshot 2026-01-15 125236.png

/*
Large Generative Fill Prompt Window.jsx
Stephen Marsh
v1.0 - 15th January 2025: Initial release
https://community.adobe.com/t5/photoshop-ecosystem-ideas/please-please-create-a-larger-generative-ai-prompt-field/idi-p/15663704
*/

#target photoshop

(function () {

    var win = new Window("dialog", "Large Generative Fill Prompt Window");
    win.orientation = "column";
    win.alignChildren = ["fill", "top"];
    win.preferredSize = [700, 350];

    var panel = win.add("panel", undefined, "Prompt");
    panel.orientation = "column";
    panel.alignChildren = ["fill", "fill"];
    panel.margins = 10;
    panel.alignment = ["fill", "fill"];

    var inputField = panel.add("edittext", undefined, "", {
        multiline: true,
        scrolling: true
    });
    inputField.minimumSize = [0, 200];
    inputField.alignment = ["fill", "fill"];

    var optionsGroup = panel.add("group");
    optionsGroup.orientation = "column";
    optionsGroup.alignChildren = "left";

    var showDialogCheckbox = optionsGroup.add(
        "checkbox",
        undefined,
        "Show Generative Fill dialog"
    );
    showDialogCheckbox.value = true;

    var copyClipboardCheckbox = optionsGroup.add(
        "checkbox",
        undefined,
        "Copy prompt to clipboard"
    );
    copyClipboardCheckbox.value = false;

    var buttonGroup = win.add("group");
    buttonGroup.orientation = "row";
    buttonGroup.alignment = "right";

    var cancelBtn = buttonGroup.add("button", undefined, "Cancel");
    var okBtn = buttonGroup.add("button", undefined, "OK");

    win.onResizing = win.onResize = function () {
        this.layout.resize();
    };

    okBtn.onClick = function () {

        if (!inputField.text) {
            alert("Please enter a prompt.");
            return;
        }

        var prompt = inputField.text;

        if (copyClipboardCheckbox.value) {
            var d = new ActionDescriptor();
            d.putString(stringIDToTypeID("textData"), prompt);
            executeAction(
                stringIDToTypeID("textToClipboard"),
                d,
                DialogModes.NO
            );
        }

        var dialogMode = showDialogCheckbox.value
            ? DialogModes.ALL
            : DialogModes.NO;

        win.close();
        app.refresh();
        $.sleep(100);

        generativeFill(prompt, dialogMode);
    };

    cancelBtn.onClick = function () {
        win.close();
    };

    win.center();
    win.show();

})();

function generativeFill(promptText, dialogMode) {
    var idsyntheticFill = stringIDToTypeID("syntheticFill");
    var desc299 = new ActionDescriptor();
    var ref20 = new ActionReference();
    ref20.putEnumerated(
        stringIDToTypeID("document"),
        stringIDToTypeID("ordinal"),
        stringIDToTypeID("targetEnum")
    );
    desc299.putReference(stringIDToTypeID("null"), ref20);
    desc299.putInteger(stringIDToTypeID("documentID"), 64);
    desc299.putInteger(stringIDToTypeID("layerID"), 43);
    desc299.putString(stringIDToTypeID("prompt"), promptText);
    desc299.putString(stringIDToTypeID("serviceID"), "clio");
    desc299.putEnumerated(
        stringIDToTypeID("workflowType"),
        stringIDToTypeID("genWorkflow"),
        stringIDToTypeID("in_painting")
    );
    var desc300 = new ActionDescriptor();
    var desc301 = new ActionDescriptor();
    desc301.putString(stringIDToTypeID("gi_PROMPT"), promptText);
    desc301.putString(stringIDToTypeID("gi_MODE"), "ginp");
    desc301.putInteger(stringIDToTypeID("gi_SEED"), -1);
    desc301.putInteger(stringIDToTypeID("gi_NUM_STEPS"), -1);
    desc301.putInteger(stringIDToTypeID("gi_GUIDANCE"), 6);
    desc301.putInteger(stringIDToTypeID("gi_SIMILARITY"), 0);
    desc301.putBoolean(stringIDToTypeID("gi_CROP"), false);
    desc301.putBoolean(stringIDToTypeID("gi_DILATE"), false);
    desc301.putInteger(stringIDToTypeID("gi_CONTENT_PRESERVE"), 0);
    desc301.putBoolean(stringIDToTypeID("gi_ENABLE_PROMPT_FILTER"), true);
    desc301.putBoolean(stringIDToTypeID("dualCrop"), true);
    desc301.putString(
        stringIDToTypeID("gi_ADVANCED"),
        '{"enable_mts":true}'
    );
    desc300.putObject(
        stringIDToTypeID("clio"),
        stringIDToTypeID("clio"),
        desc301
    );
    desc299.putObject(
        stringIDToTypeID("serviceOptionsList"),
        stringIDToTypeID("null"),
        desc300
    );
    try {
        executeAction(idsyntheticFill, desc299, dialogMode);
    } catch (e) {}
}

 

  1. Copy the code text to the clipboard
  2. Open a new blank file in a plain-text editor (not in a word processor)
  3. Paste the code in
  4. Save as a plain text format file – .txt
  5. Rename the saved file extension from .txt to .jsx
  6. Install or browse to the .jsx file to run (see below):

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

 

MassC
Legend
January 14, 2026

Hey @rickburress

 

Thank you for sharing your idea! Can you share a few specifics? Such as how much larger, and would this be docked or the free-floating Contextual Task Bar? Specific will help us create an actionable request for the team. 


^CM