可能是因为在imgOriginalWidth.oninput和imgOriginalHeight.oninput事件中,updateInputValues函数会重新设置输入框的值,导致原先手动输入的值被覆盖了。可以在updateInputValues函数中添加一个判断,如果输入框中已经有值了,就不要覆盖它,只更新宽高比即可。例如:

function updateInputValues(width, height) { var txt2img_width_input = gradioApp().querySelector("#txt2img_width input"); if (!txt2img_width_input.value) { txt2img_width_input.value = width; txt2img_width_input.dispatchEvent(new Event("input", { bubbles: true })); }

var txt2img_height_input = gradioApp().querySelector("#txt2img_height input"); if (!txt2img_height_input.value) { txt2img_height_input.value = height; txt2img_height_input.dispatchEvent(new Event("input", { bubbles: true })); }

var img2img_width_input = gradioApp().querySelector("#img2img_width input"); if (!img2img_width_input.value) { img2img_width_input.value = width; img2img_width_input.dispatchEvent(new Event("input", { bubbles: true })); }

var img2img_height_input = gradioApp().querySelector("#img2img_height input"); if (!img2img_height_input.value) { img2img_height_input.value = height; img2img_height_input.dispatchEvent(new Event("input", { bubbles: true })); } }

这样就可以保留用户手动输入的值了

我在这里这个代码有 bug当我运行后载入了图片手动去修改imgOriginalWidth 和 imgOriginalHeight 里面的数值只要一回车或者点在别处宽高数值就会还原到默认的这个图片的宽高我需要保留在mgOriginalWidth 和 imgOriginalHeight 里面的是我刚才修改后的数值: const imgOriginalWidth = documentget

原文地址: https://www.cveoy.top/t/topic/fRgp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录