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
  • 5 replies
  • 256 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. 

    5 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.

    MassC
    Legend
    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