/*
 * Copyright (C) 2024-present Puter Technologies Inc.
 *
 * This file is part of Puter.
 *
 * Puter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

import { IImageModel } from '../types';

export const TOGETHER_IMAGE_GENERATION_MODELS: IImageModel[] = [
    {
        id: 'togetherai:ByteDance-Seed/Seedream-3.0',
        aliases: ['ByteDance-Seed/Seedream-3.0'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'ByteDance-Seed/Seedream-3.0',
        allowedQualityLevels: [''],
        costs: { '1MP': 1.8 },
    },
    {
        id: 'togetherai:ByteDance-Seed/Seedream-4.0',
        aliases: ['ByteDance-Seed/Seedream-4.0'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'ByteDance-Seed/Seedream-4.0',
        allowedQualityLevels: [''],
        costs: { '1MP': 3 },
    },
    {
        id: 'togetherai:HiDream-ai/HiDream-I1-Dev',
        aliases: ['HiDream-ai/HiDream-I1-Dev'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'HiDream-ai/HiDream-I1-Dev',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.45 },
    },
    {
        id: 'togetherai:HiDream-ai/HiDream-I1-Fast',
        aliases: ['HiDream-ai/HiDream-I1-Fast'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'HiDream-ai/HiDream-I1-Fast',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.32 },
    },
    {
        id: 'togetherai:HiDream-ai/HiDream-I1-Full',
        aliases: ['HiDream-ai/HiDream-I1-Full'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'HiDream-ai/HiDream-I1-Full',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.9 },
    },
    {
        id: 'togetherai:Lykon/DreamShaper',
        aliases: ['Lykon/DreamShaper'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'Lykon/DreamShaper',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.06 },
    },
    {
        id: 'togetherai:Qwen/Qwen-Image',
        aliases: ['Qwen/Qwen-Image'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'Qwen/Qwen-Image',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.58 },
    },
    {
        id: 'togetherai:RunDiffusion/Juggernaut-pro-flux',
        aliases: ['RunDiffusion/Juggernaut-pro-flux'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'RunDiffusion/Juggernaut-pro-flux',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.49 },
    },
    {
        id: 'togetherai:Rundiffusion/Juggernaut-Lightning-Flux',
        aliases: ['Rundiffusion/Juggernaut-Lightning-Flux'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'Rundiffusion/Juggernaut-Lightning-Flux',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.17 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-dev',
        aliases: ['black-forest-labs/FLUX.1-dev'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-dev',
        allowedQualityLevels: [''],
        costs: { '1MP': 2.5 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-dev-lora',
        aliases: ['black-forest-labs/FLUX.1-dev-lora'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-dev-lora',
        allowedQualityLevels: [''],
        costs: { '1MP': 2.5 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-kontext-dev',
        aliases: ['black-forest-labs/FLUX.1-kontext-dev'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-kontext-dev',
        allowedQualityLevels: [''],
        costs: { '1MP': 2.5 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-kontext-max',
        aliases: ['black-forest-labs/FLUX.1-kontext-max'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-kontext-max',
        allowedQualityLevels: [''],
        costs: { '1MP': 8 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-kontext-pro',
        aliases: ['black-forest-labs/FLUX.1-kontext-pro'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-kontext-pro',
        allowedQualityLevels: [''],
        costs: { '1MP': 4 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-krea-dev',
        aliases: ['black-forest-labs/FLUX.1-krea-dev'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-krea-dev',
        allowedQualityLevels: [''],
        costs: { '1MP': 2.5 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-pro',
        aliases: ['black-forest-labs/FLUX.1-pro'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-pro',
        allowedQualityLevels: [''],
        costs: { '1MP': 5 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-schnell',
        aliases: ['black-forest-labs/FLUX.1-schnell'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-schnell',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.27 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1.1-pro',
        aliases: ['black-forest-labs/FLUX.1.1-pro'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1.1-pro',
        allowedQualityLevels: [''],
        costs: { '1MP': 4 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.2-pro',
        aliases: ['black-forest-labs/FLUX.2-pro'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.2-pro',
        allowedQualityLevels: [''],
        costs: { '1MP': 3 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.2-flex',
        aliases: ['black-forest-labs/FLUX.2-flex'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.2-flex',
        allowedQualityLevels: [''],
        costs: { '1MP': 3 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.2-dev',
        aliases: ['black-forest-labs/FLUX.2-dev'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.2-dev',
        allowedQualityLevels: [''],
        costs: { '1MP': 3 },
    },
    {
        id: 'togetherai:google/flash-image-2.5',
        aliases: ['google/flash-image-2.5'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'google/flash-image-2.5',
        allowedQualityLevels: ['1K'],
        allowedRatios: [
            { w: 1024, h: 1024 },
            { w: 1248, h: 832 },
            { w: 832, h: 1248 },
            { w: 1184, h: 864 },
            { w: 864, h: 1184 },
            { w: 896, h: 1152 },
            { w: 1152, h: 896 },
            { w: 768, h: 1344 },
            { w: 1344, h: 768 },
            { w: 1536, h: 672 },
            { w: 672, h: 1536 },

        ],
        costs: { '1MP': 3.91 },
    },
    {
        id: 'togetherai:google/gemini-3-pro-image',
        aliases: ['gemini-3-pro-image', 'google/gemini-3-pro-image'],
        name: 'gemini-3-pro-image (Together AI)',
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        allowedQualityLevels: ['1K', '2K', '4K'],
        allowedRatios: [
            { w: 1, h: 1 },
            { w: 2, h: 3 },
            { w: 3, h: 2 },
            { w: 3, h: 4 },
            { w: 4, h: 3 },
            { w: 4, h: 5 },
            { w: 5, h: 4 },
            { w: 9, h: 16 },
            { w: 16, h: 9 },
            { w: 21, h: 9 },
        ],
        costs: { '1MP': 13.51 },
    },
    {
        id: 'togetherai:google/imagen-4.0-fast',
        aliases: ['google/imagen-4.0-fast'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'google/imagen-4.0-fast',
        allowedQualityLevels: [''],
        costs: { '1MP': 2 },
    },
    {
        id: 'togetherai:google/imagen-4.0-preview',
        aliases: ['google/imagen-4.0-preview'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'google/imagen-4.0-preview',
        allowedQualityLevels: [''],
        costs: { '1MP': 4 },
    },
    {
        id: 'togetherai:google/imagen-4.0-ultra',
        aliases: ['google/imagen-4.0-ultra'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'google/imagen-4.0-ultra',
        allowedQualityLevels: [''],
        costs: { '1MP': 6.02 },
    },
    {
        id: 'togetherai:ideogram/ideogram-3.0',
        aliases: ['ideogram/ideogram-3.0'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'ideogram/ideogram-3.0',
        allowedQualityLevels: [''],
        costs: { '1MP': 6.02 },
    },
    {
        id: 'togetherai:stabilityai/stable-diffusion-3-medium',
        aliases: ['stabilityai/stable-diffusion-3-medium'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'stabilityai/stable-diffusion-3-medium',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.19 },
    },
    {
        id: 'togetherai:stabilityai/stable-diffusion-xl-base-1.0',
        aliases: ['stabilityai/stable-diffusion-xl-base-1.0'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'stabilityai/stable-diffusion-xl-base-1.0',
        allowedQualityLevels: [''],
        costs: { '1MP': 0.19 },
    },
    {
        id: 'togetherai:black-forest-labs/FLUX.1-schnell-Free',
        aliases: ['black-forest-labs/FLUX.1-schnell-Free', 'FLUX.1-schnell-Free'],
        costs_currency: 'usd-cents',
        index_cost_key: '1MP',
        name: 'black-forest-labs/FLUX.1-schnell-Free',
        allowedQualityLevels: [''],
        costs: { '1MP': 0 },
    },
];
