ChatGPT-ad-Maker / chatgpt-ad-maker.py
akhaliq's picture
akhaliq HF staff
Upload chatgpt-ad-maker.py
8535875 verified
raw
history blame
1.62 kB
import gradio as gr
import numpy as np
from PIL import Image
def dot_effect(input_image):
"""
Convert input image to dotted effect similar to the example
Args:
input_image (ndarray): Input image
Returns:
ndarray: Image with dotted effect
"""
# Convert input to grayscale
gray_image = np.mean(input_image, axis=2)
# Normalize pixel values
normalized = (gray_image - gray_image.min()) / (gray_image.max() - gray_image.min())
# Create dot mask
dot_size = 5 # Adjust dot size as needed
height, width = gray_image.shape
dot_mask = np.zeros((height, width, 3), dtype=np.uint8)
for y in range(0, height, dot_size):
for x in range(0, width, dot_size):
if normalized[y, x] > 0.3: # Threshold for dot appearance
radius = int(dot_size * normalized[y, x])
center_x, center_y = x + dot_size//2, y + dot_size//2
for dy in range(-radius, radius):
for dx in range(-radius, radius):
if dx*dx + dy*dy <= radius*radius:
px, py = center_x + dx, center_y + dy
if 0 <= px < width and 0 <= py < height:
dot_mask[py, px] = [255, 255, 255]
return dot_mask
# Create Gradio interface
iface = gr.Interface(
fn=dot_effect,
inputs=gr.Image(type="numpy"),
outputs=gr.Image(type="numpy"),
title="ChatGPT Ad Maker",
description="Transform images into dotted effect"
)
# Launch the app
iface.launch()