fix(server): route OpenAI image edits by reference conditioning support (#2167)

This commit is contained in:
losewayy authored and GitHub committed 2026-10-21 00:06:47 +08:00
1 parent 269045e92c
commit 9b7da27374
6 files changed
+117 -5

No files matched your search

+23
View File
@@ -365,6 +365,29 @@ static inline bool sd_version_is_control(SDVersion version) {
return version == VERSION_FLUX_CONTROLS || version == VERSION_FLEX_2;
}
// These model families consume uploaded reference images as generation
// conditioning. Inpaint and control variants keep their init-image semantics.
static inline bool sd_version_supports_ref_image_conditioning(SDVersion version) {
if (sd_version_is_inpaint(version) || sd_version_is_control(version) || version == VERSION_CHROMA_RADIANCE) {
return false;
}
return sd_version_is_unet_edit(version) ||
sd_version_is_flux(version) ||
sd_version_is_flux3(version) ||
sd_version_is_flux2(version) ||
sd_version_is_qwen_image(version) ||
sd_version_is_longcat(version) ||
sd_version_is_z_image(version) ||
sd_version_is_boogu_image(version) ||
sd_version_is_llada_image(version) ||
sd_version_is_krea2(version) ||
sd_version_is_mage_flow(version) ||
sd_version_is_anima(version) ||
sd_version_is_sefi_image(version) ||
sd_version_is_pid(version);
}
static bool sd_version_is_inpaint_or_unet_edit(SDVersion version) {
return sd_version_is_unet_edit(version) || sd_version_is_inpaint(version) || sd_version_is_control(version);
}
+7
View File
@@ -704,6 +704,13 @@ SD_API bool sd_ctx_supports_video_generation(const sd_ctx_t* sd_ctx) {
return sd_version_supports_video_generation(sd_ctx->sd->version);
}
SD_API bool sd_ctx_supports_ref_image_conditioning(const sd_ctx_t* sd_ctx) {
if (sd_ctx == nullptr || sd_ctx->sd == nullptr) {
return false;
}
return sd_version_supports_ref_image_conditioning(sd_ctx->sd->version);
}
SD_API bool sd_ctx_load_control_net(sd_ctx_t* sd_ctx, const char* path) {
if (sd_ctx == nullptr || sd_ctx->sd == nullptr || path == nullptr) {
return false;