Closed w-e-w closed 3 months ago
i do try lot of method to implement sendTo, but fail. I'll try.
如果你以後要做類似send to 之類的 "變更 / 刷新" 任何 gradio網頁元素 記本上大致上有兩種方式
我在PR中使用的是 2.
.click()
前透過其他方式獲取 你想要改變的元素的所有物件 才能 寫入 fn, inputs, outputs
若需要獲取prompt box 可以透過 scripts.Script
的 after_component
或 on_after_component
在 透過比對elem_id
在prompt box
創建後保存下來使用到後使用到.click()
elem_id
所以JavaScript 可以輕易地鎖定該網頁元素 之後就可進行操作, 但要注意的是 操作完畢後 要updateInput(textArea)
不然之後Gradio不會認識到元素有被改動真的。 這兩行我找超久都沒有發現。 再次感謝您專業的修改與架構的說明
關於這個(_js="function(prompt){sendPromptAutoPromptLLM),請問是不是沒有正規的說明,只能抓原始碼慢慢挖掘。
llm_sendto_txt2img.click(fn=None, _js="function(prompt){sendPromptAutoPromptLLM('txt2img', prompt)}", inputs=[llm_llm_answer])
llm_sendto_img2img.click(fn=None, _js="function(prompt){sendPromptAutoPromptLLM('img2img', prompt)}", inputs=[llm_llm_answer])
這兩行我找超久都沒有發現。
吐槽 我基本上都已經分成容易看懂的 commit fix send to buttons 找不到我也沒辦法