gpt4free icon indicating copy to clipboard operation
gpt4free copied to clipboard

Generate bing image from python script

Open LukeMech opened this issue 1 year ago • 2 comments

Is there a way to generate image using bing from python script? Because when response includes data:image/png;base64 it can't be decoded to working png picture :I

LukeMech avatar Jan 19 '24 18:01 LukeMech

You can patch the provider for image generation:

import g4f
from g4f.Provider.bing.create_images import patch_provider

for response in g4f.ChatCompletion.create(
    model=g4f.models.default,
    provider=g4f.Provider.Bing,
    messages=[{"role": "user", "content": "Hello"}],
    stream=True,
    patch_provider=patch_provider
):
    print(response, end="", flush=True)

Also you have to pass cookies with a user session.

hlohaus avatar Jan 20 '24 23:01 hlohaus

yeeea, almost works but

Read cookies from firefox for .bing.com
Open browser with config dir: /home/luke/.config/g4f
Exception ignored in: <async_generator object stream_generate at 0x7f048f86bec0>
Traceback (most recent call last):
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/Provider/create_images.py", line 103, in create_completion
    yield from self.create_images(prompt)
RuntimeError: async generator ignored GeneratorExit
Traceback (most recent call last):
  File "/home/luke/Pobrane/test.py", line 12, in <module>
    response=g4f.ChatCompletion.create(
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/__init__.py", line 134, in create
    return result if stream else ''.join(result)
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/Provider/create_images.py", line 103, in create_completion
    yield from self.create_images(prompt)
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/Provider/bing/create_images.py", line 219, in create_completion
    cls._cookies = cookies = get_cookies_from_browser(proxy)
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/Provider/bing/create_images.py", line 190, in get_cookies_from_browser
    with get_browser(proxy=proxy) as driver:
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/g4f/webdriver.py", line 46, in get_browser
    return Chrome(
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/undetected_chromedriver/__init__.py", line 372, in __init__
    options.binary_location = (
  File "/home/luke/.conda/envs/py310/lib/python3.10/site-packages/selenium/webdriver/chromium/options.py", line 52, in binary_location
    raise TypeError(self.BINARY_LOCATION_ERROR)
TypeError: Binary Location Must be a String

For python code

import g4f, sys, json
from g4f.Provider.bing.create_images import patch_provider

with open('cookies.json', 'r') as file:
    data = json.load(file)

cookies={}
for cookie in data:
    cookies[cookie["name"]] = cookie["value"]

g4f.debug.logging=True
response=g4f.ChatCompletion.create(
    model=g4f.models.default,
    provider=g4f.Provider.Bing,
    messages=[{"role": "user", "content": "GENERATE IMAGE: Capybara", "cookies": data}],
    cookies=cookies,
    patch_provider=patch_provider
)

print(response)

with cookies.json in the same directory for .bing.com valid

LukeMech avatar Jan 21 '24 11:01 LukeMech

Bumping this issue because it has been open for 7 days with no activity. Closing automatically in 7 days unless it becomes active again.

github-actions[bot] avatar Jan 29 '24 00:01 github-actions[bot]

Closing due to inactivity.

github-actions[bot] avatar Feb 05 '24 00:02 github-actions[bot]