Update app.py
Browse files
app.py
CHANGED
@@ -79,7 +79,38 @@ footer {display: none !important;}
|
|
79 |
js = '''
|
80 |
<script src="https://huggingface.co/spaces/nsfwalex/sd_card/resolve/main/prompt.js"></script>
|
81 |
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
window.g=function(){
|
|
|
|
|
|
|
|
|
83 |
const conditions = {
|
84 |
"tag": ["normal", "sexy", "porn"],
|
85 |
"exclude_category": ["Clothing"],
|
@@ -89,20 +120,7 @@ window.g=function(){
|
|
89 |
console.log(prompt);
|
90 |
return prompt
|
91 |
}
|
92 |
-
|
93 |
-
// Get the current page's hostname (domain)
|
94 |
-
const currentDomain = window.location.hostname;
|
95 |
-
|
96 |
-
// Convert both the domain and the input string to lowercase for case-insensitive comparison
|
97 |
-
const lowerDomain = currentDomain.toLowerCase();
|
98 |
-
const lowerStr = str.toLowerCase();
|
99 |
-
|
100 |
-
// Check if the domain contains the string
|
101 |
-
if lowerDomain.includes(lowerStr){
|
102 |
-
return null;
|
103 |
-
}
|
104 |
-
return img;
|
105 |
-
}
|
106 |
window.postMessageToParent = function(prompt, event, source, value) {
|
107 |
// Construct the message object with the provided parameters
|
108 |
console.log("post start",event, source, value);
|
@@ -138,6 +156,10 @@ function uploadImage(prompt, images, event, source, value) {
|
|
138 |
console.log("Not in an iframe, can't post to parent");
|
139 |
}
|
140 |
}
|
|
|
|
|
|
|
|
|
141 |
</script>
|
142 |
'''
|
143 |
def save_image(img):
|
@@ -220,20 +242,19 @@ with gr.Blocks(css=css,head=js,fill_height=True) as demo:
|
|
220 |
random_button = gr.Button("Surprise Me", scale=1, min_width=10)
|
221 |
run_button = gr.Button( "GO!", scale=1, min_width=20, variant="primary",icon="https://huggingface.co/spaces/nsfwalex/sd_card/resolve/main/hot.svg")
|
222 |
|
223 |
-
def on_demo_load(request: gr.Request):
|
224 |
params = dict(request.query_params)
|
225 |
-
print("load_demo, url params", params, "
|
226 |
if params.get("e", "0") == "1":
|
227 |
#update the image
|
228 |
#bind events
|
229 |
-
random_button.click(fn=lambda x:x, inputs=[prompt], outputs=[prompt], js='''()=>window.g()''')
|
230 |
return Image.open(default_image)
|
231 |
return None
|
232 |
|
233 |
|
234 |
result.change(fn=lambda x:x, inputs=[prompt,result], outputs=[], js=f'''(p,img)=>window.uploadImage(p, img,"process_finished","demo_hf_{cfg.get("name")}_card", "finish")''')
|
235 |
run_button.click(generate, inputs=[prompt], outputs=[result], js=f'''(p)=>window.postMessageToParent(p,"process_started","demo_hf_{cfg.get("name")}_card", "click_go")''')
|
236 |
-
|
237 |
-
demo.load(fn=on_demo_load, inputs=[], outputs=[result]
|
238 |
if __name__ == "__main__":
|
239 |
demo.queue().launch(show_api=False)
|
|
|
79 |
js = '''
|
80 |
<script src="https://huggingface.co/spaces/nsfwalex/sd_card/resolve/main/prompt.js"></script>
|
81 |
<script>
|
82 |
+
function getEnvInfo() {
|
83 |
+
const result = {};
|
84 |
+
|
85 |
+
// Get URL parameters
|
86 |
+
const urlParams = new URLSearchParams(window.location.search);
|
87 |
+
for (const [key, value] of urlParams) {
|
88 |
+
result[key] = value;
|
89 |
+
}
|
90 |
+
|
91 |
+
// Get current domain and convert to lowercase
|
92 |
+
result["__domain"] = window.location.hostname.toLowerCase();
|
93 |
+
|
94 |
+
// Get iframe parent domain, if any, and convert to lowercase
|
95 |
+
try {
|
96 |
+
if (window.self !== window.top) {
|
97 |
+
result["__iframe_domain"] = document.referrer
|
98 |
+
? new URL(document.referrer).hostname.toLowerCase()
|
99 |
+
: "unable to get iframe parent domain";
|
100 |
+
}else{
|
101 |
+
result["__iframe_domain"] = null;
|
102 |
+
}
|
103 |
+
} catch (e) {
|
104 |
+
result["__iframe_domain"] = "unable to access iframe parent domain";
|
105 |
+
}
|
106 |
+
|
107 |
+
return result;
|
108 |
+
}
|
109 |
window.g=function(){
|
110 |
+
params = getUrlParamsAndDomain()
|
111 |
+
if (params["e"] != "1"){
|
112 |
+
return "";
|
113 |
+
}
|
114 |
const conditions = {
|
115 |
"tag": ["normal", "sexy", "porn"],
|
116 |
"exclude_category": ["Clothing"],
|
|
|
120 |
console.log(prompt);
|
121 |
return prompt
|
122 |
}
|
123 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
window.postMessageToParent = function(prompt, event, source, value) {
|
125 |
// Construct the message object with the provided parameters
|
126 |
console.log("post start",event, source, value);
|
|
|
156 |
console.log("Not in an iframe, can't post to parent");
|
157 |
}
|
158 |
}
|
159 |
+
function onDemoLoad(){
|
160 |
+
let envInfo = getEnvInfo()
|
161 |
+
return envInfo["__domain"], envInfo["__iframe_domain"]
|
162 |
+
}
|
163 |
</script>
|
164 |
'''
|
165 |
def save_image(img):
|
|
|
242 |
random_button = gr.Button("Surprise Me", scale=1, min_width=10)
|
243 |
run_button = gr.Button( "GO!", scale=1, min_width=20, variant="primary",icon="https://huggingface.co/spaces/nsfwalex/sd_card/resolve/main/hot.svg")
|
244 |
|
245 |
+
def on_demo_load(request: gr.Request, domain, iframe_domain):
|
246 |
params = dict(request.query_params)
|
247 |
+
print("load_demo, url params", params, "domain", domain, "iframe", iframe_domain)
|
248 |
if params.get("e", "0") == "1":
|
249 |
#update the image
|
250 |
#bind events
|
|
|
251 |
return Image.open(default_image)
|
252 |
return None
|
253 |
|
254 |
|
255 |
result.change(fn=lambda x:x, inputs=[prompt,result], outputs=[], js=f'''(p,img)=>window.uploadImage(p, img,"process_finished","demo_hf_{cfg.get("name")}_card", "finish")''')
|
256 |
run_button.click(generate, inputs=[prompt], outputs=[result], js=f'''(p)=>window.postMessageToParent(p,"process_started","demo_hf_{cfg.get("name")}_card", "click_go")''')
|
257 |
+
random_button.click(fn=lambda x:x, inputs=[prompt], outputs=[prompt], js='''()=>window.g()''')
|
258 |
+
demo.load(fn=on_demo_load, inputs=[], outputs=[result], js='''()=>onDemoLoad()''')
|
259 |
if __name__ == "__main__":
|
260 |
demo.queue().launch(show_api=False)
|