Skip to content
Get started

Update

client.models.presets.update(stringpresetID, PresetUpdateParams { modelId, isDefault, originalAssets, projectId } params, RequestOptionsoptions?): PresetUpdateResponse { preset }
PUT/models/{modelId}/presets/{presetId}

Modify the given presetId

ParametersExpand Collapse
presetID: string
params: PresetUpdateParams { modelId, isDefault, originalAssets, projectId }
modelId: string

Path param: The preset’s modelId

isDefault: boolean

Body param: Whether this preset should be the default preset for the model

originalAssets?: boolean

Query param: If set to true, returns the original asset without transformation

projectId?: string

Query param: The projectId used for ownership resource management. Either to assert ownership or to set the owner of the resource(s)

ReturnsExpand Collapse
PresetUpdateResponse { preset }
preset: Preset { id, authorId, createdAt, 5 more }
id: string

The preset ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

authorId: string

The author user ID (example: “VFhihHKMRZyDDnZAJwLb2Q”)

createdAt: string

The preset creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

isDefault: boolean

Whether the preset is the default preset of the model (example: true)

modelId: string

The model ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

ownerId: string

The owner ID (example: “VFhihHKMRZyDDnZAJwLb2Q”)

parameters: Parameters { prompt, type, aspectRatio, 36 more }

The inference parameters

prompt: string

Full text prompt including the model placeholder. (example: “an illustration of phoenix in a fantasy world, flying over a mountain, 8k, bokeh effect”)

type: "controlnet" | "controlnet_img2img" | "controlnet_inpaint" | 15 more

The type of inference to use. Example: txt2img, img2img, etc.

Selecting the right type will condition the expected parameters.

Note: for inpainting with models that support multiple base models, Scenario determines the best available baseModel for a given modelId.

One of the following:
"controlnet"
"controlnet_img2img"
"controlnet_inpaint"
"controlnet_inpaint_ip_adapter"
"controlnet_ip_adapter"
"controlnet_reference"
"controlnet_texture"
"img2img"
"img2img_ip_adapter"
"img2img_texture"
"inpaint"
"inpaint_ip_adapter"
"outpaint"
"reference"
"reference_texture"
"txt2img"
"txt2img_ip_adapter"
"txt2img_texture"
aspectRatio?: "16:9" | "1:1" | "21:9" | 8 more

The aspect ratio of the generated images. Only used for the model flux.1.1-pro-ultra. The aspect ratio is a string formatted as “width:height” (example: “16:9”).

One of the following:
"16:9"
"1:1"
"21:9"
"2:3"
"3:2"
"3:4"
"4:3"
"4:5"
"5:4"
"9:16"
"9:21"
baseModelId?: string

The base model to use for the inference. Only Flux LoRA models can use this parameter. Allowed values are available in the model’s attribute: compliantModelIds

concepts?: Array<Concept>
modelId: string

The model ID (example: “model_eyVcnFJcR92BxBkz7N6g5w”)

scale: number

The scale of the model (example: 1.0) For Flux Kontext Prompt Editing, the scale is between 0 and 2.

maximum2
minimum-2
modelEpoch?: string

The epoch of the model (example: “000001”) Only available for Flux Lora Trained models

controlEnd?: number

Specifies how long the ControlNet guidance should be applied during the inference process.

Only available for Flux.1-dev based models.

The value represents the percentage of total inference steps where the ControlNet guidance is active. For example:

  • 1.0: ControlNet guidance is applied during all inference steps
  • 0.5: ControlNet guidance is only applied during the first half of inference steps

Default values:

  • 0.5 for Canny modality
  • 0.6 for all other modalities
maximum1
minimum0.1
controlImage?: string

Signed URL to display the controlnet input image

controlImageId?: string

Asset id of the controlnet input image

controlStart?: number

Specifies the starting point of the ControlNet guidance during the inference process.

Only available for Flux.1-dev based models.

The value represents the percentage of total inference steps where the ControlNet guidance starts. For example:

  • 0.0: ControlNet guidance starts at the beginning of the inference steps
  • 0.5: ControlNet guidance starts at the middle of the inference steps
maximum0.9
minimum0
disableMerging?: boolean

If set to true, the entire input image will likely change during inpainting. This results in faster inferences, but the output image will be harder to integrate if the input is just a small part of a larger image.

disableModalityDetection?: boolean

If false, the process uses the given image to detect the modality. If true (default), the process will not try to detect the modality of the given image.

For example: with pose modality and false value, the process will detect the pose of people in the given image with depth modality and false value, the process will detect the depth of the given image with scribble modality and truevalue, the process will use the given image as a scribble

⚠️ For models of the FLUX schnell or dev families, this parameter is ignored. The modality detection is always disabled. ⚠️

guidance?: number

Controls how closely the generated image follows the prompt. Higher values result in stronger adherence to the prompt. Default and allowed values depend on the model type:

  • For Flux dev models, the default is 3.5 and allowed values are within [0, 10]
  • For Flux pro models, the default is 3 and allowed values are within [2, 5]
maximum20
minimum0
height?: number

The height of the generated images, must be a 8 multiple (within [64, 2048], default: 512) If model.type is flux.1.1-pro-ultra, you can use the aspectRatio parameter instead

maximum2048
minimum64
multipleOf8
hideResults?: boolean

If set, generated assets will be hidden and not returned in the list of images of the inference or when listing assets (default: false)

image?: string

Signed URL to display the input image

imageId?: string

Asset id of the input image

intermediateImages?: boolean

Enable or disable the intermediate images generation (default: false)

ipAdapterImage?: string

Signed URL to display the IpAdapter image

ipAdapterImageId?: string

Asset id of the input IpAdapter image

ipAdapterImageIds?: Array<string>

Asset id of the input IpAdapter images

ipAdapterImages?: Array<string>

Signed URL to display the IpAdapter images

ipAdapterScale?: number

IpAdapter scale factor (within [0.0, 1.0], default: 0.9).

maximum1
minimum0
ipAdapterScales?: Array<number>

IpAdapter scale factors (within [0.0, 1.0], default: 0.9).

maximum1
minimum0
ipAdapterType?: "character" | "style"

The type of IP Adapter model to use. Must be one of [style, character], default to `style“

One of the following:
"character"
"style"
mask?: string

Signed URL to display the mask image

maskId?: string

Asset id of the mask image

modality?: string

The modality associated with the control image used for the generation: it can either be an object with a combination of maximum

For models of the FLUX schnell or dev families:

  • one modality from: canny, tile, depth, blur, pose, gray, low-quality

Optionally, you can associate a value to these modalities or presets. The value must be within ]0.0, 1.0].

Examples:

  • canny
  • depth:0.5,pose:1.0
  • canny:0.5,depth:0.5,lines:0.3
  • landscape
  • character:0.5
  • illusion:1

Note: if you use a value that is not supported by the model family, this will result in an error.

modelEpoch?: string

The epoch of the model to use for the inference. Only available for Flux Lora Trained models.

negativePrompt?: string

The prompt not to guide the image generation, ignored when guidance < 1 (example: “((ugly face))”) For Flux based model (not Fast-Flux): requires negativePromptStrength > 0 and active only for inference types txt2img / img2img / controlnet.

negativePromptStrength?: number

Only applicable for flux-dev based models for txt2img, img2img, and controlnet inference types.

Controls the influence of the negative prompt. Default 0 means the negative prompt has no effect. Higher values increase negative prompt influence. Must be > 0 if negativePrompt is provided.

maximum10
minimum0
numInferenceSteps?: number

The number of denoising steps for each image generation (within [1, 150], default: 30)

maximum150
minimum1
numSamples?: number

The number of images to generate (within [1, 128], default: 4)

maximum128
minimum1
referenceAdain?: boolean

Whether to use reference adain Only for “reference” inference type

referenceAttn?: boolean

Whether to use reference query for self attention’s context Only for “reference” inference type

scheduler?: "DDIMScheduler" | "DDPMScheduler" | "DEISMultistepScheduler" | 12 more

The scheduler to use to override the default configured for the model. See detailed documentation for more details.

One of the following:
"DDIMScheduler"
"DDPMScheduler"
"DEISMultistepScheduler"
"DPMSolverMultistepScheduler"
"DPMSolverSinglestepScheduler"
"EulerAncestralDiscreteScheduler"
"EulerDiscreteScheduler"
"HeunDiscreteScheduler"
"KDPM2AncestralDiscreteScheduler"
"KDPM2DiscreteScheduler"
"LCMScheduler"
"LMSDiscreteScheduler"
"PNDMScheduler"
"TCDScheduler"
"UniPCMultistepScheduler"
seed?: string

Used to reproduce previous results. Default: randomly generated number.

maximum2147483647
minimum0
strength?: number

Controls the noise intensity introduced to the input image, where a value of 1.0 completely erases the original image’s details. Available for img2img and inpainting. (within [0.01, 1.0], default: 0.75)

maximum1
minimum0.01
styleFidelity?: number

If style_fidelity=1.0, control more important, else if style_fidelity=0.0, prompt more important, else balanced Only for “reference” inference type

maximum1
minimum0
width?: number

The width of the generated images, must be a 8 multiple (within [64, 2048], default: 512) If model.type is flux.1.1-pro-ultra, you can use the aspectRatio parameter instead

maximum2048
minimum64
multipleOf8
updatedAt: string

The preset last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

Update

import Scenario from '@scenario-labs/sdk';

const client = new Scenario({
  apiKey: process.env['SCENARIO_SDK_API_KEY'], // This is the default and can be omitted
  apiSecret: process.env['SCENARIO_SDK_API_SECRET'], // This is the default and can be omitted
});

const preset = await client.models.presets.update('presetId', {
  modelId: 'modelId',
  isDefault: true,
});

console.log(preset.preset);
{
  "preset": {
    "id": "id",
    "authorId": "authorId",
    "createdAt": "createdAt",
    "isDefault": true,
    "modelId": "modelId",
    "ownerId": "ownerId",
    "parameters": {
      "prompt": "prompt",
      "type": "controlnet",
      "aspectRatio": "16:9",
      "baseModelId": "baseModelId",
      "concepts": [
        {
          "modelId": "modelId",
          "scale": -2,
          "modelEpoch": "modelEpoch"
        }
      ],
      "controlEnd": 0.1,
      "controlImage": "controlImage",
      "controlImageId": "controlImageId",
      "controlStart": 0,
      "disableMerging": true,
      "disableModalityDetection": true,
      "guidance": 0,
      "height": 64,
      "hideResults": true,
      "image": "image",
      "imageId": "imageId",
      "intermediateImages": true,
      "ipAdapterImage": "ipAdapterImage",
      "ipAdapterImageId": "ipAdapterImageId",
      "ipAdapterImageIds": [
        "string"
      ],
      "ipAdapterImages": [
        "string"
      ],
      "ipAdapterScale": 0,
      "ipAdapterScales": [
        0
      ],
      "ipAdapterType": "character",
      "mask": "mask",
      "maskId": "maskId",
      "modality": "modality",
      "modelEpoch": "modelEpoch",
      "negativePrompt": "negativePrompt",
      "negativePromptStrength": 0,
      "numInferenceSteps": 1,
      "numSamples": 1,
      "referenceAdain": true,
      "referenceAttn": true,
      "scheduler": "DDIMScheduler",
      "seed": "seed",
      "strength": 0.01,
      "styleFidelity": 0,
      "width": 64
    },
    "updatedAt": "updatedAt"
  }
}
Returns Examples
{
  "preset": {
    "id": "id",
    "authorId": "authorId",
    "createdAt": "createdAt",
    "isDefault": true,
    "modelId": "modelId",
    "ownerId": "ownerId",
    "parameters": {
      "prompt": "prompt",
      "type": "controlnet",
      "aspectRatio": "16:9",
      "baseModelId": "baseModelId",
      "concepts": [
        {
          "modelId": "modelId",
          "scale": -2,
          "modelEpoch": "modelEpoch"
        }
      ],
      "controlEnd": 0.1,
      "controlImage": "controlImage",
      "controlImageId": "controlImageId",
      "controlStart": 0,
      "disableMerging": true,
      "disableModalityDetection": true,
      "guidance": 0,
      "height": 64,
      "hideResults": true,
      "image": "image",
      "imageId": "imageId",
      "intermediateImages": true,
      "ipAdapterImage": "ipAdapterImage",
      "ipAdapterImageId": "ipAdapterImageId",
      "ipAdapterImageIds": [
        "string"
      ],
      "ipAdapterImages": [
        "string"
      ],
      "ipAdapterScale": 0,
      "ipAdapterScales": [
        0
      ],
      "ipAdapterType": "character",
      "mask": "mask",
      "maskId": "maskId",
      "modality": "modality",
      "modelEpoch": "modelEpoch",
      "negativePrompt": "negativePrompt",
      "negativePromptStrength": 0,
      "numInferenceSteps": 1,
      "numSamples": 1,
      "referenceAdain": true,
      "referenceAttn": true,
      "scheduler": "DDIMScheduler",
      "seed": "seed",
      "strength": 0.01,
      "styleFidelity": 0,
      "width": 64
    },
    "updatedAt": "updatedAt"
  }
}