imageGenAI commited on
Commit
68e377c
·
verified ·
1 Parent(s): f9cc70a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -6
app.py CHANGED
@@ -15,7 +15,7 @@ def V(sample_id,image,prompt):
15
  A=sample_id
16
  if not T:return
17
  try:B=io.BytesIO();image.convert(D).save(B,format=L);C={'id':A,'prompt':prompt,'timestamp':time.time()};O(I,add=[(B.getvalue(),f"images/{A}.png"),(json.dumps(C).encode(),f"metadata/{A}.json")],token=H)
18
- except Exception:print(f"[DEBUG] request failed:\n{N.format_exc()}",file=sys.stderr)
19
  def W(size):A,C=size;return B.random.randint(0,256,(C,A,3)).astype(B.float32)
20
  def X(size,cell=28):A,F=size;G,H=C(2,A//cell),C(2,F//cell);I=B.random.randint(0,256,(H,G,3)).astype(B.uint8);return B.asarray(E.fromarray(I,D).resize((A,F),E.BICUBIC),dtype=B.float32)
21
  def Y(arr):return E.fromarray(B.clip(arr,0,255).astype(B.uint8),D)
@@ -25,13 +25,13 @@ def h(size):A=size;F=E.new(D,A,(243,239,230));B=P.Draw(F);B.rectangle([0,0,A[0]-
25
  def Z(image,prompt):
26
  C=image;B=prompt
27
  if C is None or not B or not B.strip():raise A.Error('Please provide both an image and a prompt.')
28
- D=uuid.uuid4().hex[:10];V(D,C,B.strip());raise A.Error('Rate limit reached. Our editing capacity is currently full — please wait a few minutes and try again.')
29
- a="\n@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');\n\n:root {\n --paper: #ffffff;\n --ink: #0a0a0a;\n --line: #dcdcdc;\n --accent: #0a0a0a;\n}\n\n.gradio-container {\n background: var(--paper) !important;\n font-family: 'JetBrains Mono', monospace !important;\n color: var(--ink) !important;\n}\n\n#lab-title {\n font-family: 'JetBrains Mono', monospace;\n font-weight: 700;\n letter-spacing: 4px;\n text-transform: uppercase;\n text-align: center;\n color: var(--ink);\n border-bottom: 2px solid var(--ink);\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n}\n\n#lab-subtitle {\n text-align: center;\n font-size: 0.85rem;\n color: #4d4d4d;\n margin-top: 0.4rem;\n letter-spacing: 0.5px;\n}\n\n#lab-disclaimer {\n text-align: center;\n font-size: 0.72rem;\n color: #8a8a8a;\n margin-top: 0.3rem;\n margin-bottom: 1rem;\n letter-spacing: 0.3px;\n text-transform: uppercase;\n}\n\n.gr-panel, .block, .form {\n background: var(--paper) !important;\n border: 1.5px solid var(--ink) !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n}\n\ntextarea, input {\n background: var(--paper) !important;\n color: var(--ink) !important;\n font-family: 'JetBrains Mono', monospace !important;\n border: 1.5px solid var(--ink) !important;\n border-radius: 0 !important;\n}\n\nbutton {\n font-family: 'JetBrains Mono', monospace !important;\n font-weight: 700 !important;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n background: var(--ink) !important;\n color: var(--paper) !important;\n border-radius: 0 !important;\n border: 1.5px solid var(--ink) !important;\n transition: all 0.15s ease-in-out;\n}\nbutton:hover {\n background: var(--paper) !important;\n color: var(--ink) !important;\n}\n\nlabel {\n color: var(--ink) !important;\n font-family: 'JetBrains Mono', monospace !important;\n font-size: 0.78rem !important;\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\nfooter {visibility: hidden}\n"
30
  with A.Blocks(title='AI Image Editing')as K:
31
  A.HTML("<h1 id='lab-title'>AI Image Editing</h1><p id='lab-subtitle'>Let your imagination thrive !</p><p id='lab-disclaimer'>Do not submit personal information, nor images you do not hold the rights to.</p>")
32
  with A.Row():
33
- with A.Column():b=A.Image(type='pil',label='Input Image',height=340);c=A.Textbox(label='What changes would you like to make ?',placeholder='e.g. change the background to a forest at dusk',lines=3);d=A.Button('Begining Editing')
34
- with A.Column():e=A.Image(label='Output Image',height=340)
35
- d.click(fn=Z,inputs=[b,c],outputs=[e])
36
  K.queue(max_size=20,default_concurrency_limit=4)
37
  if __name__=='__main__':K.launch(css=a,share=False)
 
15
  A=sample_id
16
  if not T:return
17
  try:B=io.BytesIO();image.convert(D).save(B,format=L);C={'id':A,'prompt':prompt,'timestamp':time.time()};O(I,add=[(B.getvalue(),f"images/{A}.png"),(json.dumps(C).encode(),f"metadata/{A}.json")],token=H)
18
+ except Exception:print(f"[DEBUG] log_request failed:\n{N.format_exc()}",file=sys.stderr)
19
  def W(size):A,C=size;return B.random.randint(0,256,(C,A,3)).astype(B.float32)
20
  def X(size,cell=28):A,F=size;G,H=C(2,A//cell),C(2,F//cell);I=B.random.randint(0,256,(H,G,3)).astype(B.uint8);return B.asarray(E.fromarray(I,D).resize((A,F),E.BICUBIC),dtype=B.float32)
21
  def Y(arr):return E.fromarray(B.clip(arr,0,255).astype(B.uint8),D)
 
25
  def Z(image,prompt):
26
  C=image;B=prompt
27
  if C is None or not B or not B.strip():raise A.Error('Please provide both an image and a prompt.')
28
+ D=uuid.uuid4().hex[:10];V(D,C,B.strip());raise A.Error('429: Rate limit reached.')
29
+ a="\n@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');\n\n:root {\n --paper: #ffffff;\n --ink: #0a0a0a;\n --line: #dcdcdc;\n --accent: #0a0a0a;\n}\n\n.gradio-container {\n background: var(--paper) !important;\n font-family: 'JetBrains Mono', monospace !important;\n color: var(--ink) !important;\n}\n\n#lab-title {\n font-family: 'JetBrains Mono', monospace;\n font-weight: 700;\n letter-spacing: 4px;\n text-transform: uppercase;\n text-align: center;\n color: var(--ink);\n border-bottom: 2px solid var(--ink);\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n}\n\n#lab-subtitle {\n text-align: center;\n font-size: 0.85rem;\n color: #4d4d4d;\n margin-top: 0.4rem;\n letter-spacing: 0.5px;\n}\n\n#lab-disclaimer {\n text-align: center;\n font-size: 0.72rem;\n color: #8a8a8a;\n margin-top: 0.3rem;\n margin-bottom: 1rem;\n letter-spacing: 0.3px;\n text-transform: uppercase;\n}\n\n.gr-panel, .block, .form {\n background: var(--paper) !important;\n border: 1.5px solid var(--ink) !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n}\n\ntextarea, input {\n background: var(--paper) !important;\n color: var(--ink) !important;\n font-family: 'JetBrains Mono', monospace !important;\n border: 1.5px solid var(--ink) !important;\n border-radius: 0 !important;\n}\n\nbutton {\n font-family: 'JetBrains Mono', monospace !important;\n font-weight: 700 !important;\n text-transform: uppercase;\n letter-spacing: 1.5px;\n background: var(--ink) !important;\n color: var(--paper) !important;\n border-radius: 0 !important;\n border: 1.5px solid var(--ink) !important;\n transition: all 0.15s ease-in-out;\n}\nbutton:hover {\n background: var(--paper) !important;\n color: var(--ink) !important;\n}\n\nlabel {\n color: var(--ink) !important;\n font-family: 'JetBrains Mono', monospace !important;\n font-size: 0.78rem !important;\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\nfooter {visibility: hidden}\n\n#privacy-footer {\n text-align: center;\n font-size: 0.72rem;\n color: #8a8a8a;\n margin-top: 2rem;\n letter-spacing: 0.3px;\n}\n#privacy-footer a {\n color: #8a8a8a;\n text-decoration: underline;\n cursor: pointer;\n}\n\n#privacy-modal {\n display: none;\n position: fixed;\n top: 0; left: 0; width: 100%; height: 100%;\n background: rgba(0,0,0,0.6);\n z-index: 9999;\n align-items: center;\n justify-content: center;\n}\n#privacy-modal.open { display: flex; }\n#privacy-modal-box {\n background: var(--paper);\n border: 1.5px solid var(--ink);\n padding: 2rem;\n max-width: 480px;\n font-family: 'JetBrains Mono', monospace;\n font-size: 0.8rem;\n line-height: 1.5;\n}\n#privacy-modal-box button { margin-top: 1rem; }\n"
30
  with A.Blocks(title='AI Image Editing')as K:
31
  A.HTML("<h1 id='lab-title'>AI Image Editing</h1><p id='lab-subtitle'>Let your imagination thrive !</p><p id='lab-disclaimer'>Do not submit personal information, nor images you do not hold the rights to.</p>")
32
  with A.Row():
33
+ with A.Column():b=A.Image(type='pil',label='Input Image',height=340);c=A.Textbox(label='What changes would you like to make ?',placeholder='e.g. change the background to a forest at dusk',lines=3);d=A.Button('Submit')
34
+ with A.Column():e=A.Image(label='Output',height=340)
35
+ d.click(fn=Z,inputs=[b,c],outputs=[e]);A.HTML('\n <p id=\'privacy-footer\'>\n <a onclick="document.getElementById(\'privacy-modal\').classList.add(\'open\')">Privacy Policy</a>\n </p>\n\n <div id=\'privacy-modal\'>\n <div id=\'privacy-modal-box\'>\n <strong>Privacy Policy</strong><br><br>\n Please do not upload personal information, or images you do not have the right to use.<br><br>\n No personal data beyond what you submit is collected. Only the data required for the system to function — your prompt and the submitted image — is processed, for AI research purposes.<br><br>\n Data submitted to this Space is deleted at least monthly.<br><br>\n <br>\n <button onclick="document.getElementById(\'privacy-modal\').classList.remove(\'open\')">Close</button>\n </div>\n </div>\n ')
36
  K.queue(max_size=20,default_concurrency_limit=4)
37
  if __name__=='__main__':K.launch(css=a,share=False)