Team Ai
Datasetpublic

codeShare/lora-training-data

sourceHugging Faceupdated 1mo agoView on Hugging Face
2likes785downloads
add_text_to_image1 linesDownload Raw Back to root
1{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"id":"Fbza2TA8LI7t","cellView":"form"},"outputs":[],"source":["# ============================================================\n","# GOOGLE COLAB - FUTURISTIC TEXT DATASET GENERATOR (UPDATED)\n","# ============================================================\n","\n","# @title Parameters\n","zip_filepath = \"/content/drive/MyDrive/to_add_print.zip\"  # @param {type:\"string\"}\n","save_to_drive = True  # @param {type:\"boolean\"}\n","clear_previous_run_output = True  # @param {type:\"boolean\"}\n","create_missing_text_files = True  # @param {type:\"boolean\"}\n","output_zip_base_name = \"prints\"  # @param {type:\"string\"}\n","output_repeats_per_image = 3  # @param {type:\"slider\", min:1, max:10, step:1}\n","\n","import os\n","import zipfile\n","import random\n","import shutil\n","import requests\n","import colorsys\n","\n","from PIL import (\n","    Image,\n","    ImageDraw,\n","    ImageFont,\n","    ImageFilter\n",")\n","\n","from google.colab import drive\n","\n","drive.mount('/content/drive', force_remount=True)\n","\n","# ============================================================\n","# SETUP\n","# ============================================================\n","\n","os.makedirs(\"/content/fonts\", exist_ok=True)\n","os.makedirs(\"/content/extracted\", exist_ok=True)\n","\n","# Clear previous output if requested\n","if clear_previous_run_output and os.path.exists(\"/content/output\"):\n","    shutil.rmtree(\"/content/output\")\n","os.makedirs(\"/content/output\", exist_ok=True)\n","\n","# ============================================================\n","# FONT DOWNLOADS (UPDATED & EXPANDED)\n","# ============================================================\n","\n","font_urls = [\n","    # Futuristic\n","    \"https://github.com/google/fonts/raw/main/ofl/orbitron/Orbitron-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/quantico/Quantico-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/exo2/Exo2-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/rajdhani/Rajdhani-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/teko/Teko-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/audiowide/Audiowide-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/russoone/RussoOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/syncopate/Syncopate-Bold.ttf\",\n","\n","    # Heavy\n","    \"https://github.com/google/fonts/raw/main/ofl/anton/Anton-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/bangers/Bangers-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/ultra/Ultra-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/blackopsone/BlackOpsOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/alfaslabone/AlfaSlabOne-Regular.ttf\",\n","\n","    # Tech\n","    \"https://github.com/google/fonts/raw/main/ofl/chakrapetch/ChakraPetch-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/oxanium/Oxanium-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/jura/Jura-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/spacegrotesk/SpaceGrotesk-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/spacemono/SpaceMono-Bold.ttf\",\n","\n","    # Additional Futuristic\n","    \"https://github.com/google/fonts/raw/main/ofl/barlowcondensed/BarlowCondensed-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/barlow/Barlow-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/manrope/Manrope-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/prompt/Prompt-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/kanit/Kanit-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/rubikmonoone/RubikMonoOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/titilliumweb/TitilliumWeb-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/michroma/Michroma-Regular.ttf\",\n","\n","    # Cyberpunk\n","    \"https://github.com/google/fonts/raw/main/ofl/wallpoet/Wallpoet-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/kdamthmorpro/KdamThmorPro-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/iceberg/Iceberg-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/brunoace/BrunoAce-Regular.ttf\",\n","\n","    # Display\n","    \"https://github.com/google/fonts/raw/main/ofl/paytoneone/PaytoneOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/fjallaone/FjallaOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/sairaextra/SairaExtraCondensed-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/squadaone/SquadaOne-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/archivo/Archivo-Bold.ttf\",\n","\n","    # Industrial\n","    \"https://github.com/google/fonts/raw/main/ofl/bebasneue/BebasNeue-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/archivoblack/ArchivoBlack-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/oswald/Oswald-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/notosans/NotoSans-Bold.ttf\",\n","\n","    # Experimental\n","    \"https://github.com/google/fonts/raw/main/ofl/monoton/Monoton-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/pressstart2p/PressStart2P-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/majormonodisplay/MajorMonoDisplay-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/silkscreen/Silkscreen-Bold.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/vt323/VT323-Regular.ttf\",\n","    # 30 additional fonts\n","    \"https://github.com/google/fonts/raw/main/ofl/fira%20code/FiraCode-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/ibm%20plex%20mono/IBMPlexMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/source%20code%20pro/SourceCodePro-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/roboto%20mono/RobotoMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/inconsolata/Inconsolata-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/hack/Hack-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/cascadia%20code/CascadiaCode-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/terminus/Terminus-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/jet%20brains%20mono/JetBrainsMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/ubuntu%20mono/UbuntuMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/share%20tech%20mono/ShareTechMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/nova%20mono/NovaMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/anonymous%20pro/AnonymousPro-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/lekton/Lekton-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/pt%20mono/PTMono-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/cousine/Cousine-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/gloria%20hallelujah/GloriaHallelujah-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/permanent%20marker/PermanentMarker-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/caveat/Caveat-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/indie%20flower/IndieFlower-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/shadows%20into%20light/ShadowsIntoLight-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/gochi%20hand/GochiHand-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/kranky/Kranky-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/rock%20salt/RockSalt-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/bangers/Bangers-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/creepy/Creepy-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/nosifier/Nosifier-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/metal%20mania/MetalMania-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/flavors/Flavors-Regular.ttf\",\n","    \"https://github.com/google/fonts/raw/main/ofl/butcherman/Butcherman-Regular.ttf\"\n","]\n","\n","font_paths = []\n","font_names = []\n","\n","print(\"Downloading fonts...\")\n","\n","for url in font_urls:\n","    try:\n","        response = requests.get(url)\n","        if response.status_code == 200:\n","            filename = url.split(\"/\")[-1]\n","            save_path = f\"/content/fonts/{filename}\"\n","            with open(save_path, \"wb\") as f:\n","                f.write(response.content)\n","\n","            font_paths.append(save_path)\n","            clean_name = (\n","                filename\n","                .replace(\".ttf\", \"\")\n","                .replace(\"-\", \" \")\n","                .replace(\"_\", \" \")\n","            )\n","            font_names.append(clean_name)\n","            print(f\"Downloaded {filename}\")\n","    except:\n","        pass\n","\n","print(f\"\\nLoaded {len(font_paths)} fonts.\")\n","\n","# ============================================================\n","# EXTRACT DATASET\n","# ============================================================\n","\n","with zipfile.ZipFile(zip_filepath, 'r') as zip_ref:\n","    zip_ref.extractall(\"/content/extracted\")\n","\n","# ============================================================\n","# FIND IMAGE/TEXT PAIRS\n","# ============================================================\n","\n","image_extensions = ('.jpg', '.jpeg', '.png', '.webp')\n","\n","pairs = []\n","\n","for root, _, files in os.walk(\"/content/extracted\"):\n","    for file in files:\n","        if '._' in file:\n","            continue\n","        if file.lower().endswith(image_extensions):\n","            base = os.path.splitext(file)[0]\n","            img_path = os.path.join(root, file)\n","            txt_path = os.path.join(root, base + \".txt\")\n","            pairs.append((img_path, txt_path))\n","\n","print(f\"Found {len(pairs)} image/text pairs.\")\n","\n","# ============================================================\n","# WORDS\n","# ============================================================\n","\n","sci_fi_words = [\n","    \"STARSHIP ENTERPRISE\", \"DEATH STAR\", \"MILLENNIUM FALCON\", \"NCC-1701\",\n","    \"HYPER-DRIVE\", \"WARP-SPEED\", \"SPACE-STATION\", \"PLANET X-7\",\n","    \"ANDROID 42\", \"CYBER-PUNK\", \"LASER-GUN\", \"GRAVITY-WELL\",\n","    \"TIME TRAVEL\", \"QUANTUM LEAP\", \"DARK MATTER\", \"ANTI-GRAV\",\n","    \"ROBOTICS LAB\", \"ALIEN INVASION\", \"NEO-TOKYO\", \"PROJECT 13\",\n","    \"GENETIC MODS\", \"BIO-WEAPON\", \"SYNTHETIC LIFE\", \"GALACTIC EMPIRE\",\n","    \"PHASER RIFLE\", \"FORCE-FIELD\", \"TELE-PORT\", \"SUB-SPACE\",\n","    \"COSMIC DUST\", \"ASTEROID BELT\", \"ORION ARM\", \"PROBE DROID\",\n","    \"ZERO GRAVITY\", \"LIGHT-SPEED\", \"INTER-STELLAR\", \"NEBULA CLASS\",\n","    \"WORM-HOLE\", \"DIMENSION JUMP\", \"CHRONO-SHIFT\", \"ALPHA CENTAURI\",\n","    \"TITAN-MOON\", \"MARS COLONY\", \"CYBER-SPACE\", \"NEURO-LINK\",\n","    \"EXTRATERRESTRIAL\", \"ALIEN-TECH\", \"ENERGY SHIELD\", \"ION CANNON\",\n","    \"PLASMA CORE\", \"GRAVITON BEAM\", \"SENTIENT AI\", \"VIRTUAL REALITY\",\n","    \"DATA STREAM\", \"MEMORY CHIP\", \"HOLOGRAM 3D\", \"QUANTUM COMPUTER\",\n","    \"BIO-ENGINEERED\", \"CLONE TROOPER\", \"MUTANT GENE\", \"FORCE GHOST\",\n","    \"HYPERSPACE LANE\", \"CRYO-SLEEP\", \"TIME DILATION\", \"PARALLEL UNIVERSE\",\n","    \"XENOMORPH 9\", \"CYBORG ARMY\", \"NANOBOTS\", \"QUANTUM FIELD\",\n","    \"STARFLEET ACADEMY\", \"FEDERATION HQ\", \"REPLICATOR 2000\", \"TRANSPORTER BEAM\",\n","    \"WARP CORE\", \"SUBSPACE COMMS\", \"ANDROID SOLDIER\", \"PROJECT ORION\",\n","    \"ZERO-POINT ENERGY\", \"DARK ENERGY\", \"ANTI-MATTER\", \"QUANTUM ENTANGLEMENT\",\n","    \"GRAVITATIONAL LENS\", \"ASTRO-PHYSICS\", \"COSMIC HORROR\", \"SPACE OPERA\",\n","    \"PLANETARY DEFENSE\", \"DEEP SPACE\", \"COLONY SHIP\", \"GENERATION SHIP\",\n","    \"ARTIFICIAL GENERAL INTELLIGENCE\", \"SINGULARITY POINT\", \"TECHNO-UTOPIA\",\n","    \"DYSTOPIAN FUTURE\", \"CYBERNETIC ENHANCEMENT\", \"GENETIC ENGINEERING\",\n","    \"CONSCIOUSNESS TRANSFER\", \"NEURAL INTERFACE\", \"EXOSKELETON SUIT\", \"MECH WARRIOR\"\n","]\n","\n","futuristic_words = sci_fi_words # Renaming for clarity based on user request\n","\n","# ============================================================\n","# GRADIENT PALETTE (UPDATED FOR WIDER COLOR RANGE)\n","# ============================================================\n","\n","def generate_gradient_pair():\n","    def get_random_rgb():\n","        return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))\n","\n","    color1 = get_random_rgb()\n","    color2 = get_random_rgb()\n","\n","    # Ensure colors are sufficiently distinct to create a noticeable gradient\n","    # The threshold (e.g., 50**2) can be adjusted for more or less distinct colors\n","    while sum((c1 - c2)**2 for c1, c2 in zip(color1, color2)) < (70**2):\n","        color2 = get_random_rgb()\n","\n","    return color1, color2\n","\n","# ============================================================\n","# CREATE SINGLE-PASS GRADIENT TEXT (UPDATED)\n","# ============================================================\n","\n","def create_gradient_text(\n","    text,\n","    font,\n","    gradient_colors,\n","    glow_radius=8\n","):\n","    temp_draw = ImageDraw.Draw(Image.new(\"RGB\", (1, 1)))\n","    bbox = temp_draw.textbbox((0, 0), text, font=font)\n","\n","    text_w = bbox[2] - bbox[0]\n","    text_h = bbox[3] - bbox[1]\n","\n","    padding = 80\n","    canvas_w = text_w + padding * 2\n","    canvas_h = text_h + padding * 2\n","\n","    # Mask\n","    mask = Image.new(\"L\", (canvas_w, canvas_h), 0)\n","    mask_draw = ImageDraw.Draw(mask)\n","    mask_draw.text((padding, padding), text, font=font, fill=255)\n","\n","    # Horizontal Gradient using lines (faster & cleaner)\n","    gradient = Image.new(\"RGBA\", (canvas_w, canvas_h))\n","    draw_grad = ImageDraw.Draw(gradient)\n","\n","    color1, color2 = gradient_colors\n","\n","    for x in range(canvas_w):\n","        t = x / max(1, canvas_w - 1)\n","        r = int(color1[0] * (1 - t) + color2[0] * t)\n","        g = int(color1[1] * (1 - t) + color2[1] * t)\n","        b = int(color1[2] * (1 - t) + color2[2] * t)\n","        draw_grad.line([(x, 0), (x, canvas_h)], fill=(r, g, b, 255))\n","\n","    gradient.putalpha(mask)\n","\n","    # Glow\n","    glow = gradient.filter(ImageFilter.GaussianBlur(radius=glow_radius))\n","    final = Image.blend(glow, gradient, 0.72)\n","\n","    return final\n","\n","# ============================================================\n","# SAFE DRAWING\n","# ============================================================\n","\n","def draw_text(image, text, font, position, angle):\n","    gradient_colors = generate_gradient_pair()\n","\n","    text_layer = create_gradient_text(\n","        text=text,\n","        font=font,\n","        gradient_colors=gradient_colors,\n","        glow_radius=random.randint(4, 10)\n","    )\n","\n","    if angle != 0:\n","        text_layer = text_layer.rotate(\n","            angle, expand=True, resample=Image.BICUBIC\n","        )\n","\n","    img_w, img_h = image.size\n","    layer_w, layer_h = text_layer.size\n","    x, y = position\n","\n","    # Strict bounds checking\n","    x = max(0, min(x, img_w - layer_w))\n","    y = max(0, min(y, img_h - layer_h))\n","\n","    if layer_w > img_w or layer_h > img_h:\n","        return\n","\n","    image.paste(text_layer, (x, y), text_layer)\n","\n","# ============================================================\n","# PROCESS DATASET\n","# ============================================================\n","\n","current_output_idx = 0\n","total_images_to_generate = len(pairs) * output_repeats_per_image\n","\n","for repeat_idx in range(output_repeats_per_image):\n","    for original_img_idx, (img_path, original_txt_path) in enumerate(pairs):\n","        current_output_idx += 1\n","        print(f\"[{current_output_idx}/{total_images_to_generate}] Processing {os.path.basename(img_path)} (Repeat {repeat_idx + 1}/{output_repeats_per_image})\")\n","\n","        img = Image.open(img_path).convert(\"RGB\")\n","        w, h = img.size\n","\n","        # Font\n","        font_index = random.randint(0, len(font_paths) - 1)\n","        font_path = font_paths[font_index]\n","        font_name = font_names[font_index]\n","\n","        # Adaptive Font Size\n","        font_size = int(min(w, h) * random.uniform(0.10, 0.20))\n","        font = ImageFont.truetype(font_path, font_size)\n","\n","        # Word\n","        word = random.choice(futuristic_words)\n","        style_roll = random.random()\n","        if style_roll < 0.30:\n","            word = word.lower()\n","        elif style_roll < 0.60:\n","            word = word.capitalize()\n","\n","        # Angle\n","        angle = random.uniform(-18, 18)\n","\n","        # Sample layer to check size\n","        sample_layer = create_gradient_text(\n","            text=word,\n","            font=font,\n","            gradient_colors=generate_gradient_pair(),\n","            glow_radius=8\n","        )\n","        if angle != 0:\n","            sample_layer = sample_layer.rotate(angle, expand=True, resample=Image.BICUBIC)\n","\n","        text_w, text_h = sample_layer.size\n","\n","        if text_w >= w or text_h >= h:\n","            continue\n","\n","        # Position biases\n","        upper_y = int(h * random.uniform(0.02, 0.18))\n","        lower_y = int(h * random.uniform(0.68, 0.88))\n","        left_x = int(w * random.uniform(0.02, 0.15))\n","        right_x = int(w * random.uniform(0.55, 0.80))\n","\n","        positions = [\n","            (left_x, upper_y), (right_x, upper_y),\n","            (left_x, lower_y), (right_x, lower_y)\n","        ]\n","        random.shuffle(positions)\n","\n","        num_texts = 1\n","        selected_positions = positions[:num_texts]\n","\n","        # Draw\n","        for pos in selected_positions:\n","            draw_text(img, word, font, pos, angle)\n","\n","        # Save Image\n","        out_img_name = f\"{current_output_idx}.jpg\"\n","        out_img_path = os.path.join(\"/content/output\", out_img_name)\n","        img.save(out_img_path, quality=95, format=\"JPEG\")\n","\n","        # Caption\n","        original_caption = \"\"\n","        if os.path.exists(original_txt_path):\n","            with open(original_txt_path, \"r\", encoding=\"utf-8\") as f:\n","                original_caption = f.read().strip()\n","\n","        added_caption = (\n","            f\"The image features the word '{word}' rendered using a bold futuristic \"\n","            f\"{font_name} font with a glowing gradient, slightly rotated and \"\n","            f\"positioned near the upper or lower regions of the frame.\"\n","        )\n","\n","        final_caption = original_caption + \"\\n\" + added_caption if original_caption else added_caption\n","\n","        out_txt_name = f\"{current_output_idx}.txt\"\n","        out_txt_path = os.path.join(\"/content/output\", out_txt_name)\n","        with open(out_txt_path, \"w\", encoding=\"utf-8\") as f:\n","            f.write(final_caption)\n","\n","# ============================================================\n","# EXPORT ZIP\n","# ============================================================\n","\n","random_id = random.randint(100000, 999999)\n","zip_name = f\"{output_zip_base_name}_{random_id}\"\n","\n","shutil.make_archive(f\"/content/{zip_name}\", \"zip\", \"/content/output\")\n","\n","if save_to_drive:\n","    drive_output = f\"/content/drive/MyDrive/{zip_name}.zip\"\n","    shutil.copy(f\"/content/{zip_name}.zip\", drive_output)\n","\n","print(\"\\n✅ COMPLETE\")\n","print(f\"Saved ZIP: {zip_name}.zip\")\n","if save_to_drive:\n","    print(f\"Copied to Drive: {drive_output}\")"]},{"cell_type":"markdown","metadata":{"id":"6973ff74"},"source":["### Disconnect Runtime"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"75027cc1","cellView":"form"},"outputs":[],"source":["#@title Auto Disconnect Runtime upon code completion\n","disconnect_runtime = True #@param {type:'boolean'}\n","\n","if disconnect_runtime:\n","  from google.colab import runtime\n","  runtime.unassign()"]}],"metadata":{"colab":{"collapsed_sections":["6973ff74"],"provenance":[{"file_id":"1wp3MpZL8KQPEIIyQrmXuZg3PcNEp1B2c","timestamp":1780157565326},{"file_id":"https://huggingface.co/codeShare/FLUX.2-klein-9b-SDNQ-4bit/blob/main/colab_notebooks/utils/add_text_to_image.ipynb","timestamp":1780149484702},{"file_id":"https://huggingface.co/codeShare/FLUX.2-klein-9b-SDNQ-4bit/blob/main/colab_notebooks/utils/add_text_to_image.ipynb","timestamp":1780103636563},{"file_id":"https://huggingface.co/codeShare/FLUX.2-klein-9b-SDNQ-4bit/blob/main/colab_notebooks/utils/add_text_to_image.ipynb","timestamp":1780102966743}],"mount_file_id":"1DLjgfTYS2IVwm-exCVkWgsqE8QocMwUq","authorship_tag":"ABX9TyPyWrgjubYbzphDVX3nPPPl"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0}