Skip to main content
Participant
March 19, 2026
Question

Firefly Fill and Expand is awful, how can I default to Firefly 3 until Fill and Expand gets replaced?

  • March 19, 2026
  • 3 replies
  • 50 views

I use Photoshop every single day professionally, and the new “Fill and Expand” model has been a major downgrade in every way I have tried to use it.

For context, 100% of my usage with Gen Fill does not use any text prompting at all, just whatever info is available nearby in the image.

Firefly 3 struggles with some things, but Fill and Expand’s blending, textures, and nearby comprehension are often awful and unusable.

Since the new update, every time I open a new image Gen Fill defaults to that new model, rather than remembering my switch to Firefly 3 as it has in previous updates. Is there a new setting somewhere I can change that? I’ve looked and cant seem to find anything, but it’s very annoying. 

    3 replies

    robertw44482386
    Inspiring
    March 20, 2026

    Not sure if I am having a different experience than others, but I find the choice to be “sticky”...that is when I use Firefly 1 for example, then next time I do a Gen fill it will use 1 by default. I would have to manually change it to get it use another. It seems to remember if I switch.

    CMass
    Community Manager
    Community Manager
    March 19, 2026

    Hey ​@whatlurks

    You can choose one of three Firefly models, or one of our partner models, through the contextual contextual Task bar after selecting an area. 
     


    Let me know if this helps. :) 

    ^CMass

    whatlurksAuthor
    Participant
    March 20, 2026

    Hi! Thanks for responding. I was actually looking to see if there was a way to stop that dropdown menu from reverting to Fill and Expand every single time I open a new image.

    I work on hundreds of images a week, so its just a new extra step I have to remember to do every time I use the tool now. And I often forget to until it it finishes generating and gives me unusable results and realize that’s why.

    I’ve debated just reverting my Photoshop version to a version prior to Fill and Expand releasing until it gets replaced or removed. Because Fill and Expand only generates something usable around 10% of the time in my experience.

    Stephen Marsh
    Community Expert
    Community Expert
    March 19, 2026

    An action or script might be able to reference a specific model.

     

    When I previously scripted this, there was only a single option.

     

    https://community.adobe.com/t5/photoshop-ecosystem-ideas/ai-generating-bleed-area-beyond-trim-line/idi-p/14547217#U15312767

     

    Stephen Marsh
    Community Expert
    Community Expert
    March 22, 2026

    @whatlurks 

     

    The Edit > Generative Fill setting is sticky for me, even after exiting and restarting Photoshop. Are you using the Contextual Taskbar?

     

    This code will default to Firefly Image 3 (requires an active selection):

     

    var c2t = function (s) {
    return app.charIDToTypeID(s);
    };

    var s2t = function (s) {
    return app.stringIDToTypeID(s);
    };

    var descriptor = new ActionDescriptor();
    var descriptor2 = new ActionDescriptor();
    var descriptor3 = new ActionDescriptor();
    var descriptor4 = new ActionDescriptor();
    var reference = new ActionReference();

    reference.putEnumerated( s2t( "document" ), s2t( "ordinal" ), s2t( "targetEnum" ));
    descriptor.putReference( c2t( "null" ), reference );
    descriptor.putInteger( s2t( "documentID" ), 59 );
    descriptor.putInteger( s2t( "layerID" ), 5 );
    descriptor.putString( s2t( "prompt" ), "" );
    descriptor.putString( s2t( "serviceID" ), "clio" );
    descriptor.putEnumerated( s2t( "workflowType" ), s2t( "genWorkflow" ), s2t( "in_painting" ));
    descriptor3.putString( s2t( "gi_PROMPT" ), "" );
    descriptor3.putString( s2t( "gi_MODE" ), "ginp" );
    descriptor3.putInteger( s2t( "gi_SEED" ), -1 );
    descriptor3.putInteger( s2t( "gi_NUM_STEPS" ), -1 );
    descriptor3.putInteger( s2t( "gi_GUIDANCE" ), 6 );
    descriptor3.putInteger( s2t( "gi_SIMILARITY" ), 0 );
    descriptor3.putBoolean( s2t( "gi_CROP" ), false );
    descriptor3.putBoolean( s2t( "gi_DILATE" ), false );
    descriptor3.putInteger( s2t( "gi_CONTENT_PRESERVE" ), 0 );
    descriptor3.putBoolean( s2t( "gi_ENABLE_PROMPT_FILTER" ), true );
    descriptor3.putBoolean( s2t( "dualCrop" ), true );
    descriptor2.putObject( s2t( "clio" ), s2t( "clio" ), descriptor3 );
    descriptor.putObject( s2t( "serviceOptionsList" ), c2t( "null" ), descriptor2 );
    descriptor.putString( s2t( "serviceVersion" ), "clio3" );
    descriptor4.putString( s2t( "in_painting" ), "clio3" );
    descriptor4.putString( s2t( "out_painting" ), "me_md" );
    descriptor4.putString( s2t( "generativeUpscale" ), "clio_f16_async" );
    descriptor4.putString( s2t( "text_to_image" ), "clio3" );
    descriptor4.putString( s2t( "gen_harmonize" ), "clio3" );
    descriptor4.putString( s2t( "generate_background" ), "clio3" );
    descriptor4.putString( s2t( "generate_similar" ), "clio3" );
    descriptor4.putString( s2t( "instruct_edit" ), "clio3" );
    descriptor.putObject( s2t( "workflow_to_active_service_identifier_map" ), c2t( "null" ), descriptor4 );
    executeAction( s2t( "syntheticFill" ), descriptor, DialogModes.ALL );

     

    [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