fotmat code

This commit is contained in:
leejet 2026-07-02 01:01:40 +08:00
parent e58790e1f4
commit c9fe14ecf0
7 changed files with 49 additions and 49 deletions

View File

@ -291,10 +291,10 @@ void register_openai_api_endpoints(httplib::Server& svr, ServerRuntime& rt) {
continue; continue;
} }
std::string params = request.gen_params.embed_image_metadata std::string params = request.gen_params.embed_image_metadata
? get_image_params(*runtime->ctx_params, ? get_image_params(*runtime->ctx_params,
request.gen_params, request.gen_params,
request.gen_params.seed + i / images_per_batch) request.gen_params.seed + i / images_per_batch)
: ""; : "";
auto image_bytes = encode_image_to_vector(request.output_format == "jpeg" auto image_bytes = encode_image_to_vector(request.output_format == "jpeg"
? EncodedImageFormat::JPEG ? EncodedImageFormat::JPEG
: request.output_format == "webp" : request.output_format == "webp"
@ -365,10 +365,10 @@ void register_openai_api_endpoints(httplib::Server& svr, ServerRuntime& rt) {
continue; continue;
} }
std::string params = request.gen_params.embed_image_metadata std::string params = request.gen_params.embed_image_metadata
? get_image_params(*runtime->ctx_params, ? get_image_params(*runtime->ctx_params,
request.gen_params, request.gen_params,
request.gen_params.seed + i / images_per_batch) request.gen_params.seed + i / images_per_batch)
: ""; : "";
auto image_bytes = encode_image_to_vector(request.output_format == "jpeg" ? EncodedImageFormat::JPEG : EncodedImageFormat::PNG, auto image_bytes = encode_image_to_vector(request.output_format == "jpeg" ? EncodedImageFormat::JPEG : EncodedImageFormat::PNG,
results[i].data, results[i].data,
results[i].width, results[i].width,

View File

@ -353,13 +353,13 @@ namespace Rope {
__STATIC_INLINE__ std::vector<std::vector<float>> gen_refs_ids(int patch_size, __STATIC_INLINE__ std::vector<std::vector<float>> gen_refs_ids(int patch_size,
int bs, int bs,
int axes_dim_num, int axes_dim_num,
int start_index, int start_index,
const std::vector<ggml_tensor*>& ref_latents, const std::vector<ggml_tensor*>& ref_latents,
RefIndexMode ref_index_mode, RefIndexMode ref_index_mode,
float ref_index_scale, float ref_index_scale,
bool scale_rope, bool scale_rope,
int base_offset = 0) { int base_offset = 0) {
std::vector<std::vector<float>> ids; std::vector<std::vector<float>> ids;
int curr_h_offset = 0; int curr_h_offset = 0;
int curr_w_offset = 0; int curr_w_offset = 0;
@ -404,12 +404,12 @@ namespace Rope {
int patch_size, int patch_size,
int bs, int bs,
int axes_dim_num, int axes_dim_num,
int context_len, int context_len,
std::set<int> txt_arange_dims, std::set<int> txt_arange_dims,
const std::vector<ggml_tensor*>& ref_latents, const std::vector<ggml_tensor*>& ref_latents,
RefIndexMode ref_index_mode, RefIndexMode ref_index_mode,
float ref_index_scale, float ref_index_scale,
bool is_longcat) { bool is_longcat) {
int x_index = is_longcat ? 1 : 0; int x_index = is_longcat ? 1 : 0;
auto txt_ids = is_longcat ? gen_longcat_txt_ids(bs, context_len, axes_dim_num) : gen_flux_txt_ids(bs, context_len, axes_dim_num, txt_arange_dims); auto txt_ids = is_longcat ? gen_longcat_txt_ids(bs, context_len, axes_dim_num) : gen_flux_txt_ids(bs, context_len, axes_dim_num, txt_arange_dims);
@ -429,12 +429,12 @@ namespace Rope {
int w, int w,
int patch_size, int patch_size,
int bs, int bs,
int context_len, int context_len,
std::set<int> txt_arange_dims, std::set<int> txt_arange_dims,
const std::vector<ggml_tensor*>& ref_latents, const std::vector<ggml_tensor*>& ref_latents,
RefIndexMode ref_index_mode, RefIndexMode ref_index_mode,
float ref_index_scale, float ref_index_scale,
int theta, int theta,
bool circular_h, bool circular_h,
bool circular_w, bool circular_w,
const std::vector<int>& axes_dim, const std::vector<int>& axes_dim,
@ -557,7 +557,7 @@ namespace Rope {
if (ref_latents.size() > 0) { if (ref_latents.size() > 0) {
int ref_start_index = ref_index_mode == RefIndexMode::DECREASE ? 0 : 1; int ref_start_index = ref_index_mode == RefIndexMode::DECREASE ? 0 : 1;
auto refs_ids = gen_refs_ids(patch_size, bs, axes_dim_num, ref_start_index, ref_latents, ref_index_mode, 1.f, true); auto refs_ids = gen_refs_ids(patch_size, bs, axes_dim_num, ref_start_index, ref_latents, ref_index_mode, 1.f, true);
ids = concat_ids(ids, refs_ids, bs); ids = concat_ids(ids, refs_ids, bs);
} }
return ids; return ids;
} }

View File

@ -609,12 +609,12 @@ namespace Anima {
patch_size, patch_size,
bs, bs,
static_cast<int>(axes_dim.size()), static_cast<int>(axes_dim.size()),
0, 0,
{}, {},
empty_ref_latents, empty_ref_latents,
Rope::RefIndexMode::FIXED, Rope::RefIndexMode::FIXED,
1.0f, 1.0f,
false); false);
std::vector<float> axis_thetas = { std::vector<float> axis_thetas = {
static_cast<float>(theta) * calc_ntk_factor(t_extrapolation_ratio, axes_dim[0]), static_cast<float>(theta) * calc_ntk_factor(t_extrapolation_ratio, axes_dim[0]),

View File

@ -1629,13 +1629,13 @@ namespace Flux {
*diffusion_params.timesteps, *diffusion_params.timesteps,
tensor_or_empty(diffusion_params.context), tensor_or_empty(diffusion_params.context),
tensor_or_empty(diffusion_params.c_concat), tensor_or_empty(diffusion_params.c_concat),
tensor_or_empty(diffusion_params.y), tensor_or_empty(diffusion_params.y),
tensor_or_empty(extra->guidance), tensor_or_empty(extra->guidance),
diffusion_params.ref_latents ? *diffusion_params.ref_latents : empty_ref_latents, diffusion_params.ref_latents ? *diffusion_params.ref_latents : empty_ref_latents,
diffusion_params.ref_index_mode, diffusion_params.ref_index_mode,
extra->skip_layers ? *extra->skip_layers : empty_skip_layers, extra->skip_layers ? *extra->skip_layers : empty_skip_layers,
tensor_or_empty(extra->pulid_id), tensor_or_empty(extra->pulid_id),
extra->pulid_id_weight); extra->pulid_id_weight);
} }
void test() { void test() {

View File

@ -498,10 +498,10 @@ namespace Qwen {
// pe: [L, d_head/2, 2, 2] // pe: [L, d_head/2, 2, 2]
// return: [N, C, H, W] or [N*C, T, H, W] // return: [N, C, H, W] or [N*C, T, H, W]
int64_t W = x->ne[0]; int64_t W = x->ne[0];
int64_t H = x->ne[1]; int64_t H = x->ne[1];
int64_t T = 1; int64_t T = 1;
int64_t N = addition_t_cond != nullptr ? addition_t_cond->ne[0] : x->ne[3]; int64_t N = addition_t_cond != nullptr ? addition_t_cond->ne[0] : x->ne[3];
bool has_time_axis = false; bool has_time_axis = false;
if (x->ne[3] != 1) { if (x->ne[3] != 1) {
T = x->ne[2]; T = x->ne[2];

View File

@ -1234,7 +1234,7 @@ namespace WAN {
auto in = ggml_ext_slice(ctx->ggml_ctx, x, 2, i, i + 1); // [b*c, 1, h, w] auto in = ggml_ext_slice(ctx->ggml_ctx, x, 2, i, i + 1); // [b*c, 1, h, w]
_conv_idx = 0; _conv_idx = 0;
auto out = decoder->forward(ctx, in, b, _feat_map, _conv_idx, i); auto out = decoder->forward(ctx, in, b, _feat_map, _conv_idx, i);
out = unpatchify(ctx->ggml_ctx, out, patch_size, b); out = unpatchify(ctx->ggml_ctx, out, patch_size, b);
// sd::ggml_graph_cut::mark_graph_cut(out, "wan_vae.decode_partial.final", "out"); // sd::ggml_graph_cut::mark_graph_cut(out, "wan_vae.decode_partial.final", "out");
return out; return out;
} }

View File

@ -756,13 +756,13 @@ public:
} }
} else if (sd_version_is_qwen_image(version)) { } else if (sd_version_is_qwen_image(version)) {
bool enable_vision = version != VERSION_QWEN_IMAGE_LAYERED; bool enable_vision = version != VERSION_QWEN_IMAGE_LAYERED;
cond_stage_model = std::make_shared<LLMEmbedder>(backend_for(SDBackendModule::TE), cond_stage_model = std::make_shared<LLMEmbedder>(backend_for(SDBackendModule::TE),
tensor_storage_map, tensor_storage_map,
version, version,
"", "",
enable_vision, enable_vision,
model_manager); model_manager);
diffusion_model = std::make_shared<Qwen::QwenImageRunner>(backend_for(SDBackendModule::DIFFUSION), diffusion_model = std::make_shared<Qwen::QwenImageRunner>(backend_for(SDBackendModule::DIFFUSION),
tensor_storage_map, tensor_storage_map,
"model.diffusion_model", "model.diffusion_model",
version, version,
@ -4118,7 +4118,7 @@ static std::optional<ImageGenerationLatents> prepare_image_generation_latents(sd
if (ref_images.empty() && sd_version_is_unet_edit(sd_ctx->sd->version)) { if (ref_images.empty() && sd_version_is_unet_edit(sd_ctx->sd->version)) {
LOG_WARN("This model needs at least one reference image; using an empty reference"); LOG_WARN("This model needs at least one reference image; using an empty reference");
ref_images.push_back(sd::zeros<float>({request->width, request->height, image_channels, 1})); ref_images.push_back(sd::zeros<float>({request->width, request->height, image_channels, 1}));
request->guidance.img_cfg = request->guidance.txt_cfg; request->guidance.img_cfg = request->guidance.txt_cfg;
request->use_img_uncond = false; request->use_img_uncond = false;
} }